Skip to content

Commit

Permalink
raidboss/oopsy: add Another Aloalo Island (#5889)
Browse files Browse the repository at this point in the history
  • Loading branch information
quisquous authored Dec 14, 2023
1 parent 161e9d3 commit 7dc2b2c
Show file tree
Hide file tree
Showing 7 changed files with 4,438 additions and 2 deletions.
182 changes: 182 additions & 0 deletions ui/oopsyraidsy/data/06-ew/dungeon/another_aloalo_island-savage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
// This file was autogenerated from running ts-node util/sync_files.ts.
// DO NOT EDIT THIS FILE DIRECTLY.
// Edit the source file below and then run `npm run sync-files`
// Source: ui/oopsyraidsy/data/06-ew/dungeon/another_aloalo_island.ts

import NetRegexes from '../../../../../resources/netregexes';
import ZoneId from '../../../../../resources/zone_id';
import { OopsyData } from '../../../../../types/data';
import { OopsyMistakeType, OopsyTrigger, OopsyTriggerSet } from '../../../../../types/oopsy';
import { LocaleText } from '../../../../../types/trigger';
import { playerDamageFields } from '../../../oopsy_common';

// TODO: people who missed their 8AE2 Burst tower
// TODO: failing 8BEB Radiance orb damage during Analysis
// TODO: failing 8CE1 Targeted Light during Analysis
// TODO: people who failed Subtractive Suppressor Alpha + Beta
// TODO: walking over 8BF2 Arcane Combustion when you don't have Suppressor
// TODO: taking extra 8BEA Inferno Divide squares during Spatial Tactics
// TODO: 01F7(success) and 01F8(fail) check and x markers?
// TODO: players not in Trapshooting stack 8977
// TODO: players not in Present Box / Pinwheeling Dartboard two person stack

const renameMistake = (
triggerId: string,
abilityId: string | string[],
type: OopsyMistakeType,
text: LocaleText,
): OopsyTrigger<OopsyData> => {
return {
id: triggerId,
type: 'Ability',
netRegex: NetRegexes.ability({ id: abilityId, ...playerDamageFields }),
condition: (data, matches) => data.DamageFromMatches(matches) > 0,
mistake: (_data, matches) => {
return {
type: type,
blame: matches.target,
reportId: matches.targetId,
text: text,
};
},
};
};

export type Data = OopsyData;

// TODO: we could probably move these helpers to some oopsy util.
const pushedIntoWall = (
triggerId: string,
abilityId: string | string[],
): OopsyTrigger<OopsyData> => {
return {
id: triggerId,
type: 'Ability',
netRegex: NetRegexes.ability({ id: abilityId, ...playerDamageFields }),
condition: (data, matches) => data.DamageFromMatches(matches) > 0,
deathReason: (_data, matches) => {
return {
id: matches.targetId,
name: matches.target,
text: {
en: 'Pushed into wall',
de: 'Rückstoß in die Wand',
fr: 'Poussé(e) dans le mur',
ja: '壁へノックバック',
cn: '击退至墙',
ko: '넉백',
},
};
},
};
};

const nonzeroDamageMistake = (
triggerId: string,
abilityId: string | string[],
type: OopsyMistakeType,
): OopsyTrigger<OopsyData> => {
return {
id: triggerId,
type: 'Ability',
netRegex: NetRegexes.ability({ id: abilityId, ...playerDamageFields }),
condition: (data, matches) => data.DamageFromMatches(matches) > 0,
mistake: (_data, matches) => {
return {
type: type,
blame: matches.target,
reportId: matches.targetId,
text: matches.ability,
};
},
};
};

const triggerSet: OopsyTriggerSet<Data> = {
zoneId: ZoneId.AnotherAloaloIslandSavage,
damageWarn: {
// Trash 1
'AAIS Twister': '8BCF', // Twister tornados
'AAIS Kiwakin Tail Screw': '8BC9', // baited circle
'AAIS Snipper Bubble Shower': '8BCA', // front conal
'AAIS Snipper Crab Dribble': '8BCB', // fast back conal after Bubble Shower
'AAIS Ray Hydrocannon': '8C4B', // line aoe
'AAIS Ray Expulsion': '8BCE', // "get out"
'AAIS Ray Electric Whorl': '8BCD', // "get in"

// Ketuduke
'AAIS Spring Crystal Saturate 1': '8ADB', // orb circle
'AAIS Spring Crystal Saturate 2': '8ADC', // rupee line laser
'AAIS Sphere Shatter': '8AE0', // moving arches
'AAIS Receding Twintides': '8AE7', // initial out during out->in
'AAIS Near Tide': '8AE8', // second out during in->out with 8AE9 Encroaching Twintides
'AAIS Encroaching Twintides': '8AE9', // initial in during in->out
'AAIS Far Tide': '8AEA', // second in during out->in with 8AE7 Receding Twintides
'AAIS Hydrobomb': '8AEB', // 3x puddles duruing 8ABD Blowing Bubbles

// Trash 2
'AAIS Wood Golem Ovation': '8BD4', // front line aoe
'AAIS Islekeeper Isle Drop': '8C3C', // front circle

// Lala
'AAIS Arcane Blight': '8BE6', // 270 degree rotating cleave
'AAIS Bright Pulse 1': '8BE8', // initial blue square
'AAIS Bright Pulse 2': '8BE9', // moving blue square
'AAIS Arcane Mine': '8BF1', // initial Arcane Mine squares
'AAIS Golem Aero II': '8BFB', // line damage from Aloalo Golem during Symmetric Surge
'AAIS Telluric Theorem': '8C00', // puddles from Explosive Theorem spreads

// Statice
'AAIS Trigger Happy': '8969', // limit cut dart board
'AAIS Bomb Burst': '897A', // bomb explosion
'AAIS Uncommon Ground': '8CC3', // people who are on the same dartboard color with Bull's-eye
'AAIS Faerie Ring': '8973', // donut rings during Present Box
'AAIS Fire Spread 1': '896F', // initial rotating fire (from Ball of Fire)
'AAIS Fire Spread 2': '89FB', // ongoing rotating fire damage (from Statice)
},
damageFail: {
'AAIS Big Burst': '8AE3', // tower failure damage
'AAIS Massive Explosion 1': '8BF3', // failing to resolve Subractive Suppressor Alpha
'AAIS Massive Explosion 2': '8BF4', // failing to resolve Subractive Suppressor Beta
'AAIS Burning Chains': '8CC1', // damage from not breaking chains
'AAIS Surprising Missile Burst': '8974', // running into Surprising Missile tethered add
'AAIS Surprising Claw Death by Claw': '8975', // running into Surprising Claw tethered add
},
gainsEffectFail: {
// C03 = 9999 duration, ??? = 15s duration
'AAIS Dropsy': 'C03', // standing outside Ketuduke
// C05 = 9999 duration, C06 = 15s duration
'AAIS Bleeding': 'C05', // standing in blue square during Lala
// BF9 = 9999 duration, BFA??? = 15s duration
'AAIS Burns': 'BF9', // standing outside Lala
},
shareWarn: {
'AAIS Hydrobullet': '8ADF', // spread debuffs
'AAIS Wood Golem Tornado': '8BD3', // headmarker -> bind and heavy aoe
'AAIS Powerful Light': '8BFD', // spread marker during Symmetric Surge that turns squares blue
'AAIS Explosive Theorem': '8BFF', // large spreads with Telluric Theorem puddles
'AAIS Trapshooting Spread': '8978', // spread damage from Trick Reload
'AAIS Firewords Spread': '897D', // spread damage during Present Box / Pinwheeling Dartboard
},
soloWarn: {
'AAIS Snipper Water III': '8BCC', // Snipper stack marker
'AAIS Islekeeper Gravity Force': '8C3A', // stack
'AAIS Trapshooting Stack': '8977', // stack damage from Trick Reload
},
soloFail: {
'AAIS Hydrofall': '8ADE', // partner stack debuffs
'AAIS Symmetric Surge': '8BF5', // two person stack that gives magic vuln up
'AAIS Fireworks Stack': '897C', // two person stack damage during Present Box / Pinwheeling Dartboard
},
triggers: [
renameMistake('AAIS Tornado', '8BCF', 'fail', {
// running into a tornado in the initial trash section
en: 'Tornado',
}),
pushedIntoWall('AAIS Angry Seas', '8AE1'),
pushedIntoWall('AAIS Pop', '896B'),
nonzeroDamageMistake('AAIS Hundred Lashings', ['8AE5', '8AE6'], 'warn'),
],
};

export default triggerSet;
177 changes: 177 additions & 0 deletions ui/oopsyraidsy/data/06-ew/dungeon/another_aloalo_island.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
import NetRegexes from '../../../../../resources/netregexes';
import ZoneId from '../../../../../resources/zone_id';
import { OopsyData } from '../../../../../types/data';
import { OopsyMistakeType, OopsyTrigger, OopsyTriggerSet } from '../../../../../types/oopsy';
import { LocaleText } from '../../../../../types/trigger';
import { playerDamageFields } from '../../../oopsy_common';

// TODO: people who missed their 8AC2 Burst tower
// TODO: failing 8894 Radiance orb damage during Analysis
// TODO: failing 8CDF Targeted Light during Analysis
// TODO: people who failed Subtractive Suppressor Alpha + Beta
// TODO: walking over 889B Arcane Combustion when you don't have Suppressor
// TODO: taking extra 8893 Inferno Divide squares during Spatial Tactics
// TODO: 01F7(success) and 01F8(fail) check and x markers?
// TODO: players not in Trapshooting stack 895A
// TODO: players not in Present Box / Pinwheeling Dartboard two person stack

const renameMistake = (
triggerId: string,
abilityId: string | string[],
type: OopsyMistakeType,
text: LocaleText,
): OopsyTrigger<OopsyData> => {
return {
id: triggerId,
type: 'Ability',
netRegex: NetRegexes.ability({ id: abilityId, ...playerDamageFields }),
condition: (data, matches) => data.DamageFromMatches(matches) > 0,
mistake: (_data, matches) => {
return {
type: type,
blame: matches.target,
reportId: matches.targetId,
text: text,
};
},
};
};

export type Data = OopsyData;

// TODO: we could probably move these helpers to some oopsy util.
const pushedIntoWall = (
triggerId: string,
abilityId: string | string[],
): OopsyTrigger<OopsyData> => {
return {
id: triggerId,
type: 'Ability',
netRegex: NetRegexes.ability({ id: abilityId, ...playerDamageFields }),
condition: (data, matches) => data.DamageFromMatches(matches) > 0,
deathReason: (_data, matches) => {
return {
id: matches.targetId,
name: matches.target,
text: {
en: 'Pushed into wall',
de: 'Rückstoß in die Wand',
fr: 'Poussé(e) dans le mur',
ja: '壁へノックバック',
cn: '击退至墙',
ko: '넉백',
},
};
},
};
};

const nonzeroDamageMistake = (
triggerId: string,
abilityId: string | string[],
type: OopsyMistakeType,
): OopsyTrigger<OopsyData> => {
return {
id: triggerId,
type: 'Ability',
netRegex: NetRegexes.ability({ id: abilityId, ...playerDamageFields }),
condition: (data, matches) => data.DamageFromMatches(matches) > 0,
mistake: (_data, matches) => {
return {
type: type,
blame: matches.target,
reportId: matches.targetId,
text: matches.ability,
};
},
};
};

const triggerSet: OopsyTriggerSet<Data> = {
zoneId: ZoneId.AnotherAloaloIsland,
damageWarn: {
// Trash 1
'AAI Twister': '8BC0', // Twister tornados
'AAI Kiwakin Tail Screw': '8BB8', // baited circle
'AAI Snipper Bubble Shower': '8BB9', // front conal
'AAI Snipper Crab Dribble': '8BBA', // fast back conal after Bubble Shower
'AAI Ray Hydrocannon': '8BBD', // line aoe
'AAI Ray Expulsion': '8BBF', // "get out"
'AAI Ray Electric Whorl': '8BBE', // "get in"

// Ketuduke
'AAI Spring Crystal Saturate 1': '8AAB', // orb circle
'AAI Spring Crystal Saturate 2': '8AAC', // rupee line laser
'AAI Sphere Shatter': '8ABC', // moving arches
'AAI Receding Twintides': '8ACC', // initial out during out->in
'AAI Near Tide': '8ACD', // second out during in->out with 8ACE Encroaching Twintides
'AAI Encroaching Twintides': '8ACE', // initial in during in->out
'AAI Far Tide': '8ACF', // second in during out->in with 8ACC Receding Twintides
'AAI Hydrobomb': '8AD1', // 3x puddles duruing 8ABD Blowing Bubbles

// Trash 2
'AAI Wood Golem Ovation': '8BC1', // front line aoe
'AAI Islekeeper Isle Drop': '8C6F', // front circle

// Lala
'AAI Arcane Blight': '888F', // 270 degree rotating cleave
'AAI Bright Pulse 1': '8891', // initial blue square
'AAI Bright Pulse 2': '8892', // moving blue square
'AAI Arcane Mine': '889A', // initial Arcane Mine squares
'AAI Golem Aero II': '88A4', // line damage from Aloalo Golem during Symmetric Surge
'AAI Telluric Theorem': '88A9', // puddles from Explosive Theorem spreads

// Statice
'AAI Trigger Happy': '894C', // limit cut dart board
'AAI Bomb Burst': '895D', // bomb explosion
'AAI Uncommon Ground': '8CC2', // people who are on the same dartboard color with Bull's-eye
'AAI Faerie Ring': '8956', // donut rings during Present Box
'AAI Fire Spread 1': '8982', // initial rotating fire (from Ball of Fire)
'AAI Fire Spread 2': '89F9', // ongoing rotating fire damage (from Statice)
},
damageFail: {
'AAI Big Burst': '8AC3', // tower failure damage
'AAI Massive Explosion 1': '889C', // failing to resolve Subractive Suppressor Alpha
'AAI Massive Explosion 2': '889D', // failing to resolve Subractive Suppressor Beta
'AAI Burning Chains': '8CBE', // damage from not breaking chains
'AAI Surprising Missile Burst': '8957', // running into Surprising Missile tethered add
'AAI Surprising Claw Death by Claw': '8958', // running into Surprising Claw tethered add
},
gainsEffectFail: {
// C03 = 9999 duration, ??? = 15s duration
'AAI Dropsy': 'C03', // standing outside Ketuduke
// C05 = 9999 duration, C06 = 15s duration
'AAI Bleeding': 'C05', // standing in blue square during Lala
// BF9 = 9999 duration, BFA??? = 15s duration
'AAI Burns': 'BF9', // standing outside Lala
},
shareWarn: {
'AAI Hydrobullet': '8ABA', // spread debuffs
'AAI Wood Golem Tornado': '8C4D', // headmarker -> bind and heavy aoe
'AAI Powerful Light': '88A6', // spread marker during Symmetric Surge that turns squares blue
'AAI Explosive Theorem': '88A8', // large spreads with Telluric Theorem puddles
'AAI Trapshooting Spread': '895B', // spread damage from Trick Reload
'AAI Firewords Spread': '8960', // spread damage during Present Box / Pinwheeling Dartboard
},
soloWarn: {
'AAI Snipper Water III': '8C64', // Snipper stack marker
'AAI Islekeeper Gravity Force': '8BC5', // stack
'AAI Trapshooting Stack': '895A', // stack damage from Trick Reload
},
soloFail: {
'AAI Hydrofall': '8AB7', // partner stack debuffs
'AAI Symmetric Surge': '889E', // two person stack that gives magic vuln up
'AAI Fireworks Stack': '895F', // two person stack damage during Present Box / Pinwheeling Dartboard
},
triggers: [
renameMistake('AAI Tornado', '8BC0', 'fail', {
// running into a tornado in the initial trash section
en: 'Tornado',
}),
pushedIntoWall('AAI Angry Seas', '8AC1'),
pushedIntoWall('AAI Pop', '894E'),
nonzeroDamageMistake('AAI Hundred Lashings', ['8AC9', '8ACB'], 'warn'),
],
};

export default triggerSet;
Loading

0 comments on commit 7dc2b2c

Please sign in to comment.