OverlayPlugin / cactbot

FFXIV TypeScript Raiding Overlay
Apache License 2.0
97 stars 34 forks source link

raidboss: call tower or spread during beat 2 #343

Closed jacob-keller closed 2 months ago

jacob-keller commented 2 months ago

During Beat 2, players either start with zero or one heart. A lot of mechanics happen in sequence, with players getting different mechanics depending on how many hearts they started with.

First, players who start with 0 hearts get either:

1) stack markers which will grant 4 hearts spread out over everyone in the stack when it expires.

OR

2) repeatably targetted with puddle aoes they need to bait and drop.

Following this, players with 1 heart either:

1) get a spread marker which they need to move away from other players

OR

2) must grab a tower that spawns at the same time as the spread marker.

The spread markers appear later, around the end of when the baited puddles and stack markers finish. Typically players with 1 heart stack in the same spot away from the puddle/stack markers.

Currently there is a trigger that fires for everyone as soon as the spread markers appear. This is not that useful since other players finishing the stack and puddle baits do not need to spread, and players who are supposed to grab towers do not get a reminder.

Instead of using a simple canned spread response, add a collector trigger to collect the matches for the spread markers. In the main trigger, use the collected data to determine whether to call spread or towers. If the player was targeted by a spread marker, they need to spread out and avoid the towers. Otherwise, players who started beat 2 with one heart need to soak the towers.

valarnin commented 2 months ago

During Beat 2, two of the players who started with zero hearts will be marked by spread indicators which drop a puddle AOE. The two players who get this marker need to spread away, while the remaining two players who started with zero hearts need to grab towers.

This description is incorrect.

0-heart players either get the repeated baited puddles, or the 4-heart stack markers.

1-heart players either get the spread marker, or have to soak towers.

I think the code as written is probably correct but can't test right now, just pointing out that the description is incorrect.

jacob-keller commented 2 months ago

During Beat 2, two of the players who started with zero hearts will be marked by spread indicators which drop a puddle AOE. The two players who get this marker need to spread away, while the remaining two players who started with zero hearts need to grab towers.

This description is incorrect.

0-heart players either get the repeated baited puddles, or the 4-heart stack markers.

1-heart players either get the spread marker, or have to soak towers.

I think the code as written is probably correct but can't test right now, just pointing out that the description is incorrect.

Yea, I realized i had it backwards when writing the code. Will fix.

jacob-keller commented 2 months ago

I think this can be improved to also delay calling when to get the tower until after the spread markers go off, since you can't be too close to anyone who's spreading. EDIT: actually I am mixing up mechanics here.. That's the towers/spread during beat3.

jacob-keller commented 2 months ago

I updated this PR to use a separate collect trigger as requested, and updated the callout to "Spread -- Avoid Towers". I thought about trying to add a response or generic output here, but I ended up not doing that. I did notice that a bunch of places could benefit from an avoidTowers output, but they likely didn't want "Spread -- Avoid Towers" like this mechanic.