From 035f7b3a5ca4826c50e608d8b898b1844a749bc7 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 05:44:53 -0500 Subject: [PATCH 1/9] EW dungeons --- BossMod/BossMod.csproj | 18 ++++ .../Dungeon/D01TowerOfZot/D011Minduruva.cs | 9 +- .../Dungeon/D01TowerOfZot/D012Sanduruva.cs | 6 ++ .../Dungeon/D01TowerOfZot/D013MagusSisters.cs | 8 ++ .../Dungeon/D02TowerOfBabil/D021Barnabas.cs | 61 +++++++++++++ .../Dungeon/D02TowerOfBabil/D022Lugae.cs | 42 +++++++++ .../Dungeon/D02TowerOfBabil/D023Anima.cs | 86 +++++++++++++++++++ .../Dungeon/D03Vanaspati/D031Snatcher.cs | 43 ++++++++++ .../Dungeon/D03Vanaspati/D032Wrecker.cs | 50 +++++++++++ .../Dungeon/D03Vanaspati/D033Svarbhanu.cs | 51 +++++++++++ .../Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs | 40 +++++++++ .../Endwalker/Dungeon/D04Ktisis/D042Ladon.cs | 53 ++++++++++++ .../Endwalker/Dungeon/D04Ktisis/D043Hermes.cs | 67 +++++++++++++++ .../Dungeon/D05Aitiascope/D051Livia.cs | 46 ++++++++++ .../Dungeon/D05Aitiascope/D052Rhitahtyn.cs | 52 +++++++++++ .../Dungeon/D05Aitiascope/D053Amon.cs | 45 ++++++++++ .../Dungeon/D06DeadEnds/D061Grebuloff.cs | 54 ++++++++++++ .../Dungeon/D06DeadEnds/D062Peacekeeper.cs | 56 ++++++++++++ .../Endwalker/Dungeon/D06DeadEnds/D063Rala.cs | 54 ++++++++++++ .../Endwalker/Dungeon/D07Smileton/D071Face.cs | 58 +++++++++++++ .../Dungeon/D07Smileton/D072Frameworker.cs | 45 ++++++++++ .../Dungeon/D07Smileton/D073BigCheese.cs | 51 +++++++++++ .../Dungeon/D08Stigma/D081ProtoOmega.cs | 54 ++++++++++++ .../Dungeon/D08Stigma/D082ArchLambda.cs | 46 ++++++++++ .../Dungeon/D08Stigma/D083Stigma4.cs | 51 +++++++++++ .../Dungeon/D09Alzadaal/D091Ambujam.cs | 17 ++++ .../Dungeon/D09Alzadaal/D092ArmoredChariot.cs | 17 ++++ .../Dungeon/D09Alzadaal/D093Kapikulu.cs | 17 ++++ .../Dungeon/D10FellCourt/D101EvilDreamers.cs | 17 ++++ .../Dungeon/D10FellCourt/D102Beatrice.cs | 17 ++++ .../Dungeon/D10FellCourt/D103Scarmiglione.cs | 17 ++++ .../A31DeathgazeHollowEnums.cs | 33 ++----- .../A32FerdiadHollow/A32FerdiadHollowEnums.cs | 40 ++++----- .../A33ProtoUltima/A33ProtoUltimaEnums.cs | 40 +++++++-- .../Alliance/A34Scathach/A34ScathachEnums.cs | 56 ++++++------ .../Alliance/A35Diabolos/A35DiabolosEnums.cs | 65 +++++++++++--- 36 files changed, 1391 insertions(+), 91 deletions(-) create mode 100644 BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs create mode 100644 BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs diff --git a/BossMod/BossMod.csproj b/BossMod/BossMod.csproj index 1472c9ea93..f70bcf8b98 100644 --- a/BossMod/BossMod.csproj +++ b/BossMod/BossMod.csproj @@ -20,6 +20,15 @@ true + + + + + + + + + @@ -30,6 +39,15 @@ + + + + + + + + + diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs index 0425743644..adaafc5a76 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs @@ -20,7 +20,7 @@ public enum AID : uint ManusyaBioIII1 = 25236, // Boss->self, 4,0s cast, single-target ManusyaBioIII2 = 25240, // Helper->self, 4,0s cast, range 40+R 180-degree cone TransmuteFireIII = 25242, // Boss->self, 2,7s cast, single-target - Unknown = 25243, // Helper->Boss, 3,6s cast, single-target + Unknown = 25243, // Helper->Boss, 3,6s cast, single-target// Indicator, splatoon uses this for some reason to show aoes way sooner ManusyaFire2 = 25699, // Boss->player, 2,0s cast, single-target Dhrupad = 25244, // Boss->self, 4,0s cast, single-target, after this each of the non-tank players get hit once by a single-target spell (ManusyaBlizzard, ManusyaFire1, ManusyaThunder) ManusyaFire1 = 25245, // Boss->player, no cast, single-target @@ -28,6 +28,7 @@ public enum AID : uint ManusyaThunder = 25247, // Boss->player, no cast, single-target TransmuteBlizzardIII = 25371, // Boss->self, 2,7s cast, single-target TransmuteThunderIII = 25372, // Boss->self, 2,7s cast, single-target + TransmuteBioIII = 25373, // Boss->self, 2.7s cast, single-target } public enum SID : uint @@ -42,6 +43,12 @@ public enum SID : uint FireAlchemy = 2751, // Boss->Boss, extra=0x0 } +public enum IconID : uint +{ + Icon_198 = 198, // player +} + + class ManusyaBio(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.ManusyaBio), "Tankbuster + cleansable poison"); class Poison(BossModule module) : BossComponent(module) diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs index 3ef1cb9b71..8752d3059e 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs @@ -30,6 +30,12 @@ public enum SID : uint WhoIsShe2 = 2654, // none->BerserkerSphere, extra=0x1A8 } +public enum IconID : uint +{ + Icon_198 = 198, // player +} + + class IsitvaSiddhi(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.IsitvaSiddhi)); class SphereShatter(BossModule module) : Components.GenericAOEs(module) diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs index 19bb96cb4d..3e394f8e9c 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs @@ -57,6 +57,14 @@ public enum SID : uint Electrocution = 2086, // Minduruva->player, extra=0x0 } +public enum IconID : uint +{ + Icon_198 = 198, // player + Icon_139 = 139, // player + Icon_62 = 62, // player +} + + class Dhrupad(BossModule module) : BossComponent(module) { private int NumCasts; diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs new file mode 100644 index 0000000000..1b07a4b746 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs @@ -0,0 +1,61 @@ +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D021Barnabas; + +public enum OID : uint +{ + Boss = 0x33F7, + Helper = 0x233C, + Thunderball = 0x33F8, // R1.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + DynamicPound = 25157, // Boss->self, 7.0s cast, range 40 width 6 rect + DynamicScrapline = 25158, // Boss->self, 7.0s cast, range 8 circle + ElectromagneticRelease1 = 25327, // Helper->self, 9.5s cast, range 40 width 6 rect + ElectromagneticRelease2 = 25329, // Helper->self, 9.5s cast, range 8 circle + GroundAndPound1 = 25159, // Boss->self, 3.5s cast, range 40 width 6 rect + GroundAndPound2 = 25322, // Boss->self, 3.5s cast, range 40 width 6 rect + RollingScrapline = 25323, // Boss->self, 3.0s cast, range 8 circle + Shock = 25330, // Thunderball->self, 3.0s cast, range 8 circle + ShockingForce = 25324, // Boss->players, 5.0s cast, range 6 circle + Thundercall = 25325, // Boss->self, 3.0s cast, single-target + Unknown1 = 24693, // Helper->self, no cast, range 50 width 50 rect + Unknown2 = 24694, // Helper->self, no cast, range 50 width 50 rect + Unknown3 = 25053, // Helper->self, no cast, range 50 circle + Unknown4 = 25054, // Helper->self, no cast, range 50 circle +} + +public enum SID : uint +{ + Eukrasia = 2606, // none->player, extra=0x0 + VulnerabilityUp = 1789, // Boss->33F9/player, extra=0x1 + Stun = 149, // Boss->33F9, extra=0x0 + Stun2 = 2953, // none->player, extra=0x0 + Electrocution = 2086, // none->player, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_163 = 163, // player + Icon_162 = 162, // player + Icon_290 = 290, // Boss + Icon_62 = 62, // player +} + +public enum TetherID : uint +{ + Tether_28 = 28, // player->Boss +} + +class D021BarnabasStates : StateMachineBuilder +{ + public D021BarnabasStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 785, NameID = 10279)] +public class D021Barnabas(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-300, 71), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs new file mode 100644 index 0000000000..c17de9a49b --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs @@ -0,0 +1,42 @@ +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D022Lugae; + +public enum OID : uint +{ + Boss = 0x33FA, + Helper = 0x233C, + MagitekChakram = 0x33FB, // R3.000, x0 (spawn during fight) + MagitekExplosive = 0x33FC, // R2.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + Downpour = 25333, // Boss->self, 5.0s cast, single-target + Explosion = 25337, // MagitekExplosive->self, 7.0s cast, range 40 width 8 cross + MagitekChakram = 25331, // Boss->self, 5.0s cast, single-target + MagitekExplosive = 25336, // Boss->self, 5.0s cast, single-target + MagitekMissile = 25334, // Boss->self, 3.0s cast, single-target + MagitekRay = 25340, // Boss->self, 3.0s cast, range 50 width 6 rect + MightyBlow = 25332, // MagitekChakram->self, 7.0s cast, range 40 width 8 rect + SurfaceMissile = 25335, // Helper->location, 3.5s cast, range 6 circle + ThermalSuppression = 25338, // Boss->self, 5.0s cast, range 60 circle +} + +public enum SID : uint +{ + Minimum = 2504, // none->player, extra=0x14 + Breathless = 2672, // none->player, extra=0x1/0x2/0x3/0x4/0x5/0x6 + Heavy = 2391, // none->player, extra=0x32 + Toad = 2671, // none->player, extra=0x1B1 +} + +class D022LugaeStates : StateMachineBuilder +{ + public D022LugaeStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 785, NameID = 10281)] // 10282 +public class D022Lugae(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(221, 306), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs new file mode 100644 index 0000000000..d36950bc59 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs @@ -0,0 +1,86 @@ +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; + +public enum OID : uint +{ + Boss = 0x33FD, + LowerAnima = 0x3400, + Helper = 0x233C, + MagitekCrane = 0x3320, // R0.600, x3 + IronNail = 0x3401, // R1.000, x0 (spawn during fight) + LunarNail = 0x33FE, // R1.000, x0 (spawn during fight) + MegaGraviton = 0x33FF, // R1.000, x0 (spawn during fight) + Actor1eb239 = 0x1EB239, // R0.500, x0 (spawn during fight), EventObj type +} + +public enum AID : uint +{ + AutoAttack = 25341, // Boss->player, no cast, single-target + AetherialPull = 25345, // MegaGraviton->player, 8.0s cast, single-target + BoundlessPain1 = 25347, // Boss->self, 8.0s cast, single-target + BoundlessPain2 = 25348, // Helper->location, no cast, range 6 circle + BoundlessPain3 = 25349, // Helper->location, no cast, range 6 circle + CharnelClaw = 25357, // IronNail->self, 6.0s cast, range 40 width 5 rect + CoffinScratch = 25358, // Helper->location, 3.5s cast, range 3 circle + Imperatum = 25353, // Boss->self, 5.0s cast, range 60 circle + LunarNail = 25342, // Boss->self, 3.0s cast, single-target + MegaGraviton = 25344, // Boss->self, 5.0s cast, range 60 circle + ObliviatingClaw1 = 25354, // LowerAnima->self, 3.0s cast, single-target + ObliviatingClaw2 = 25355, // LowerAnima->self, 3.0s cast, single-target + ObliviatingClaw3 = 25356, // IronNail->self, 6.0s cast, range 3 circle + Oblivion1 = 23697, // Helper->location, no cast, range 60 circle + Oblivion2 = 23872, // Helper->location, no cast, range 60 circle + Oblivion3 = 25359, // LowerAnima->self, 6.0s cast, single-target + PaterPatriae1 = 24168, // Helper->self, 3.5s cast, range 60 width 8 rect + PaterPatriae2 = 25350, // Boss->self, 3.5s cast, single-target + PhantomPain1 = 21182, // Boss->self, 7.0s cast, single-target + PhantomPain2 = 25343, // Helper->self, 7.0s cast, range 20 width 20 rect + Unknown1 = 23929, // Helper->player, no cast, single-target + Unknown2 = 26229, // Helper->self, no cast, range 60 circle + Unknown3 = 27228, // LowerAnima->self, no cast, single-target +} + +public enum SID : uint +{ + AreaOfInfluenceUp = 1749, // none->Helper, extra=0x1/0x2/0x3/0x4/0x5/0x6/0x7/0x8/0x9/0xA/0xB/0xC + UnknownStatus = 2849, // none->player, extra=0xEC7 +} + +public enum IconID : uint +{ + Icon_197 = 197, // player +} + +public enum TetherID : uint +{ + Tether_162 = 162, // Helper->Helper + Tether_57 = 57, // MegaGraviton->player + Tether_17 = 17, // MegaGraviton->player + Tether_22 = 22, // Helper->Boss +} + + +class D023AnimaStates : StateMachineBuilder +{ + public D023AnimaStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 785, NameID = 10285)] // 10288 +public class D023Anima(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(0, -180), 20)) +{ + protected override void DrawEnemies(int pcSlot, Actor pc) + { + Arena.Actors(Enemies(OID.Boss), ArenaColor.Enemy); + Arena.Actors(Enemies(OID.LowerAnima), ArenaColor.Enemy); + } + + protected override void UpdateModule() + { + if (Enemies(OID.Boss).Any(e => e.Position.AlmostEqual(new(0, -180), 50))) + Arena.Bounds = new ArenaBoundsSquare(new(0, -180), 20); + if (Enemies(OID.LowerAnima).Any(e => e.Position.AlmostEqual(new(0, -400), 50))) + Arena.Bounds = new ArenaBoundsSquare(new(0, -400), 20); + } +} \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs new file mode 100644 index 0000000000..a832370e1e --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs @@ -0,0 +1,43 @@ +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; + +public enum OID : uint +{ + Boss = 0x33E8, + Helper = 0x233C, +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + LastGasp = 25141, // Boss->player, 5.0s cast, single-target + LostHope = 25143, // Boss->self, 4.0s cast, range 20 circle + MouthOff = 25137, // Boss->self, 3.0s cast, single-target + NoteOfDespair = 25144, // Boss->self, 5.0s cast, range 40 circle + Vitriol = 25138, // Helper->self, 9.0s cast, range 13 circle + Wallow = 25142, // Helper->player, 5.0s cast, range 6 circle + WhatIsLeft = 25140, // Boss->self, 8.0s cast, range 20 180-degree cone + WhatIsRight = 25139, // Boss->self, 8.0s cast, range 20 180-degree cone +} + +public enum SID : uint +{ + TemporaryMisdirection = 1422, // Boss->player, extra=0x2D0 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_304 = 304, // player +} + + +class D031SnatcherStates : StateMachineBuilder +{ + public D031SnatcherStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 789, NameID = 10717)] // 11049 +public class D031Snatcher(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-375, 80), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs new file mode 100644 index 0000000000..f2c624d1e4 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs @@ -0,0 +1,50 @@ +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D032Wrecker; + +public enum OID : uint +{ + Boss = 0x33E9, + Helper = 0x233C, + QueerBubble = 0x3731, // R2.500, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 870, // Boss->player, no cast, single-target + AetherSiphon1 = 25145, // Boss->self, 3.0s cast, single-target + AetherSiphon2 = 25146, // Boss->self, 3.0s cast, single-target + AetherSpray1 = 25147, // Boss->location, 7.0s cast, range 30 circle + AetherSpray2 = 25148, // Boss->location, 7.0s cast, range 30 circle + MeaninglessDestruction = 25153, // Boss->self, 5.0s cast, range 100 circle + PoisonHeart1 = 25151, // Boss->self, 5.0s cast, single-target + PoisonHeart2 = 27851, // Helper->players, 5.0s cast, range 6 circle + TotalWreck = 25154, // Boss->player, 5.0s cast, single-target + UnholyWater = 27852, // Boss->self, 3.0s cast, single-target + Withdraw = 27847, // 3731->player, 1.0s cast, single-target +} + +public enum SID : uint +{ + FireResistanceUp = 1517, // 3731->player, extra=0x0 + WaterResistanceDownII = 1025, // 3731->player, extra=0x0 + Fetters = 1399, // 3731->player, extra=0xEC4 + Burns = 3065, // none->player, extra=0x0 + Burns2 = 3066, // none->player, extra=0x0 + VulnerabilityUp = 1789, // Boss->player, extra=0x1 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_161 = 161, // player +} + +class D032WreckerStates : StateMachineBuilder +{ + public D032WreckerStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 789, NameID = 10718)] // 11052 +public class D032Wrecker(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-287, -354), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs new file mode 100644 index 0000000000..3d654aa9cb --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs @@ -0,0 +1,51 @@ +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D033Svarbhanu; + +public enum OID : uint +{ + Boss = 0x33EB, + Helper = 0x233C, +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + AetherialDisruption = 25160, // Boss->self, 7.0s cast, single-target + ChaoticPulse = 27489, // Boss->self, no cast, single-target + ChaoticUndercurrent1 = 25162, // Helper->self, no cast, range 40 width 10 rect + ChaoticUndercurrent2 = 25163, // Helper->self, no cast, range 40 width 10 rect + CosmicKiss1 = 25167, // Helper->location, 3.0s cast, range 6 circle + CosmicKiss2 = 25168, // Helper->player, 8.0s cast, range 6 circle + CosmicKiss3 = 25169, // Helper->location, 6.0s cast, range 100 circle + CrumblingSky = 25166, // Boss->self, 3.0s cast, single-target + FlamesOfDecay = 25170, // Boss->self, 5.0s cast, range 40 circle + GnashingOfTeeth = 25171, // Boss->player, 5.0s cast, single-target + Unknown1 = 25161, // Boss->self, no cast, single-target + Unknown2 = 25164, // Helper->self, no cast, single-target + Unknown3 = 25374, // Helper->self, no cast, range 50 width 10 rect + Unknown4= 25165, // Helper->self, no cast, single-target +} + +public enum SID : uint +{ + Bleeding1 = 3077, // none->player, extra=0x0 + VulnerabilityUp = 1789, // Helper->player, extra=0x1/0x2 + Bleeding2 = 3078, // none->player, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_101 = 101, // player + Icon_218 = 218, // player +} + +class D033SvarbhanuStates : StateMachineBuilder +{ + public D033SvarbhanuStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 789, NameID = 10719)] // +public class D033Svarbhanu(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(300, -157), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs new file mode 100644 index 0000000000..b8ecfcfd61 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs @@ -0,0 +1,40 @@ +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; + +public enum OID : uint +{ + Boss = 0x3323, + Helper = 0x233C, + IcePillar = 0x3324, // R2.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 6497, // Boss->player, no cast, single-target + FrigidStomp = 25181, // Boss->self, 5.0s cast, range 50 circle + FrostbiteAndSeek = 25175, // Boss->self, 3.0s cast, single-target + HeavySmash = 25180, // Boss->players, 5.0s cast, range 6 circle + IcePillar = 25179, // IcePillar->self, 3.0s cast, range 4 circle + Icicall = 25178, // Boss->self, 3.0s cast, single-target + PillarPierce = 25375, // IcePillar->self, 5.0s cast, range 80 width 4 rect + PunishingSlice1 = 25176, // Boss->self, no cast, single-target + PunishingSlice2 = 25177, // Helper->self, 2.0s cast, range 50 width 50 rect + SkullDasher = 25182, // Boss->player, 5.0s cast, single-target + Unknown = 28304, // Helper->self, no cast, single-target +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_62 = 62, // player +} + +class D041LyssaStates : StateMachineBuilder +{ + public D041LyssaStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 787, NameID = 10396)] // +public class D041Lyssa(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-134, 54), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs new file mode 100644 index 0000000000..924d3e290f --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs @@ -0,0 +1,53 @@ +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D042Ladon; + +public enum OID : uint +{ + Boss = 0x3425, + Helper = 0x233C, + PyricSphere = 0x3426, // R0.700, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + Inhale1 = 25732, // Boss->self, 4.0s cast, single-target + Inhale2 = 25915, // Boss->self, no cast, single-target + Intimidation = 25741, // Boss->self, 6.0s cast, range 40 circle + PyricBlast = 25742, // Boss->players, 4.0s cast, range 6 circle + PyricBreath1 = 25734, // Boss->self, 7.0s cast, range 40 ?-degree cone + PyricBreath2 = 25735, // Boss->self, 7.0s cast, range 40 ?-degree cone + PyricBreath3 = 25736, // Boss->self, 7.0s cast, range 40 ?-degree cone + PyricBreath4 = 25737, // Boss->self, no cast, range 40 ?-degree cone + PyricBreath5 = 25738, // Boss->self, no cast, range 40 ?-degree cone + PyricSphere1 = 25744, // PyricSphere->self, 5.0s cast, single-target + PyricSphere2 = 25745, // Helper->self, 10.0s cast, range 50 width 4 cross + Scratch = 25743, // Boss->player, 5.0s cast, single-target + UnknownAbility = 25733, // Boss->location, no cast, single-target + UnknownSpell = 25740, // Boss->self, no cast, ??? +} + +public enum SID : uint +{ + Unknown1 = 2195, // none->Boss, extra=0x144/0x145/0x149/0x146/0x148/0x147 + Unknown2 = 2812, // none->Boss, extra=0x9F6 + Unknown3 = 2813, // none->Boss, extra=0x177F + Unknown4 = 2814, // none->Boss, extra=0x21A8 + VulnerabilityUp = 1789, // Helper->player, extra=0x2 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_62 = 62, // player +} + +class D042LadonStates : StateMachineBuilder +{ + public D042LadonStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 787, NameID = 10398)] // +public class D042Ladon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, 48), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs new file mode 100644 index 0000000000..f5162c8ff6 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs @@ -0,0 +1,67 @@ +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D043Hermes; + +public enum OID : uint +{ + Boss = 0x348A, // R4.200, x1 + Helper = 0x233C, // R0.500, x12, 523 type + Meteor = 0x348C, // R2.400, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + CosmicKiss = 25891, // Meteor->self, 5.0s cast, range 40 circle + Double = 25892, // Boss->self, 3.0s cast, single-target + Hermetica1 = 25888, // Boss->self, 3.0s cast, single-target + Hermetica2 = 25893, // Boss->self, 6.0s cast, single-target + Hermetica3 = 25895, // Boss->self, 12.0s cast, single-target + Meteor = 25890, // Boss->self, 3.0s cast, single-target + Quadruple = 25894, // Boss->self, 3.0s cast, single-target + Trismegistos = 25886, // Boss->self, 5.0s cast, range 40 circle + TrueAero1 = 25899, // Boss->self, 5.0s cast, single-target + TrueAero2 = 25900, // Helper->player, no cast, range 40 width 6 rect + TrueAero3 = 25901, // Helper->self, 2.5s cast, range 40 width 6 rect + TrueAeroII1 = 25896, // Boss->self, 5.0s cast, single-target + TrueAeroII2 = 25897, // Helper->player, 5.0s cast, range 6 circle + TrueAeroII3 = 25898, // Helper->location, 3.5s cast, range 6 circle + TrueAeroIV1 = 25889, // 348B->self, 4.0s cast, range 50 width 10 rect + TrueAeroIV2 = 27836, // 348B->self, 4.0s cast, range 50 width 10 rect + TrueAeroIV3 = 27837, // 348B->self, 10.0s cast, range 50 width 10 rect + TrueBravery = 25907, // Boss->self, 5.0s cast, single-target + TrueTornado1 = 25902, // Boss->self, 5.0s cast, single-target + TrueTornado2 = 25903, // Boss->self, no cast, single-target + TrueTornado3 = 25904, // Boss->self, no cast, single-target + TrueTornado4 = 25905, // Helper->player, no cast, range 4 circle + TrueTornado5 = 25906, // Helper->location, 2.5s cast, range 4 circle + UnknownAbility = 25887, // Helper->player, no cast, single-target +} + +public enum SID : uint +{ + Double = 661, // Boss->Boss, extra=0x0 + VulnerabilityUp = 1789, // Helper->player, extra=0x1 + Quadruple = 2732, // Boss->Boss, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_139 = 139, // player +} + +public enum TetherID : uint +{ + Tether_160 = 160, // 348B->Boss +} + +class D043HermesStates : StateMachineBuilder +{ + public D043HermesStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 787, NameID = 10363)] // 10399 +public class D043Hermes(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, -50), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs new file mode 100644 index 0000000000..f175f2a96f --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs @@ -0,0 +1,46 @@ +namespace BossMod.Endwalker.Dungeon.D05Aitiascope.D051Livia; + +public enum OID : uint +{ + Boss = 0x3469, // R7.000, x1 + Helper = 0x233C, // R0.500, x12, mixed types +} + +public enum AID : uint +{ + AutoAttack = 24771, // Boss->player, no cast, single-target + AglaeaBite = 25673, // Boss->self/player, 5.0s cast, range 9 ?-degree cone + AglaeaClimb1 = 25666, // Boss->self, 7.0s cast, single-target + AglaeaClimb2 = 25667, // Boss->self, 7.0s cast, single-target + AglaeaClimb3 = 25668, // Helper->self, 7.0s cast, range 20 90-degree cone + AglaeaShot1 = 25669, // Boss->self, 3.0s cast, single-target + AglaeaShot2 = 25670, // 346A->location, 3.0s cast, range 20 width 4 rect + AglaeaShot3 = 25671, // 346A->location, 1.0s cast, range 40 width 4 rect + Disparagement = 25674, // Boss->self, 5.0s cast, range 40 120-degree cone + Frustration = 25672, // Boss->self, 5.0s cast, range 40 circle + IgnisAmoris = 25676, // Helper->location, 4.0s cast, range 6 circle + IgnisOdi = 25677, // Helper->players, 5.0s cast, range 6 circle + OdiEtAmo = 25675, // Boss->self, 3.0s cast, single-target +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // 346A->player, extra=0x2 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_161 = 161, // player +} + +class D051LiviaStates : StateMachineBuilder +{ + public D051LiviaStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 786, NameID = 10290)] // +public class D051Livia(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-6, 470), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs new file mode 100644 index 0000000000..0bfdc344d9 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs @@ -0,0 +1,52 @@ +namespace BossMod.Endwalker.Dungeon.D05Aitiascope.D052Rhitahtyn; + +public enum OID : uint +{ + Boss = 0x346B, + Helper = 0x233C, + Helper2 = 0x35DA, // R1.000, x4 + Actor346c = 0x346C, // R1.000, x0 (spawn during fight) + Actor346d = 0x346D, // R1.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 870, // Boss->player, no cast, single-target + AnvilOfTartarus = 25686, // Boss->player, 5.0s cast, single-target + Impact = 25679, // Helper->self, 4.0s cast, range 14 width 40 rect + ShieldSkewer = 25680, // Boss->location, 11.0s cast, range 40 width 14 rect + ShrapnelShell1 = 25682, // Boss->self, 3.0s cast, single-target + ShrapnelShell2 = 25684, // Helper->location, 3.5s cast, range 5 circle + TartareanImpact = 25685, // Boss->self, 5.0s cast, range 60 circle + TartareanSpark = 25687, // Boss->self, 3.0s cast, range 40 width 6 rect + UnknownAbility = 25688, // Boss->location, no cast, single-target + UnknownWeaponskill = 25683, // 346C/346D->self, no cast, single-target + Vexillatio = 25678, // Boss->self, 4.0s cast, single-target +} + +public enum SID : uint +{ + Unknown1 = 2056, // none->35DA/Boss, extra=0x135/0x14E + Unknown2 = 2193, // none->35DA, extra=0x136 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player +} + +public enum TetherID : uint +{ + Tether_161 = 161, // 35DA->Boss +} + +class D052RhitahtynStates : StateMachineBuilder +{ + public D052RhitahtynStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 786, NameID = 10292)] // +public class D052Rhitahtyn(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(10, 180), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs new file mode 100644 index 0000000000..8f991b2387 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs @@ -0,0 +1,45 @@ +namespace BossMod.Endwalker.Dungeon.D05Aitiascope.D053Amon; + +public enum OID : uint +{ + Boss = 0x346E, + Helper = 0x233C, + YsaylesSpirit = 0x346F, // R2.000, x1 + Ice = 0x1EB26D, // R0.500, x0 (spawn during fight), EventObj type +} + +public enum AID : uint +{ + AutoAttack = 24712, // Boss->player, no cast, single-target + Antistrophe = 25694, // Boss->self, 3.0s cast, single-target + CurtainCall = 25702, // Boss->self, 32.0s cast, range 40 circle + DarkForte = 25700, // Boss->player, 5.0s cast, single-target + DreamsOfIce = 27756, // Helper->self, 14.7s cast, range 6 circle + Entracte = 25701, // Boss->self, 5.0s cast, range 40 circle + Epode = 25695, // Helper->self, 8.0s cast, range 70 width 12 rect + EruptionForte1 = 24709, // Boss->self, 3.0s cast, single-target + EruptionForte2 = 25704, // Helper->location, 4.0s cast, range 8 circle + LeftFiragaForte = 25697, // Boss->self, 7.0s cast, range 40 width 20 rect + RightFiragaForte = 25696, // Boss->self, 7.0s cast, range 40 width 20 rect + Strophe = 25693, // Boss->self, 3.0s cast, single-target + ThundagaForte1 = 25690, // Boss->location, 5.0s cast, range 40 circle + ThundagaForte2 = 25691, // Helper->self, 5.0s cast, range 20 ?-degree cone + ThundagaForte3 = 25692, // Helper->self, 11.0s cast, range 20 ?-degree cone + Unknown = 25703, // YsaylesSpirit->self, no cast, single-target +} + +public enum IconID : uint +{ + Icon_218 = 218, // player +} + +class D053AmonStates : StateMachineBuilder +{ + public D053AmonStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 786, NameID = 10293)] // +public class D053Amon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, -500), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs new file mode 100644 index 0000000000..8409d7c675 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs @@ -0,0 +1,54 @@ +namespace BossMod.Endwalker.Dungeon.D06DeadEnds.D061Grebuloff; + +public enum OID : uint +{ + Boss = 0x34C4, + Helper = 0x233C, + WeepingMiasma = 0x34C5, // R1.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + Befoulment1 = 25923, // Boss->self, 5.0s cast, single-target + Befoulment2 = 25924, // Helper->player, 5.2s cast, range 6 circle + BlightedWater1 = 25921, // Boss->self, 5.0s cast, single-target + BlightedWater2 = 25922, // Helper->players, 5.2s cast, range 6 circle + CertainSolitude = 28349, // Boss->self, no cast, range 40 circle + CoughUp1 = 25917, // Boss->self, 4.0s cast, single-target + CoughUp2 = 25918, // Helper->location, 4.0s cast, range 6 circle + Miasmata = 25916, // Boss->self, 5.0s cast, range 40 circle + NecroticFluid = 25919, // WeepingMiasma->self, 6.5s cast, range 6 circle + NecroticMist = 28348, // Helper->location, 1.3s cast, range 6 circle + PoxFlail = 25920, // Boss->player, 5.0s cast, single-target + WaveOfNausea = 28347, // Boss->self, 5.5s cast, range ?-40 donut +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // Helper->player, extra=0x1/0x2 + Necrosis = 2965, // Helper->player, extra=0x0 + Weakness = 43, // none->player, extra=0x0 + Transcendent = 418, // none->player, extra=0x0 + CravenCompanionship = 2966, // Boss->player, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_55 = 55, // player + Icon_218 = 218, // player + Icon_62 = 62, // player + Icon_139 = 139, // player +} + +class D061GrebuloffStates : StateMachineBuilder +{ + public D061GrebuloffStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 792, NameID = 10313)] // +public class D061Grebuloff(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(266.5f, -178), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs new file mode 100644 index 0000000000..2aee0fa28a --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs @@ -0,0 +1,56 @@ +namespace BossMod.Endwalker.Dungeon.D06DeadEnds.D062Peacekeeper; + +public enum OID : uint +{ + Boss = 0x34C6, + Helper = 0x233C, + PerpetualWarMachine = 0x384B, // R0.900, x14 + Helper2 = 0x1EB5F7, // R0.500, x0 (spawn during fight), EventObj type +} + +public enum AID : uint +{ + AutoAttack = 25977, // Boss->player, no cast, single-target + Decimation = 25936, // Boss->self, 5.0s cast, range 40 circle + DisengageHatch = 28356, // Boss->self, no cast, single-target + EclipsingExhaust = 25931, // Boss->self, 5.0s cast, range 40 circle + ElectromagneticRepellant = 28360, // Boss->self, 4.0s cast, range 9 circle + Elimination = 25935, // Boss->self/player, 5.0s cast, range 46 width 10 rect + InfantryDeterrent1 = 28358, // Boss->self, no cast, single-target + InfantryDeterrent2 = 28359, // Helper->player, 5.0s cast, range 6 circle + NoFuture1 = 25925, // Boss->self, 4.0s cast, single-target + NoFuture2 = 25927, // Helper->self, 4.0s cast, range 6 circle + NoFuture3 = 25928, // Helper->player, 5.0s cast, range 6 circle + OrderToFire = 28351, // Boss->self, 5.0s cast, single-target + Peacefire1 = 25933, // Boss->self, 3.0s cast, single-target + Peacefire2 = 25934, // Helper->self, 7.0s cast, range 10 circle + SmallBoreLaser = 28352, // PerpetualWarMachine->self, 5.0s cast, range 20 width 4 rect + UnknownWeaponskill = 25926, // Boss->self, no cast, single-target + UnkownAbility1 = 28350, // PerpetualWarMachine->location, no cast, single-target + UnkownAbility2 = 28357, // Boss->self, no cast, single-target +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // Boss/PerpetualWarMachine->player, extra=0x1 + Electrocution = 1899, // none->player, extra=0x0 + Burns = 2194, // none->player, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_139 = 139, // player + Icon_230 = 230, // player +} + +class D062PeacekeeperStates : StateMachineBuilder +{ + public D062PeacekeeperStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 792, NameID = 10315)] // +public class D062Peacekeeper(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-105, -210), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs new file mode 100644 index 0000000000..e5b765fa79 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs @@ -0,0 +1,54 @@ +namespace BossMod.Endwalker.Dungeon.D06DeadEnds.D063Rala; + +public enum OID : uint +{ + Boss = 0x34C7, + Helper = 0x233C, + GoldenWings = 0x34C8, // R1.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 870, // Boss->player, no cast, single-target + Benevolence1 = 25945, // Boss->self, 5.0s cast, single-target + Benevolence2 = 25946, // Helper->players, 5.4s cast, range 6 circle + LamellarLight1 = 25939, // Helper->self, 6.0s cast, range 15 circle + LamellarLight2 = 25942, // GoldenWings->self, 3.0s cast, single-target + LamellarLight3 = 25951, // Helper->self, 3.0s cast, range 40 width 4 rect + Lifesbreath = 25940, // Boss->self, 4.0s cast, range 50 width 10 rect + LovingEmbrace1 = 25943, // Boss->self, 7.0s cast, range 45 180-degree cone + LovingEmbrace2 = 25944, // Boss->self, 7.0s cast, range 45 180-degree cone + Pity = 25949, // Boss->player, 5.0s cast, single-target + Prance1 = 25937, // Boss->location, 5.0s cast, single-target + Prance2 = 25938, // Boss->location, no cast, single-target + StillEmbrace1 = 25947, // Boss->self, 5.0s cast, single-target + StillEmbrace2 = 25948, // Helper->player, 5.4s cast, range 6 circle + Unknown = 25941, // Boss->location, no cast, single-target + WarmGlow = 25950, // Boss->self, 5.0s cast, range 40 circle +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // Helper->player, extra=0x1 + UnknownStatus = 2056, // none->34C8, extra=0x16C + Weakness = 43, // none->player, extra=0x0 + Transcendent = 418, // none->player, extra=0x0 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_62 = 62, // player + Icon_139 = 139, // player +} + +class D063RalaStates : StateMachineBuilder +{ + public D063RalaStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 792, NameID = 10316)] // +public class D063Rala(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-380, -145), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs new file mode 100644 index 0000000000..596b58f2cc --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs @@ -0,0 +1,58 @@ +namespace BossMod.Endwalker.Dungeon.D07Smileton.D071Face; + +public enum OID : uint +{ + Boss = 0x34CF, + Helper = 0x233C, + RelativelySmallFace = 0x34D0, // R3.060, x8 +} + +public enum AID : uint +{ + AutoAttack = 26433, // Boss->player, no cast, single-target + FrownyFace = 26422, // RelativelySmallFace->self, 7.0s cast, range 45 width 6 rect + LinesOfFire = 26421, // Boss->self, 3.0s cast, single-target + MixedFeelings = 26424, // Helper->self, 7.0s cast, range 60 width 2 rect + OffMyLawn1 = 26430, // Boss->self, 5.0s cast, single-target + OffMyLawn2 = 27742, // Helper->self, 5.0s cast, range 31 width 30 rect + SmileyFace = 26423, // RelativelySmallFace->self, 7.0s cast, range 45 width 6 rect + TempersFlare = 26435, // Boss->self, 5.0s cast, range 60 circle + TemperTemper = 26432, // Helper->player, 5.0s cast, range 5 circle + UnknownAbility1 = 26426, // RelativelySmallFace->self, no cast, single-target + UnknownAbility2 = 26427, // RelativelySmallFace->self, no cast, single-target + UnknownAbility3 = 26428, // RelativelySmallFace->self, no cast, single-target + UnknownAbility4 = 26429, // RelativelySmallFace->self, no cast, single-target + UpsideDown = 26425, // Boss->self, 3.0s cast, single-target +} + +public enum SID : uint +{ + SmileyFace = 2763, // 34D0->player, extra=0x1 + FrownyFace = 2764, // 34D0->player, extra=0x1/0x2 + DownForTheCount = 783, // 34D0->player, extra=0xEC7 + Weakness = 43, // none->player, extra=0x0 + Transcendent = 418, // none->player, extra=0x0 +} + +public enum IconID : uint +{ + Icon_136 = 136, // player + Icon_96 = 96, // player + Icon_137 = 137, // player +} + +public enum TetherID : uint +{ + Tether_169 = 169, // 34D0->Boss +} + +class D071FaceStates : StateMachineBuilder +{ + public D071FaceStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 794, NameID = 10331)] // +public class D071Face(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-45, -0), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs new file mode 100644 index 0000000000..9a138c873f --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs @@ -0,0 +1,45 @@ +namespace BossMod.Endwalker.Dungeon.D07Smileton.D072Frameworker; + +public enum OID : uint +{ + Boss = 0x34D1, + Helper = 0x233C, + Helper2 = 0x1E8FB8, // R2.000, x3 (spawn during fight), EventObj type + Helper3 = 0x1EA1A1, // R2.000, x4 (spawn during fight), EventObj type + SmileySupporter = 0x34D2, // R2.300, x2 + PrintedWorker = 0x34E9, // R4.050, x2 +} + +public enum AID : uint +{ + AutoAttack = 870, // Boss->player, no cast, single-target + CircularSaw = 26437, // Boss->self, 5.0s cast, range 40 circle + LeapForward1 = 26438, // Boss->location, 7.0s cast, range 15 circle + LeapForward2 = 26439, // PrintedWorker->location, 7.0s cast, range 15 circle + OmnidimensionalOnslaught1 = 26440, // Boss->self, 5.0s cast, single-target + OmnidimensionalOnslaught2 = 26441, // Helper->self, 5.0s cast, range 40 45-degree cone + PrintWorkers1 = 26443, // SmileySupporter->self, no cast, single-target + PrintWorkers2 = 28092, // Boss->self, 3.0s cast, single-target + UnknownAbility = 26442, // Helper->Boss, no cast, single-target +} + +public enum SID : uint +{ + UnknownStatus = 2056, // none->Boss/PrintedWorker, extra=0xE1 +} + +public enum TetherID : uint +{ + Tether_23 = 23, // SmileySupporter->Boss +} + +class D072FrameworkerStates : StateMachineBuilder +{ + public D072FrameworkerStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 794, NameID = 10333)] // +public class D072Frameworker(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(65, -110), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs new file mode 100644 index 0000000000..f163ea6c9e --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs @@ -0,0 +1,51 @@ +namespace BossMod.Endwalker.Dungeon.D07Smileton.D073BigCheese; + +public enum OID : uint +{ + Boss = 0x34D3, + Helper = 0x233C, + Bomb = 0x3585, // R0.500, x2 + ExcavationBomb1 = 0x38CF, // R0.500, x2 + ExcavationBomb2 = 0x3741, // R1.000, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 26444, // Boss->player, no cast, single-target + DispenseExplosives = 27696, // Boss->self, 3.0s cast, single-target + ElectricArc = 26451, // Boss->players, 5.0s cast, range 8 circle + Excavated = 27698, // ExcavationBomb1->self, no cast, range 8 circle + ExplosivePower = 27697, // Boss->self, 3.0s cast, single-target + ExplosivesDistribution = 26446, // Boss->self, 3.0s cast, single-target + IronKiss = 26445, // Bomb->location, 1.5s cast, range 16 circle + LeftDisassembler = 26448, // Boss->self, 8.0s cast, range 30 width 10 rect + LevelingMissile1 = 26452, // Boss->self, 5.0s cast, single-target + LevelingMissile2 = 26453, // Helper->player, 5.0s cast, range 6 circle + PiercingMissile = 26449, // Boss->player, 5.0s cast, single-target + RightDisassembler = 26447, // Boss->self, 8.0s cast, range 30 width 10 rect + UnknownAbility = 27700, // ExcavationBomb1->self, no cast, single-target +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // Bomb/ExcavationBomb1->player, extra=0x1 + Paralysis = 482, // ExcavationBomb1->player, extra=0x0 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_62 = 62, // player + Icon_139 = 139, // player +} + +class D073BigCheeseStates : StateMachineBuilder +{ + public D073BigCheeseStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 794, NameID = 10336)] // +public class D073BigCheese(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-46, -30), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs new file mode 100644 index 0000000000..8f95a0e992 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs @@ -0,0 +1,54 @@ +namespace BossMod.Endwalker.Dungeon.D08Stigma.D081ProtoOmega; + +public enum OID : uint +{ + Boss = 0x3417, + Helper = 0x233C, + MarkIIGuidedMissile = 0x3418, // R1.000, x0 (spawn during fight) + Actor1eb24e = 0x1EB24E, // R0.500, x0 (spawn during fight), EventObj type + Actor1e8d9b = 0x1E8D9B, // R0.500, x0 (spawn during fight), EventObj type +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + Burn = 25385, // Helper->player, no cast, range 6 circle + ChemicalMissile = 25384, // Boss->self, 3.0s cast, single-target + ElectricSlide = 25386, // Boss->players, 5.0s cast, range 6 circle + GuidedMissile = 25382, // Boss->self, 3.0s cast, single-target + IronKiss = 25383, // MarkIIGuidedMissile->self, no cast, range 3 circle + MustardBomb = 25387, // Boss->player, 5.0s cast, range 5 circle + SideCannons1 = 25376, // Boss->self, 7.0s cast, range 60 180-degree cone + SideCannons2 = 25377, // Boss->self, 7.0s cast, range 60 180-degree cone +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // MarkIIGuidedMissile->player, extra=0x1 + Burns = 2194, // none->player, extra=0x0 + Bleeding = 2088, // Boss->player, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_139 = 139, // player + Icon_289 = 289, // player + Icon_218 = 218, // player +} + +public enum TetherID : uint +{ + Tether_17 = 17, // MarkIIGuidedMissile->player +} + +class D081ProtoOmegaStates : StateMachineBuilder +{ + public D081ProtoOmegaStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 784, NameID = 10401)] // +public class D081ProtoOmega(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-150, -140), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs new file mode 100644 index 0000000000..2e317fbc3f --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs @@ -0,0 +1,46 @@ +namespace BossMod.Endwalker.Dungeon.D08Stigma.D082ArchLambda; + +public enum OID : uint +{ + Boss = 0x3416, + Helper = 0x233C, +} +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + AtomicFlame = 25524, // Boss->self, 5.0s cast, range 40 circle + AutoMobileAssaultCannon = 25515, // Boss->self, 5.9s cast, single-target + AutoMobileSniperCannon1 = 25520, // Boss->location, 7.0s cast, single-target + AutoMobileSniperCannon2 = 25522, // Helper->self, no cast, range 40 width 6 rect + Entrench = 25521, // Helper->self, 7.5s cast, range 41 width 8 rect + Tread1 = 25516, // Boss->location, no cast, width 8 rect charge + Tread2 = 25517, // Boss->location, no cast, width 8 rect charge + Unknown1 = 25514, // Boss->location, no cast, single-target + Unknown2 = 25518, // Helper->location, 1.5s cast, width 8 rect charge + WaveCannon = 25519, // Boss->self, 2.5s cast, range 40 180-degree cone + Wheel = 25525, // Boss->player, 5.0s cast, single-target +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // Boss->player, extra=0x1/0x2 +} + +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_79 = 79, // player/Helper + Icon_81 = 81, // player/Helper + Icon_80 = 80, // player/Helper +} + +class D082ArchLambdaStates : StateMachineBuilder +{ + public D082ArchLambdaStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 784, NameID = 10403)] // +public class D082ArchLambda(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs new file mode 100644 index 0000000000..728a120887 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs @@ -0,0 +1,51 @@ +namespace BossMod.Endwalker.Dungeon.D08Stigma.D083Stigma4; + +public enum OID : uint +{ + Boss = 0x3428, + Helper = 0x233C, + OmegaFrame = 0x342A, // R8.995, x0 (spawn during fight) + HybridDragon = 0x342B, // R5.000, x0 (spawn during fight) + ProtoRocketPunch = 0x3429, // R2.500, x0 (spawn during fight) +} +public enum AID : uint +{ + AITakeover = 25641, // Boss->self, 5.0s cast, single-target + AtomicRay = 25654, // Boss->self, 5.0s cast, range 50 circle + ElectromagneticRelease1 = 25649, // Boss->self, no cast, single-target + ElectromagneticRelease2 = 25650, // Helper->self, 10.0s cast, range ?-60 donut + ElectromagneticRelease3 = 25651, // Boss->self, no cast, single-target + ElectromagneticRelease4 = 25652, // Helper->self, 10.0s cast, range 16 circle + FireBreath = 25646, // HybridDragon->self, 7.0s cast, range 40 120-degree cone + Mindhack = 25648, // Boss->self, 5.0s cast, range 50 circle + MultiAITakeover = 27723, // Boss->self, 5.0s cast, single-target + Plasmafodder = 25653, // Helper->player, no cast, single-target + ProtoWaveCannon1 = 25642, // OmegaFrame->self, 7.0s cast, range 60 180-degree cone + ProtoWaveCannon2 = 25643, // OmegaFrame->self, 7.0s cast, range 60 180-degree cone + Rush = 25645, // ProtoRocketPunch->location, 5.0s cast, width 5 rect charge + SelfDestruct1 = 25644, // OmegaFrame->self, 15.0s cast, range 60 circle + SelfDestruct2 = 25647, // HybridDragon->self, 15.0s cast, range 60 circle + Touchdown = 26873, // HybridDragon->self, 2.0s cast, range 7 circle +} + +public enum SID : uint +{ + VulnerabilityUp = 1789, // HybridDragon/Helper->player, extra=0x1/0x2/0x3 + AboutFace = 1959, // Boss->player, extra=0x0 + ForwardMarch = 1958, // Boss->player, extra=0x0 + RightFace = 1961, // Boss->player, extra=0x0 + LeftFace = 1960, // Boss->player, extra=0x0 + ForcedMarch = 1257, // Boss->player, extra=0x2/0x1/0x8 + Bleeding = 2088, // Boss->player, extra=0x0 +} + +class D083Stigma4States : StateMachineBuilder +{ + public D083Stigma4States(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 784, NameID = 10404)] // +public class D083Stigma4(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs new file mode 100644 index 0000000000..b7b00c1a6f --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs @@ -0,0 +1,17 @@ +namespace BossMod.Endwalker.Dungeon.D09Alzadaal.D091Ambujam; + +public enum OID : uint +{ + Boss = 0x3879, +} + +class D091AmbujamStates : StateMachineBuilder +{ + public D091AmbujamStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 844, NameID = 11241)] // +public class D091Ambujam(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(124, -90), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs new file mode 100644 index 0000000000..8dee843547 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs @@ -0,0 +1,17 @@ +namespace BossMod.Endwalker.Dungeon.D09Alzadaal.D092ArmoredChariot; + +public enum OID : uint +{ + Boss = 0x386C, +} + +class D092ArmoredChariotStates : StateMachineBuilder +{ + public D092ArmoredChariotStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 844, NameID = 11239)] // +public class D092ArmoredChariot(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(0, -182), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs new file mode 100644 index 0000000000..e9da8a9dfc --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs @@ -0,0 +1,17 @@ +namespace BossMod.Endwalker.Dungeon.D09Alzadaal.D093Kapikulu; + +public enum OID : uint +{ + Boss = 0x36C1, +} + +class D093KapikuluStates : StateMachineBuilder +{ + public D093KapikuluStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 844, NameID = 11238)] +public class D093Kapikulu(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(110, -68), 20, 15)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs new file mode 100644 index 0000000000..cb5ee81c85 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs @@ -0,0 +1,17 @@ +namespace BossMod.Endwalker.Dungeon.D10FellCourt.D101EvilDreamers; + +public enum OID : uint +{ + Boss = 0x3988, +} + +class D101EvilDreamersStates : StateMachineBuilder +{ + public D101EvilDreamersStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 869, NameID = 11382)] // 11383 +public class D101EvilDreamers(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(168, 0), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs new file mode 100644 index 0000000000..a973817a7e --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs @@ -0,0 +1,17 @@ +namespace BossMod.Endwalker.Dungeon.D10FellCourt.D102Beatrice; + +public enum OID : uint +{ + Boss = 0x396D, +} + +class D102BeatriceStates : StateMachineBuilder +{ + public D102BeatriceStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 869, NameID = 11384)] // +public class D102Beatrice(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, -148), 20)); diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs new file mode 100644 index 0000000000..e496878f41 --- /dev/null +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs @@ -0,0 +1,17 @@ +namespace BossMod.Endwalker.Dungeon.D10FellCourt.D103Scarmiglione; + +public enum OID : uint +{ + Boss = 0x39C5, +} + +class D103ScarmiglioneStates : StateMachineBuilder +{ + public D103ScarmiglioneStates(BossModule module) : base(module) + { + TrivialPhase(); + } +} + +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 869, NameID = 11372)] // 11407 +public class D103Scarmiglione(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-35, -298), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Heavensward/Alliance/A31DeathgazeHollow/A31DeathgazeHollowEnums.cs b/BossMod/Modules/Heavensward/Alliance/A31DeathgazeHollow/A31DeathgazeHollowEnums.cs index 410d8421bb..5d0a729cad 100644 --- a/BossMod/Modules/Heavensward/Alliance/A31DeathgazeHollow/A31DeathgazeHollowEnums.cs +++ b/BossMod/Modules/Heavensward/Alliance/A31DeathgazeHollow/A31DeathgazeHollowEnums.cs @@ -6,26 +6,6 @@ public enum OID : uint Helper = 0x1911, // R0.500, x9 FierceWind = 0x1912, // R1.000, x0 (spawn during fight) VoidSprite = 0x1910, // R2.000, x0 (spawn during fight) - Actor1e8536 = 0x1E8536, // R2.000, x1, EventObj type - Actor1ea2ef = 0x1EA2EF, // R0.500, x1, EventObj type - Actor1e8fb8 = 0x1E8FB8, // R2.000, x1, EventObj type - Actor1ea235 = 0x1EA235, // R2.000, x1, EventObj type - Actor1ea23c = 0x1EA23C, // R2.000, x1, EventObj type - Actor1ea240 = 0x1EA240, // R2.000, x1, EventObj type - Actor1ea238 = 0x1EA238, // R2.000, x1, EventObj type - Actor1ea234 = 0x1EA234, // R2.000, x1, EventObj type - Actor1ea23b = 0x1EA23B, // R2.000, x1, EventObj type - Actor1ea237 = 0x1EA237, // R2.000, x1, EventObj type - Actor1ea23f = 0x1EA23F, // R2.000, x1, EventObj type - Actor1ea243 = 0x1EA243, // R2.000, x1, EventObj type - Actor1ea23a = 0x1EA23A, // R2.000, x1, EventObj type - Actor1ea236 = 0x1EA236, // R2.000, x1, EventObj type - Actor1ea23e = 0x1EA23E, // R2.000, x1, EventObj type - Actor1ea233 = 0x1EA233, // R2.000, x1, EventObj type - Actor1ea239 = 0x1EA239, // R2.000, x1, EventObj type - Actor1ea23d = 0x1EA23D, // R2.000, x1, EventObj type - Actor1ea232 = 0x1EA232, // R2.000, x1, EventObj type - Actor1ea241 = 0x1EA241, // R2.000, x1, EventObj type Actor1ea2e7 = 0x1EA2E7, // R0.500, x0 (spawn during fight), EventObj type Actor1ea273 = 0x1EA273, // R2.000, x0 (spawn during fight), EventObj type } @@ -62,9 +42,14 @@ public enum AID : uint VoidAeroIV2 = 7311, // Helper->self, 3.0s cast, range 31+R width 60 rect VoidAeroII3 = 7288, // Boss->self, 5.0s cast, single-target VoidAeroIII3 = 7290, // Boss->self, 3.0s cast, single-target - BoltOfDarkness = 7302, // Boss->self, 6.0s cast, single-target - BoltOfDarkness2 = 7315, // Helper->self, 6.8s cast, range 31+R width 20 rect - VoidDeathIV = 7298, // Boss->self, 3.0s cast, single-target + + BoltOfDarkness1 = 7302, // Boss->self, 6.0s cast, single-target + BoltOfDarkness2 = 7303, // Boss->self, 6.0s cast, single-target + BoltOfDarkness3 = 7315, // Helper->self, 6.8s cast, range 31+R width 20 rect + + VoidDeathIV1 = 7298, // Boss->self, 3.0s cast, single-target + VoidDeathIV2 = 7299, // Boss->self, 3.0s cast, single-target + Ruin = 2214, // VoidSprite->player, 1.0s cast, single-target VoidBlizzardIII3 = 7284, // Boss->self, 2.5s cast, single-target DarkII = 7318, // VoidSprite->self, 2.5s cast, range 50+R 60-degree cone @@ -85,5 +70,5 @@ public enum SID : uint public enum IconID : uint { - _Gen_Icon_70 = 70, // player + Icon_70 = 70, // player } \ No newline at end of file diff --git a/BossMod/Modules/Heavensward/Alliance/A32FerdiadHollow/A32FerdiadHollowEnums.cs b/BossMod/Modules/Heavensward/Alliance/A32FerdiadHollow/A32FerdiadHollowEnums.cs index fb75124319..834990e6b7 100644 --- a/BossMod/Modules/Heavensward/Alliance/A32FerdiadHollow/A32FerdiadHollowEnums.cs +++ b/BossMod/Modules/Heavensward/Alliance/A32FerdiadHollow/A32FerdiadHollowEnums.cs @@ -21,37 +21,37 @@ public enum OID : uint public enum AID : uint { AutoAttack = 7319, // Boss->player, no cast, single-target + Blackbolt = 7341, // Boss->players, 5.0s cast, range 6 circle + Blackfire1 = 7338, // Boss->self, 8.2s cast, single-target + Blackfire2 = 7339, // FerdiadHollow->location, 9.0s cast, range 7 circle BlackWind = 7340, // Boss->players, no cast, range 5 circle DeathScythe = 7345, // AbyssalScythe->self, no cast, range 4 circle - Sleight = 7321, // Boss->location, no cast, ??? - Wormhole = 7322, // Boss->self, 6.5s cast, single-target - Unknown1 = 7241, // WailingAtomos/CursingAtomos->self, 6.8s cast, single-target - JugglingSphere = 7327, // Aether->WailingAtomos/CursingAtomos, 7.0s cast, width 6 rect charge - Unknown2 = 7324, // WailingAtomos/CursingAtomos->self, 8.5s cast, single-target + Debilitator = 7334, // Boss->self, 3.0s cast, single-target Explosion = 7329, // Aether->self, 1.0s cast, range 20 circle - JestersReap = 7745, // Boss->self, 3.0s cast, range 10+R 120-degree cone - JongleursX = 7320, // Boss->player, 5.0s cast, single-target - JugglingSphere2 = 7328, // AetherialChakram->WailingAtomos/CursingAtomos, 7.0s cast, width 6 rect charge - Unknown3 = 7325, // WailingAtomos/CursingAtomos->self, 8.5s cast, single-target Explosion2 = 7330, // AetherialChakram->self, 1.0s cast, range 75 circle - Debilitator = 7334, // Boss->self, 3.0s cast, single-target + Fire = 7212, // FerdiadsFool->player, no cast, single-target Flameflow1 = 7335, // Boss->location, 3.0s cast, range 30 circle Flameflow2 = 7336, // FerdiadHollow->self, no cast, range 60 circle Flameflow3 = 7337, // FerdiadHollow->self, no cast, range 60 circle - Unknown4 = 7326, // WailingAtomos->location, 3.0s cast, width 6 rect charge + Icefall = 7344, // FerdiadsFool->location, 3.0s cast, range 5 circle + JestersJig1 = 7332, // Boss->self, 5.0s cast, range 30 circle + JestersJig2 = 7333, // FerdiadHollow->self, no cast, range 30 circle + JestersReap = 7745, // Boss->self, 3.0s cast, range 10+R 120-degree cone + JestersReward = 7331, // Boss->self, 8.0s cast, range 28+R 180-degree cone + JongleursX = 7320, // Boss->player, 5.0s cast, single-target + JugglingSphere = 7327, // Aether->WailingAtomos/CursingAtomos, 7.0s cast, width 6 rect charge + JugglingSphere2 = 7328, // AetherialChakram->WailingAtomos/CursingAtomos, 7.0s cast, width 6 rect charge LuckyPierrot1 = 7342, // FerdiadsFool->location, no cast, width 6 rect charge - Fire = 7212, // FerdiadsFool->player, no cast, single-target + LuckyPierrot2 = 7343, // FerdiadsFool->WailingAtomos, 5.0s cast, width 6 rect charge PetrifyingEye = 7779, // FerdiadsFool->self, 5.0s cast, range 40 circle + Sleight = 7321, // Boss->location, no cast, ??? + Unknown1 = 7241, // WailingAtomos/CursingAtomos->self, 6.8s cast, single-target + Unknown2 = 7324, // WailingAtomos/CursingAtomos->self, 8.5s cast, single-target + Unknown3 = 7325, // WailingAtomos/CursingAtomos->self, 8.5s cast, single-target + Unknown4 = 7326, // WailingAtomos->location, 3.0s cast, width 6 rect charge Unknown5 = 7323, // WailingAtomos->self, 4.8s cast, single-target - Icefall = 7344, // FerdiadsFool->location, 3.0s cast, range 5 circle - LuckyPierrot2 = 7343, // FerdiadsFool->WailingAtomos, 5.0s cast, width 6 rect charge Unknown6 = 7766, // WailingAtomos->location, 6.5s cast, width 6 rect charge - JestersReward = 7331, // Boss->self, 8.0s cast, range 28+R 180-degree cone - JestersJig1 = 7332, // Boss->self, 5.0s cast, range 30 circle - JestersJig2 = 7333, // FerdiadHollow->self, no cast, range 30 circle - Blackfire1 = 7338, // Boss->self, 8.2s cast, single-target - Blackfire2 = 7339, // FerdiadHollow->location, 9.0s cast, range 7 circle - Blackbolt = 7341, // Boss->players, 5.0s cast, range 6 circle + Wormhole = 7322, // Boss->self, 6.5s cast, single-target } public enum SID : uint diff --git a/BossMod/Modules/Heavensward/Alliance/A33ProtoUltima/A33ProtoUltimaEnums.cs b/BossMod/Modules/Heavensward/Alliance/A33ProtoUltima/A33ProtoUltimaEnums.cs index 5e0dc38f38..2bd24454c5 100644 --- a/BossMod/Modules/Heavensward/Alliance/A33ProtoUltima/A33ProtoUltimaEnums.cs +++ b/BossMod/Modules/Heavensward/Alliance/A33ProtoUltima/A33ProtoUltimaEnums.cs @@ -7,8 +7,38 @@ public enum OID : uint AllaganDreadnaught = 0x196B, // R3.000, x? ProtoBit = 0x1968, // R0.600, x? AetherCollector = 0x1969, // R1.000, x? - Actor1e8e9b = 0x1E8E9B, // R0.500, x?, EventObj type - Actor1e8fb8 = 0x1E8FB8, // R2.000, x?, EventObj type - Actor1ea278 = 0x1EA278, // R2.000, x?, EventObj type - Actor1ea277 = 0x1EA277, // R2.000, x?, EventObj type -} \ No newline at end of file +} + +public enum AID : uint +{ + BossAutoAttack = 7573, // Boss->players, no cast, range 2 circle + AllaganDreadnaughtAutoAttack = 872, // AllaganDreadnaught->player, no cast, single-target + + AetherBend = 7577, // Boss->self, no cast, range 8+R circle + AetherialAbsorbption = 7590, // AetherCollector->Boss, no cast, single-target + AetherialPool = 7587, // ProtoUltimaHelper->self, 3.5s cast, range 32 circle + AetherochemicalFlare = 7762, // Boss->self, 5.0s cast, range 40+R circle + AetherochemicalLaser1 = 7574, // Boss->self, 3.3s cast, range 65+R width 8 rect + AetherochemicalLaser2 = 7575, // Boss->self, 3.0s cast, range 65+R width 8 rect + AetherochemicalLaser3 = 7576, // Boss->self, 3.0s cast, range 65+R width 8 rect + CitadelBuster1 = 7579, // Boss->self, no cast, range 65+R width 10 rect + CitadelBuster2 = 7595, // ProtoUltimaHelper->self, 2.5s cast, range 65+R width 10 rect + DiffractiveLaser = 7594, // Boss->self, no cast, range 12+R ?-degree cone + Eikonizer = 7597, // ProtoUltimaHelper->self, no cast, range 40 circle + FlareStar = 7588, // ProtoUltimaHelper->self, 7.0s cast, range 31+R circle + LightPillar = 7578, // Boss->self, no cast, single-target + Rotoswipe = 4556, // AllaganDreadnaught->self, 3.0s cast, range 8+R 120-degree cone + Supernova1 = 7581, // Boss->self, 6.0s cast, range 40+R circle + Supernova2 = 7593, // Boss->self, 60.0s cast, range 40+R circle + Touchdown = 7580, // Boss->self, no cast, range 6+R circle + UnknownWeaponskill1 = 7584, // Boss->self, no cast, single-target + UnknownWeaponskill2 = 7585, // Boss->self, no cast, single-target + UnknownWeaponskill3 = 7586, // Boss->self, no cast, single-target + UnknownWeaponskill4 = 7596, // ProtoUltimaHelper2->self, no cast, range 8 circle +} + +public enum IconID : uint +{ + Icon_62 = 62, // ProtoUltimaHelper2 + Icon_197 = 197, // player +} diff --git a/BossMod/Modules/Heavensward/Alliance/A34Scathach/A34ScathachEnums.cs b/BossMod/Modules/Heavensward/Alliance/A34Scathach/A34ScathachEnums.cs index abb54c3e78..ad367e5384 100644 --- a/BossMod/Modules/Heavensward/Alliance/A34Scathach/A34ScathachEnums.cs +++ b/BossMod/Modules/Heavensward/Alliance/A34Scathach/A34ScathachEnums.cs @@ -9,51 +9,47 @@ public enum OID : uint ShadowcourtJester = 0x1953, // R0.600, x? ChimeraPoppet = 0x1954, // R2.250, x? ShadowcourtHound = 0x1955, // R4.440, x? - Actor1ea24e = 0x1EA24E, // R0.500, x?, EventObj type - Actor1ea2ef = 0x1EA2EF, // R0.500, x?, EventObj type - Actor1e8fb8 = 0x1E8FB8, // R2.000, x?, EventObj type - Actor1ea254 = 0x1EA254, // R2.000, x?, EventObj type - Actor1ea255 = 0x1EA255, // R2.000, x?, EventObj type } public enum AID : uint { AutoAttack = 7760, // Boss->player, no cast, single-target - ThirtyThorns1 = 7467, // Boss->self, no cast, range 7+R width 3 rect - ThirtyThorns2 = 7468, // Connla->self, no cast, range 12+R width 3 rect - ThirtyThorns3 = 7469, // Connla->self, no cast, range 12+R width 3 rect - ThirtyThorns4 = 7470, // Connla->self, 1.5s cast, range 8 circle + AutoAttack2 = 870, // ChimeraPoppet/ShadowcourtHound->player, no cast, single-target + AutoAttack3 = 871, // Connla2->player, no cast, single-target + BigHug = 7631, // ChimeraPoppet->self, 2.5s cast, range 3+R width 3 rect + BlindingShadow1 = 7476, // Boss->self, 5.0s cast, range 60 circle + BlindingShadow2 = 7598, // Connla->self, no cast, range 30 circle + Blizzard = 7777, // ShadowcourtJester->player, 1.0s cast, single-target Manos = 7379, // Boss->self, no cast, single-target - Shadespin1 = 7454, // Boss->self, 4.0s cast, single-target - Shadespin2 = 7456, // Connla->self, 1.2s cast, range 30+R 90-degree cone - ThirtySickles = 7473, // Boss->self, no cast, range 15 circle - Soar = 7451, // Boss->location, no cast, ??? - Unknown = 7452, // Boss->self, no cast, range 15 circle + MarrowDrain = 3342, // ShadowcourtHound->self, 3.0s cast, range 6+R 120-degree cone + Nox1 = 7458, // Connla->location, 5.0s cast, range 10 circle + Nox2 = 7457, // Connla->location, no cast, range 10 circle + ParticleBeam = 7464, // Connla->location, no cast, range 5 circle + Pitfall = 7377, // Connla->self, 5.0s cast, range 60 circle Shadesmite1 = 7636, // Connla->self, 1.5s cast, range 3 circle Shadesmite2 = 7453, // Connla->self, 1.5s cast, range 15 circle Shadesmite3 = 7637, // Connla->self, 1.5s cast, range 3 circle - ShadowRelease = 7380, // Boss->self, no cast, single-target - Unknown2 = 7376, // Connla2->self, no cast, single-target - Pitfall = 7377, // Connla->self, 5.0s cast, range 60 circle - AutoAttack3 = 871, // Connla2->player, no cast, single-target - ThirtyArrows1 = 7471, // Boss->location, 3.0s cast, range 8 circle - ThirtyArrows2 = 7472, // Connla->self, 2.5s cast, range 35+R width 8 rect - ThirtySouls = 7474, // Boss->self, 4.0s cast, range 60 circle Shadespin = 7455, // Boss->self, 4.0s cast, single-target - Nox1 = 7458, // Connla->location, 5.0s cast, range 10 circle - Nox2 = 7457, // Connla->location, no cast, range 10 circle + Shadespin1 = 7454, // Boss->self, 4.0s cast, single-target + Shadespin2 = 7456, // Connla->self, 1.2s cast, range 30+R 90-degree cone Shadethrust = 7459, // Boss->location, 3.0s cast, range 40+R width 5 rect + ShadowRelease = 7380, // Boss->self, no cast, single-target Shred = 7460, // ShadowLimb->player, no cast, single-target - Blizzard = 7777, // ShadowcourtJester->player, 1.0s cast, single-target - AutoAttack2 = 870, // ChimeraPoppet/ShadowcourtHound->player, no cast, single-target Snuggle = 7630, // ChimeraPoppet->player, no cast, single-target - ParticleBeam = 7464, // Connla->location, no cast, range 5 circle - BlindingShadow1 = 7476, // Boss->self, 5.0s cast, range 60 circle - BlindingShadow2 = 7598, // Connla->self, no cast, range 30 circle + Soar = 7451, // Boss->location, no cast, ??? + TheDragonsVoice = 3344, // ShadowcourtHound->self, 4.5s cast, range 30 circle + ThirtyArrows1 = 7471, // Boss->location, 3.0s cast, range 8 circle + ThirtyArrows2 = 7472, // Connla->self, 2.5s cast, range 35+R width 8 rect ThirtyCries = 7475, // Boss->players, no cast, range 12 circle + ThirtySickles = 7473, // Boss->self, no cast, range 15 circle + ThirtySouls = 7474, // Boss->self, 4.0s cast, range 60 circle + ThirtyThorns1 = 7467, // Boss->self, no cast, range 7+R width 3 rect + ThirtyThorns2 = 7468, // Connla->self, no cast, range 12+R width 3 rect + ThirtyThorns3 = 7469, // Connla->self, no cast, range 12+R width 3 rect + ThirtyThorns4 = 7470, // Connla->self, 1.5s cast, range 8 circle + Unknown = 7452, // Boss->self, no cast, range 15 circle + Unknown2 = 7376, // Connla2->self, no cast, single-target VoidBlizzard = 7778, // ShadowcourtJester->player, 2.5s cast, single-target - BigHug = 7631, // ChimeraPoppet->self, 2.5s cast, range 3+R width 3 rect - TheDragonsVoice = 3344, // ShadowcourtHound->self, 4.5s cast, range 30 circle } public enum SID : uint diff --git a/BossMod/Modules/Heavensward/Alliance/A35Diabolos/A35DiabolosEnums.cs b/BossMod/Modules/Heavensward/Alliance/A35Diabolos/A35DiabolosEnums.cs index 1a2245eee1..4aa132cfe4 100644 --- a/BossMod/Modules/Heavensward/Alliance/A35Diabolos/A35DiabolosEnums.cs +++ b/BossMod/Modules/Heavensward/Alliance/A35Diabolos/A35DiabolosEnums.cs @@ -4,14 +4,57 @@ public enum OID : uint { Boss = 0x1908, // R3.000, x? Diabolos = 0x19A, // R0.500, x?, 523 type - Actor1ea250 = 0x1EA250, // R0.500, x?, EventObj type - Actor1ea268 = 0x1EA268, // R2.000, x?, EventObj type - Actor1ea265 = 0x1EA265, // R2.000, x?, EventObj type - Actor1ea267 = 0x1EA267, // R2.000, x?, EventObj type - Actor1ea291 = 0x1EA291, // R0.500, x?, EventObj type - Actor1e8fb8 = 0x1E8FB8, // R2.000, x?, EventObj type - Actor1ea251 = 0x1EA251, // R0.500, x?, EventObj type - Actor1ea2eb = 0x1EA2EB, // R2.000, x?, EventObj type - Actor1ea266 = 0x1EA266, // R2.000, x?, EventObj type - Actor1e8e9b = 0x1E8E9B, // R0.500, x?, EventObj type -} \ No newline at end of file + Deathgate = 0x190A, // R3.200, x0 (spawn during fight) + DiabolicGate = 0x190B, // R3.200, x0 (spawn during fight) + Shadowsphere = 0x19AF, // R1.500, x0 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 7742, // Boss->player, no cast, single-target + Blindside = 7208, // Boss->self, no cast, range 9+R ?-degree cone + CriticalGravity = 7767, // Shadowsphere->self, no cast, range 8+R circle + DeepFlow = 7189, // DiabolicGate->self, 28.0s cast, range 40 circle + DoubleEdge = 7211, // Boss->self, 3.0s cast, single-target + EarthShaker1 = 7209, // Boss->self, 4.0s cast, single-target + EarthShaker2 = 7210, // Diabolos->self, no cast, range 60+R ?-degree cone + HollowCamisado = 7193, // Boss->player, 3.0s cast, single-target + HollowNight = 7197, // Boss->players, no cast, range 8 circle + HollowNightmare = 7200, // Boss->self, 4.0s cast, range 50 circle + HollowOmen1 = 7202, // Boss->self, 15.0s cast, range 50 circle + HollowOmen2 = 7203, // Diabolos->self, 20.0s cast, range 30 circle + Hollowshield = 7198, // Boss->self, no cast, single-target + Nox1 = 7195, // Diabolos->location, no cast, range 10 circle + Nox2 = 7196, // Diabolos->location, 5.0s cast, range 10 circle + PavorInanis = 7199, // Boss->self, 4.0s cast, range 40 circle + Shadethrust = 7194, // Boss->location, 3.0s cast, range 40+R width 5 rect + UnknownAbility = 7192, // Boss->location, no cast, ??? + VoidCall = 7188, // Diabolos->self, 9.0s cast, single-target +} + +public enum SID : uint +{ + DiabolicCurse = 424, // Boss->player, extra=0x1 + Doom = 910, // Boss->player, extra=0x0 + FleshWound = 264, // Boss->player, extra=0x0 + HelpingHand = 368, // none->player, extra=0xA + Hysteria = 296, // Boss->player, extra=0x0 + Invincibility = 325, // none->DiabolicGate, extra=0x0 + Invincibility2 = 776, // none->player, extra=0x0 + Jackpot = 902, // none->player, extra=0xA + KeenEdge = 1145, // Boss->Boss, extra=0x0 + ReducedRates = 364, // none->player, extra=0x1E + TheHeatOfBattle = 365, // none->player, extra=0xA + Transcendent = 418, // none->player, extra=0x0 + VulnerabilityDown = 929, // Boss->Boss/Diabolos, extra=0x0 + Weakness = 43, // none->player, extra=0x0 + +} + +public enum IconID : uint +{ + Icon_197 = 197, // player + Icon_91 = 91, // player + Icon_93 = 93, // player + Icon_40 = 40, // player +} From f0495a8f39c06d565f1a3b427e6c4a0cc18c9f4d Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 10:05:58 -0500 Subject: [PATCH 2/9] Alzadaal and Fell Court --- .../Dungeon/D09Alzadaal/D091Ambujam.cs | 23 +++++++ .../Dungeon/D09Alzadaal/D092ArmoredChariot.cs | 41 ++++++++++++- .../Dungeon/D09Alzadaal/D093Kapikulu.cs | 42 +++++++++++++ .../Dungeon/D10FellCourt/D101EvilDreamers.cs | 60 ++++++++++++++++++- .../Dungeon/D10FellCourt/D102Beatrice.cs | 29 ++++++++- .../Dungeon/D10FellCourt/D103Scarmiglione.cs | 51 ++++++++++++++++ 6 files changed, 241 insertions(+), 5 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs index b7b00c1a6f..6fc9327552 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs @@ -3,6 +3,29 @@ public enum OID : uint { Boss = 0x3879, + Helper = 0x233C, + Unknown = 0x3931, // R4.400, x2 (spawn during fight) + Actor1e8f2f = 0x1E8F2F, // R0.500, x2 (spawn during fight), EventObj type + Actor1e8fb8 = 0x1E8FB8, // R2.000, x3 (spawn during fight), EventObj type + CyanTentacle = 0x387B, // R2.400, x1 + ScarletTentacle = 0x387A, // R2.400, x1 +} + +public enum AID : uint +{ + AutoAttack = 872, // Boss->player, no cast, single-target + BigWave = 28512, // Boss->self, 5.0s cast, range 40 circle + CorrosiveFountain = 29556, // Helper->self, 7.0s cast, range 8 circle + CorrosiveVenom1 = 29157, // CyanTentacle->self, no cast, single-target + CorrosiveVenom2 = 29158, // Helper->self, 2.5s cast, range 21 circle + TentacleDig1 = 28501, // Boss->self, 3.0s cast, single-target + TentacleDig2 = 28505, // Boss->self, 3.0s cast, single-target + ToxicFountain1 = 29466, // Boss->self, 4.0s cast, single-target + ToxicFountain2 = 29467, // Helper->self, 7.0s cast, range 8 circle + ToxinShower1 = 28507, // ScarletTentacle->self, no cast, single-target + ToxinShower2 = 28508, // Helper->self, 2.5s cast, range 21 circle + Unknown1 = 28502, // Boss->self, no cast, single-target + Unknown2 = 28506, // Boss->self, no cast, single-target } class D091AmbujamStates : StateMachineBuilder diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs index 8dee843547..60548af23a 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs @@ -3,6 +3,45 @@ public enum OID : uint { Boss = 0x386C, + Helper = 0x233C, // R0.500, x23, 523 type + Actor1eb69c = 0x1EB69C, // R0.500, x0 (spawn during fight), EventObj type + Unknown = 0x3932, // R7.000, x0 (spawn during fight) + ArmoredDrudge = 0x386D, // R1.800, x8 +} + +public enum AID : uint +{ + AutoAttack = 29132, // Boss->player, no cast, single-target + ArticulatedBits = 28441, // Boss->self, 3.0s cast, range 6 circle + Assail1 = 28456, // Boss->self, no cast, single-target + Assail2 = 28457, // Boss->self, no cast, single-target + AssaultCannon1 = 28442, // ArmoredDrudge->self, 8.0s cast, single-target + AssaultCannon2 = 28443, // ArmoredDrudge->self, 8.0s cast, single-target + AssaultCannon3 = 28444, // Helper->self, no cast, range 40 width 8 rect + AssaultCannon4 = 28445, // Helper->self, no cast, range 28 width 8 rect + CannonReflection1 = 28454, // Helper->self, 8.0s cast, single-target + CannonReflection2 = 28455, // Helper->self, no cast, range 30 ?-degree cone + DiffusionRay = 28446, // Boss->self, 5.0s cast, range 40 circle + GravitonCannon = 29555, // Helper->player, 8.5s cast, range 6 circle + UnknownAbility1 = 28448, // Boss->self, no cast, single-target + UnknownAbility2 = 28449, // Boss->self, no cast, single-target + UnknownAbility3 = 28450, // Boss->self, no cast, single-target + UnknownAbility4 = 28451, // Boss->self, no cast, single-target + UnknownAbility5 = 28452, // Boss->self, no cast, single-target + UnknownAbility6 = 28453, // Boss->self, no cast, single-target +} + +public enum SID : uint +{ + Electrocution1 = 3073, // none->player, extra=0x0 + UnknownStatus1 = 2552, // none->ArmoredDrudge, extra=0x180/0x181 + UnknownStatus2 = 2195, // none->Boss, extra=0x183/0x182 + Electrocution2 = 3074, // none->player, extra=0x0 +} + +public enum IconID : uint +{ + Icon_329 = 329, // player } class D092ArmoredChariotStates : StateMachineBuilder @@ -13,5 +52,5 @@ public D092ArmoredChariotStates(BossModule module) : base(module) } } -[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 844, NameID = 11239)] // +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", PrimaryActorOID = (uint)OID.Boss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 844, NameID = 11239)] // public class D092ArmoredChariot(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(0, -182), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs index e9da8a9dfc..683b7cc6dc 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs @@ -3,6 +3,48 @@ public enum OID : uint { Boss = 0x36C1, + Helper = 0x233C, // R0.500, x29, 523 type + Unknown = 0x3931, // R4.400, x2 (spawn during fight) +} + +public enum AID : uint +{ + AutoAttack = 870, // Boss->player, no cast, single-target + BastingBlade = 28520, // Boss->self, 5.5s cast, range 60 width 15 rect + BillowingBolts = 28528, // Boss->self, 5.0s cast, range 80 circle + CrewelSlice = 28530, // Boss->player, 5.0s cast, single-target + MagnitudeOpus1 = 28526, // Boss->self, 4.0s cast, single-target + MagnitudeOpus2 = 28527, // Helper->players, 5.0s cast, range 6 circle + ManaExplosion = 28523, // Helper->self, 3.0s cast, range 15 circle + PowerSerge = 28522, // Boss->self, 6.0s cast, single-target + SpinOut = 28515, // Boss->self, 3.0s cast, single-target + UnknownWeaponskill1 = 28516, // Helper->player, 4.5s cast, single-target + UnknownWeaponskill2 = 28517, // Boss->self, no cast, single-target + UnknownWeaponskill3 = 28518, // Helper->self, no cast, range 10 circle + UnknownWeaponskill4 = 28519, // Helper->self, 6.0s cast, range 6 width 6 rect + UnknownWeaponskill5 = 28529, // Helper->self, 5.0s cast, range 5 width 40 rect + UnkownAbility = 28514, // Boss->location, no cast, single-target + WildWeave = 28521, // Boss->self, 4.0s cast, single-target +} +public enum SID : uint +{ + Dizzy = 2974, // Boss->player, extra=0x0 + Fetters = 2975, // Boss->player, extra=0xEC4 + Spinning = 2973, // Boss->player, extra=0x7 + StabWound1 = 3061, // none->player, extra=0x0 + StabWound2 = 3062, // none->player, extra=0x0 + VulnerabilityUp = 1789, // Helper->player, extra=0x1 + +} +public enum IconID : uint +{ + Icon_218 = 218, // player + Icon_161 = 161, // player +} +public enum TetherID : uint +{ + Tether_177 = 177, // player->Boss + Tether_188 = 188, // Boss->Helper } class D093KapikuluStates : StateMachineBuilder diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs index cb5ee81c85..ade11c5a91 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs @@ -2,9 +2,36 @@ public enum OID : uint { - Boss = 0x3988, + EvilDreamer4 = 0x3966, // R2.400-4.800, x19 + EvilDreamer2 = 0x3967, // R2.400, x0-10 (spawn during fight) + EvilDreamer1 = 0x3988, // R2.400-7.200, x1 + EvilDreamer3 = 0x3968, // R3.600, x0-7 } +public enum AID : uint +{ + AutoAttack = 30246, // EvilDreamer1/EvilDreamer3/EvilDreamer4->player, no cast, single-target + UnknownAbility = 29623, // SmallerBoss->location, no cast, single-target + UniteMare1 = 29621, // SmallerBoss->self, 11.0s cast, range 6 circle + UniteMare2 = 29622, // SmallerBoss->self, 11.0s cast, range 6 circle + UniteMare3 = 29628, // EvilDreamer1->self, 10.0s cast, range 12 circle + DarkVision = 29627, // EvilDreamer4->self, 15.0s cast, range 41 width 5 rect + UnknownAbility2 = 29629, // EvilDreamer4->location, no cast, single-target + +} + +public enum SID : uint +{ + AreaOfInfluenceUp = 1749, // none->SmallerBoss, extra=0xC + HPBoost = 483, // none->SmallerBoss, extra=0x0 +} + +public enum TetherID : uint +{ + Tether_14 = 14, // SmallerBoss->SmallerBoss +} + + class D101EvilDreamersStates : StateMachineBuilder { public D101EvilDreamersStates(BossModule module) : base(module) @@ -13,5 +40,32 @@ public D101EvilDreamersStates(BossModule module) : base(module) } } -[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 869, NameID = 11382)] // 11383 -public class D101EvilDreamers(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(168, 0), 20)); \ No newline at end of file +[ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", PrimaryActorOID = (uint)OID.EvilDreamer1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 869, NameID = 11382)] // 11383 +public class D101EvilDreamers(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(168, 90), 20)) +{ + private Actor? _evilDreamer2; + private Actor? _evilDreamer3; + private Actor? _evilDreamer4; + + public Actor? EvilDreamer1() => PrimaryActor; + public Actor? EvilDreamer2() => _evilDreamer2; + public Actor? EvilDreamer3() => _evilDreamer3; + public Actor? EvilDreamer4() => _evilDreamer4; + + protected override void UpdateModule() + { + // TODO: this is an ugly hack, think how multi-actor fights can be implemented without it... + // the problem is that on wipe, any actor can be deleted and recreated in the same frame + _evilDreamer2 ??= StateMachine.ActivePhaseIndex == 0 ? Enemies(OID.EvilDreamer2).FirstOrDefault() : null; + _evilDreamer3 ??= StateMachine.ActivePhaseIndex == 0 ? Enemies(OID.EvilDreamer3).FirstOrDefault() : null; + _evilDreamer4 ??= StateMachine.ActivePhaseIndex == 0 ? Enemies(OID.EvilDreamer4).FirstOrDefault() : null; + } + + protected override void DrawEnemies(int pcSlot, Actor pc) + { + Arena.Actor(PrimaryActor, ArenaColor.Enemy); + Arena.Actor(_evilDreamer2, ArenaColor.Enemy); + Arena.Actor(_evilDreamer3, ArenaColor.Enemy); + Arena.Actor(_evilDreamer4, ArenaColor.Enemy); + } +} \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs index a973817a7e..f4b505c050 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs @@ -3,6 +3,33 @@ public enum OID : uint { Boss = 0x396D, + Actor1e8fb8 = 0x1E8FB8, // R2.000, x2 (spawn during fight), EventObj type + Actor1e8f2f = 0x1E8F2F, // R0.500, x1 (spawn during fight), EventObj type + Helper = 0x233C, // R0.500, x26, 523 type +} + +public enum AID : uint +{ + _AutoAttack_Attack = 872, // Boss->player, no cast, single-target + BeatificScorn1 = 29811, // Boss->self, 4.0s cast, single-target + BeatificScorn2 = 29814, // Boss->self, no cast, single-target + BeatificScorn3 = 29815, // Boss->self, no cast, single-target + BeatificScorn4 = 29816, // Boss->self, no cast, single-target + BeatificScorn5 = 29817, // Helper->self, 10.0s cast, range 9 circle + DeathForeseen1 = 29821, // Helper->self, 5.0s cast, range 40 circle + DeathForeseen2 = 29828, // Helper->self, 8.0s cast, range 40 circle + EyeOfTroia = 29818, // Boss->self, 4.0s cast, range 40 circle + Hush = 29824, // Boss->player, 5.0s cast, single-target + UnknownAbility1 = 29819, // Boss->self, no cast, single-target + UnknownAbility2 = 29820, // Boss->location, no cast, single-target + VoidNail = 29823, // Helper->player, 5.0s cast, range 6 circle + Voidshaker = 29822, // Boss->self, 5.0s cast, range 20 120-degree cone +} + +public enum IconID : uint +{ + _Gen_Icon_218 = 218, // player + _Gen_Icon_139 = 139, // player } class D102BeatriceStates : StateMachineBuilder @@ -14,4 +41,4 @@ public D102BeatriceStates(BossModule module) : base(module) } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 869, NameID = 11384)] // -public class D102Beatrice(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, -148), 20)); +public class D102Beatrice(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, -148), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs index e496878f41..8421475dd4 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs @@ -3,6 +3,57 @@ public enum OID : uint { Boss = 0x39C5, + Necroserf1 = 0x39C7, // R1.400, x8 + Necroserf2 = 0x39C6, // R1.400, x2 + Helper = 0x233C, // R0.500, x24, 523 type +} + +public enum AID : uint +{ + AutoAttack = 30258, // Boss->player, no cast, single-target + AutoAttackMob = 872, // Necroserf1->player, no cast, single-target + + BlightedBedevilment = 30235, // Boss->self, 4.9s cast, range 9 circle + BlightedBladework1 = 30259, // Boss->location, 10.0s cast, single-target + BlightedBladework2 = 30260, // Helper->self, 11.0s cast, range 25 circle + BlightedSweep = 30261, // Boss->self, 7.0s cast, range 40 180-degree cone + CorruptorsPitch1 = 30245, // Boss->self, no cast, single-target + CorruptorsPitch2 = 30247, // Helper->self, no cast, range 60 circle + CorruptorsPitch3 = 30248, // Helper->self, no cast, range 60 circle + CorruptorsPitch4 = 30249, // Helper->self, no cast, range 60 circle + CreepingDecay = 30240, // Boss->self, 4.0s cast, single-target + CursedEcho = 30257, // Boss->self, 4.0s cast, range 40 circle + Nox = 30241, // Helper->self, 5.0s cast, range 10 circle + RottenRampage1 = 30231, // Boss->self, 8.0s cast, single-target + RottenRampage2 = 30232, // Helper->location, 10.0s cast, range 6 circle + RottenRampage3 = 30233, // Helper->players, 10.0s cast, range 6 circle + UnknownAbility1 = 30237, // Boss->location, no cast, single-target + UnknownAbility2 = 30244, // Boss->self, no cast, single-target + UnknownWeaponskill = 30234, // Boss->self, no cast, single-target + VacuumWave = 30236, // Helper->self, 5.4s cast, range 40 circle + VoidVortex1 = 30243, // Helper->players, 5.0s cast, range 6 circle + VoidVortex2 = 30253, // Boss->self, no cast, single-target + VoidVortex3 = 30254, // Helper->players, 5.0s cast, range 6 circle +} + +public enum SID : uint +{ + Bleeding = 2088, // Boss->player, extra=0x0 + BrainRot = 3282, // Helper->player/39C8, extra=0x1 + VulnerabilityUp = 1789, // Helper->player, extra=0x4 + Weakness = 43, // none->player, extra=0x0 + Transcendent = 418, // none->player, extra=0x0 +} + +public enum IconID : uint +{ + Icon_353 = 353, // player + Icon_161 = 161, // player +} + +public enum TetherID : uint +{ + Tether_206 = 206, // Boss->3AE4 } class D103ScarmiglioneStates : StateMachineBuilder From 0d2c6baba286d5bb36e8286175878a0e0f393638 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:42:36 -0500 Subject: [PATCH 3/9] Basic Tower of Babil and Vanaspati support --- .../Dungeon/D02TowerOfBabil/D021Barnabas.cs | 27 ++++++++++++-- .../Dungeon/D02TowerOfBabil/D022Lugae.cs | 15 ++++++-- .../Dungeon/D02TowerOfBabil/D023Anima.cs | 35 ++++++++++++++----- .../Dungeon/D03Vanaspati/D031Snatcher.cs | 24 +++++++++++-- .../Dungeon/D03Vanaspati/D032Wrecker.cs | 25 ++++++++----- .../Dungeon/D03Vanaspati/D033Svarbhanu.cs | 30 +++++++++++----- .../Dungeon/D04TheVault/D042SerGrinnaux.cs | 2 +- 7 files changed, 126 insertions(+), 32 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs index 1b07a4b746..8afe75a335 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs @@ -1,4 +1,6 @@ -namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D021Barnabas; +using BossMod.Endwalker.Dungeon.D03Vanaspati.D032Wrecker; + +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D021Barnabas; public enum OID : uint { @@ -48,12 +50,33 @@ public enum TetherID : uint { Tether_28 = 28, // player->Boss } +class ElectromagneticRelease1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ElectromagneticRelease1), new AOEShapeRect(40, 3)); +class ElectromagneticRelease2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ElectromagneticRelease2), new AOEShapeCircle(8)); + +class GroundAndPound1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.GroundAndPound1), new AOEShapeRect(40, 6)); +class GroundAndPound2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.GroundAndPound2), new AOEShapeRect(40, 6)); + +class DynamicPound(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.DynamicPound), new AOEShapeRect(40, 6)); +class DynamicScrapline(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.DynamicScrapline), new AOEShapeCircle(8)); +class RollingScrapline(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.RollingScrapline), new AOEShapeCircle(6)); +class Shock(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Shock), new AOEShapeCircle(8)); +class ShockingForce(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.ShockingForce), 6, 8); + class D021BarnabasStates : StateMachineBuilder { public D021BarnabasStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs index c17de9a49b..52e61764d6 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs @@ -30,13 +30,24 @@ public enum SID : uint Toad = 2671, // none->player, extra=0x1B1 } +class ThermalSuppression(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.ThermalSuppression)); +class MagitekMissile(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.MagitekMissile), 6); +class Explosion(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Explosion), new AOEShapeCross(40, 4)); +class SurfaceMissile(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.SurfaceMissile), 6); +class MightyBlow(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.MightyBlow), new AOEShapeRect(40, 4)); + class D022LugaeStates : StateMachineBuilder { public D022LugaeStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + //.ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 785, NameID = 10281)] // 10282 -public class D022Lugae(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(221, 306), 20)); \ No newline at end of file +public class D022Lugae(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(220, 306), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs index d36950bc59..b2af524ac1 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs @@ -1,4 +1,6 @@ -namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; +using BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; + +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; public enum OID : uint { @@ -15,7 +17,7 @@ public enum OID : uint public enum AID : uint { AutoAttack = 25341, // Boss->player, no cast, single-target - AetherialPull = 25345, // MegaGraviton->player, 8.0s cast, single-target + AetherialPull = 25345, // MegaGraviton->player, 8.0s cast, single-target Knockback towardsorigin 30 BoundlessPain1 = 25347, // Boss->self, 8.0s cast, single-target BoundlessPain2 = 25348, // Helper->location, no cast, range 6 circle BoundlessPain3 = 25349, // Helper->location, no cast, range 6 circle @@ -26,17 +28,17 @@ public enum AID : uint MegaGraviton = 25344, // Boss->self, 5.0s cast, range 60 circle ObliviatingClaw1 = 25354, // LowerAnima->self, 3.0s cast, single-target ObliviatingClaw2 = 25355, // LowerAnima->self, 3.0s cast, single-target - ObliviatingClaw3 = 25356, // IronNail->self, 6.0s cast, range 3 circle + ObliviatingClawSpawnAOE = 25356, // IronNail->self, 6.0s cast, range 3 circle Oblivion1 = 23697, // Helper->location, no cast, range 60 circle Oblivion2 = 23872, // Helper->location, no cast, range 60 circle Oblivion3 = 25359, // LowerAnima->self, 6.0s cast, single-target - PaterPatriae1 = 24168, // Helper->self, 3.5s cast, range 60 width 8 rect + PaterPatriaeAOE = 24168, // Helper->self, 3.5s cast, range 60 width 8 rect PaterPatriae2 = 25350, // Boss->self, 3.5s cast, single-target PhantomPain1 = 21182, // Boss->self, 7.0s cast, single-target PhantomPain2 = 25343, // Helper->self, 7.0s cast, range 20 width 20 rect - Unknown1 = 23929, // Helper->player, no cast, single-target - Unknown2 = 26229, // Helper->self, no cast, range 60 circle - Unknown3 = 27228, // LowerAnima->self, no cast, single-target + Unknown1 = 23929, // Helper->player, no cast, single-target Knockback 60 + Unknown2 = 26229, // Helper->self, no cast, range 60 circle Knockback towards origin 60 + Unknown3 = 27228, // LowerAnima->self, no cast, single-target } public enum SID : uint @@ -57,13 +59,30 @@ public enum TetherID : uint Tether_17 = 17, // MegaGraviton->player Tether_22 = 22, // Helper->Boss } +class CoffinScratch(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.CoffinScratch), 3); + +class PhantomPain2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PhantomPain2), new AOEShapeRect(20, 10)); +class PaterPatriaeAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PaterPatriaeAOE), new AOEShapeRect(60, 4)); +class CharnelClaw(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.CharnelClaw), new AOEShapeRect(40, 2.5f)); + +class ObliviatingClawSpawnAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ObliviatingClawSpawnAOE), new AOEShapeCircle(3)); +class AetherialPull(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.AetherialPull), 30, kind: Kind.TowardsOrigin); +class MegaGraviton(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.MegaGraviton)); +class Imperatum(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Imperatum)); class D023AnimaStates : StateMachineBuilder { public D023AnimaStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + //.ActivateOnEnter() //chasing aoe + //.ActivateOnEnter() //bad squares, for some reason offset by 5 so displaying incorrectly + //.ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs index a832370e1e..1c1e0ad33a 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs @@ -1,4 +1,6 @@ -namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; +using BossMod.Endwalker.Variant.V01SS.V015ThorneKnight; + +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; public enum OID : uint { @@ -30,14 +32,30 @@ public enum IconID : uint Icon_304 = 304, // player } +class WhatIsLeft(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.WhatIsLeft), new AOEShapeCone(40, 90.Degrees())); +class WhatIsRight(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.WhatIsRight), new AOEShapeCone(40, 90.Degrees())); +class LostHope(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LostHope), new AOEShapeCircle(20)); +class Vitriol(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Vitriol), new AOEShapeCircle(13)); +class NoteOfDespair(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.NoteOfDespair)); +class Wallow(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.Wallow), 6); +class LastGasp(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.LastGasp)); + class D031SnatcherStates : StateMachineBuilder { public D031SnatcherStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 789, NameID = 10717)] // 11049 -public class D031Snatcher(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-375, 80), 20)); \ No newline at end of file +public class D031Snatcher(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-375, 85), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs index f2c624d1e4..6984fdd89d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D032Wrecker.cs @@ -10,13 +10,13 @@ public enum OID : uint public enum AID : uint { AutoAttack = 870, // Boss->player, no cast, single-target - AetherSiphon1 = 25145, // Boss->self, 3.0s cast, single-target - AetherSiphon2 = 25146, // Boss->self, 3.0s cast, single-target - AetherSpray1 = 25147, // Boss->location, 7.0s cast, range 30 circle - AetherSpray2 = 25148, // Boss->location, 7.0s cast, range 30 circle + AetherSiphonFire = 25145, // Boss->self, 3.0s cast, single-target + AetherSiphonWater = 25146, // Boss->self, 3.0s cast, single-target + AetherSprayFire = 25147, // Boss->location, 7.0s cast, range 30 circle Raidwide + AetherSprayWater = 25148, // Boss->location, 7.0s cast, range 30 circle Knockback MeaninglessDestruction = 25153, // Boss->self, 5.0s cast, range 100 circle - PoisonHeart1 = 25151, // Boss->self, 5.0s cast, single-target - PoisonHeart2 = 27851, // Helper->players, 5.0s cast, range 6 circle + PoisonHeartVisual = 25151, // Boss->self, 5.0s cast, single-target + PoisonHeartStack = 27851, // Helper->players, 5.0s cast, range 6 circle TotalWreck = 25154, // Boss->player, 5.0s cast, single-target UnholyWater = 27852, // Boss->self, 3.0s cast, single-target Withdraw = 27847, // 3731->player, 1.0s cast, single-target @@ -38,13 +38,22 @@ public enum IconID : uint Icon_161 = 161, // player } +class MeaninglessDestruction(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.MeaninglessDestruction)); +class PoisonHeartStack(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.PoisonHeartStack), 6, 8); +class TotalWreck(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.TotalWreck)); +class AetherSprayWater(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.AetherSprayWater), 13, shape: new AOEShapeCircle(30)); + class D032WreckerStates : StateMachineBuilder { public D032WreckerStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 789, NameID = 10718)] // 11052 -public class D032Wrecker(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-287, -354), 20)); \ No newline at end of file +public class D032Wrecker(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-295, -355), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs index 3d654aa9cb..d207f1ba6b 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs @@ -1,4 +1,6 @@ -namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D033Svarbhanu; +using BossMod.Endwalker.Dungeon.D03Vanaspati.D032Wrecker; + +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D033Svarbhanu; public enum OID : uint { @@ -13,16 +15,16 @@ public enum AID : uint ChaoticPulse = 27489, // Boss->self, no cast, single-target ChaoticUndercurrent1 = 25162, // Helper->self, no cast, range 40 width 10 rect ChaoticUndercurrent2 = 25163, // Helper->self, no cast, range 40 width 10 rect - CosmicKiss1 = 25167, // Helper->location, 3.0s cast, range 6 circle - CosmicKiss2 = 25168, // Helper->player, 8.0s cast, range 6 circle - CosmicKiss3 = 25169, // Helper->location, 6.0s cast, range 100 circle + CosmicKissAOE = 25167, // Helper->location, 3.0s cast, range 6 circle + CosmicKissSpread = 25168, // Helper->player, 8.0s cast, range 6 circle + CosmicKissKnockback = 25169, // Helper->location, 6.0s cast, range 100 circle knockback 13 CrumblingSky = 25166, // Boss->self, 3.0s cast, single-target FlamesOfDecay = 25170, // Boss->self, 5.0s cast, range 40 circle GnashingOfTeeth = 25171, // Boss->player, 5.0s cast, single-target Unknown1 = 25161, // Boss->self, no cast, single-target Unknown2 = 25164, // Helper->self, no cast, single-target - Unknown3 = 25374, // Helper->self, no cast, range 50 width 10 rect - Unknown4= 25165, // Helper->self, no cast, single-target + Unknown3 = 25374, // Helper->self, no cast, range 50 width 10 rect Knockback + Unknown4 = 25165, // Helper->self, no cast, single-target } public enum SID : uint @@ -39,13 +41,25 @@ public enum IconID : uint Icon_218 = 218, // player } +class CosmicKissSpread(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.CosmicKissSpread), 6); +class CosmicKissAOE(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.CosmicKissAOE), 6); +class CosmicKissKnockback(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.CosmicKissKnockback), 13, shape: new AOEShapeCircle(100)); +class FlamesOfDecay(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.FlamesOfDecay)); +class GnashingOfTeeth(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.GnashingOfTeeth)); + class D033SvarbhanuStates : StateMachineBuilder { public D033SvarbhanuStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 789, NameID = 10719)] // -public class D033Svarbhanu(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(300, -157), 20)); \ No newline at end of file +public class D033Svarbhanu(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(300, -157), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Heavensward/Dungeon/D04TheVault/D042SerGrinnaux.cs b/BossMod/Modules/Heavensward/Dungeon/D04TheVault/D042SerGrinnaux.cs index 442b86f695..7d3056c039 100644 --- a/BossMod/Modules/Heavensward/Dungeon/D04TheVault/D042SerGrinnaux.cs +++ b/BossMod/Modules/Heavensward/Dungeon/D04TheVault/D042SerGrinnaux.cs @@ -49,7 +49,7 @@ public enum TetherID : uint } class DimensionalRip(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.DimensionalRip), 5); -class FaithUnmoving(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.FaithUnmoving), 20, shape: new AOEShapeCircle(80)); +class FaithUnmoving(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.FaithUnmoving), 20, shape: new AOEShapeCircle(80), stopAtWall: true); class Rive(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Rive), new AOEShapeRect(30, 1)); class StellarImplosion(BossModule module) : Components.PersistentVoidzoneAtCastTarget(module, 5, ActionID.MakeSpell(AID.StellarImplosion), m => m.Enemies(OID.StellarImplodeArea).Where(v => v.EventState != 7), 0); From b9eda45c875f996bab0b283ffe6e4439478d5267 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:45:37 -0500 Subject: [PATCH 4/9] Ktisis Hyperboreia basic support --- .../Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs | 37 ++++++++++----- .../Endwalker/Dungeon/D04Ktisis/D042Ladon.cs | 45 +++++++++++++----- .../Endwalker/Dungeon/D04Ktisis/D043Hermes.cs | 47 +++++++++++++++++-- 3 files changed, 100 insertions(+), 29 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs index b8ecfcfd61..8e0fecadf2 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs @@ -1,4 +1,6 @@ -namespace BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; +using BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; + +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; public enum OID : uint { @@ -10,15 +12,15 @@ public enum OID : uint public enum AID : uint { AutoAttack = 6497, // Boss->player, no cast, single-target - FrigidStomp = 25181, // Boss->self, 5.0s cast, range 50 circle + FrigidStomp = 25181, // Boss->self, 5.0s cast, range 50 circle //Raidwide FrostbiteAndSeek = 25175, // Boss->self, 3.0s cast, single-target - HeavySmash = 25180, // Boss->players, 5.0s cast, range 6 circle - IcePillar = 25179, // IcePillar->self, 3.0s cast, range 4 circle - Icicall = 25178, // Boss->self, 3.0s cast, single-target - PillarPierce = 25375, // IcePillar->self, 5.0s cast, range 80 width 4 rect - PunishingSlice1 = 25176, // Boss->self, no cast, single-target - PunishingSlice2 = 25177, // Helper->self, 2.0s cast, range 50 width 50 rect - SkullDasher = 25182, // Boss->player, 5.0s cast, single-target + HeavySmash = 25180, // Boss->players, 5.0s cast, range 6 circle //Stack + IcePillar = 25179, // IcePillar->self, 3.0s cast, range 4 circle //SelfAOE + Icicall = 25178, // Boss->self, 3.0s cast, single-target //Ice Spawn + PillarPierceAOE = 25375, // IcePillar->self, 5.0s cast, range 80 width 4 rect + PunishingSliceVisual = 25176, // Boss->self, no cast, single-target + PunishingSliceAOE = 25177, // Helper->self, 2.0s cast, range 50 width 50 rect + SkullDasher = 25182, // Boss->player, 5.0s cast, single-target // Tankbuster Unknown = 28304, // Helper->self, no cast, single-target } @@ -27,14 +29,27 @@ public enum IconID : uint Icon_218 = 218, // player Icon_62 = 62, // player } +class PillarPierceAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PillarPierceAOE), new AOEShapeRect(40, 2)); +class PunishingSliceAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PunishingSliceAOE), new AOEShapeRect(50, 50)); +class IcePillar(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.IcePillar), new AOEShapeCircle(4)); + +class HeavySmash(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.HeavySmash), 6, 8); +class SkullDasher(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.SkullDasher)); +class FrigidStomp(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.FrigidStomp)); class D041LyssaStates : StateMachineBuilder { public D041LyssaStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 787, NameID = 10396)] // -public class D041Lyssa(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-134, 54), 20)); \ No newline at end of file +public class D041Lyssa(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-144, 49), 30)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs index 924d3e290f..95610a0f8c 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs @@ -1,4 +1,6 @@ -namespace BossMod.Endwalker.Dungeon.D04Ktisis.D042Ladon; +using BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; + +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D042Ladon; public enum OID : uint { @@ -10,18 +12,18 @@ public enum OID : uint public enum AID : uint { AutoAttack = 872, // Boss->player, no cast, single-target - Inhale1 = 25732, // Boss->self, 4.0s cast, single-target - Inhale2 = 25915, // Boss->self, no cast, single-target - Intimidation = 25741, // Boss->self, 6.0s cast, range 40 circle - PyricBlast = 25742, // Boss->players, 4.0s cast, range 6 circle - PyricBreath1 = 25734, // Boss->self, 7.0s cast, range 40 ?-degree cone - PyricBreath2 = 25735, // Boss->self, 7.0s cast, range 40 ?-degree cone - PyricBreath3 = 25736, // Boss->self, 7.0s cast, range 40 ?-degree cone + Inhale1 = 25732, // Boss->self, 4.0s cast, single-target //Indicator + Inhale2 = 25915, // Boss->self, no cast, single-target //Indicator + IntimidationRaidwide = 25741, // Boss->self, 6.0s cast, range 40 circle //Raidwide + PyricBlastStack = 25742, // Boss->players, 4.0s cast, range 6 circle //Stack + PyricBreathFront = 25734, // Boss->self, 7.0s cast, range 40 120-degree cone + PyricBreathLeft = 25735, // Boss->self, 7.0s cast, range 40 120-degree cone + PyricBreathRight = 25736, // Boss->self, 7.0s cast, range 40 120-degree cone PyricBreath4 = 25737, // Boss->self, no cast, range 40 ?-degree cone PyricBreath5 = 25738, // Boss->self, no cast, range 40 ?-degree cone - PyricSphere1 = 25744, // PyricSphere->self, 5.0s cast, single-target - PyricSphere2 = 25745, // Helper->self, 10.0s cast, range 50 width 4 cross - Scratch = 25743, // Boss->player, 5.0s cast, single-target + PyricSphereVisual = 25744, // PyricSphere->self, 5.0s cast, single-target + PyricSphereAOE = 25745, // Helper->self, 10.0s cast, range 50 width 4 cross //Cross + ScratchTankbuster = 25743, // Boss->player, 5.0s cast, single-target //Tankbuster UnknownAbility = 25733, // Boss->location, no cast, single-target UnknownSpell = 25740, // Boss->self, no cast, ??? } @@ -40,14 +42,31 @@ public enum IconID : uint Icon_218 = 218, // player Icon_62 = 62, // player } +class PyricSphereAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PyricSphereAOE), new AOEShapeCross(50, 2)); + +class PyricBreathFront(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PyricBreathFront), new AOEShapeCone(40, 60.Degrees())); +class PyricBreathLeft(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PyricBreathLeft), new AOEShapeCone(40, 60.Degrees())); +class PyricBreathRight(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.PyricBreathRight), new AOEShapeCone(40, 60.Degrees())); + + +class PyricBlastStack(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.PyricBlastStack), 6, 8); +class ScratchTankbuster(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.ScratchTankbuster)); +class IntimidationRaidwide(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.IntimidationRaidwide)); class D042LadonStates : StateMachineBuilder { public D042LadonStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 787, NameID = 10398)] // -public class D042Ladon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, 48), 20)); \ No newline at end of file +public class D042Ladon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(0, 48), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs index f5162c8ff6..8c375130b1 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D043Hermes.cs @@ -12,27 +12,35 @@ public enum AID : uint AutoAttack = 872, // Boss->player, no cast, single-target CosmicKiss = 25891, // Meteor->self, 5.0s cast, range 40 circle Double = 25892, // Boss->self, 3.0s cast, single-target + Hermetica1 = 25888, // Boss->self, 3.0s cast, single-target Hermetica2 = 25893, // Boss->self, 6.0s cast, single-target Hermetica3 = 25895, // Boss->self, 12.0s cast, single-target + Meteor = 25890, // Boss->self, 3.0s cast, single-target Quadruple = 25894, // Boss->self, 3.0s cast, single-target - Trismegistos = 25886, // Boss->self, 5.0s cast, range 40 circle + Trismegistos = 25886, // Boss->self, 5.0s cast, range 40 circle // Raidwide + TrueAero1 = 25899, // Boss->self, 5.0s cast, single-target TrueAero2 = 25900, // Helper->player, no cast, range 40 width 6 rect TrueAero3 = 25901, // Helper->self, 2.5s cast, range 40 width 6 rect + TrueAeroII1 = 25896, // Boss->self, 5.0s cast, single-target TrueAeroII2 = 25897, // Helper->player, 5.0s cast, range 6 circle TrueAeroII3 = 25898, // Helper->location, 3.5s cast, range 6 circle + TrueAeroIV1 = 25889, // 348B->self, 4.0s cast, range 50 width 10 rect TrueAeroIV2 = 27836, // 348B->self, 4.0s cast, range 50 width 10 rect TrueAeroIV3 = 27837, // 348B->self, 10.0s cast, range 50 width 10 rect + TrueBravery = 25907, // Boss->self, 5.0s cast, single-target - TrueTornado1 = 25902, // Boss->self, 5.0s cast, single-target + + TrueTornado1 = 25902, // Boss->self, 5.0s cast, single-target // Tankbuster TrueTornado2 = 25903, // Boss->self, no cast, single-target TrueTornado3 = 25904, // Boss->self, no cast, single-target - TrueTornado4 = 25905, // Helper->player, no cast, range 4 circle - TrueTornado5 = 25906, // Helper->location, 2.5s cast, range 4 circle + TrueTornado4 = 25905, // Helper->player, no cast, range 4 circle //Tankbuster + TrueTornado5 = 25906, // Helper->location, 2.5s cast, range 4 circle //LocationBaitedAOE + UnknownAbility = 25887, // Helper->player, no cast, single-target } @@ -54,12 +62,41 @@ public enum TetherID : uint { Tether_160 = 160, // 348B->Boss } +class TrueAero2(BossModule module) : Components.BaitAwayCast(module, ActionID.MakeSpell(AID.TrueAero2), new AOEShapeRect(20, 3)); +class TrueAero3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.TrueAero2), new AOEShapeRect(20, 3)); + +class TrueAeroII2(BossModule module) : Components.BaitAwayCast(module, ActionID.MakeSpell(AID.TrueAeroII2), new AOEShapeCircle(6)); +class TrueAeroII3(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.TrueAeroII3), 6); + +class TrueAeroIV1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.TrueAeroIV1), new AOEShapeRect(25, 5)); +class TrueAeroIV2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.TrueAeroIV2), new AOEShapeRect(25, 5)); +class TrueAeroIV3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.TrueAeroIV3), new AOEShapeRect(25, 5)); + +class TrueTornado1(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.TrueTornado1)); +class TrueTornado4(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.TrueTornado4)); +class TrueTornado5(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.TrueTornado5), 4); + +class Trismegistos(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Trismegistos)); class D043HermesStates : StateMachineBuilder { public D043HermesStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + //.ActivateOnEnter() + //.ActivateOnEnter() + + //.ActivateOnEnter() + //.ActivateOnEnter() + + //.ActivateOnEnter() + //.ActivateOnEnter() + //.ActivateOnEnter() + + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } From 63832be825345eabe22e4f85453eacc594f005c1 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 13:27:43 -0500 Subject: [PATCH 5/9] The Aitiascope basic support --- .../Dungeon/D02TowerOfBabil/D021Barnabas.cs | 4 +- .../Dungeon/D02TowerOfBabil/D023Anima.cs | 4 +- .../Dungeon/D03Vanaspati/D031Snatcher.cs | 4 +- .../Dungeon/D03Vanaspati/D033Svarbhanu.cs | 4 +- .../Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs | 4 +- .../Endwalker/Dungeon/D04Ktisis/D042Ladon.cs | 4 +- .../Dungeon/D05Aitiascope/D051Livia.cs | 39 +++++++++++--- .../Dungeon/D05Aitiascope/D052Rhitahtyn.cs | 29 ++++++++--- .../Dungeon/D05Aitiascope/D053Amon.cs | 52 +++++++++++++++---- 9 files changed, 102 insertions(+), 42 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs index 8afe75a335..40edfed293 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs @@ -1,6 +1,4 @@ -using BossMod.Endwalker.Dungeon.D03Vanaspati.D032Wrecker; - -namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D021Barnabas; +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D021Barnabas; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs index b2af524ac1..fa83eea388 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs @@ -1,6 +1,4 @@ -using BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; - -namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; +namespace BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs index 1c1e0ad33a..d49ea1da57 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs @@ -1,6 +1,4 @@ -using BossMod.Endwalker.Variant.V01SS.V015ThorneKnight; - -namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D031Snatcher; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs index d207f1ba6b..945a369f3e 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs @@ -1,6 +1,4 @@ -using BossMod.Endwalker.Dungeon.D03Vanaspati.D032Wrecker; - -namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D033Svarbhanu; +namespace BossMod.Endwalker.Dungeon.D03Vanaspati.D033Svarbhanu; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs index 8e0fecadf2..d7a63fa360 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D041Lyssa.cs @@ -1,6 +1,4 @@ -using BossMod.Endwalker.Dungeon.D02TowerOfBabil.D023Anima; - -namespace BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs index 95610a0f8c..e72a6c4567 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D04Ktisis/D042Ladon.cs @@ -1,6 +1,4 @@ -using BossMod.Endwalker.Dungeon.D04Ktisis.D041Lyssa; - -namespace BossMod.Endwalker.Dungeon.D04Ktisis.D042Ladon; +namespace BossMod.Endwalker.Dungeon.D04Ktisis.D042Ladon; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs index f175f2a96f..505db8d77c 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D051Livia.cs @@ -9,17 +9,23 @@ public enum OID : uint public enum AID : uint { AutoAttack = 24771, // Boss->player, no cast, single-target - AglaeaBite = 25673, // Boss->self/player, 5.0s cast, range 9 ?-degree cone + AglaeaBite = 25673, // Boss->self/player, 5.0s cast, range 9 ?-degree cone //Tankbuster + AglaeaClimb1 = 25666, // Boss->self, 7.0s cast, single-target AglaeaClimb2 = 25667, // Boss->self, 7.0s cast, single-target - AglaeaClimb3 = 25668, // Helper->self, 7.0s cast, range 20 90-degree cone + AglaeaClimbAOE = 25668, // Helper->self, 7.0s cast, range 20 90-degree cone + AglaeaShot1 = 25669, // Boss->self, 3.0s cast, single-target - AglaeaShot2 = 25670, // 346A->location, 3.0s cast, range 20 width 4 rect - AglaeaShot3 = 25671, // 346A->location, 1.0s cast, range 40 width 4 rect + AglaeaShotAOE1 = 25670, // 346A->location, 3.0s cast, range 20 width 4 rect + AglaeaShotAOE2 = 25671, // 346A->location, 1.0s cast, range 40 width 4 rect + Disparagement = 25674, // Boss->self, 5.0s cast, range 40 120-degree cone - Frustration = 25672, // Boss->self, 5.0s cast, range 40 circle + + Frustration = 25672, // Boss->self, 5.0s cast, range 40 circle //Raidwide + IgnisAmoris = 25676, // Helper->location, 4.0s cast, range 6 circle IgnisOdi = 25677, // Helper->players, 5.0s cast, range 6 circle + OdiEtAmo = 25675, // Boss->self, 3.0s cast, single-target } @@ -34,13 +40,32 @@ public enum IconID : uint Icon_161 = 161, // player } +class AglaeaShotAOE1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.AglaeaShotAOE1), new AOEShapeRect(20, 3)); +class AglaeaShotAOE2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.AglaeaShotAOE2), new AOEShapeRect(20, 3)); + +class AglaeaClimbAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.AglaeaClimbAOE), new AOEShapeCone(20, 45.Degrees())); +class Disparagement(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Disparagement), new AOEShapeCone(40, 60.Degrees())); + +class IgnisOdi(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.IgnisOdi), 6, 8); +class IgnisAmoris(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.IgnisAmoris), 6); +class Frustration(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Frustration)); +class AglaeaBite(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.AglaeaBite)); + class D051LiviaStates : StateMachineBuilder { public D051LiviaStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 786, NameID = 10290)] // -public class D051Livia(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-6, 470), 20)); \ No newline at end of file +public class D051Livia(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-6, 471), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs index 0bfdc344d9..729955f744 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D052Rhitahtyn.cs @@ -12,14 +12,17 @@ public enum OID : uint public enum AID : uint { AutoAttack = 870, // Boss->player, no cast, single-target - AnvilOfTartarus = 25686, // Boss->player, 5.0s cast, single-target + AnvilOfTartarus = 25686, // Boss->player, 5.0s cast, single-target //Tankbuster Impact = 25679, // Helper->self, 4.0s cast, range 14 width 40 rect + ShieldSkewer = 25680, // Boss->location, 11.0s cast, range 40 width 14 rect - ShrapnelShell1 = 25682, // Boss->self, 3.0s cast, single-target - ShrapnelShell2 = 25684, // Helper->location, 3.5s cast, range 5 circle - TartareanImpact = 25685, // Boss->self, 5.0s cast, range 60 circle + ShrapnelShellVisual = 25682, // Boss->self, 3.0s cast, single-target + ShrapnelShellAOE = 25684, // Helper->location, 3.5s cast, range 5 circle + + TartareanImpact = 25685, // Boss->self, 5.0s cast, range 60 circle //Raidwide TartareanSpark = 25687, // Boss->self, 3.0s cast, range 40 width 6 rect - UnknownAbility = 25688, // Boss->location, no cast, single-target + + UnknownAbility = 25688, // Boss->location, no cast, single-target //Likely Teleport UnknownWeaponskill = 25683, // 346C/346D->self, no cast, single-target Vexillatio = 25678, // Boss->self, 4.0s cast, single-target } @@ -40,13 +43,25 @@ public enum TetherID : uint Tether_161 = 161, // 35DA->Boss } +class Impact(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Impact), new AOEShapeRect(14, 20)); +class ShrapnelShellAOE(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.ShrapnelShellAOE), 6); +class TartareanSpark(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.TartareanSpark), new AOEShapeRect(40, 3)); + +class AnvilOfTartarus(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.AnvilOfTartarus)); +class TartareanImpact(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.TartareanImpact)); + class D052RhitahtynStates : StateMachineBuilder { public D052RhitahtynStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 786, NameID = 10292)] // -public class D052Rhitahtyn(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(10, 180), 20)); \ No newline at end of file +public class D052Rhitahtyn(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(11, 144), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs index 8f991b2387..e24203eac6 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D05Aitiascope/D053Amon.cs @@ -12,19 +12,26 @@ public enum AID : uint { AutoAttack = 24712, // Boss->player, no cast, single-target Antistrophe = 25694, // Boss->self, 3.0s cast, single-target - CurtainCall = 25702, // Boss->self, 32.0s cast, range 40 circle - DarkForte = 25700, // Boss->player, 5.0s cast, single-target + CurtainCall = 25702, // Boss->self, 32.0s cast, range 40 circle //Lethal Raidwide, needs to hide behind Ice + + DarkForte = 25700, // Boss->player, 5.0s cast, single-target //Tankbuster + Entracte = 25701, // Boss->self, 5.0s cast, range 40 circle //Raidwide + DreamsOfIce = 27756, // Helper->self, 14.7s cast, range 6 circle - Entracte = 25701, // Boss->self, 5.0s cast, range 40 circle Epode = 25695, // Helper->self, 8.0s cast, range 70 width 12 rect - EruptionForte1 = 24709, // Boss->self, 3.0s cast, single-target - EruptionForte2 = 25704, // Helper->location, 4.0s cast, range 8 circle + + EruptionForteVisual = 24709, // Boss->self, 3.0s cast, single-target + EruptionForteAOE = 25704, // Helper->location, 4.0s cast, range 8 circle // BaitedAOE + LeftFiragaForte = 25697, // Boss->self, 7.0s cast, range 40 width 20 rect RightFiragaForte = 25696, // Boss->self, 7.0s cast, range 40 width 20 rect + Strophe = 25693, // Boss->self, 3.0s cast, single-target - ThundagaForte1 = 25690, // Boss->location, 5.0s cast, range 40 circle - ThundagaForte2 = 25691, // Helper->self, 5.0s cast, range 20 ?-degree cone - ThundagaForte3 = 25692, // Helper->self, 11.0s cast, range 20 ?-degree cone + + ThundagaForte1 = 25690, // Boss->location, 5.0s cast, range 40 circle //proximity-based AoE + ThundagaForte2 = 25691, // Helper->self, 5.0s cast, range 20 45-degree cone + ThundagaForte3 = 25692, // Helper->self, 11.0s cast, range 20 45-degree cone + Unknown = 25703, // YsaylesSpirit->self, no cast, single-target } @@ -33,13 +40,38 @@ public enum IconID : uint Icon_218 = 218, // player } +class DreamsOfIce(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.DreamsOfIce), new AOEShapeCircle(6)); +class Epode(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Epode), new AOEShapeRect(70, 6)); + +class EruptionForteAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.EruptionForteAOE), new AOEShapeCircle(8)); + +class LeftFiragaForte(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LeftFiragaForte), new AOEShapeRect(40, 10)); +class RightFiragaForte(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.RightFiragaForte), new AOEShapeRect(40, 10)); + +class ThundagaForte1(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.ThundagaForte1), 15); +class ThundagaForte2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ThundagaForte2), new AOEShapeCone(20, 22.6f.Degrees())); +class ThundagaForte3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ThundagaForte3), new AOEShapeCone(20, 22.6f.Degrees())); + +class DarkForte(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.DarkForte)); +class Entracte(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Entracte)); + class D053AmonStates : StateMachineBuilder { public D053AmonStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + //.ActivateOnEnter() + //.ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 786, NameID = 10293)] // -public class D053Amon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, -500), 20)); \ No newline at end of file +public class D053Amon(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(11, -490), 20)); \ No newline at end of file From 09fd7a3916c95739cb4365f9a73ba8c600a42c48 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 15:21:29 -0500 Subject: [PATCH 6/9] Basic support for Vanaspati, Dead Ends, and Smileton --- .../Dungeon/D03Vanaspati/D031Snatcher.cs | 1 - .../Dungeon/D03Vanaspati/D033Svarbhanu.cs | 1 - .../Dungeon/D06DeadEnds/D061Grebuloff.cs | 41 +++++++++++++++---- .../Dungeon/D06DeadEnds/D062Peacekeeper.cs | 31 +++++++++++--- .../Endwalker/Dungeon/D06DeadEnds/D063Rala.cs | 40 ++++++++++++++---- .../Endwalker/Dungeon/D07Smileton/D071Face.cs | 25 +++++++---- .../Dungeon/D07Smileton/D072Frameworker.cs | 22 +++++++--- .../Dungeon/D07Smileton/D073BigCheese.cs | 39 ++++++++++++++---- 8 files changed, 155 insertions(+), 45 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs index d49ea1da57..41d0ce56e4 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs @@ -48,7 +48,6 @@ public D031SnatcherStates(BossModule module) : base(module) .ActivateOnEnter() .ActivateOnEnter() .ActivateOnEnter() - .ActivateOnEnter() .ActivateOnEnter() .ActivateOnEnter() .ActivateOnEnter(); diff --git a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs index 945a369f3e..7318040e47 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D033Svarbhanu.cs @@ -53,7 +53,6 @@ public D033SvarbhanuStates(BossModule module) : base(module) .ActivateOnEnter() .ActivateOnEnter() .ActivateOnEnter() - .ActivateOnEnter() .ActivateOnEnter() .ActivateOnEnter(); } diff --git a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs index 8409d7c675..b513de6c79 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D061Grebuloff.cs @@ -2,25 +2,25 @@ public enum OID : uint { - Boss = 0x34C4, - Helper = 0x233C, + Boss = 0x34C4, // R6.650, x1 + Helper = 0x233C, // R0.500, x12 (spawn during fight), 523 type WeepingMiasma = 0x34C5, // R1.000, x0 (spawn during fight) } public enum AID : uint { AutoAttack = 872, // Boss->player, no cast, single-target - Befoulment1 = 25923, // Boss->self, 5.0s cast, single-target - Befoulment2 = 25924, // Helper->player, 5.2s cast, range 6 circle - BlightedWater1 = 25921, // Boss->self, 5.0s cast, single-target - BlightedWater2 = 25922, // Helper->players, 5.2s cast, range 6 circle + Befoulment = 25923, // Boss->self, 5.0s cast, single-target + BefoulmentSpread = 25924, // Helper->player, 5.2s cast, range 6 circle //Spread mechanic + BlightedWater = 25921, // Boss->self, 5.0s cast, single-target + BlightedWaterStack = 25922, // Helper->players, 5.2s cast, range 6 circle //Stack mechanic CertainSolitude = 28349, // Boss->self, no cast, range 40 circle CoughUp1 = 25917, // Boss->self, 4.0s cast, single-target - CoughUp2 = 25918, // Helper->location, 4.0s cast, range 6 circle + CoughUpAOE = 25918, // Helper->location, 4.0s cast, range 6 circle Miasmata = 25916, // Boss->self, 5.0s cast, range 40 circle NecroticFluid = 25919, // WeepingMiasma->self, 6.5s cast, range 6 circle NecroticMist = 28348, // Helper->location, 1.3s cast, range 6 circle - PoxFlail = 25920, // Boss->player, 5.0s cast, single-target + PoxFlail = 25920, // Boss->player, 5.0s cast, single-target //Tankbuster WaveOfNausea = 28347, // Boss->self, 5.5s cast, range ?-40 donut } @@ -42,11 +42,34 @@ public enum IconID : uint Icon_139 = 139, // player } +class BefoulmentSpread(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.BefoulmentSpread), 6); +class BlightedWaterStack(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.BlightedWaterStack), 6, 8); + +class CoughUpAOE(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.CoughUpAOE), 6); +class NecroticMist(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.NecroticMist), 6); + +class NecroticFluid(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.NecroticFluid), new AOEShapeCircle(6)); +class WaveOfNausea(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.WaveOfNausea), new AOEShapeDonut(8, 30)); + +class PoxFlail(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.PoxFlail)); + +class CertainSolitude(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.CertainSolitude)); +class Miasmata(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Miasmata)); + class D061GrebuloffStates : StateMachineBuilder { public D061GrebuloffStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs index 2aee0fa28a..aba7e0f223 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D062Peacekeeper.cs @@ -11,13 +11,13 @@ public enum OID : uint public enum AID : uint { AutoAttack = 25977, // Boss->player, no cast, single-target - Decimation = 25936, // Boss->self, 5.0s cast, range 40 circle + Decimation = 25936, // Boss->self, 5.0s cast, range 40 circle //Raidwide DisengageHatch = 28356, // Boss->self, no cast, single-target EclipsingExhaust = 25931, // Boss->self, 5.0s cast, range 40 circle - ElectromagneticRepellant = 28360, // Boss->self, 4.0s cast, range 9 circle - Elimination = 25935, // Boss->self/player, 5.0s cast, range 46 width 10 rect - InfantryDeterrent1 = 28358, // Boss->self, no cast, single-target - InfantryDeterrent2 = 28359, // Helper->player, 5.0s cast, range 6 circle + ElectromagneticRepellant = 28360, // Boss->self, 4.0s cast, range 9 circle //Danger AOE in boss hitbox + Elimination = 25935, // Boss->self/player, 5.0s cast, range 46 width 10 rect //Tankbuster + InfantryDeterrent = 28358, // Boss->self, no cast, single-target + InfantryDeterrentAOE = 28359, // Helper->player, 5.0s cast, range 6 circle NoFuture1 = 25925, // Boss->self, 4.0s cast, single-target NoFuture2 = 25927, // Helper->self, 4.0s cast, range 6 circle NoFuture3 = 25928, // Helper->player, 5.0s cast, range 6 circle @@ -43,12 +43,31 @@ public enum IconID : uint Icon_139 = 139, // player Icon_230 = 230, // player } +class InfantryDeterrentAOE(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.InfantryDeterrentAOE), 6); +class NoFuture3(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.NoFuture3), 6); + +class NoFuture2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.NoFuture2), new AOEShapeCircle(6)); +class Peacefire2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Peacefire2), new AOEShapeCircle(10)); + +class SmallBoreLaser(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SmallBoreLaser), new AOEShapeRect(20, 2)); + +class Elimination(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.Elimination)); +class Decimation(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.Decimation)); +class EclipsingExhaust(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.EclipsingExhaust)); class D062PeacekeeperStates : StateMachineBuilder { public D062PeacekeeperStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs index e5b765fa79..3d55f60c64 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D06DeadEnds/D063Rala.cs @@ -11,20 +11,20 @@ public enum AID : uint { AutoAttack = 870, // Boss->player, no cast, single-target Benevolence1 = 25945, // Boss->self, 5.0s cast, single-target - Benevolence2 = 25946, // Helper->players, 5.4s cast, range 6 circle + BenevolenceStack = 25946, // Helper->players, 5.4s cast, range 6 circle //Stack mechanic LamellarLight1 = 25939, // Helper->self, 6.0s cast, range 15 circle LamellarLight2 = 25942, // GoldenWings->self, 3.0s cast, single-target - LamellarLight3 = 25951, // Helper->self, 3.0s cast, range 40 width 4 rect + LamellarLight3 = 25951, // Helper->self, 3.0s cast, range 40 width 4 rect //LineAOE Lifesbreath = 25940, // Boss->self, 4.0s cast, range 50 width 10 rect - LovingEmbrace1 = 25943, // Boss->self, 7.0s cast, range 45 180-degree cone - LovingEmbrace2 = 25944, // Boss->self, 7.0s cast, range 45 180-degree cone - Pity = 25949, // Boss->player, 5.0s cast, single-target + LovingEmbraceLeft = 25943, // Boss->self, 7.0s cast, range 45 180-degree cone //Cleave + LovingEmbraceRight = 25944, // Boss->self, 7.0s cast, range 45 180-degree cone //Cleave + Pity = 25949, // Boss->player, 5.0s cast, single-target //Tankbuster Prance1 = 25937, // Boss->location, 5.0s cast, single-target Prance2 = 25938, // Boss->location, no cast, single-target StillEmbrace1 = 25947, // Boss->self, 5.0s cast, single-target - StillEmbrace2 = 25948, // Helper->player, 5.4s cast, range 6 circle + StillEmbraceSpread = 25948, // Helper->player, 5.4s cast, range 6 circle //Spread mechanic Unknown = 25941, // Boss->location, no cast, single-target - WarmGlow = 25950, // Boss->self, 5.0s cast, range 40 circle + WarmGlow = 25950, // Boss->self, 5.0s cast, range 40 circle //Raidwide } public enum SID : uint @@ -41,14 +41,36 @@ public enum IconID : uint Icon_62 = 62, // player Icon_139 = 139, // player } +class LamellarLight1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LamellarLight1), new AOEShapeCircle(15)); +class Lifesbreath(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Lifesbreath), new AOEShapeRect(50, 5)); +class LamellarLight3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LamellarLight3), new AOEShapeRect(40, 2)); + + +class StillEmbraceSpread(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.StillEmbraceSpread), 6); +class BenevolenceStack(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.BenevolenceStack), 6, 8); + +class LovingEmbraceLeft(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LovingEmbraceLeft), new AOEShapeCone(45, 90.Degrees())); +class LovingEmbraceRight(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LovingEmbraceRight), new AOEShapeCone(45, 90.Degrees())); + +class Pity(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.Pity)); +class WarmGlow(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.WarmGlow)); class D063RalaStates : StateMachineBuilder { public D063RalaStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 792, NameID = 10316)] // -public class D063Rala(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-380, -145), 20)); \ No newline at end of file +public class D063Rala(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-380, -135), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs index 596b58f2cc..f507750259 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D071Face.cs @@ -10,14 +10,18 @@ public enum OID : uint public enum AID : uint { AutoAttack = 26433, // Boss->player, no cast, single-target - FrownyFace = 26422, // RelativelySmallFace->self, 7.0s cast, range 45 width 6 rect LinesOfFire = 26421, // Boss->self, 3.0s cast, single-target - MixedFeelings = 26424, // Helper->self, 7.0s cast, range 60 width 2 rect + OffMyLawn1 = 26430, // Boss->self, 5.0s cast, single-target - OffMyLawn2 = 27742, // Helper->self, 5.0s cast, range 31 width 30 rect + OffMyLawnKnockback = 27742, // Helper->self, 5.0s cast, range 31 width 30 rect //Knockback 8 + + MixedFeelings = 26424, // Helper->self, 7.0s cast, range 60 width 2 rect + FrownyFace = 26422, // RelativelySmallFace->self, 7.0s cast, range 45 width 6 rect SmileyFace = 26423, // RelativelySmallFace->self, 7.0s cast, range 45 width 6 rect - TempersFlare = 26435, // Boss->self, 5.0s cast, range 60 circle - TemperTemper = 26432, // Helper->player, 5.0s cast, range 5 circle + + TempersFlare = 26435, // Boss->self, 5.0s cast, range 60 circle //Raidwide + TemperTemperSpread = 26432, // Helper->player, 5.0s cast, range 5 circle //Spread mechanic + UnknownAbility1 = 26426, // RelativelySmallFace->self, no cast, single-target UnknownAbility2 = 26427, // RelativelySmallFace->self, no cast, single-target UnknownAbility3 = 26428, // RelativelySmallFace->self, no cast, single-target @@ -45,14 +49,21 @@ public enum TetherID : uint { Tether_169 = 169, // 34D0->Boss } +class OffMyLawnKnockback(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.OffMyLawnKnockback), 8, kind: Kind.DirForward, stopAtWall: true); +class TemperTemperSpread(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.TemperTemperSpread), 5); + +class TempersFlare(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.TempersFlare)); class D071FaceStates : StateMachineBuilder { public D071FaceStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 794, NameID = 10331)] // -public class D071Face(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-45, -0), 20)); \ No newline at end of file +public class D071Face(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(-45, -20), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs index 9a138c873f..268583a2e4 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D072Frameworker.cs @@ -13,11 +13,11 @@ public enum OID : uint public enum AID : uint { AutoAttack = 870, // Boss->player, no cast, single-target - CircularSaw = 26437, // Boss->self, 5.0s cast, range 40 circle + CircularSaw = 26437, // Boss->self, 5.0s cast, range 40 circle //Raidwide LeapForward1 = 26438, // Boss->location, 7.0s cast, range 15 circle LeapForward2 = 26439, // PrintedWorker->location, 7.0s cast, range 15 circle - OmnidimensionalOnslaught1 = 26440, // Boss->self, 5.0s cast, single-target - OmnidimensionalOnslaught2 = 26441, // Helper->self, 5.0s cast, range 40 45-degree cone + OmnidimensionalOnslaughtVisual = 26440, // Boss->self, 5.0s cast, single-target + OmnidimensionalOnslaughtAOE = 26441, // Helper->self, 5.0s cast, range 40 45-degree cone PrintWorkers1 = 26443, // SmileySupporter->self, no cast, single-target PrintWorkers2 = 28092, // Boss->self, 3.0s cast, single-target UnknownAbility = 26442, // Helper->Boss, no cast, single-target @@ -33,13 +33,25 @@ public enum TetherID : uint Tether_23 = 23, // SmileySupporter->Boss } +class OmnidimensionalOnslaughtAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.OmnidimensionalOnslaughtAOE), new AOEShapeCone(40, 22.5f.Degrees())); + +class LeapForward1(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.LeapForward1), 15); +class LeapForward2(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.LeapForward2), 15); + +//class SteelBeam(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.SteelBeam)); +class CircularSaw(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.CircularSaw)); + class D072FrameworkerStates : StateMachineBuilder { public D072FrameworkerStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 794, NameID = 10333)] // -public class D072Frameworker(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(65, -110), 20)); \ No newline at end of file +public class D072Frameworker(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(64, -112), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs index f163ea6c9e..f4a0cefdb7 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D07Smileton/D073BigCheese.cs @@ -13,16 +13,22 @@ public enum AID : uint { AutoAttack = 26444, // Boss->player, no cast, single-target DispenseExplosives = 27696, // Boss->self, 3.0s cast, single-target - ElectricArc = 26451, // Boss->players, 5.0s cast, range 8 circle + ElectricArc = 26451, // Boss->players, 5.0s cast, range 8 circle //Stack mechanic + Excavated = 27698, // ExcavationBomb1->self, no cast, range 8 circle ExplosivePower = 27697, // Boss->self, 3.0s cast, single-target ExplosivesDistribution = 26446, // Boss->self, 3.0s cast, single-target + IronKiss = 26445, // Bomb->location, 1.5s cast, range 16 circle - LeftDisassembler = 26448, // Boss->self, 8.0s cast, range 30 width 10 rect + + RightDisassembler = 26447, // Boss->self, 8.0s cast, range 30 width 10 rect //Cleave + LeftDisassembler = 26448, // Boss->self, 8.0s cast, range 30 width 10 rect //Cleave + LevelingMissile1 = 26452, // Boss->self, 5.0s cast, single-target - LevelingMissile2 = 26453, // Helper->player, 5.0s cast, range 6 circle - PiercingMissile = 26449, // Boss->player, 5.0s cast, single-target - RightDisassembler = 26447, // Boss->self, 8.0s cast, range 30 width 10 rect + LevelingMissile2 = 26453, // Helper->player, 5.0s cast, range 6 circle //spread mechanic + + PiercingMissile = 26449, // Boss->player, 5.0s cast, single-target //Tankbuster + UnknownAbility = 27700, // ExcavationBomb1->self, no cast, single-target } @@ -39,13 +45,32 @@ public enum IconID : uint Icon_139 = 139, // player } +class RightDisassembler(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.RightDisassembler), new AOEShapeRect(30, 5)); +class LeftDisassembler(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.LeftDisassembler), new AOEShapeRect(30, 5)); + +class LevelingMissile2(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.LevelingMissile2), 6); +class ElectricArc(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.ElectricArc), 6, 8); + +class Excavated(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Excavated), new AOEShapeCircle(8)); + +class IronKiss(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.IronKiss), 16); + +class PiercingMissile(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.PiercingMissile)); + class D073BigCheeseStates : StateMachineBuilder { public D073BigCheeseStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + //.ActivateOnEnter() + //.ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 794, NameID = 10336)] // -public class D073BigCheese(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-46, -30), 20)); \ No newline at end of file +public class D073BigCheese(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(-22, -44), 14.5f, 10)); \ No newline at end of file From 8c9e973308a5117b9683db0585f2d2a940b154b7 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:02:30 -0500 Subject: [PATCH 7/9] Basic StigmaDreamscape support --- .../Dungeon/D08Stigma/D081ProtoOmega.cs | 24 ++++++-- .../Dungeon/D08Stigma/D082ArchLambda.cs | 28 +++++++-- .../Dungeon/D08Stigma/D083Stigma4.cs | 61 +++++++++++++++---- 3 files changed, 92 insertions(+), 21 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs index 8f95a0e992..37cc5c1154 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D081ProtoOmega.cs @@ -14,9 +14,9 @@ public enum AID : uint AutoAttack = 872, // Boss->player, no cast, single-target Burn = 25385, // Helper->player, no cast, range 6 circle ChemicalMissile = 25384, // Boss->self, 3.0s cast, single-target - ElectricSlide = 25386, // Boss->players, 5.0s cast, range 6 circle - GuidedMissile = 25382, // Boss->self, 3.0s cast, single-target - IronKiss = 25383, // MarkIIGuidedMissile->self, no cast, range 3 circle + ElectricSlide = 25386, // Boss->players, 5.0s cast, range 6 circle //Stack+Knockback + GuidedMissile = 25382, // Boss->self, 3.0s cast, single-target //Tethered bait away + IronKiss = 25383, // MarkIIGuidedMissile->self, no cast, range 3 circle MustardBomb = 25387, // Boss->player, 5.0s cast, range 5 circle SideCannons1 = 25376, // Boss->self, 7.0s cast, range 60 180-degree cone SideCannons2 = 25377, // Boss->self, 7.0s cast, range 60 180-degree cone @@ -41,14 +41,28 @@ public enum TetherID : uint { Tether_17 = 17, // MarkIIGuidedMissile->player } +class ElectricSlideKnockback(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.ElectricSlide), 15, stopAtWall: true); +class ElectricSlide(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.ElectricSlide), 6, 8); +class IronKiss(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.IronKiss), new AOEShapeCircle(3)); + +class SideCannons1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SideCannons1), new AOEShapeCone(60, 90.Degrees())); +class SideCannons2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.SideCannons2), new AOEShapeCone(60, 90.Degrees())); + +class MustardBomb(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.MustardBomb)); class D081ProtoOmegaStates : StateMachineBuilder { public D081ProtoOmegaStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 784, NameID = 10401)] // -public class D081ProtoOmega(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(-150, -140), 20)); \ No newline at end of file +public class D081ProtoOmega(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(-144, -136), 20)); \ No newline at end of file diff --git a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs index 2e317fbc3f..d408bcb06a 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D082ArchLambda.cs @@ -8,17 +8,17 @@ public enum OID : uint public enum AID : uint { AutoAttack = 872, // Boss->player, no cast, single-target - AtomicFlame = 25524, // Boss->self, 5.0s cast, range 40 circle + AtomicFlame = 25524, // Boss->self, 5.0s cast, range 40 circle //Raidwide AutoMobileAssaultCannon = 25515, // Boss->self, 5.9s cast, single-target AutoMobileSniperCannon1 = 25520, // Boss->location, 7.0s cast, single-target - AutoMobileSniperCannon2 = 25522, // Helper->self, no cast, range 40 width 6 rect + AutoMobileSniperCannon2 = 25522, // Helper->self, no cast, range 40 width 6 rect Entrench = 25521, // Helper->self, 7.5s cast, range 41 width 8 rect Tread1 = 25516, // Boss->location, no cast, width 8 rect charge Tread2 = 25517, // Boss->location, no cast, width 8 rect charge Unknown1 = 25514, // Boss->location, no cast, single-target Unknown2 = 25518, // Helper->location, 1.5s cast, width 8 rect charge WaveCannon = 25519, // Boss->self, 2.5s cast, range 40 180-degree cone - Wheel = 25525, // Boss->player, 5.0s cast, single-target + Wheel = 25525, // Boss->player, 5.0s cast, single-target //Tankbuster } public enum SID : uint @@ -34,11 +34,31 @@ public enum IconID : uint Icon_80 = 80, // player/Helper } +class Tread1(BossModule module) : Components.ChargeAOEs(module, ActionID.MakeSpell(AID.Tread1), 4); +class Tread2(BossModule module) : Components.ChargeAOEs(module, ActionID.MakeSpell(AID.Tread2), 4); +class Unknown2(BossModule module) : Components.ChargeAOEs(module, ActionID.MakeSpell(AID.Unknown2), 4); + +class AutoMobileSniperCannon2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.AutoMobileSniperCannon2), new AOEShapeRect(40, 3)); +class Entrench(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Entrench), new AOEShapeRect(41, 4)); + +class WaveCannon(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.WaveCannon), new AOEShapeCone(40, 90.Degrees())); + +class AtomicFlame(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.AtomicFlame)); +class Wheel(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.Wheel)); + class D082ArchLambdaStates : StateMachineBuilder { public D082ArchLambdaStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs index 728a120887..0e2de79a3a 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D08Stigma/D083Stigma4.cs @@ -2,29 +2,38 @@ public enum OID : uint { - Boss = 0x3428, - Helper = 0x233C, + Boss = 0x3428, // R6.990, x1 + Helper = 0x233C, // R0.500, x2, 523 type OmegaFrame = 0x342A, // R8.995, x0 (spawn during fight) HybridDragon = 0x342B, // R5.000, x0 (spawn during fight) ProtoRocketPunch = 0x3429, // R2.500, x0 (spawn during fight) } + public enum AID : uint { AITakeover = 25641, // Boss->self, 5.0s cast, single-target - AtomicRay = 25654, // Boss->self, 5.0s cast, range 50 circle - ElectromagneticRelease1 = 25649, // Boss->self, no cast, single-target - ElectromagneticRelease2 = 25650, // Helper->self, 10.0s cast, range ?-60 donut - ElectromagneticRelease3 = 25651, // Boss->self, no cast, single-target - ElectromagneticRelease4 = 25652, // Helper->self, 10.0s cast, range 16 circle + AtomicRay = 25654, // Boss->self, 5.0s cast, range 50 circle //Raidwide + + ElectromagneticReleaseInVisual = 25649, // Boss->self, no cast, single-target + ElectromagneticReleaseIn = 25650, // Helper->self, 10.0s cast, range 7-60 donut + ElectromagneticReleaseOutVisual = 25651, // Boss->self, no cast, single-target + ElectromagneticReleaseOut = 25652, // Helper->self, 10.0s cast, range 16 circle + FireBreath = 25646, // HybridDragon->self, 7.0s cast, range 40 120-degree cone - Mindhack = 25648, // Boss->self, 5.0s cast, range 50 circle + + Mindhack = 25648, // Boss->self, 5.0s cast, range 50 circle //Raidwide and forced march MultiAITakeover = 27723, // Boss->self, 5.0s cast, single-target + Plasmafodder = 25653, // Helper->player, no cast, single-target + ProtoWaveCannon1 = 25642, // OmegaFrame->self, 7.0s cast, range 60 180-degree cone ProtoWaveCannon2 = 25643, // OmegaFrame->self, 7.0s cast, range 60 180-degree cone + Rush = 25645, // ProtoRocketPunch->location, 5.0s cast, width 5 rect charge - SelfDestruct1 = 25644, // OmegaFrame->self, 15.0s cast, range 60 circle - SelfDestruct2 = 25647, // HybridDragon->self, 15.0s cast, range 60 circle + + SelfDestructOmega = 25644, // OmegaFrame->self, 15.0s cast, range 60 circle + SelfDestructDragon = 25647, // HybridDragon->self, 15.0s cast, range 60 circle + Touchdown = 26873, // HybridDragon->self, 2.0s cast, range 7 circle } @@ -39,13 +48,41 @@ public enum SID : uint Bleeding = 2088, // Boss->player, extra=0x0 } +class Mindhack(BossModule module) : Components.StatusDrivenForcedMarch(module, 2, (uint)SID.ForwardMarch, (uint)SID.AboutFace, (uint)SID.LeftFace, (uint)SID.RightFace, activationLimit: 8); + +class ElectromagneticReleaseIn(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ElectromagneticReleaseIn), new AOEShapeDonut(7, 60)); +class ElectromagneticReleaseOut(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ElectromagneticReleaseOut), new AOEShapeCircle(16)); + +class FireBreath(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.FireBreath), new AOEShapeCone(40, 60.Degrees())); +class Touchdown(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Touchdown), new AOEShapeCircle(7)); + +class ProtoWaveCannon1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ProtoWaveCannon1), new AOEShapeCone(60, 90.Degrees())); +class ProtoWaveCannon2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ProtoWaveCannon2), new AOEShapeCone(60, 90.Degrees())); + +class Rush(BossModule module) : Components.ChargeAOEs(module, ActionID.MakeSpell(AID.Rush), 2.5f); + +class SelfDestructOmega(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.SelfDestructOmega)); +class SelfDestructDragon(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.SelfDestructDragon)); +class AtomicRay(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.AtomicRay)); + class D083Stigma4States : StateMachineBuilder { public D083Stigma4States(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 784, NameID = 10404)] // -public class D083Stigma4(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)); \ No newline at end of file +public class D083Stigma4(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsSquare(new(0, 2.5f), 20)); \ No newline at end of file From b9439e870104364dbd84c0f403dd52968479da6a Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:58:41 -0500 Subject: [PATCH 8/9] basic Alzadaal legacy support --- .../Dungeon/D09Alzadaal/D091Ambujam.cs | 29 ++++++++++----- .../Dungeon/D09Alzadaal/D092ArmoredChariot.cs | 36 ++++++++++++------- .../Dungeon/D09Alzadaal/D093Kapikulu.cs | 34 +++++++++++++++--- 3 files changed, 74 insertions(+), 25 deletions(-) diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs index 6fc9327552..fcf09d653d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D091Ambujam.cs @@ -14,25 +14,38 @@ public enum OID : uint public enum AID : uint { AutoAttack = 872, // Boss->player, no cast, single-target - BigWave = 28512, // Boss->self, 5.0s cast, range 40 circle + BigWave = 28512, // Boss->self, 5.0s cast, range 40 circle //Raidwide CorrosiveFountain = 29556, // Helper->self, 7.0s cast, range 8 circle - CorrosiveVenom1 = 29157, // CyanTentacle->self, no cast, single-target - CorrosiveVenom2 = 29158, // Helper->self, 2.5s cast, range 21 circle + CorrosiveVenomVisual = 29157, // CyanTentacle->self, no cast, single-target + CorrosiveVenomAOE = 29158, // Helper->self, 2.5s cast, range 21 circle TentacleDig1 = 28501, // Boss->self, 3.0s cast, single-target TentacleDig2 = 28505, // Boss->self, 3.0s cast, single-target - ToxicFountain1 = 29466, // Boss->self, 4.0s cast, single-target - ToxicFountain2 = 29467, // Helper->self, 7.0s cast, range 8 circle - ToxinShower1 = 28507, // ScarletTentacle->self, no cast, single-target - ToxinShower2 = 28508, // Helper->self, 2.5s cast, range 21 circle + ToxicFountainVisual = 29466, // Boss->self, 4.0s cast, single-target + ToxicFountainAOE = 29467, // Helper->self, 7.0s cast, range 8 circle + ToxinShowerVisual = 28507, // ScarletTentacle->self, no cast, single-target + ToxinShowerAOE = 28508, // Helper->self, 2.5s cast, range 21 circle Unknown1 = 28502, // Boss->self, no cast, single-target Unknown2 = 28506, // Boss->self, no cast, single-target } + +class CorrosiveFountain(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.CorrosiveFountain), new AOEShapeCircle(8)); +class CorrosiveVenomAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.CorrosiveVenomAOE), new AOEShapeCircle(21)); +class ToxicFountainAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ToxicFountainAOE), new AOEShapeCircle(8)); +class ToxinShowerAOE(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ToxinShowerAOE), new AOEShapeCircle(21)); + +class BigWave(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.BigWave)); + class D091AmbujamStates : StateMachineBuilder { public D091AmbujamStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs index 60548af23a..88a0a71a4d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D092ArmoredChariot.cs @@ -12,23 +12,31 @@ public enum OID : uint public enum AID : uint { AutoAttack = 29132, // Boss->player, no cast, single-target - ArticulatedBits = 28441, // Boss->self, 3.0s cast, range 6 circle - Assail1 = 28456, // Boss->self, no cast, single-target - Assail2 = 28457, // Boss->self, no cast, single-target - AssaultCannon1 = 28442, // ArmoredDrudge->self, 8.0s cast, single-target - AssaultCannon2 = 28443, // ArmoredDrudge->self, 8.0s cast, single-target - AssaultCannon3 = 28444, // Helper->self, no cast, range 40 width 8 rect - AssaultCannon4 = 28445, // Helper->self, no cast, range 28 width 8 rect - CannonReflection1 = 28454, // Helper->self, 8.0s cast, single-target - CannonReflection2 = 28455, // Helper->self, no cast, range 30 ?-degree cone - DiffusionRay = 28446, // Boss->self, 5.0s cast, range 40 circle - GravitonCannon = 29555, // Helper->player, 8.5s cast, range 6 circle + + ArticulatedBits = 28441, // Boss->self, 3.0s cast, range 6 circle //Persistent AOE under boss + + AssaultCannonVisual1First = 28442, // ArmoredDrudge->self, 8.0s cast, single-target + AssaultCannonVisual2First = 28443, // ArmoredDrudge->self, 8.0s cast, single-target + + AssaultCannonAOE1Rest = 28444, // Helper->self, no cast, range 40 width 8 rect + AssaultCannonAOE2Rest = 28445, // Helper->self, no cast, range 28 width 8 rect + + DiffusionRay = 28446, // Boss->self, 5.0s cast, range 40 circle //Raidwide + UnknownAbility1 = 28448, // Boss->self, no cast, single-target UnknownAbility2 = 28449, // Boss->self, no cast, single-target UnknownAbility3 = 28450, // Boss->self, no cast, single-target UnknownAbility4 = 28451, // Boss->self, no cast, single-target UnknownAbility5 = 28452, // Boss->self, no cast, single-target UnknownAbility6 = 28453, // Boss->self, no cast, single-target + + CannonReflectionVisualFirst = 28454, // Helper->self, 8.0s cast, single-target + CannonReflectionAOERest = 28455, // Helper->self, no cast, range 30 ?-degree cone + Assail1 = 28456, // Boss->self, no cast, single-target + Assail2 = 28457, // Boss->self, no cast, single-target + + GravitonCannon = 29555, // Helper->player, 8.5s cast, range 6 circle //Spread marker + //Rail Cannon tankbuster not listed } public enum SID : uint @@ -43,12 +51,16 @@ public enum IconID : uint { Icon_329 = 329, // player } +class DiffusionRay(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.DiffusionRay)); +class GravitonCannon(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.GravitonCannon), 6); class D092ArmoredChariotStates : StateMachineBuilder { public D092ArmoredChariotStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs index 683b7cc6dc..0e21e4dc4f 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D09Alzadaal/D093Kapikulu.cs @@ -11,10 +11,10 @@ public enum AID : uint { AutoAttack = 870, // Boss->player, no cast, single-target BastingBlade = 28520, // Boss->self, 5.5s cast, range 60 width 15 rect - BillowingBolts = 28528, // Boss->self, 5.0s cast, range 80 circle - CrewelSlice = 28530, // Boss->player, 5.0s cast, single-target + BillowingBolts = 28528, // Boss->self, 5.0s cast, range 80 circle //Raidwide + CrewelSlice = 28530, // Boss->player, 5.0s cast, single-target //Tankbuster MagnitudeOpus1 = 28526, // Boss->self, 4.0s cast, single-target - MagnitudeOpus2 = 28527, // Helper->players, 5.0s cast, range 6 circle + MagnitudeOpus2 = 28527, // Helper->players, 5.0s cast, range 6 circle //Stack marker ManaExplosion = 28523, // Helper->self, 3.0s cast, range 15 circle PowerSerge = 28522, // Boss->self, 6.0s cast, single-target SpinOut = 28515, // Boss->self, 3.0s cast, single-target @@ -25,6 +25,8 @@ public enum AID : uint UnknownWeaponskill5 = 28529, // Helper->self, 5.0s cast, range 5 width 40 rect UnkownAbility = 28514, // Boss->location, no cast, single-target WildWeave = 28521, // Boss->self, 4.0s cast, single-target + + //Missing Rotary Gale, spread marker mechanic } public enum SID : uint { @@ -47,13 +49,35 @@ public enum TetherID : uint Tether_188 = 188, // Boss->Helper } +class ManaExplosion(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.ManaExplosion), new AOEShapeCircle(15)); + +class BastingBlade(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BastingBlade), new AOEShapeRect(60, 7.5f)); + +class UnknownWeaponskill3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.UnknownWeaponskill3), new AOEShapeCircle(10)); +class UnknownWeaponskill4(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.UnknownWeaponskill4), new AOEShapeRect(6, 3)); +class UnknownWeaponskill5(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.UnknownWeaponskill5), new AOEShapeRect(5, 20)); + +class MagnitudeOpus2(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.MagnitudeOpus2), 6, 8); +//class RotaryGale(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.RotaryGale), 6); + +class CrewelSlice(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.CrewelSlice)); +class BillowingBolts(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.BillowingBolts)); + class D093KapikuluStates : StateMachineBuilder { public D093KapikuluStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "CombatReborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 844, NameID = 11238)] -public class D093Kapikulu(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(110, -68), 20, 15)); \ No newline at end of file +public class D093Kapikulu(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(110, -68), 15, 20)); \ No newline at end of file From acdeede91dfb70f6ce4a1a2fcbaabade5e835b23 Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:24:02 -0500 Subject: [PATCH 9/9] basic Fell Court support --- BossMod/BossMod.csproj | 18 ------- .../Dungeon/D10FellCourt/D101EvilDreamers.cs | 12 ++++- .../Dungeon/D10FellCourt/D102Beatrice.cs | 50 ++++++++++++++----- .../Dungeon/D10FellCourt/D103Scarmiglione.cs | 43 ++++++++++++++-- 4 files changed, 85 insertions(+), 38 deletions(-) diff --git a/BossMod/BossMod.csproj b/BossMod/BossMod.csproj index f70bcf8b98..1472c9ea93 100644 --- a/BossMod/BossMod.csproj +++ b/BossMod/BossMod.csproj @@ -20,15 +20,6 @@ true - - - - - - - - - @@ -39,15 +30,6 @@ - - - - - - - - - diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs index ade11c5a91..2f14ab123e 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D101EvilDreamers.cs @@ -17,7 +17,7 @@ public enum AID : uint UniteMare3 = 29628, // EvilDreamer1->self, 10.0s cast, range 12 circle DarkVision = 29627, // EvilDreamer4->self, 15.0s cast, range 41 width 5 rect UnknownAbility2 = 29629, // EvilDreamer4->location, no cast, single-target - + // Void Gravity missing, stack marker mechanic } public enum SID : uint @@ -31,12 +31,20 @@ public enum TetherID : uint Tether_14 = 14, // SmallerBoss->SmallerBoss } +class UniteMare1(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.UniteMare1), new AOEShapeCircle(6)); +class UniteMare2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.UniteMare2), new AOEShapeCircle(6)); +class UniteMare3(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.UniteMare3), new AOEShapeCircle(12)); +class DarkVision(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.DarkVision), new AOEShapeRect(41, 2.5f)); class D101EvilDreamersStates : StateMachineBuilder { public D101EvilDreamersStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs index f4b505c050..b54050a353 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D102Beatrice.cs @@ -10,33 +10,57 @@ public enum OID : uint public enum AID : uint { - _AutoAttack_Attack = 872, // Boss->player, no cast, single-target - BeatificScorn1 = 29811, // Boss->self, 4.0s cast, single-target - BeatificScorn2 = 29814, // Boss->self, no cast, single-target - BeatificScorn3 = 29815, // Boss->self, no cast, single-target - BeatificScorn4 = 29816, // Boss->self, no cast, single-target + AutoAttack = 872, // Boss->player, no cast, single-target + + BeatificScorn1 = 29811, // Boss->self, 4.0s cast, single-target //Visual + BeatificScorn2 = 29814, // Boss->self, no cast, single-target //Visual + BeatificScorn3 = 29815, // Boss->self, no cast, single-target //Visual + BeatificScorn4 = 29816, // Boss->self, no cast, single-target //Visual + BeatificScorn5 = 29817, // Helper->self, 10.0s cast, range 9 circle DeathForeseen1 = 29821, // Helper->self, 5.0s cast, range 40 circle DeathForeseen2 = 29828, // Helper->self, 8.0s cast, range 40 circle - EyeOfTroia = 29818, // Boss->self, 4.0s cast, range 40 circle - Hush = 29824, // Boss->player, 5.0s cast, single-target - UnknownAbility1 = 29819, // Boss->self, no cast, single-target - UnknownAbility2 = 29820, // Boss->location, no cast, single-target - VoidNail = 29823, // Helper->player, 5.0s cast, range 6 circle + + EyeOfTroia = 29818, // Boss->self, 4.0s cast, range 40 circle //Raidwide + + Hush = 29824, // Boss->player, 5.0s cast, single-target //Tankbuster + VoidNail = 29823, // Helper->player, 5.0s cast, range 6 circle //spread + Voidshaker = 29822, // Boss->self, 5.0s cast, range 20 120-degree cone + UnknownAbility1 = 29819, // Boss->self, no cast, single-target + UnknownAbility2 = 29820, // Boss->location, no cast, single-target //Likely Toric Void: A ring AoE around the outside of the area, used at the same time as Eye of Troia. + // Missing Antipreasure stack marker } public enum IconID : uint { - _Gen_Icon_218 = 218, // player - _Gen_Icon_139 = 139, // player + Icon_218 = 218, // player + Icon_139 = 139, // player } +class BeatificScorn5(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BeatificScorn5), new AOEShapeCircle(9)); + +class DeathForeseen1(BossModule module) : Components.CastGaze(module, ActionID.MakeSpell(AID.DeathForeseen1)); +class DeathForeseen2(BossModule module) : Components.CastGaze(module, ActionID.MakeSpell(AID.DeathForeseen2)); + +class Voidshaker(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Voidshaker), new AOEShapeCone(20, 60.Degrees())); + +class VoidNail(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.VoidNail), 6); +class Hush(BossModule module) : Components.SingleTargetCast(module, ActionID.MakeSpell(AID.Hush)); +class EyeOfTroia(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.EyeOfTroia)); + class D102BeatriceStates : StateMachineBuilder { public D102BeatriceStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } } diff --git a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs index 8421475dd4..1d8baa044f 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D10FellCourt/D103Scarmiglione.cs @@ -17,23 +17,33 @@ public enum AID : uint BlightedBladework1 = 30259, // Boss->location, 10.0s cast, single-target BlightedBladework2 = 30260, // Helper->self, 11.0s cast, range 25 circle BlightedSweep = 30261, // Boss->self, 7.0s cast, range 40 180-degree cone + CorruptorsPitch1 = 30245, // Boss->self, no cast, single-target CorruptorsPitch2 = 30247, // Helper->self, no cast, range 60 circle CorruptorsPitch3 = 30248, // Helper->self, no cast, range 60 circle CorruptorsPitch4 = 30249, // Helper->self, no cast, range 60 circle + CreepingDecay = 30240, // Boss->self, 4.0s cast, single-target - CursedEcho = 30257, // Boss->self, 4.0s cast, range 40 circle + CursedEcho = 30257, // Boss->self, 4.0s cast, range 40 circle //raidwide + Nox = 30241, // Helper->self, 5.0s cast, range 10 circle + RottenRampage1 = 30231, // Boss->self, 8.0s cast, single-target RottenRampage2 = 30232, // Helper->location, 10.0s cast, range 6 circle RottenRampage3 = 30233, // Helper->players, 10.0s cast, range 6 circle + UnknownAbility1 = 30237, // Boss->location, no cast, single-target UnknownAbility2 = 30244, // Boss->self, no cast, single-target + UnknownWeaponskill = 30234, // Boss->self, no cast, single-target - VacuumWave = 30236, // Helper->self, 5.4s cast, range 40 circle - VoidVortex1 = 30243, // Helper->players, 5.0s cast, range 6 circle + + VacuumWave = 30236, // Helper->self, 5.4s cast, range 40 circle //knockback + + VoidVortex1 = 30243, // Helper->players, 5.0s cast, range 6 circle //spread VoidVortex2 = 30253, // Boss->self, no cast, single-target - VoidVortex3 = 30254, // Helper->players, 5.0s cast, range 6 circle + VoidVortex3 = 30254, // Helper->players, 5.0s cast, range 6 circle //stack + + // missing firedamp, tankbuster } public enum SID : uint @@ -55,12 +65,35 @@ public enum TetherID : uint { Tether_206 = 206, // Boss->3AE4 } +class VoidVortex1(BossModule module) : Components.SpreadFromCastTargets(module, ActionID.MakeSpell(AID.VoidVortex1), 6); +class VoidVortex3(BossModule module) : Components.StackWithCastTargets(module, ActionID.MakeSpell(AID.VoidVortex3), 6, 8); + +class VacuumWave(BossModule module) : Components.KnockbackFromCastTarget(module, ActionID.MakeSpell(AID.VacuumWave), 30, stopAtWall: true); + +class BlightedBedevilment(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BlightedBedevilment), new AOEShapeCircle(9)); +class BlightedBladework2(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BlightedBladework2), new AOEShapeCircle(9)); +class Nox(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.Nox), new AOEShapeCircle(10)); + +class RottenRampage2(BossModule module) : Components.LocationTargetedAOEs(module, ActionID.MakeSpell(AID.RottenRampage2), 6); + +class BlightedSweep(BossModule module) : Components.SelfTargetedAOEs(module, ActionID.MakeSpell(AID.BlightedSweep), new AOEShapeCone(40, 90.Degrees())); + +class CursedEcho(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSpell(AID.CursedEcho)); class D103ScarmiglioneStates : StateMachineBuilder { public D103ScarmiglioneStates(BossModule module) : base(module) { - TrivialPhase(); + TrivialPhase() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter() + .ActivateOnEnter(); } }