Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

raidboss/oopsy: add Another Aloalo Island #5889

Merged
merged 41 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
7fce4b4
raidboss/oopsy: add Another Aloalo Island
quisquous Nov 1, 2023
4c85344
basic ketuduke triggers
quisquous Nov 2, 2023
7a01057
speculative spring crystals 1 + 2
quisquous Nov 5, 2023
4c970ae
first trash fixes
quisquous Nov 7, 2023
87df3ce
ketuduke fixups
quisquous Nov 7, 2023
acd0a44
trash 2
quisquous Nov 8, 2023
da9eac1
remove shortname
quisquous Nov 8, 2023
ff054a9
lala timeline and oopsy
quisquous Nov 8, 2023
13f2090
lala triggers
quisquous Nov 8, 2023
01edaf0
list bubble/fetters partner for sc2 mostly
quisquous Nov 14, 2023
6a053c0
clean up diagrams
quisquous Nov 14, 2023
ea4c656
small fixups
quisquous Nov 14, 2023
cde052c
initial statice
quisquous Nov 14, 2023
2b44454
trapshooting cleanup
quisquous Nov 15, 2023
5f25423
add initial savage files
quisquous Nov 19, 2023
973b9ea
wording change
quisquous Nov 23, 2023
7081151
resources: add custom op lines
quisquous Dec 4, 2023
ad145ed
minor statice update
quisquous Dec 4, 2023
797972b
missile claw calls
quisquous Dec 4, 2023
9fffc2b
statice timeline
quisquous Dec 5, 2023
97785ab
tornado rename
quisquous Dec 5, 2023
2e58b14
a couple of savage ids
quisquous Dec 5, 2023
f41dd07
guesses at lala savage ids
quisquous Dec 5, 2023
39a5265
guesses at statice savage ids
quisquous Dec 5, 2023
aaf27c0
statice trigger cleanup
quisquous Dec 6, 2023
ab74e81
add role stacks warning
quisquous Dec 6, 2023
c6ede8e
Merge branch 'main' into another_alo
quisquous Dec 12, 2023
0843e95
simplify Lala Arcane Blight call
quisquous Dec 12, 2023
add22d9
use new seal syncs
quisquous Dec 12, 2023
a8359f2
use nettify script to convert timeline to new style
quisquous Dec 12, 2023
97bb3f4
test new op lines
quisquous Dec 4, 2023
8ac3de9
improve knockback plus trigger happy
quisquous Dec 13, 2023
ef020c4
minor trigger massaging
quisquous Dec 13, 2023
e54040e
untargetable lines
quisquous Dec 13, 2023
f08b3dd
more savage ids
quisquous Dec 14, 2023
a6ddfbb
ketuduke enrage
quisquous Dec 14, 2023
4ca6830
xiashtra comments
quisquous Dec 14, 2023
fae5d3b
small fixes
quisquous Dec 14, 2023
139f36b
undo extra op lines
quisquous Dec 14, 2023
119efb0
rename planar tactics
quisquous Dec 14, 2023
3ed6af9
Merge branch 'main' into another_alo
quisquous Dec 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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