Skip to content

Commit

Permalink
Nechuciho fix for 7.1.
Browse files Browse the repository at this point in the history
  • Loading branch information
awgil committed Nov 26, 2024
1 parent 5524fac commit b4d706e
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 38 deletions.
73 changes: 41 additions & 32 deletions BossMod/Modules/Dawntrail/Hunt/RankA/Nechuciho.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,27 @@ public enum AID : uint
{
AutoAttack = 872, // Boss->player, no cast, single-target
WordOfTheWood = 39872, // Boss->self, 5.0s cast, range 30 180-degree cone
WhisperOfTheWood1 = 39493, // Boss->self, 3.0s cast, single-target, visual (cleaves: forward->right->left->back)
WhisperOfTheWood2 = 39494, // Boss->self, 3.0s cast, single-target, visual (cleaves: left->forward->back->right)
WhisperOfTheWood3 = 39495, // Boss->self, 3.0s cast, single-target, visual (cleaves: back->left->right->forward)
WhisperOfTheWoodFRLB = 39493, // Boss->self, 3.0s cast, single-target, visual (cleaves: forward->right->left->back)
WhisperOfTheWoodLFBR = 39494, // Boss->self, 3.0s cast, single-target, visual (cleaves: left->forward->back->right)
WhisperOfTheWoodBLRF = 39495, // Boss->self, 3.0s cast, single-target, visual (cleaves: back->left->right->forward)
WordOfTheWoodMulti = 39496, // Boss->self, 7.0s cast, single-target, visual (first cleave)
WordOfTheWoodAOEForward = 39785, // Boss->self, no cast, range 30 180-degree cone
WordOfTheWoodAOERearward = 39786, // Boss->self, no cast, range 30 180-degree cone
WordOfTheWoodAOELeftward = 39787, // Boss->self, no cast, range 30 180-degree cone
WordOfTheWoodAOERightward = 39788, // Boss->self, no cast, range 30 180-degree cone
WordOfTheWoodAOEOldF = 39785, // Boss->self, no cast, range 30 180-degree cone, before 7.1
WordOfTheWoodAOEOldB = 39786, // Boss->self, no cast, range 30 180-degree cone, before 7.1
WordOfTheWoodAOEOldL = 39787, // Boss->self, no cast, range 30 180-degree cone, before 7.1
WordOfTheWoodAOEOldR = 39788, // Boss->self, no cast, range 30 180-degree cone, before 7.1
WordOfTheWoodAOEMidF = 42168, // Boss->self, no cast, range 30 180-degree cone, casts 1-3
WordOfTheWoodAOEMidB = 42169, // Boss->self, no cast, range 30 180-degree cone, casts 1-3
WordOfTheWoodAOEMidL = 42170, // Boss->self, no cast, range 30 180-degree cone, casts 1-3
WordOfTheWoodAOEMidR = 42171, // Boss->self, no cast, range 30 180-degree cone, casts 1-3
WordOfTheWoodAOEEndF = 42168, // Boss->self, no cast, range 30 180-degree cone, cast 4
WordOfTheWoodAOEEndB = 42169, // Boss->self, no cast, range 30 180-degree cone, cast 4
WordOfTheWoodAOEEndL = 42170, // Boss->self, no cast, range 30 180-degree cone, cast 4
WordOfTheWoodAOEEndR = 42171, // Boss->self, no cast, range 30 180-degree cone, cast 4

Level5DeathSentence = 39492, // Boss->self, 5.0s cast, range 30 circle, interruptible spell applying dooms
SentinelRoar = 39491, // Boss->self, 5.0s cast, range 40 circle, raidwide
}

public enum SID : uint
{
ForwardOmen = 4153, // Boss->Boss, extra=0x0
RearwardOmen = 4154, // Boss->Boss, extra=0x0
LeftwardOmen = 4155, // Boss->Boss, extra=0x0
RightwardOmen = 4156, // Boss->Boss, extra=0x0
}

class WordOfTheWood(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.WordOfTheWood), new AOEShapeCone(30, 90.Degrees()));

class WhisperOfTheWood(BossModule module) : Components.GenericAOEs(module)
Expand All @@ -46,32 +47,30 @@ public override IEnumerable<AOEInstance> ActiveAOEs(int slot, Actor actor)
yield return new(_shape, Module.PrimaryActor.Position, _directions[0], _nextActivation, ArenaColor.Danger);
}

