Skip to content

Commit

Permalink
Merge pull request #34 from FFXIV-CombatReborn/slave_thaleia
Browse files Browse the repository at this point in the history
Thaleia - Eulogia
  • Loading branch information
CarnifexOptimus authored Apr 6, 2024
2 parents 3023f74 + 673766c commit 1f8eb36
Show file tree
Hide file tree
Showing 29 changed files with 529 additions and 397 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public A30TrashPack1States(BossModule module) : base(module)
}
}

[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 12478)]
[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus, LTS", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 12478)]
public class A30TrashPack1 : BossModule
{
public A30TrashPack1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-800, -800), 20)) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class RightBank2 : Components.SelfTargetedAOEs
public RightBank2() : base(ActionID.MakeSpell(AID.RightBank2), new AOEShapeCone(60, 90.Degrees())) { }
}

[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11298)]
[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus, LTS", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11298)]
public class A31Thaliak : BossModule
{
public A31Thaliak(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-945, 945), 24)) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public enum AID : uint
KatarraktesAOE = 35034, // ThaliakHelper->self, 5.7s cast, range 70 circle

Hieroglyphika = 35023, // Thaliak->self, 5.0s cast, single-target
HieroglyphiRect = 35024, // ThaliakHelper->self, 3.0s cast, range 12 width 12 rect
HieroglyphikaRect = 35024, // ThaliakHelper->self, 3.0s cast, range 12 width 12 rect

Thlipsis = 35032, // Thaliak->self, 4.0s cast, single-target, stack marker
ThlipsisStack = 35033, // ThaliakHelper->players, 6.0s cast, range 6 circle
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public override void OnEventIcon(BossModule module, Actor actor, uint iconID)

public override void OnEventCast(BossModule module, Actor caster, ActorCastEvent spell)
{
if (_aoes.Count > 0 && (AID)spell.Action.ID is AID.HieroglyphiRect)
if (_aoes.Count > 0 && (AID)spell.Action.ID is AID.HieroglyphikaRect)
_aoes.Clear();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class Stormwinds : Components.SpreadFromCastTargets
public Stormwinds() : base(ActionID.MakeSpell(AID.StormwindsSpread), 6) { }
}

[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11299)]
[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus, LTS", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11299)]
public class A32Llymlaen : BossModule
{
public A32Llymlaen(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, -900), 19, 29)) { }
Expand Down
29 changes: 28 additions & 1 deletion BossMod/Modules/Endwalker/Alliance/A33Oschon/A33Oschon.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
namespace BossMod.Endwalker.Alliance.A33Oschon;

class DownhillP1 : Components.LocationTargetedAOEs
{
public DownhillP1() : base(ActionID.MakeSpell(AID.Downhill), 6) { }
}

class SoaringMinuet1 : Components.SelfTargetedAOEs
{
public SoaringMinuet1() : base(ActionID.MakeSpell(AID.SoaringMinuet1), new AOEShapeCone(65, 135.Degrees())) { }
}

class SoaringMinuet2 : Components.SelfTargetedAOEs
{
public SoaringMinuet2() : base(ActionID.MakeSpell(AID.SoaringMinuet2), new AOEShapeCone(65, 135.Degrees())) { }
}

class SuddenDownpour : Components.RaidwideCast
{
public SuddenDownpour() : base(ActionID.MakeSpell(AID.SuddenDownpour2)) { }
Expand All @@ -23,11 +38,23 @@ class TrekShot2 : Components.SelfTargetedAOEs
class TheArrow : Components.BaitAwayCast
{
public TheArrow() : base(ActionID.MakeSpell(AID.TheArrow), new AOEShapeCircle(6), true) { }

public override void AddGlobalHints(BossModule module, GlobalHints hints)
{
if (CurrentBaits.Count > 0)
hints.Add("Tankbuster cleave");
}
}

class TheArrowP2 : Components.BaitAwayCast
{
public TheArrowP2() : base(ActionID.MakeSpell(AID.TheArrowP2), new AOEShapeCircle(10), true) { }

public override void AddGlobalHints(BossModule module, GlobalHints hints)
{
if (CurrentBaits.Count > 0)
hints.Add("Tankbuster cleave");
}
}

class PitonPull : Components.LocationTargetedAOEs
Expand All @@ -50,7 +77,7 @@ class DownhillBig : Components.LocationTargetedAOEs
public DownhillBig() : base(ActionID.MakeSpell(AID.DownhillBig), 8) { }
}

