Skip to content

Commit

Permalink
TOP done.
Browse files Browse the repository at this point in the history
  • Loading branch information
awgil committed Jan 7, 2024
1 parent d6e77d1 commit 267c77b
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 47 deletions.
33 changes: 32 additions & 1 deletion BossMod/Modules/Endwalker/Ultimate/TOP/P6CosmoMeteor.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
namespace BossMod.Endwalker.Ultimate.TOP
using System.Linq;

namespace BossMod.Endwalker.Ultimate.TOP
{
class P6CosmoMeteorPuddles : Components.SelfTargetedAOEs
{
Expand Down Expand Up @@ -29,4 +31,33 @@ public override void OnEventCast(BossModule module, Actor caster, ActorCastEvent
++NumCasts;
}
}

class P6CosmoMeteorFlares : Components.UniformStackSpread
{
public P6CosmoMeteorFlares() : base(6, 20, 5, alwaysShowSpreads: true) { } // TODO: verify flare falloff

public override void OnEventIcon(BossModule module, Actor actor, uint iconID)
{
if ((IconID)iconID == IconID.OptimizedMeteor)
{
AddSpread(actor, module.WorldState.CurrentTime.AddSeconds(8.1f));
if (Spreads.Count == 3)
{
// TODO: how is the stack target selected?
var stackTarget = module.Raid.WithoutSlot().FirstOrDefault(p => !IsSpreadTarget(p));
if (stackTarget != null)
AddStack(stackTarget, module.WorldState.CurrentTime.AddSeconds(8.1f));
}
}
}

public override void OnEventCast(BossModule module, Actor caster, ActorCastEvent spell)
{
if ((AID)spell.Action.ID is AID.CosmoMeteorStack or AID.CosmoMeteorFlare)
{
Spreads.Clear();
Stacks.Clear();
}
}
}
}
8 changes: 6 additions & 2 deletions BossMod/Modules/Endwalker/Ultimate/TOP/TOPEnums.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ public enum AID : uint
HWBlueTowerUnsoakedWipe = 31586, // Helper->self, no cast, range 100 circle - 'latent performance defect', wipe if blue tower was not soaked
HWStack = 31574, // Helper->players, no cast, range 5 circle - 'critical synchronization bug', 2-man stack
HWDefamation = 31575, // Helper->players, no cast, range 20 circle - 'critical overflow bug', defamation
HWStackExpireFail = 31576, // Helper->player, no cast, single-target - 'latent synchronization defect', damage-down if stack was not soaked in time
HWDefamationExpireFail = 31577, // Helper->player, no cast, single-target - damage-down if defamation was not soaked in time
HWRedRot = 31578, // Helper->players, no cast, range 5 circle - 'critical underflow bug' - aoe on red rot expiration
HWBlueRot = 31579, // Helper->player, no cast, range 5 circle - 'critical performance bug' - aoe on blue rot expiration
Expand Down Expand Up @@ -233,8 +234,11 @@ public enum AID : uint
CosmoMeteorAOE = 31666, // Helper->self, 4.0s cast, range 10 circle puddle
CosmoMeteorSpread = 32699, // Helper->player, no cast, range 5 circle spread
CosmoMeteorCometEnrage = 31669, // CosmoComet->self, no cast, range 100 circle, wipe if comets not killed in time

//_Ability_LatentSynchronizationDefect = 31576, // Helper->player, no cast, single-target
CosmoMeteorStack = 31667, // Helper->players, no cast, range 6 circle 5-man stack
CosmoMeteorFlare = 31668, // Helper->players, no cast, range 100 circle with ? falloff
CosmoMeteorVisualEnd = 31665, // BossP6->self, no cast, single-target, visual (?)
MagicNumber = 31670, // BossP6->self, 5.0s cast, range 100 circle, raidwide requiring LB
RunMi = 31648, // BossP6->self, 16.0s cast, range 100 circle, enrage
};

public enum SID : uint
Expand Down
Loading

0 comments on commit 267c77b

Please sign in to comment.