Skip to content

Commit

Permalink
raidboss: timeline & initial triggers for Golbez (normal) (#5534)
Browse files Browse the repository at this point in the history
Tested in raidemulator and a couple of pulls in-game.
Per my comment in #5405 I'll do another PR tomorrow with some basic
oopsy stuff as well.

Edit:  Closes #5497
  • Loading branch information
wexxlee committed Jun 10, 2023
1 parent 8b8efe2 commit 7231711
Show file tree
Hide file tree
Showing 3 changed files with 255 additions and 3 deletions.
27 changes: 26 additions & 1 deletion ui/oopsyraidsy/data/06-ew/trial/golbez.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,32 @@ export type Data = OopsyData;

const triggerSet: OopsyTriggerSet<Data> = {
zoneId: ZoneId.TheVoidcastDais,
damageWarn: {},
damageWarn: {
'Golbez Terrastorm': '8465', // purple summoned meteors that leave big circles
'Golbez Crescent Blade': '846B', // frontal 180 cleave
'Golbez Arctic Assault': '8460', // ice-spike walls
'Golbez Lingering Spark': '8469', // player-baited small AoE puddles
'Golbez Shadow Crescent': '8487', // frontal 180 cleave (followed by Rising Beacon)
'Golbez Rising Beacon': '848F', // large AOE centered on boss (immediately follows Shadow Crescent)
'Golbez Cauterize': '84A1', // tether-baited line cleave from Shadow Dragon (following towers)
'Golbez Gale Sphere': '845[4-7]', // line cleaves from Gale Sphere orbs
'Golbez Void Stardust Initial': '84A5', // initial (corner) meteor drop
'Golbez Void Stardust Continuing': '84A9', // subsequent meteor drops
},
damageFail: {
'Goblez Massive Explosion': '849F', // tower exploding with too few (or no) players
},
shareWarn: {
'Golbez Void Comet': '84AE', // smaller initial hits of multi-hit Void Meteor splash buster
'Golbez Burning Shade': '8493', // player-targeted spread AoEs (immediately follows Shadow Crescent)
},
shareFail: {
'Golbez Void Meteor': '84AF', // final (larger) hit of multi-hit Void Meteor splash buster
},
soloFail: {
'Golbez Eventide Fall': '8482', // stack markers on healers
'Golbez Immolating Shade': '8495', // stack maker on solo party member
},
};

export default triggerSet;
125 changes: 123 additions & 2 deletions ui/raidboss/data/06-ew/trial/golbez.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,135 @@
import Outputs from '../../../../../resources/outputs';
import { Responses } from '../../../../../resources/responses';
import { DirectionOutputCardinal, Directions } from '../../../../../resources/util';
import ZoneId from '../../../../../resources/zone_id';
import { RaidbossData } from '../../../../../types/data';
import { TriggerSet } from '../../../../../types/trigger';

export type Data = RaidbossData;
export interface Data extends RaidbossData {
galeSphereShadows: DirectionOutputCardinal[];
}

const triggerSet: TriggerSet<Data> = {
id: 'TheVoidcastDais',
zoneId: ZoneId.TheVoidcastDais,
timelineFile: 'golbez.txt',
triggers: [],
initData: () => {
return {
galeSphereShadows: [],
};
},
triggers: [
{
id: 'Golbez Terrastorm',
type: 'Ability',
netRegex: { id: '8463', source: 'Golbez', capture: false },
infoText: (_data, _matches, output) => output.text!(),
outputStrings: {
text: {
en: 'Avoid meteor',
},
},
},
{
id: 'Golbez Crescent Blade',
type: 'StartsUsing',
netRegex: { id: '846B', source: 'Golbez', capture: false },
response: Responses.getBehind(),
},
{
id: 'Golbez Void Meteor',
type: 'StartsUsing',
netRegex: { id: '84AC', source: 'Golbez', capture: true },
response: Responses.tankBuster(),
},
{
id: 'Golbez Binding Cold',
type: 'StartsUsing',
netRegex: { id: '84B2', source: 'Golbez', capture: false },
response: Responses.bleedAoe(),
},
{
id: 'Golbez Black Fang',
type: 'StartsUsing',
netRegex: { id: '8471', source: 'Golbez', capture: false },
response: Responses.bigAoe(),
},
{
id: 'Golbez Shadow Crescent',
type: 'StartsUsing',
netRegex: { id: '8487', source: 'Golbez', capture: false },
alertText: (_data, _matches, output) => output.text!(),
outputStrings: {
text: {
en: 'Get behind, then out',
},
},
},
{
id: 'Golbez Gale Sphere Directions',
type: 'Ability',
netRegex: { id: '84(?:4F|50|51|52)', source: 'Golbez\'s Shadow', capture: true },
infoText: (data, matches, output) => {
switch (matches.id) {
case '844F':
data.galeSphereShadows.push('dirN');
break;
case '8450':
data.galeSphereShadows.push('dirE');
break;
case '8451':
data.galeSphereShadows.push('dirW');
break;
case '8452':
data.galeSphereShadows.push('dirS');
break;
}

if (data.galeSphereShadows.length < 4)
return;

const [dir1, dir2, dir3, dir4] = data.galeSphereShadows;
if (dir1 === undefined || dir2 === undefined || dir3 === undefined || dir4 === undefined)
return;

data.galeSphereShadows = [];

return output.clones!({
dir1: output[dir1]!() ?? output.unknown!(),
dir2: output[dir2]!() ?? output.unknown!(),
dir3: output[dir3]!() ?? output.unknown!(),
dir4: output[dir4]!() ?? output.unknown!(),
});
},
outputStrings: {
clones: {
en: 'Clones: ${dir1}->${dir2}->${dir3}->${dir4}',
},
unknown: Outputs.unknown,
...Directions.outputStringsCardinalDir,
},
},
{
id: 'Golbez Eventide Fall',
type: 'StartsUsing',
netRegex: { id: '8482', source: 'Golbez', capture: false },
response: Responses.stackMarker(),
},
{
id: 'Golbez Immolating Shade',
type: 'StartsUsing',
netRegex: { id: '8495', source: 'Golbez' },
alertText: (data, matches, output) => {
const target = data.ShortName(matches.target) ?? '??';
return output.text!({ player: target });
},
outputStrings: {
text: {
en: 'Out first => stack w/ ${player}',
},
},
},
],
};

export default triggerSet;
106 changes: 106 additions & 0 deletions ui/raidboss/data/06-ew/trial/golbez.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,112 @@
### The Voidcast Dais
#
# -ii 844B 8463 8460 84AE 84AF 8469 8719 86CF 8473 849B 878B 84B6 84A7 84A9 8483 86B3 8484
# -it "Golbez"
# -ic "Gale Sphere" "Shadow Dragon" "Golbez's Shadow"

# Ignored Ids:
# - 844B (autos)
# - 8463 Terrastorm (initial cast; meteor telegraph/damage is 8465)
# - 8460 Damage from Arctic Assault
# - 84AE Damage from Void Comet (small initial hits from Void Meteor)
# - 84AF Damage from Void Meteor (final larger hit from Void Meteor)
# - 8469 Damage from Lingering Spark puddles
# - 8719 Duplicative Black Fang
# - 86CF Duplicative Black Fang
# - 8473 Duplicative Black Fang
# - 849B Duplicative Explosion
# - 878B Duplicative Double Meteor
# - 84B6 Duplicative Double Meteor
# - 84A7 sync/vfx?
# - 84A9 Subsequent meteors (+ damage) during Void Stardust
# - 8483 Duplicative Eventide Fall
# - 86B3 Duplicative Eventide Fall
# - 8484 sync/vfx?


hideall "--Reset--"
hideall "--sync--"
hideall "--middle--"

0.0 "--Reset--" sync / 21:........:4000000F:/ window 100000 jump 0
0.0 "--sync--" sync / 104:[^:]*:1($|:)/ window 0,1
11.0 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/ window 12,12
25.2 "Terrastorm" sync / 1[56]:[^:]*:Golbez:8465:/
30.3 "Crescent Blade" sync / 1[56]:[^:]*:Golbez:846B:/
37.0 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
42.1 "Arctic Assault" sync / 1[56]:[^:]*:Golbez:845E:/
50.3 "Crescent Blade" sync / 1[56]:[^:]*:Golbez:846B:/
60.9 "Void Meteor" sync / 1[56]:[^:]*:Golbez:84AC:/ duration 4
69.1 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
74.2 "Lingering Spark" sync / 1[56]:[^:]*:Golbez:8467:/ duration 8
86.5 "Crescent Blade" sync / 1[56]:[^:]*:Golbez:846B:/
97.1 "Binding Cold" sync / 1[56]:[^:]*:Golbez:84B2:/
106.3 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
113.6 "Azdaja's Shadow" sync / 1[56]:[^:]*:Golbez:86FE:/
113.6 "--untargetable--"
128.6 "--targetable--"
132.6 "Black Fang" sync / 1[56]:[^:]*:Golbez:8471:/ duration 6.5
142.7 "--sync--" sync / 1[56]:[^:]*:Golbez:8475:/
150.8 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
156.8 "Azdaja's Shadow" sync / 1[56]:[^:]*:Golbez:8476:/
167.1 "Shadow Crescent" sync / 1[56]:[^:]*:Golbez:8487:/
169.4 "Rising Beacon" sync / 1[56]:[^:]*:Golbez:848F:/
172.2 "Burning Shade" sync / 1[56]:[^:]*:Golbez:8493:/
172.8 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
186.7 "Explosion" sync / 1[56]:[^:]*:Golbez:8499:/
191.1 "Double Meteor" sync / 1[56]:[^:]*:Golbez:84B4:/
194.2 "--sync--" sync / 1[56]:[^:]*:Golbez:8475:/
200.3 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
205.6 "Gale Sphere" sync / 1[56]:[^:]*:Golbez:844D:/
225.3 "--sync--" sync / 1[56]:[^:]*:Golbez:844E:/
234.3 "Void Stardust (preview)" sync / 1[56]:[^:]*:Golbez:84A3:/
238.2 "Void Stardust" sync / 1[56]:[^:]*:Golbez:84A5:/ duration 3
248.5 "Void Meteor" sync / 1[56]:[^:]*:Golbez:84AC:/ duration 4
259.7 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
265.7 "Azdaja's Shadow" sync / 1[56]:[^:]*:Golbez:8476:/
274.0 "Lingering Spark" sync / 1[56]:[^:]*:Golbez:8467:/ duration 8
285.2 "Eventide Fall" sync / 1[56]:[^:]*:Golbez:8482:/ duration 4.6
298.5 "Gale Sphere" sync / 1[56]:[^:]*:Golbez:844D:/
318.2 "--sync--" sync / 1[56]:[^:]*:Golbez:844E:/
325.5 "Shadow Crescent" sync / 1[56]:[^:]*:Golbez:8487:/
327.8 "Rising Beacon" sync / 1[56]:[^:]*:Golbez:848F:/
330.0 "--sync--" sync / 1[56]:[^:]*:Golbez:8475:/
331.4 "Immolating Shade" sync / 1[56]:[^:]*:Golbez:8495:/

# begin loop
340.1 "Binding Cold" sync / 1[56]:[^:]*:Golbez:84B2:/
346.3 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
352.3 "Azdaja's Shadow" sync / 1[56]:[^:]*:Golbez:8476:/
360.5 "Void Stardust (preview)" sync / 1[56]:[^:]*:Golbez:84A3:/
364.4 "Void Stardust" sync / 1[56]:[^:]*:Golbez:84A5:/ duration 3
370.7 "Arctic Assault" sync / 1[56]:[^:]*:Golbez:845E:/
386.9 "Terrastorm" sync / 1[56]:[^:]*:Golbez:8465:/
391.2 "Shadow Crescent" sync / 1[56]:[^:]*:Golbez:8487:/
393.5 "Rising Beacon" sync / 1[56]:[^:]*:Golbez:848F:/
396.3 "Burning Shade" sync / 1[56]:[^:]*:Golbez:8493:/
396.9 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
410.9 "Explosion" sync / 1[56]:[^:]*:Golbez:849A:/
415.3 "Double Meteor" sync / 1[56]:[^:]*:Golbez:84B4:/
418.4 "--sync--" sync / 1[56]:[^:]*:Golbez:8475:/
431.5 "Void Meteor" sync / 1[56]:[^:]*:Golbez:84AC:/ duration 4
441.7 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
447.7 "Azdaja's Shadow" sync / 1[56]:[^:]*:Golbez:8476:/
456.1 "Lingering Spark" sync / 1[56]:[^:]*:Golbez:8467:/ duration 8
467.3 "Eventide Fall" sync / 1[56]:[^:]*:Golbez:8482:/ duration 4.6
480.4 "Gale Sphere" sync / 1[56]:[^:]*:Golbez:844D:/
500.1 "--sync--" sync / 1[56]:[^:]*:Golbez:844E:/
507.4 "Shadow Crescent" sync / 1[56]:[^:]*:Golbez:8487:/
509.7 "Rising Beacon" sync / 1[56]:[^:]*:Golbez:848F:/
511.9 "--sync--" sync / 1[56]:[^:]*:Golbez:8475:/

# jump + fake loop
522.0 "Binding Cold" sync / 1[56]:[^:]*:Golbez:84B2:/ window 60,60 jump 340.1
528.2 "--middle--" sync / 1[56]:[^:]*:Golbez:84B8:/
534.2 "Azdaja's Shadow" sync / 1[56]:[^:]*:Golbez:8476:/
542.4 "Void Stardust (preview)" sync / 1[56]:[^:]*:Golbez:84A3:/
546.3 "Void Stardust" sync / 1[56]:[^:]*:Golbez:84A5:/
552.6 "Arctic Assault" sync / 1[56]:[^:]*:Golbez:845E:/
568.8 "Terrastorm" sync / 1[56]:[^:]*:Golbez:8465:/
572.9 "Shadow Crescent" sync / 1[56]:[^:]*:Golbez:8487:/
575.2 "Rising Beacon" sync / 1[56]:[^:]*:Golbez:848F:/

0 comments on commit 7231711

Please sign in to comment.