diff --git a/ui/oopsyraidsy/data/06-ew/dungeon/another_mount_rokkon.ts b/ui/oopsyraidsy/data/06-ew/dungeon/another_mount_rokkon.ts index b4ada1fdf29..69a1c573f14 100644 --- a/ui/oopsyraidsy/data/06-ew/dungeon/another_mount_rokkon.ts +++ b/ui/oopsyraidsy/data/06-ew/dungeon/another_mount_rokkon.ts @@ -8,13 +8,17 @@ import { playerDamageFields } from '../../../oopsy_common'; // TODO: does Splitting Cry 841B cleave? // TODO: taking both Vermilion Aura 840F and Stygian Aura 8410 // TODO: taking two Unnatural Force 8419 stacks +// TODO: standing in outside of Shishio arena +// TODO: better track who didn't take Shishio towers +// TODO: does Gorai Torching Torment cleave? +// TODO: who missed Gorai towers or was not hit by protean export type Data = OopsyData; const triggerSet: OopsyTriggerSet = { zoneId: ZoneId.AnotherMountRokkon, damageWarn: { - // Trash + // Trash 1 'AMR Shishu Raiko Disciples of Levin': '8656', // centered circle 'AMR Shishu Raiko Master of Levin': '8655', // very large donut 'AMR Shishu Furutsubaki Bloody Carress': '8657', // front conal @@ -22,9 +26,6 @@ const triggerSet: OopsyTriggerSet = { 'AMR Red Shishu Penghou Tornado': '865B', // targeted circle 'AMR Shishu Yuki Right Swipe': '8685', // 180 right cleave 'AMR Shishu Yuki Left Swipe': '8686', // 180 left cleave - 'AMR Shishu Yamabiko': '8687', // sprite line aoe - 'AMR Shishu Kotengu Blade of the Tengu': '865F', // Leftward/Rightward/Backward Blows - 'AMR Shishu Onmitsugashira Juji Shuriken': '8664', // untelegraphed front line // Shishio 'AMR Shishio Rokujo Revel': '83FE', // Smokeater line @@ -47,18 +48,43 @@ const triggerSet: OopsyTriggerSet = { 'AMR Shishio Vortex of the Thunder Eye 1': '8415', // first "in" donut 'AMR Shishio Vortex of the Thunder Eye 2': '8416', // second "out" circle 'AMR Shishio Slither': '841C', // back conal + + // Trash 2 + 'AMR Shishu Yamabiko': '8687', // sprite line aoe + 'AMR Shishu Kotengu Blade of the Tengu': '865F', // Leftward/Rightward/Backward Blows + 'AMR Shishu Onmitsugashira Juji Shuriken': '8664', // untelegraphed front line + + // Gorai + 'AMR Gorai Fire Spread Purple': '850B', // line damage after purple Brazen Ballad + 'AMR Gorai Fire Spread Blue': '850C', // line damage after blue Brazen Ballad + 'AMR Gorai Falling Rock Purple': '850E', // expanded rock damage after purple Brazen Ballad + 'AMR Gorai Falling Rock Blue': '850F', // donutified rock damage after purple Brazen Ballad + 'AMR Gorai Ball of Levin Shock Small': '8522', // small circle from Ball of Levin hit by Humble Hammer + 'AMR Gorai Ball of Levin Shock Big': '8523', // large circle from Ball of Levin + 'AMR Gorai Cloud to Ground 1': '8529', // initial cloud exaflare + 'AMR Gorai Cloud to Ground 2': '852A', // ongoing cloud exaflare + 'AMR Gorai Impure Purgation Second': '8531', // follow-up protean }, damageFail: { 'AMR Shishio Unmitigated Explosion': '8411', // not taking towers }, + gainsEffectWarn: { + // BF9 = 9999s duration, BFA = 15s duration + 'AMR Gorai Burns': 'BF9', // standing in outside square of Gorai + }, shareWarn: { 'AMR Shishu Raiko Barreling Smash': '8653', // line charge + 'AMR Gorai Pointed Purgation': '851F', // protean tether during towers + 'AMR Gorai Impure Purgation': '8530', // initial protean for double hit protean }, shareFail: { 'AMR Shishio Unnatural Ailment': '8418', // spread during Unnatural Wail + 'AMR Gorai Great Ball of Fire': '8506', // spread damage from Live Candle debuff }, soloFail: { - 'AMR Shishio Unnatural Force': '8419', // stack during Unnaturl Wail + 'AMR Shishio Unnatural Force': '8419', // pair stack during Unnatural Wail + 'AMR Gorai Greater Ball of Fire': '8505', // pair stack from Live Brazier debuff + 'AMR Gorai Flintlock': '8527', // line share }, triggers: [ { diff --git a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts index 0c1d37aab68..9f112b53c6f 100644 --- a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts +++ b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts @@ -1,3 +1,4 @@ +import Conditions from '../../../../../resources/conditions'; import Outputs from '../../../../../resources/outputs'; import PartyTracker from '../../../../../resources/party'; import { Responses } from '../../../../../resources/responses'; @@ -14,6 +15,16 @@ type OdderTower = { orange?: string; }; +const headmarkers = { + // vfx/lockon/eff/sph_lockon2_num01_s8p.avfx (through sph_lockon2_num04_s8p) + limitCut1: '0150', + limitCut2: '0151', + limitCut3: '0152', + limitCut4: '0153', +} as const; + +const limitCutIds: readonly string[] = Object.values(headmarkers); + export interface Data extends RaidbossData { combatantData: PluginCombatantState[]; wailingCollect: NetMatches['GainsEffect'][]; @@ -608,6 +619,60 @@ const triggerSet: TriggerSet = { netRegex: { id: '8532', source: 'Gorai the Uncaged' }, response: Responses.tankBuster(), }, + { + id: 'AMR Gorai Impure Purgation First Hit', + type: 'StartsUsing', + netRegex: { id: '852F', source: 'Gorai the Uncaged', capture: false }, + alertText: (_data, _matches, output) => output.text!(), + outputStrings: { + text: { + en: 'Protean', + de: 'Um den Boss verteilen', + fr: 'Changement', + ja: 'ボスを基準として散開', + cn: '和队友分散路径', + ko: '산개', + }, + }, + }, + { + id: 'AMR Gorai Impure Purgation Second Hit', + type: 'StartsUsing', + netRegex: { id: '8531', source: 'Gorai the Uncaged', capture: false }, + suppressSeconds: 5, + response: Responses.moveAway(), + }, + { + id: 'AMR Gorai Humble Hammer', + type: 'StartsUsing', + netRegex: { id: '8525', source: 'Gorai the Uncaged' }, + condition: Conditions.targetIsYou(), + alertText: (_data, _matches, output) => output.text!(), + outputStrings: { + text: { + en: 'Shrink Lone Orb', + }, + }, + }, + { + id: 'AMR Gorai Flintlock', + type: 'Ability', + // Trigger this on Humble Hammer damage + netRegex: { id: '8525', source: 'Gorai the Uncaged', capture: false }, + // This cleaves and should hit the orb and the player. + suppressSeconds: 5, + alertText: (_data, _matches, output) => output.text!(), + outputStrings: { + text: { + en: 'Line Stack', + de: 'Sammeln in einer Linie', + fr: 'Packez-vous en ligne', + ja: '頭割り', + cn: '直线分摊', + ko: '직선 쉐어', + }, + }, + }, { id: 'AMR Gorai Rousing Reincarnation Collect', type: 'GainsEffect', @@ -661,6 +726,35 @@ const triggerSet: TriggerSet = { return towerResponse(data, output); }, }, + { + id: 'AMR Gorai Fighting Spirits', + type: 'StartsUsing', + netRegex: { id: '852B', source: 'Gorai the Uncaged', capture: false }, + // this is also a light aoe but knockback is more important + response: Responses.knockback('info'), + }, + { + id: 'AMR Gorai Fighting Spirits Limit Cut', + type: 'HeadMarker', + netRegex: { id: limitCutIds }, + durationSeconds: 10, // FIXME + alertText: (_data, matches, output) => { + if (matches.id === headmarkers.limitCut1) + return output.num1!(); + if (matches.id === headmarkers.limitCut1) + return output.num2!(); + if (matches.id === headmarkers.limitCut1) + return output.num3!(); + if (matches.id === headmarkers.limitCut1) + return output.num4!(); + }, + outputStrings: { + num1: Outputs.num1, + num2: Outputs.num2, + num3: Outputs.num3, + num4: Outputs.num4, + }, + }, ], timelineReplace: [ { @@ -670,6 +764,8 @@ const triggerSet: TriggerSet = { 'Unnatural Force/Unnatural Ailment': 'Unnatural Force/Ailment', 'Eye of the Thunder Vortex/Vortex of the Thunder Eye': 'Thunder Eye/Vortex', 'Vortex of the Thunder Eye/Eye of the Thunder Vortex': 'Thunder Vortex/Eye', + 'Greater Ball of Fire/Great Ball of Fire': 'Great/Greater Ball of Fire', + 'Great Ball of Fire/Greater Ball of Fire': 'Greater/Great Ball of Fire', }, }, ], diff --git a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.txt b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.txt index ce41a98be58..4f25df27bad 100644 --- a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.txt +++ b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.txt @@ -140,3 +140,105 @@ hideall "--sync--" # 841C Slither fast cast and damage for back conal # 841D --sync-- repositioning ability # 86DF --sync-- auto damage + + +#~~~~~~~~~~~~~~~~~~~# +# GORAI THE UNCAGED # +#~~~~~~~~~~~~~~~~~~~# + +# -p 8534:2014.3 +# -ii 8502 8535 + +2000.0 "--sync--" sync / 00:0839::The Trial Of Wisdom will be sealed off/ window 0,1 +2014.3 "Unenlightenment" sync / 1[56]:[^:]*:Gorai the Uncaged:8534:/ + +2021.7 "--middle--" sync / 1[56]:[^:]*:Gorai the Uncaged:84D3:/ +2028.0 "Seal of Scurrying Sparks" sync / 1[56]:[^:]*:Gorai the Uncaged:8503:/ +2033.3 "Flame and Sulphur" sync / 1[56]:[^:]*:Gorai the Uncaged:8508:/ +2044.6 "Brazen Ballad" sync / 1[56]:[^:]*:Gorai the Uncaged:(8509|850A):/ +2047.7 "Falling Rock" sync / 1[56]:[^:]*:Gorai the Uncaged:(850E|850F):/ +2047.7 "Fire Spread" sync / 1[56]:[^:]*:Gorai the Uncaged:(850B|850C):/ +2048.0 "Greater Ball of Fire" sync / 1[56]:[^:]*:Gorai the Uncaged:8505:/ +2055.6 "Impure Purgation 1" sync / 1[56]:[^:]*:Gorai the Uncaged:8530:/ +2057.6 "Impure Purgation 2" sync / 1[56]:[^:]*:Gorai the Uncaged:8531:/ + +2063.5 "--middle--" sync / 1[56]:[^:]*:Gorai the Uncaged:84D3:/ +2068.7 "Thundercall" sync / 1[56]:[^:]*:Gorai the Uncaged:8520:/ +2079.6 "Humble Hammer" sync / 1[56]:[^:]*:Gorai the Uncaged:8524:/ +2083.2 "Flintlock" sync / 1[56]:[^:]*:Gorai the Uncaged:8526:/ +2083.6 "Shock" sync / 1[56]:[^:]*:Ball of Levin:8521:/ +2094.5 "Torching Torment" sync / 1[56]:[^:]*:Gorai the Uncaged:8532:/ + +2100.9 "--middle--" sync / 1[56]:[^:]*:Gorai the Uncaged:84D3:/ +2108.0 "Rousing Reincarnation" sync / 1[56]:[^:]*:Gorai the Uncaged:8512:/ +2114.3 "Malformed Prayer" sync / 1[56]:[^:]*:Gorai the Uncaged:8518:/ +2126.3 "Pointed Purgation 1" sync / 1[56]:[^:]*:Gorai the Uncaged:851F:/ +2126.4 "Burst 1" sync / 1[56]:[^:]*:Gorai the Uncaged:851B:/ +2132.4 "Pointed Purgation 2" sync / 1[56]:[^:]*:Gorai the Uncaged:851F:/ +2132.4 "Burst 2" sync / 1[56]:[^:]*:Gorai the Uncaged:851B:/ +2138.4 "Pointed Purgation 3" sync / 1[56]:[^:]*:Gorai the Uncaged:851F:/ +2138.4 "Burst 3" sync / 1[56]:[^:]*:Gorai the Uncaged:851B:/ +2144.4 "Pointed Purgation 4" sync / 1[56]:[^:]*:Gorai the Uncaged:851F:/ +2144.4 "Burst 4" sync / 1[56]:[^:]*:Gorai the Uncaged:851B:/ +2155.7 "Unenlightenment" sync / 1[56]:[^:]*:Gorai the Uncaged:8534:/ + +2163.1 "--middle--" sync / 1[56]:[^:]*:Gorai the Uncaged:84D3:/ +2169.2 "Seal of Scurrying Sparks" sync / 1[56]:[^:]*:Gorai the Uncaged:8503:/ +2178.5 "Cloud to Ground" sync / 1[56]:[^:]*:Gorai the Uncaged:8529:/ duration 6.3 +2180.5 "Greater Ball of Fire/Great Ball of Fire" sync / 1[56]:[^:]*:Gorai the Uncaged:(8505|8506):/ +2183.5 "Great Ball of Fire/Greater Ball of Fire" sync / 1[56]:[^:]*:Gorai the Uncaged:(8506|8505):/ + +2193.5 "--middle--" sync / 1[56]:[^:]*:Gorai the Uncaged:84D3:/ +2202.2 "Fighting Spirits" sync / 1[56]:[^:]*:Gorai the Uncaged:852C:/ +2205.5 "Worldly Pursuit 1" sync / 1[56]:[^:]*:Gorai the Uncaged:850D:/ +2208.6 "Worldly Pursuit 2" sync / 1[56]:[^:]*:Gorai the Uncaged:850D:/ +2211.6 "Worldly Pursuit 3" sync / 1[56]:[^:]*:Gorai the Uncaged:850D:/ +2214.6 "Worldly Pursuit 4" sync / 1[56]:[^:]*:Gorai the Uncaged:850D:/ +# ??? + + +# ALL ENCOUNTER ABILITIES +# 84D3 --sync-- repositioning +# 8502 --sync-- auto damage +# 8503 Seal of Scurrying Sparks cast and self-targeted ability +# 8504 Seal of Scurrying Sparks ability on players that gives Live Brazier/Live Candle debuffs +# 8505 Greater Ball of Fire pair stack damage from Live Brazier debuff +# 8506 Great Ball of Fire spread damage from Live Candle debuff +# 8508 Flame and Sulphur cast and self-targeted summoning rocks and lines +# 8509 Brazen Ballad cast and self-targeted purple effect that expands everything +# 850A Brazen Ballad cast and self-targeted blue effect that donutifies everything +# 850B Fire Spread expanded line damage after Brazen Ballad 8509 +# 850C Fire Spread split line damage after Brazen Ballad 850A +# 850D Worldly Pursuit cast and damage from cross jumps +# 850E Falling Rock expanded rock damage after Brazen Ballad 8509 +# 850F Falling Rock donutified rock damage after Brazen Ballad 850A +# 8512 Rousing Reincarnation cast and self-targeted ability +# 8513 Rousing Reincarnation ability on player that gives Odder Incarnation and Rodential Rebirth +# 8518 Malformed Prayer cast and self-targeted ability that starts the looper/tower sequence +# 8519 Burst orange tower damage +# 851B Burst blue tower damage +# 851C Dramatic Burst missed tower damage +# 851D Pointed Purgation cast and self-targeted ability before first 851F protean cleave +# 851E Pointed Purgation self-targeted ability before 2/3/4 851F protean cleaves +# 851F Pointed Purgation damage for protean cleave from tether +# 8520 Thundercall cast and self-targeted ability that summons Ball of Levin +# 8521 Shock cast and self-targeted ability by Ball of Levin +# 8522 Shock small ground circle damage from Ball of Levin hit by Humble Hammer +# 8523 Shock large ground circle damage from Ball of Levin +# 8524 Humble Hammer cast and self-targeted ability +# 8525 Humble Hammer cast and damage headmarker on healer that gives mini debuff +# 8526 Flintlock self-targeted ability +# 8527 Flintlock damage for line stack after Humble Hammer +# 8528 Cloud to Ground cast and self-targeted ability +# 8529 Cloud to Ground cloud exaflare damage initial hit +# 852A Cloud to Ground cloud exaflare damage ongoing hits +# 852B Fighting Spirits cast and self-targeted +# 852C Fighting Spirits cast and damage for knockback +# 852D Worldly Pursuit untargeted ability jump before 850D cross cast and damage +# 852F Impure Purgation cast and self-targeted ability +# 8530 Impure Purgation initial protean damage +# 8531 Impure Purgation cast and damage for follow-up protean +# 8532 Torching Torment cast and ability on tank that give burns debuff +# 8533 Torching Torment cast and damage on tank for tankbuster +# 8534 Unenlightenment cast and self-targeted ability +# 8535 Unenlightenment damage for raidwide bleed