Skip to content

Commit

Permalink
Merge pull request #62 from FFXIV-CombatReborn/The-Sil'dihn-Subterrane
Browse files Browse the repository at this point in the history
first pass at rightside routes for Sildihn Sub
  • Loading branch information
LTS-FFXIV authored Apr 28, 2024
2 parents a601ea4 + f621f76 commit c325507
Show file tree
Hide file tree
Showing 9 changed files with 272 additions and 0 deletions.
12 changes: 12 additions & 0 deletions BossMod/Modules/Endwalker/Variant/V01SS/V011Geryon/V011Geryon.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace BossMod.Endwalker.Variant.V01SS.V011Geryon;

[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", PrimaryActorOID = (uint)OID.Boss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 868, NameID = 11442)]
public class V011Geryon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(183, 176.99f), 19.5f))
{
protected override void DrawEnemies(int pcSlot, Actor pc)
{
Arena.Actor(PrimaryActor, ArenaColor.Enemy);
Arena.Actors(Enemies(OID.PowderKegRed), ArenaColor.Enemy);
Arena.Actors(Enemies(OID.PowderKegBlue), ArenaColor.Enemy);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
namespace BossMod.Endwalker.Variant.V01SS.V011Geryon;

public enum OID : uint
{
Helper = 0x233C, // R0.500, x10, 523 type
Boss = 0x398B, // R9.600, x1
RustyWinch = 0x1EB7CD, // R0.500, x1, EventObj type
CisternSwitch = 0x1EB7D2, // R2.000, x0 (spawn during fight), EventObj type
PowderKegRed = 0x39C9, // R1.000, x0 (spawn during fight)
PowderKegBlue = 0x398C, // R1.000, x0 (spawn during fight)
}

public enum AID : uint
{
AutoAttack = 6499, // Boss->player, no cast, single-target
ColossalCharge1 = 29900, // Boss->location, 8.0s cast, width 14 rect charge
ColossalCharge2 = 29901, // Boss->location, 8.0s cast, width 14 rect charge
ColossalLaunch = 29896, // Boss->self, 5.0s cast, range 40 width 40 rect
ColossalSlam = 29904, // Boss->self, 6.0s cast, range 60 60-degree cone
ColossalStrike = 29903, // Boss->player, 5.0s cast, single-target
ColossalSwing = 29905, // Boss->self, 5.0s cast, range 60 180-degree cone
ExplodingCatapult = 29895, // Boss->self, 5.0s cast, range 60 circle
ExplosionAOE = 29908, // PowderKegBlue/PowderKegRed->self, 2.5s cast, range 15 circle
ExplosionDonut = 29909, // PowderKegRed/PowderKegBlue->self, 2.5s cast, range 5-17 donut
GigantomillFirst = 29897, // Boss->self, 8.0s cast, range 72 width 10 cross
GigantomillRest = 29899, // Boss->self, no cast, range 72 width 10 cross
SubterraneanShudder = 29906, // Boss->self, 5.0s cast, range 60 circle raidwide
Unknown1 = 29894, // Boss->location, no cast, single-target
Unknown2 = 31260, // PowderKegRed->self, no cast, single-target
Unknown3 = 29907, // PowderKegBlue->self, no cast, single-target
}

public enum IconID : uint
{
Icon_218 = 218, // player
Icon_157 = 157, // Boss
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
namespace BossMod.Endwalker.Variant.V01SS.V011Geryon;

class ColossalStrike(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.ColossalStrike));

class ColossalCharge1(BossModule module) : Components.ChargeAOEs(module, ActionID.MakeSpell(AID.ColossalCharge1), 7);
class ColossalCharge2(BossModule module) : Components.ChargeAOEs(module, ActionID.MakeSpell(AID.ColossalCharge2), 7);

class ColossalLaunch(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ColossalLaunch), new AOEShapeRect(20, 20));
class ExplosionAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ExplosionAOE), new AOEShapeCircle(15));
class ExplosionDonut(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ExplosionDonut), new AOEShapeDonut(5, 17));

class ColossalSlam(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ColossalSlam), new AOEShapeCone(60, 60.Degrees()));
class ColossalSwing(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ColossalSwing), new AOEShapeCone(60, 180.Degrees()));

class SubterraneanShudder(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.SubterraneanShudder));


