From f79ab792d604321b1df64dc7b0c6eadef9077050 Mon Sep 17 00:00:00 2001 From: Adrienne Walker Date: Thu, 26 Jan 2023 10:33:28 -0800 Subject: [PATCH] oopsy: add TOP p2 (#5243) --- .../another_sildihn_subterrane-savage.ts | 2 +- .../dungeon/another_sildihn_subterrane.ts | 2 +- ui/oopsyraidsy/data/06-ew/raid/p8s.ts | 2 +- .../data/06-ew/trial/rubicante-ex.ts | 2 +- .../data/06-ew/ultimate/the_omega_protocol.ts | 33 +++++++++++++++++-- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts b/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts index fdeddbf875..562467978b 100644 --- a/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts +++ b/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts @@ -26,7 +26,7 @@ const stackMistake = ( ): OopsyFunc => { return (_data, matches) => { const actual = parseFloat(matches.targetCount); - if (actual === expected) + if (actual === expected || actual === 0) return; const ability = abilityText ?? matches.ability; const text = actual === 1 ? GetSoloMistakeText(ability) : GetShareMistakeText(ability, actual); diff --git a/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane.ts b/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane.ts index 079ef54c03..0918a69be3 100644 --- a/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane.ts +++ b/ui/oopsyraidsy/data/06-ew/dungeon/another_sildihn_subterrane.ts @@ -23,7 +23,7 @@ const stackMistake = ( ): OopsyFunc => { return (_data, matches) => { const actual = parseFloat(matches.targetCount); - if (actual === expected) + if (actual === expected || actual === 0) return; const ability = abilityText ?? matches.ability; const text = actual === 1 ? GetSoloMistakeText(ability) : GetShareMistakeText(ability, actual); diff --git a/ui/oopsyraidsy/data/06-ew/raid/p8s.ts b/ui/oopsyraidsy/data/06-ew/raid/p8s.ts index fda1788fe5..16438516ee 100644 --- a/ui/oopsyraidsy/data/06-ew/raid/p8s.ts +++ b/ui/oopsyraidsy/data/06-ew/raid/p8s.ts @@ -34,7 +34,7 @@ const stackMistake = ( ): OopsyFunc => { return (_data, matches) => { const actual = parseFloat(matches.targetCount); - if (actual === expected) + if (actual === expected || actual === 0) return; const ability = abilityText ?? matches.ability; const text = actual === 1 ? GetSoloMistakeText(ability) : GetShareMistakeText(ability, actual); diff --git a/ui/oopsyraidsy/data/06-ew/trial/rubicante-ex.ts b/ui/oopsyraidsy/data/06-ew/trial/rubicante-ex.ts index abd0297c50..8bdaf3bb16 100644 --- a/ui/oopsyraidsy/data/06-ew/trial/rubicante-ex.ts +++ b/ui/oopsyraidsy/data/06-ew/trial/rubicante-ex.ts @@ -21,7 +21,7 @@ const stackMistake = ( ): OopsyFunc => { return (_data, matches) => { const actual = parseFloat(matches.targetCount); - if (actual === expected) + if (actual === expected || actual === 0) return; const ability = abilityText ?? matches.ability; const text = actual === 1 ? GetSoloMistakeText(ability) : GetShareMistakeText(ability, actual); diff --git a/ui/oopsyraidsy/data/06-ew/ultimate/the_omega_protocol.ts b/ui/oopsyraidsy/data/06-ew/ultimate/the_omega_protocol.ts index a4c3fbfa03..cd6f7edc96 100644 --- a/ui/oopsyraidsy/data/06-ew/ultimate/the_omega_protocol.ts +++ b/ui/oopsyraidsy/data/06-ew/ultimate/the_omega_protocol.ts @@ -11,6 +11,7 @@ import { import { LocaleText } from '../../../../../types/trigger'; import { GetShareMistakeText, GetSoloMistakeText } from '../../../oopsy_common'; +// TODO: 7B04 Storage Violation, taking tower but only if you have Looper and wrong number // TODO: 7B10 Diffuse Wave Cannon Kyrios being shared if not invulning? // TODO: call out who missed their Program Loop tower // TODO: call out who was missing in the Condensed Wave Cannon stack @@ -23,7 +24,7 @@ const stackMistake = ( ): OopsyFunc => { return (_data, matches) => { const actual = parseFloat(matches.targetCount); - if (actual === expected) + if (actual === expected || actual === 0) return; const ability = abilityText ?? matches.ability; const text = actual === 1 ? GetSoloMistakeText(ability) : GetShareMistakeText(ability, actual); @@ -39,6 +40,20 @@ const triggerSet: OopsyTriggerSet = { 'TOP Flame Thrower 1': '7B0D', // initial Flame Thrower during Pantokrator 'TOP Flame Thrower 2': '7E70', // ongoing Flame Thrower during Pantokrator 'TOP Ballistic Impact': '7B0C', // ground puddles during Pantokrator + 'TOP Beyond Strength': '7B25', // Omega-M donut during Party Synergy + 'TOP Efficient Bladework': '7B26', // Omega-M centered circle during Party Synergy + 'TOP Superliminal Steel 1': '7B3E', // Omega-F hot wing during Party Synergy + 'TOP Superliminal Steel 2': '7B3F', // Omega-F hot wing during Party Synergy + 'TOP Optimized Blizzard III': '7B2D', // Omega-F cross during Party Synergy + 'TOP Optical Laser': '7B21', // Optical Unit eye laser during Party Synergy + 'TOP Optimized Sagittarius Arrow': '7B33', // line aoe during Limitless Synergy + 'TOP Optimized Bladedance 1': '7B36', // Omega-M tankbuster conal (not tether target 7F75) during Limitless Synergy + 'TOP Optimized Bladedance 2': '7B37', // Omega-F tankbuster conal (not tether target 7F75) during Limitless Synergy + 'TOP Wave Repeater 1': '7B4F', // inner ring during p3 transition + 'TOP Wave Repeater 2': '7B50', // second ring during p3 transition + 'TOP Wave Repeater 3': '7B51', // third ring during p3 transition + 'TOP Wave Repeater 4': '7B52', // outer ring during p3 transition + 'TOP Colossal Blow': '7B4E', // Right/Left Arm Unit big centered circle during p3 transition }, damageFail: { 'TOP Storage Violation Obliteration': '7B06', // failing towers @@ -46,10 +61,17 @@ const triggerSet: OopsyTriggerSet = { shareWarn: { 'TOP Blaster': '7B0A', // tether spread during Program Loop 'TOP Wave Cannon Kyrios': '7B11', // headmarker line lasers after Pantokrator + 'TOP Optimized Fire III': '7B2F', // spread during Party Synergy + 'TOP Sniper Cannon': '7B53', // spread during p3 transition }, shareFail: { - 'TOP Storage Violation': '7B04', // tower during Program Loop 'TOP Guided Missile Kyrios': '7B0E', // spread damage duruing Pantokrator + 'TOP Solar Ray 1': '7E6A', // tankbuster during M/F + 'TOP Solar Ray 2': '7E6B', // tankbuster during M/F + 'TOP Beyond Defense': '7B28', // spread with knockback during Limitless Synergy + }, + soloWarn: { + 'TOP Pile Pitch': '7B29', // stack after Beyond Defense during Limitless Synergy }, triggers: [ { @@ -59,6 +81,13 @@ const triggerSet: OopsyTriggerSet = { netRegex: NetRegexes.ability({ id: '7B0F' }), mistake: stackMistake('warn', 3), }, + { + id: 'TOP High-powered Sniper Cannon', + // Wroth Flames-esque two person stack during p3 transition + type: 'Ability', + netRegex: NetRegexes.ability({ id: '7B54' }), + mistake: stackMistake('warn', 2), + }, ], };