Skip to content

Commit

Permalink
initial Gorai timeline/oopsy
Browse files Browse the repository at this point in the history
  • Loading branch information
quisquous committed Jul 23, 2023
1 parent c36d77a commit 6f6933a
Show file tree
Hide file tree
Showing 3 changed files with 229 additions and 5 deletions.
36 changes: 31 additions & 5 deletions ui/oopsyraidsy/data/06-ew/dungeon/another_mount_rokkon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,24 @@ 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<Data> = {
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
'AMR Shishu Fuko Scythe Tail': '865A', // centered circle
'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
Expand All @@ -47,18 +48,43 @@ const triggerSet: OopsyTriggerSet<Data> = {
'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: [
{
Expand Down
96 changes: 96 additions & 0 deletions ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import Conditions from '../../../../../resources/conditions';
import Outputs from '../../../../../resources/outputs';
import PartyTracker from '../../../../../resources/party';
import { Responses } from '../../../../../resources/responses';
Expand All @@ -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'][];
Expand Down Expand Up @@ -608,6 +619,60 @@ const triggerSet: TriggerSet<Data> = {
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',
Expand Down Expand Up @@ -661,6 +726,35 @@ const triggerSet: TriggerSet<Data> = {
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: [
{
Expand All @@ -670,6 +764,8 @@ const triggerSet: TriggerSet<Data> = {
'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',
},
},
],
Expand Down
102 changes: 102 additions & 0 deletions ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 6f6933a

Please sign in to comment.