class V011GeryonStates : StateMachineBuilder
{
public V011GeryonStates(BossModule module) : base(module)
{
TrivialPhase()
.ActivateOnEnter<SubterraneanShudder>()
.ActivateOnEnter<ColossalStrike>()
.ActivateOnEnter<ColossalCharge1>()
.ActivateOnEnter<ColossalCharge2>()
.ActivateOnEnter<ColossalLaunch>()
.ActivateOnEnter<ColossalSlam>()
.ActivateOnEnter<ColossalSwing>()
.ActivateOnEnter<ExplosionAOE>()
.ActivateOnEnter<ExplosionDonut>()
.ActivateOnEnter<ColossalStrike>();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
namespace BossMod.Endwalker.Variant.V01SS.V014ZelessGah;

[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", PrimaryActorOID = (uint)OID.Boss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 868, NameID = 11394)]
public class V014ZelessGah(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(289, -105), 15, 20));
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
namespace BossMod.Endwalker.Variant.V01SS.V014ZelessGah;
public enum OID : uint
{
Boss = 0x39A9, // R9.000, x1
Helper = 0x233C, // R0.500, x32, 523 type

InfernBrand1 = 0x39AD, // R2.000, x4
InfernBrand2 = 0x39AB, // R2.000, x6
MyrrhIncenseBurner = 0x1EB7CF, // R2.000, x1, EventObj type
ForebodingDoor = 0x1EB7CE, // R0.500, x1, EventObj type
BallOfFire = 0x39AF, // R1.000, x0 (spawn during fight)
}

public enum AID : uint
{
AutoAttack = 6499, // Boss->player, no cast, single-target
Burn = 29839, // BallOfFire->self, 1.5s cast, range 12 circle

CastShadow1 = 29850, // Boss->self, 4.8s cast, single-target
CastShadowFirst = 29851, // Helper->self, 5.5s cast, range 65 ?-degree cone
CastShadowNext = 29853, // Helper->self, 7.5s cast, range 65 ?-degree cone

CrypticPortal1 = 29842, // Boss->self, 5.0s cast, single-target
CrypticPortal2 = 29843, // Boss->self, 8.0s cast, single-target

FiresteelFracture = 29868, // Boss->self/player, 5.0s cast, range 40 ?-degree cone
InfernBrand = 29841, // Boss->self, 4.0s cast, single-target

InfernGale1 = 29858, // Boss->self, 4.0s cast, single-target
InfernGale2 = 29859, // Helper->player, no cast, single-target

InfernWard = 29846, // Boss->self, 4.0s cast, single-target
PureFire1 = 29855, // Boss->self, 3.0s cast, single-target
PureFire2 = 29856, // Helper->location, 3.0s cast, range 6 circle
ShowOfStrength = 29870, // Boss->self, 5.0s cast, range 65 circle

Unknown1 = 29845, // Helper->InfernBrand1/InfernBrand2, no cast, single-target
Unknown2 = 29847, // Helper->self, no cast, single-target
Unknown3 = 29886, // Boss->location, no cast, single-target
}

public enum SID : uint
{
UnknownStatus = 2397, // none->InfernBrand1/InfernBrand2, extra=0x1CA/0x1C1/0x1F3
ForbiddenPassage = 3278, // none->player, extra=0x0
VulnerabilityUp = 1789, // BallOfFire->player, extra=0x1

}

public enum IconID : uint
{
Icon_230 = 230, // player
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
namespace BossMod.Endwalker.Variant.V01SS.V014ZelessGah;

class Burn(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Burn), new AOEShapeCircle(12));
class PureFire2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PureFire2), new AOEShapeCircle(6));


class CastShadowFirst(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.CastShadowFirst), new AOEShapeCone(50, 45.Degrees()));
class CastShadowNext(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.CastShadowNext), new AOEShapeCone(50, 45.Degrees()));

class FiresteelFracture(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.FiresteelFracture), new AOEShapeCone(50, 45.Degrees()));

class InfernGaleKnockback(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.Unknown2), 20, shape: new AOEShapeCircle(80));

class ShowOfStrength(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.ShowOfStrength));