[ModuleInfo(PrimaryActorOID = (uint)OID.OschonP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11300)]
[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus, LTS", PrimaryActorOID = (uint)OID.OschonP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11300)]
public class A33Oschon : BossModule
{
private Actor? _oschonP1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public enum AID : uint
ClimbingShot = 35217, // Oschon->self, 5.0s cast, range 80 circle, knockback 20, dir away from source
ClimbingShot2 = 35216, // Oschon->self, 5.0s cast, range 80 circle, knockback 20, dir away from source
ClimbingShot3 = 35219, // Oschon->self, 5,0s cast, range 80 circle, knockback 20, dir away from source
ClimbingShot4 = 35218, // Boss->self, 5,0s cast, range 80 circle, knockback 20, dir away from source
ClimbingShot4 = 35218, // Oschon->self, 5,0s cast, range 80 circle, knockback 20, dir away from source

SoaringMinuet1 = 36110, // Oschon->self, 5.0s cast, range 65 270-degree cone
SoaringMinuet2 = 35220, // Oschon->self, 5.0s cast, range 65 270-degree cone
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@ public A33OschonStates(A33Oschon module) : base(module)
.ActivateOnEnter<SuddenDownpour>()
.ActivateOnEnter<DownhillP1>()
.ActivateOnEnter<ClimbingShot>()
.ActivateOnEnter<ClimbingShot2>()
.ActivateOnEnter<ClimbingShot3>()
.ActivateOnEnter<ClimbingShot4>()
.ActivateOnEnter<SoaringMinuet1>()
.ActivateOnEnter<SoaringMinuet2>()
.ActivateOnEnter<FlintedFoehnP1>()
Expand Down
22 changes: 22 additions & 0 deletions BossMod/Modules/Endwalker/Alliance/A33Oschon/OschonClimbingShot.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
namespace BossMod.Endwalker.Alliance.A33Oschon;

class ClimbingShot : Components.Knockback
{
private Source? _knockback;

public override IEnumerable<Source> Sources(BossModule module, int slot, Actor actor) => Utils.ZeroOrOne(_knockback);

public override void OnCastStarted(BossModule module, Actor caster, ActorCastInfo spell)
{
if ((AID)spell.Action.ID is AID.ClimbingShot or AID.ClimbingShot2 or AID.ClimbingShot3 or AID.ClimbingShot4)
_knockback = new(module.PrimaryActor.Position, 20, spell.NPCFinishAt);
}

public override void OnCastFinished(BossModule module, Actor caster, ActorCastInfo spell)
{
if ((AID)spell.Action.ID is AID.ClimbingShot or AID.ClimbingShot2 or AID.ClimbingShot3 or AID.ClimbingShot4)
_knockback = null;
}

public override bool DestinationUnsafe(BossModule module, int slot, Actor actor, WPos pos) => module.FindComponent<DownhillP1>()?.ActiveAOEs(module, slot, actor).Any(z => z.Shape.Check(pos, z.Origin, z.Rotation)) ?? false || !module.Bounds.Contains(pos);
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ public override void OnCastStarted(BossModule module, Actor caster, ActorCastInf
if ((AID)spell.Action.ID == AID.SwingingDrawCCW)
{
if (caster.Position.AlmostEqual(new(10, 760), 1) && caster.Rotation.AlmostEqual(45.Degrees(), maxError))
_aoes.Add(new(_shape, new(0, 775), 180.Degrees(), _activation));
if (caster.Position.AlmostEqual(new(-10, 760), 1) && caster.Rotation.AlmostEqual(-45.Degrees(), maxError))
_aoes.Add(new(_shape, new(25, 750), -90.Degrees(), _activation));
if (caster.Position.AlmostEqual(new(-10, 760), 1) && caster.Rotation.AlmostEqual(-45.Degrees(), maxError))
_aoes.Add(new(_shape, new(0, 775), 180.Degrees(), _activation));
if (caster.Position.AlmostEqual(new(10, 740), 1) && caster.Rotation.AlmostEqual(135.Degrees(), maxError))
_aoes.Add(new(_shape, new(0, 725), 0.Degrees(), _activation));
if (caster.Position.AlmostEqual(new(-10, 740), 1) && caster.Rotation.AlmostEqual(-135.Degrees(), maxError))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public A34TrashPack2States(BossModule module) : base(module)
}
}

[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 12481)]
[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 12481)]
public class A34TrashPack2 : BossModule
{
public A34TrashPack2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(800, 770), 15, 25)) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ public A35TrashPack2States(BossModule module) : base(module)
}
}

