Skip to content

Commit

Permalink
raidboss: Ktisis Hyperboreia--Add Ladon Lord's Pyric Breath (#5882)
Browse files Browse the repository at this point in the history
  • Loading branch information
JLGarber authored Oct 28, 2023
1 parent d2f058b commit 1a8f2d4
Showing 1 changed file with 49 additions and 1 deletion.
50 changes: 49 additions & 1 deletion ui/raidboss/data/06-ew/dungeon/ktisis_hyperboreia.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
import Outputs from '../../../../../resources/outputs';
import { Responses } from '../../../../../resources/responses';
import ZoneId from '../../../../../resources/zone_id';
import { RaidbossData } from '../../../../../types/data';
import { TriggerSet } from '../../../../../types/trigger';

// TODO: Lyssa Frostbite and Seek
// TODO: Ladon Lord cleave directions
// TODO: Hermes correct meteor
// TODO: Hermes mirror dodge direction

export interface Data extends RaidbossData {
ladonBreaths: string[];
isHermes?: boolean;
}

const triggerSet: TriggerSet<Data> = {
id: 'KtisisHyperboreia',
zoneId: ZoneId.KtisisHyperboreia,
timelineFile: 'ktisis_hyperboreia.txt',
initData: () => {
return {
ladonBreaths: [],
};
},
triggers: [
{
id: 'Ktisis Lyssa Skull Dasher',
Expand Down Expand Up @@ -53,6 +59,48 @@ const triggerSet: TriggerSet<Data> = {
netRegex: { id: '648E', source: 'Ladon Lord' },
response: Responses.stackMarkerOn(),
},
{
// AFC: Center head; AFD: Right head; AFE: Left head
id: 'Ktisis Ladon Lord Pyric Breath Collect',
type: 'GainsEffect',
netRegex: { effectId: ['AFC', 'AFD', 'AFE'] },
run: (data, matches) => data.ladonBreaths.push(matches.effectId),
},
{
id: 'Ktisis Ladon Lord Pyric Breath Call',
type: 'Ability',
netRegex: { id: '6485', source: 'Ladon Lord', capture: false }, // Call on boss centering
delaySeconds: 2, // Let the rotation happen first or simultaneously
alertText: (data, _matches, output) => {
// Somehow we have no breath data. Sadge.
if (data.ladonBreaths.length === 0)
return;

// The first breath in the encounter is always center head
if (data.ladonBreaths.length === 1)
return output.awayFromFront!();

const safeId = ['AFC', 'AFD', 'AFE'].filter((id) => !data.ladonBreaths.includes(id))[0];
if (safeId === undefined)
return;
return {
AFC: output.goFront,
AFD: output.backLeft,
AFE: output.backRight,
}[safeId]!();
},
run: (data) => data.ladonBreaths = [],
outputStrings: {
awayFromFront: Outputs.awayFromFront,
goFront: Outputs.goFront,
backRight: {
en: 'Get behind and right',
},
backLeft: {
en: 'Get behind and left',
},
},
},
{
id: 'Ktisis Hermes Trimegistos',
type: 'StartsUsing',
Expand Down

0 comments on commit 1a8f2d4

Please sign in to comment.