class V014ZelessGahStates : StateMachineBuilder
{
public V014ZelessGahStates(BossModule module) : base(module)
{
TrivialPhase()
.ActivateOnEnter<Burn>()
.ActivateOnEnter<PureFire2>()
.ActivateOnEnter<CastShadowFirst>()
.ActivateOnEnter<CastShadowNext>()
.ActivateOnEnter<FiresteelFracture>()
.ActivateOnEnter<InfernGaleKnockback>()
.ActivateOnEnter<ShowOfStrength>();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
namespace BossMod.Endwalker.Variant.V01SS.V015ThorneKnight;

[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", PrimaryActorOID = (uint)OID.Boss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 868, NameID = 11419)]
public class V015ThorneKnight(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(289, -230), 20, 20, 45.Degrees()));
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
namespace BossMod.Endwalker.Variant.V01SS.V015ThorneKnight;

public enum OID : uint
{
Boss = 0x3917, // R7.200, x1
Helper = 0x233C, // R0.500, x23, 523 type

AmaljaaArtilleryCarriage = 0x394A, // R0.500, x12
BallOfFire = 0x3989, // R1.500, x0 (spawn during fight)
MagickedPuppet = 0x3949, // R0.500, x12
}

public enum AID : uint
{
AutoAttack = 6497, // Boss->player, no cast, single-target

BlazingBeacon1 = 28921, // Helper->self, 8.5s cast, range 50 width 16 rect
BlazingBeacon2 = 28926, // Helper->self, 6.5s cast, range 50 width 16 rect
BlazingBeacon3 = 28928, // Helper->self, 8.5s cast, range 50 width 16 rect

BlisteringBlow = 28906, // Boss->player, 5.0s cast, single-target
Cogwheel = 28907, // Boss->self, 5.0s cast, range 50 circle
Explosion = 28925, // BallOfFire->self, 7.0s cast, range 50 width 6 cross
ForeHonor = 28908, // Boss->self, 6.0s cast, range 50 180-degree cone

MagicCannon = 28919, // MagickedPuppet->self, no cast, range 45 width 6 rect
AmaljaaArtillery = 28920, // AmaljaaArtilleryCarriage->self, no cast, range 45 width 6 rect

SacredFlay1 = 28922, // Helper->self, 8.5s cast, range 50 ?-degree cone
SacredFlay2 = 28927, // Helper->self, 6.5s cast, range 50 ?-degree cone
SacredFlay3 = 28929, // Helper->self, 8.5s cast, range 50 ?-degree cone


BlazeOfGlory = 28916, // Boss->self, 3.0s cast, single-target
SignalFlare1 = 28917, // Boss->self, 5.5s cast, single-target
SignalFlareAOE = 28923, // Helper->self, 7.0s cast, range 10 circle

Slashburn1 = 28911, // Boss->self, 8.5s cast, single-target
Slashburn2 = 28912, // Boss->self, 8.5s cast, single-target
Slashburn3 = 28913, // Boss->self, 8.5s cast, single-target
Slashburn4 = 28930, // Boss->self, 8.5s cast, single-target

SpringToLife1 = 28909, // Boss->self, 7.5s cast, single-target
SpringToLife2 = 28910, // Boss->self, 7.5s cast, single-target

UnknownAbility1 = 28966, // MagickedPuppet->self, no cast, single-target
UnknownAbility2 = 28967, // MagickedPuppet->self, no cast, single-target
}

public enum SID : uint
{
UnknownStatus = 2397, // none->Boss, extra=0x1BF/0x1C0
VulnerabilityUp = 1789, // BallOfFire/AmaljaaArtilleryCarriage->player, extra=0x2/0x4

}

public enum IconID : uint
{
Icon_218 = 218, // player
Icon_363 = 363, // Boss
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
namespace BossMod.Endwalker.Variant.V01SS.V015ThorneKnight;

class BlisteringBlow(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.BlisteringBlow));

class BlazingBeacon1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BlazingBeacon1), new AOEShapeRect(50, 16));
class BlazingBeacon2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BlazingBeacon2), new AOEShapeRect(50, 16));
class BlazingBeacon3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BlazingBeacon3), new AOEShapeRect(50, 16));

class SignalFlareAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SignalFlareAOE), new AOEShapeCircle(10));

class Explosion(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Explosion), new AOEShapeCross(50, 6));

class SacredFlay1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SacredFlay1), new AOEShapeCone(50, 50.Degrees()));
class SacredFlay2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SacredFlay2), new AOEShapeCone(50, 50.Degrees()));
class SacredFlay3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SacredFlay3), new AOEShapeCone(50, 50.Degrees()));

class ForeHonor(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ForeHonor), new AOEShapeCone(50, 180.Degrees()));

class Cogwheel(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Cogwheel));

class V015ThorneKnightStates : StateMachineBuilder
{
public V015ThorneKnightStates(BossModule module) : base(module)
{
TrivialPhase()
.ActivateOnEnter<BlisteringBlow>()
.ActivateOnEnter<BlazingBeacon1>()
.ActivateOnEnter<BlazingBeacon2>()
.ActivateOnEnter<BlazingBeacon3>()
.ActivateOnEnter<SignalFlareAOE>()
.ActivateOnEnter<Explosion>()
.ActivateOnEnter<SacredFlay1>()
.ActivateOnEnter<SacredFlay2>()
.ActivateOnEnter<SacredFlay3>()
.ActivateOnEnter<ForeHonor>()
.ActivateOnEnter<Cogwheel>();
}
}

0 comments on commit c325507

Please sign in to comment.