public override void OnStatusGain(Actor actor, ActorStatus status)
public override void OnCastStarted(Actor caster, ActorCastInfo spell)
{
Angle? dir = (SID)status.ID switch
{
SID.ForwardOmen => 0.Degrees(),
SID.RearwardOmen => 180.Degrees(),
SID.LeftwardOmen => 90.Degrees(),
SID.RightwardOmen => -90.Degrees(),
_ => null
};
if (dir != null)
switch ((AID)spell.Action.ID)
{
var prevDir = _directions.Count > 0 ? _directions[^1] : actor.Rotation;
_directions.Add(prevDir + dir.Value);
_nextActivation = WorldState.FutureTime(8.8f);
case AID.WhisperOfTheWoodFRLB:
StartSequence(Module.CastFinishAt(spell, 9.6f), spell.Rotation, 0.Degrees(), -90.Degrees(), 90.Degrees(), 180.Degrees());
break;
case AID.WhisperOfTheWoodLFBR:
StartSequence(Module.CastFinishAt(spell, 9.6f), spell.Rotation, 90.Degrees(), 0.Degrees(), 180.Degrees(), -90.Degrees());
break;
case AID.WhisperOfTheWoodBLRF:
StartSequence(Module.CastFinishAt(spell, 9.6f), spell.Rotation, 180.Degrees(), 90.Degrees(), -90.Degrees(), 0.Degrees());
break;
}
}

public override void OnEventCast(Actor caster, ActorCastEvent spell)
{
Angle? dir = (AID)spell.Action.ID switch
{
AID.WordOfTheWoodAOEForward => 0.Degrees(),
AID.WordOfTheWoodAOERearward => 180.Degrees(),
AID.WordOfTheWoodAOELeftward => 90.Degrees(),
AID.WordOfTheWoodAOERightward => -90.Degrees(),
AID.WordOfTheWoodAOEOldF or AID.WordOfTheWoodAOEMidF or AID.WordOfTheWoodAOEEndF => 0.Degrees(),
AID.WordOfTheWoodAOEOldB or AID.WordOfTheWoodAOEMidB or AID.WordOfTheWoodAOEEndB => 180.Degrees(),
AID.WordOfTheWoodAOEOldL or AID.WordOfTheWoodAOEMidL or AID.WordOfTheWoodAOEEndL => 90.Degrees(),
AID.WordOfTheWoodAOEOldR or AID.WordOfTheWoodAOEMidR or AID.WordOfTheWoodAOEEndR => -90.Degrees(),
_ => null
};
if (dir == null)
Expand All @@ -88,6 +87,16 @@ public override void OnEventCast(Actor caster, ActorCastEvent spell)
_directions.RemoveAt(0);
_nextActivation = WorldState.FutureTime(2);
}

private void StartSequence(DateTime activation, Angle starting, params Angle[] angles)
{
_nextActivation = activation;
foreach (var a in angles)
{
starting += a;
_directions.Add(starting);
}
}
}

class Level5DeathSentence(BossModule module) : Components.CastInterruptHint(module, ActionID.MakeSpell(AID.Level5DeathSentence));
Expand Down
5 changes: 0 additions & 5 deletions BossMod/Modules/Dawntrail/Hunt/RankS/Neyoozoteel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,6 @@ public enum AID : uint

public enum SID : uint
{
RearwardOmen = 4154, // Boss->Boss, extra=0x0
LeftwardOmen1 = 4155, // Boss->Boss, extra=0x0
RightwardOmen1 = 4156, // Boss->Boss, extra=0x0
LeftwardOmen2 = 4151, // Boss->Boss, extra=0x0
RightwardOmen2 = 4152, // Boss->Boss, extra=0x0
DelayedNeurotoxicity = 3940, // Boss->player, extra=0x0
DownForTheCount = 3908, // Boss->player, extra=0xEC7
Heavy = 2391, // Boss->player, extra=0x3C
Expand Down
1 change: 0 additions & 1 deletion TODO
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
immediate plans
- nechuciho - more omen statuses
- freeze
- rotation modules in preset/plan to be ordered (incl ui)
- get rid of legacyxxx
Expand Down

0 comments on commit b4d706e

Please sign in to comment.