-
Notifications
You must be signed in to change notification settings - Fork 383
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
raidboss/oopsy: add Another Aloalo Island (#5889)
- Loading branch information
Showing
7 changed files
with
4,438 additions
and
2 deletions.
There are no files selected for viewing
182 changes: 182 additions & 0 deletions
182
ui/oopsyraidsy/data/06-ew/dungeon/another_aloalo_island-savage.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
177
ui/oopsyraidsy/data/06-ew/dungeon/another_aloalo_island.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; |
Oops, something went wrong.