forked from awgil/ffxiv_bossmod
-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #64 from FFXIV-CombatReborn/EW-dungeon-blitz
Preliminary EW Dungeon support
- Loading branch information
Showing
36 changed files
with
2,130 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
82 changes: 82 additions & 0 deletions
82
BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D021Barnabas.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
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 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() | ||
.ActivateOnEnter<ElectromagneticRelease1>() | ||
.ActivateOnEnter<ElectromagneticRelease2>() | ||
.ActivateOnEnter<GroundAndPound1>() | ||
.ActivateOnEnter<GroundAndPound2>() | ||
.ActivateOnEnter<DynamicPound>() | ||
.ActivateOnEnter<DynamicScrapline>() | ||
.ActivateOnEnter<RollingScrapline>() | ||
.ActivateOnEnter<Shock>() | ||
.ActivateOnEnter<ShockingForce>(); | ||
} | ||
} | ||
|
||
[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)); |
53 changes: 53 additions & 0 deletions
53
BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D022Lugae.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
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 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() | ||
.ActivateOnEnter<ThermalSuppression>() | ||
//.ActivateOnEnter<MightyBlow>() | ||
.ActivateOnEnter<MagitekMissile>() | ||
.ActivateOnEnter<Explosion>() | ||
.ActivateOnEnter<SurfaceMissile>(); | ||
} | ||
} | ||
|
||
[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(220, 306), 20)); |
103 changes: 103 additions & 0 deletions
103
BossMod/Modules/Endwalker/Dungeon/D02TowerOfBabil/D023Anima.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
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 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 | ||
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 | ||
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 | ||
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 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 | ||
{ | ||
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 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() | ||
//.ActivateOnEnter<CoffinScratch>() //chasing aoe | ||
//.ActivateOnEnter<PhantomPain2>() //bad squares, for some reason offset by 5 so displaying incorrectly | ||
//.ActivateOnEnter<AetherialPull>() | ||
.ActivateOnEnter<PaterPatriaeAOE>() | ||
.ActivateOnEnter<CharnelClaw>() | ||
.ActivateOnEnter<ObliviatingClawSpawnAOE>() | ||
.ActivateOnEnter<MegaGraviton>(); | ||
} | ||
} | ||
|
||
[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); | ||
} | ||
} |
58 changes: 58 additions & 0 deletions
58
BossMod/Modules/Endwalker/Dungeon/D03Vanaspati/D031Snatcher.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
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 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() | ||
.ActivateOnEnter<WhatIsLeft>() | ||
.ActivateOnEnter<WhatIsRight>() | ||
.ActivateOnEnter<LostHope>() | ||
.ActivateOnEnter<Vitriol>() | ||
.ActivateOnEnter<NoteOfDespair>() | ||
.ActivateOnEnter<Wallow>() | ||
.ActivateOnEnter<LastGasp>(); | ||
} | ||
} | ||
|
||
[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, 85), 20)); |
Oops, something went wrong.