[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 12481)]
[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 12481)]
public class A35TrashPack2 : BossModule
{
public A35TrashPack2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(800, 910), 19)) { }
public A35TrashPack2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(800, 910), 20)) { }

protected override void DrawEnemies(int pcSlot, Actor pc)
{
Expand Down
59 changes: 0 additions & 59 deletions BossMod/Modules/Endwalker/Alliance/A36Eulogia/A35Eulogia.cs

This file was deleted.

29 changes: 0 additions & 29 deletions BossMod/Modules/Endwalker/Alliance/A36Eulogia/A35EulogiaStates.cs

This file was deleted.

53 changes: 53 additions & 0 deletions BossMod/Modules/Endwalker/Alliance/A36Eulogia/A36Eulogia.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
namespace BossMod.Endwalker.Alliance.A36Eulogia;

class EudaimonEorzea : Components.RaidwideCast
{
public EudaimonEorzea() : base(ActionID.MakeSpell(AID.EudaimonEorzea2), "Raidwide x12") { }
}

class TheWhorl : Components.RaidwideCast
{
public TheWhorl() : base(ActionID.MakeSpell(AID.TheWhorl)) { }
}

class DawnOfTime : Components.RaidwideCast
{
public DawnOfTime() : base(ActionID.MakeSpell(AID.DawnOfTime)) { }
}

class SoaringMinuet : Components.SelfTargetedAOEs
{
public SoaringMinuet() : base(ActionID.MakeSpell(AID.SoaringMinuet), new AOEShapeCone(40, 135.Degrees())) { }
}

class HandOfTheDestroyerJudgment : Components.SelfTargetedAOEs
{
public HandOfTheDestroyerJudgment() : base(ActionID.MakeSpell(AID.HandOfTheDestroyerJudgmentAOE), new AOEShapeRect(90, 20)) { }
}

class HandOfTheDestroyerWrath : Components.SelfTargetedAOEs
{
public HandOfTheDestroyerWrath() : base(ActionID.MakeSpell(AID.HandOfTheDestroyerWrathAOE), new AOEShapeRect(90, 20)) { }
}

class Sunbeam : Components.BaitAwayCast
{
public Sunbeam() : base(ActionID.MakeSpell(AID.SunbeamTankBuster), new AOEShapeCircle(6), true) { }

public override void AddGlobalHints(BossModule module, GlobalHints hints)
{
if (CurrentBaits.Count > 0)
hints.Add("Tankbuster cleave");
}
}

class DestructiveBoltStack : Components.StackWithCastTargets
{
public DestructiveBoltStack() : base(ActionID.MakeSpell(AID.DestructiveBoltStack), 6) { }
}

[ModuleInfo(BossModuleInfo.Maturity.Contributed, Contributors = "Malediktus, LTS", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, NameID = 11301)]
public class A36Eulogia : BossModule
{
public A36Eulogia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(945, -945), 35)) { }
}
Loading

0 comments on commit 1f8eb36

Please sign in to comment.