From 33a7189c9781c58eed94072f800399e0b08e6123 Mon Sep 17 00:00:00 2001 From: Dowon Date: Sun, 22 Feb 2026 23:18:57 +0900 Subject: [PATCH 1/4] oopsy: add r10s --- ui/oopsyraidsy/data/07-dt/raid/r10s.ts | 138 +++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 ui/oopsyraidsy/data/07-dt/raid/r10s.ts diff --git a/ui/oopsyraidsy/data/07-dt/raid/r10s.ts b/ui/oopsyraidsy/data/07-dt/raid/r10s.ts new file mode 100644 index 00000000000..05233081e0f --- /dev/null +++ b/ui/oopsyraidsy/data/07-dt/raid/r10s.ts @@ -0,0 +1,138 @@ +import NetRegexes from '../../../../../resources/netregexes'; +import ZoneId from '../../../../../resources/zone_id'; +import { OopsyData } from '../../../../../types/data'; +import { OopsyTriggerSet } from '../../../../../types/oopsy'; +import { GetShareMistakeText, playerDamageFields } from '../../../oopsy_common'; + +export interface Data extends OopsyData { + hasWateryGrave: { [name: string]: boolean }; +} + +const triggerSet: OopsyTriggerSet = { + zoneId: ZoneId.AacHeavyweightM2Savage, + damageWarn: { + 'R10S Alley-oop Double-dip Follow-up': 'B5DF', + 'R10S Reverse Alley-oop Follow-up': 'B5E2', + 'R10S Sickest Take-off': 'B5CE', + 'R10S Deep Varial': 'B5D3', + 'R10S Steam Burst': 'B5FB', // Orb explosion + 'R10S Flame Floater Split': 'B5BF', + }, + gainsEffectWarn: { + 'R10S Burns': 'BFA', // standing in the fire, 15s + }, + shareWarn: { + 'R10S Flame Floater 1': 'B5BA', + 'R10S Flame Floater 2': 'B5BB', + 'R10S Flame Floater 3': 'B5BC', + 'R10S Flame Floater 4': 'B5BD', + 'R10S Flame Floater 5': 'B5BE', + 'R10S Alley-oop Inferno': 'B5C1', // Red Hot spread + 'R10S Awesome Splash 1': 'B5CF', // Deep Blue spread + 'R10S Awesome Splash 2': 'B5D7', // Deep Blue spread after Fire/Watersnaking + 'R10S Alley-oop Double-dip First Hit': 'B5DE', + 'R10S Reverse Alley-oop First Hit': 'B5E1', + 'R10S Blasting Snap': 'B5F1', // Red Hot spread during Insane Air + 'R10S Plunging Snap': 'B5F2', // Deep Blue spread during Insane Air + 'R10S Hot Aerial 1': 'B91D', + 'R10S Hot Aerial 2': 'B91E', + 'R10S Hot Aerial 3': 'B91F', + 'R10S Hot Aerial 4': 'B920', + 'R10S Hot Aerial 5': 'B921', + 'R10S Xtreme Wave Deep Blue': 'B5D2', // Deep Blue's Xtreme Wave + }, + shareFail: { + 'R10S Deep Impact': 'ADC6', // Deep Blue tankbuster + 'R10S Vertical Blast': 'B5F9', // Red Hot tankbuster during Insane Air + 'R10S Vertical Plunge': 'B5FA', // Deep Blue tankbuster during Insane Air + }, + initData: () => { + return { + hasWateryGrave: {}, + }; + }, + triggers: [ + { + id: 'R10S Watery Grave Gain', + type: 'GainsEffect', + netRegex: NetRegexes.gainsEffect({ effectId: '12DD' }), + run: (data, matches) => { + data.hasWateryGrave[matches.target] = true; + }, + }, + { + id: 'R10S Watery Grave Lose', + type: 'LosesEffect', + netRegex: NetRegexes.losesEffect({ effectId: '12DD' }), + run: (data, matches) => { + data.hasWateryGrave[matches.target] = false; + }, + }, + { + // Share warn for Red Hot's Xtreme Wave, except players affected by Watery Grave. + id: 'R10S Xtreme Wave Red Hot', + type: 'Ability', + netRegex: NetRegexes.ability({ id: 'B5D1', ...playerDamageFields }), + condition: (data, matches) => !data.hasWateryGrave[matches.target], + mistake: (data, matches) => { + const numTargets = parseInt(matches.targetCount); + const numWateryGrave = Object.values(data.hasWateryGrave).filter(Boolean).length; + if (isNaN(numTargets) || numTargets <= numWateryGrave + 1) + return; + return { + type: 'warn', + blame: matches.target, + reportId: matches.targetId, + text: GetShareMistakeText(matches.ability, numTargets - numWateryGrave), + }; + }, + }, + { + id: 'R10S Watery Grave Gains Vulnerability Down', + type: 'GainsEffect', + netRegex: NetRegexes.gainsEffect({ effectId: '3A1', target: 'watery grave' }), + mistake: (_data, matches) => { + return { + type: 'warn', + blame: matches.target, + reportId: matches.targetId, + text: matches.effect, + }; + }, + }, + ], + timelineReplace: [ + { + locale: 'de', + replaceSync: { + 'watery grave': 'Wasserkerker', + }, + }, + { + locale: 'fr', + replaceSync: { + 'watery grave': 'prison aquatique', + }, + }, + { + locale: 'ja', + replaceSync: { + 'watery grave': '水牢', + }, + }, + { + locale: 'cn', + replaceSync: { + 'watery grave': '水牢', + }, + }, + { + locale: 'ko', + replaceSync: { + 'watery grave': '수중 감옥', + }, + }, + ], +}; + +export default triggerSet; From f861c7e3346ed880a4bcfacc77847e5d2bc72961 Mon Sep 17 00:00:00 2001 From: Dowon Date: Tue, 3 Mar 2026 20:26:34 +0900 Subject: [PATCH 2/4] fix: remove dummy cast --- ui/oopsyraidsy/data/07-dt/raid/r10s.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/ui/oopsyraidsy/data/07-dt/raid/r10s.ts b/ui/oopsyraidsy/data/07-dt/raid/r10s.ts index 05233081e0f..847a70b36b5 100644 --- a/ui/oopsyraidsy/data/07-dt/raid/r10s.ts +++ b/ui/oopsyraidsy/data/07-dt/raid/r10s.ts @@ -22,11 +22,10 @@ const triggerSet: OopsyTriggerSet = { 'R10S Burns': 'BFA', // standing in the fire, 15s }, shareWarn: { - 'R10S Flame Floater 1': 'B5BA', - 'R10S Flame Floater 2': 'B5BB', - 'R10S Flame Floater 3': 'B5BC', - 'R10S Flame Floater 4': 'B5BD', - 'R10S Flame Floater 5': 'B5BE', + 'R10S Flame Floater 1': 'B5BB', + 'R10S Flame Floater 2': 'B5BC', + 'R10S Flame Floater 3': 'B5BD', + 'R10S Flame Floater 4': 'B5BE', 'R10S Alley-oop Inferno': 'B5C1', // Red Hot spread 'R10S Awesome Splash 1': 'B5CF', // Deep Blue spread 'R10S Awesome Splash 2': 'B5D7', // Deep Blue spread after Fire/Watersnaking @@ -34,11 +33,10 @@ const triggerSet: OopsyTriggerSet = { 'R10S Reverse Alley-oop First Hit': 'B5E1', 'R10S Blasting Snap': 'B5F1', // Red Hot spread during Insane Air 'R10S Plunging Snap': 'B5F2', // Deep Blue spread during Insane Air - 'R10S Hot Aerial 1': 'B91D', - 'R10S Hot Aerial 2': 'B91E', - 'R10S Hot Aerial 3': 'B91F', - 'R10S Hot Aerial 4': 'B920', - 'R10S Hot Aerial 5': 'B921', + 'R10S Hot Aerial 1': 'B91E', + 'R10S Hot Aerial 2': 'B91F', + 'R10S Hot Aerial 3': 'B920', + 'R10S Hot Aerial 4': 'B921', 'R10S Xtreme Wave Deep Blue': 'B5D2', // Deep Blue's Xtreme Wave }, shareFail: { From 0f1934f3bdb7079e473587370519905de47e4ab8 Mon Sep 17 00:00:00 2001 From: Dowon Date: Tue, 3 Mar 2026 20:27:49 +0900 Subject: [PATCH 3/4] fix: Watery Grave title case --- ui/oopsyraidsy/data/07-dt/raid/r10s.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/oopsyraidsy/data/07-dt/raid/r10s.ts b/ui/oopsyraidsy/data/07-dt/raid/r10s.ts index 847a70b36b5..df28f8b1fef 100644 --- a/ui/oopsyraidsy/data/07-dt/raid/r10s.ts +++ b/ui/oopsyraidsy/data/07-dt/raid/r10s.ts @@ -88,7 +88,7 @@ const triggerSet: OopsyTriggerSet = { { id: 'R10S Watery Grave Gains Vulnerability Down', type: 'GainsEffect', - netRegex: NetRegexes.gainsEffect({ effectId: '3A1', target: 'watery grave' }), + netRegex: NetRegexes.gainsEffect({ effectId: '3A1', target: 'Watery Grave' }), mistake: (_data, matches) => { return { type: 'warn', @@ -103,31 +103,31 @@ const triggerSet: OopsyTriggerSet = { { locale: 'de', replaceSync: { - 'watery grave': 'Wasserkerker', + 'Watery Grave': 'Wasserkerker', }, }, { locale: 'fr', replaceSync: { - 'watery grave': 'prison aquatique', + 'Watery Grave': 'prison aquatique', }, }, { locale: 'ja', replaceSync: { - 'watery grave': '水牢', + 'Watery Grave': '水牢', }, }, { locale: 'cn', replaceSync: { - 'watery grave': '水牢', + 'Watery Grave': '水牢', }, }, { locale: 'ko', replaceSync: { - 'watery grave': '수중 감옥', + 'Watery Grave': '수중 감옥', }, }, ], From 992d1f4a7590d8d226fd4a28ffe03c71c926fb22 Mon Sep 17 00:00:00 2001 From: Dowon Date: Tue, 3 Mar 2026 20:30:20 +0900 Subject: [PATCH 4/4] fix: Add Alley-oop Double-dip entries --- ui/raidboss/data/07-dt/raid/r10s.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui/raidboss/data/07-dt/raid/r10s.txt b/ui/raidboss/data/07-dt/raid/r10s.txt index 3d33230357f..9d32708d3dc 100644 --- a/ui/raidboss/data/07-dt/raid/r10s.txt +++ b/ui/raidboss/data/07-dt/raid/r10s.txt @@ -276,6 +276,9 @@ hideall "--sync--" # B5D9 Xtreme Spectacular # B5DA Xtreme Spectacular # B5DC Xtreme Spectacular +# B5DD Alley-oop Double-dip +# B5DE Alley-oop Double-dip +# B5DF Alley-oop Double-dip # B5E0 Reverse Alley-oop # B5E1 Reverse Alley-oop # B5E2 Reverse Alley-oop