Skip to content

Commit

Permalink
Merge pull request #31 from awgil/master
Browse files Browse the repository at this point in the history
Base Merge
  • Loading branch information
LTS-FFXIV authored Apr 4, 2024
2 parents c3c8462 + 3e73a7f commit bd53596
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 20 deletions.
6 changes: 6 additions & 0 deletions BossMod/Framework/IPCProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ class IPCProvider : IDisposable

public IPCProvider(Autorotation autorotation)
{
// TODO: this really needs to be reconsidered, this exposes implementation detail
// for usecase description, see PR 330 - really AI itself should handle heal range
Register("ActiveModuleComponentBaseList", () => autorotation.Bossmods.ActiveModule?.Components.Select(c => c.GetType().BaseType?.Name).ToList() ?? default);
Register("ActiveModuleComponentList", () => autorotation.Bossmods.ActiveModule?.Components.Select(c => c.GetType().Name).ToList() ?? default);
Register("ActiveModuleHasComponent", (string name) => autorotation.Bossmods.ActiveModule?.Components.Any(c => c.GetType().Name == name || c.GetType().BaseType?.Name == name) ?? false);

Register("HasModule", (GameObject obj) => ModuleRegistry.FindByOID(obj.DataId) != null);
Register("IsMoving", () => ActionManagerEx.Instance!.InputOverride.IsMoving());
Register("ForbiddenZonesCount", () => autorotation.Hints.ForbiddenZones.Count);
Expand Down
2 changes: 1 addition & 1 deletion BossMod/Modules/Global/Quest/FF16Collab/InfernalShadow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class SmolderingClaw : Components.SelfTargetedAOEs

class TailStrike : Components.SelfTargetedAOEs
{
public TailStrike() : base(ActionID.MakeSpell(AID.SmolderingClawReal), new AOEShapeCone(40, 75.Degrees())) { }
public TailStrike() : base(ActionID.MakeSpell(AID.TailStrikeReal), new AOEShapeCone(40, 75.Degrees())) { }
}

class FireRampageCleave : Components.GenericAOEs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public enum AID : uint
TailStrikeStartActionCombo = 35047, // Boss->self, 3,5s cast, single-target
TailStrikeStartActionCombo2 = 35049, // Helper->self, 0,6s cast, range 40 150-degree cone
TailStrikeStartActionCombo3 = 35929, // Helper->self, 4,1s cast, range 40 150-degree cone
TailStrike = 35048, // Helper->self, 4,5s cast, range 40 150-degree cone
TailStrikeReal = 35048, // Helper->self, 4,5s cast, range 40 150-degree cone

PyrosaultVisual = 35053, // Boss->location, 4,0s cast, single-target
PyrosaultReal = 35054, // Helper->location, 5,0s cast, range 40 circle, damage fall off AOE, seems to be fine after about range 10
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public InfernalShadowStates(BossModule module) : base(module)
.ActivateOnEnter<Incinerate>()
.ActivateOnEnter<SpreadingFire>()
.ActivateOnEnter<SmolderingClaw>()
.ActivateOnEnter<TailStrike>()
.ActivateOnEnter<CrimsonRush>()
.ActivateOnEnter<Fireball>()
.ActivateOnEnter<CrimsonStreak>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,16 +230,11 @@ public EntrapmentNormal() : base(_allowedPatterns) { }

class EntrapmentInescapable : Entrapment
{
// TODO: don't think these patterns are actually correct...
private readonly static Pattern[] _allowedPatterns = [
new() { Normal = BuildMask(3, 4, 5, 8, 20, 25, 38, 43, 46, 49, 52), Toad = BuildMask(10, 50, 54), Ice = BuildMask(40), Mini = BuildMask(29) },
//new() { Normal = BuildMask(3, 8, 20, 25, 38, 43, 46, 49, 52), Toad = BuildMask(10, 50, 53), Ice = BuildMask(40), Mini = BuildMask(29) },
new() { Normal = BuildMask(2, 5, 8, 11, 14, 16, 25, 29, 46, 49, 51), Toad = BuildMask(0, 4, 44), Ice = BuildMask(50), Mini = BuildMask(34) },
//new() { Normal = BuildMask(2, 8, 11, 16, 25, 29, 38, 46), Toad = BuildMask(0, 4, 44), Ice = BuildMask(49), Mini = BuildMask(34) },
new() { Normal = BuildMask(5, 8, 11, 16, 18, 22, 24, 29, 43, 49, 53), Toad = BuildMask(6, 33, 38), Ice = BuildMask(4), Mini = BuildMask(48) },
//new() { Normal = BuildMask(5, 8, 11, 16, 18, 22, 24, 29, 43, 49, 53), Toad = BuildMask(6, 33, 38), Ice = BuildMask(4), Mini = BuildMask(48) },
new() { Normal = BuildMask(5, 6, 8, 11, 25, 30, 32, 38, 43, 46, 50), Toad = BuildMask(16, 21, 48), Ice = BuildMask(36), Mini = BuildMask(1) },
//new() { Normal = BuildMask(5, 8, 11, 25, 30, 32, 38, 43, 50), Toad = BuildMask(16, 21, 48), Ice = BuildMask(36), Mini = BuildMask(1) },
new() { Normal = BuildMask(2, 5, 8, 11, 14, 16, 25, 29, 46, 49, 51), Toad = BuildMask( 0, 4, 44), Ice = BuildMask(50), Mini = BuildMask(34) },
new() { Normal = BuildMask(5, 8, 11, 16, 18, 22, 24, 29, 43, 49, 53), Toad = BuildMask( 6, 33, 38), Ice = BuildMask( 4), Mini = BuildMask(48) },
new() { Normal = BuildMask(5, 8, 11, 25, 30, 32, 38, 43, 49, 50, 54), Toad = BuildMask(16, 21, 48), Ice = BuildMask(36), Mini = BuildMask( 1) },
];

public EntrapmentInescapable() : base(_allowedPatterns) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ private void Phase2(uint id)
P2BloodAndBone(id + 0x30000, 4.2f);
P2GunTurret(id + 0x40000, 10.2f);
P2DoubleGambit(id + 0x50000, 10.3f);
// TODO: raidwides -> tankbusters -> 4th battery -> raidwides -> tankbusters -> enrage
P2BloodAndBone(id + 0x60000, 5.7f);
// TODO: tankbusters -> 4th battery -> raidwides -> tankbusters -> enrage
SimpleState(id + 0xFF0000, 100, "???");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,12 @@ private void ForkSwordBowStaff(uint id)

private void ForkStaffBowSword(uint id)
{
// TODO: no idea about timings here
Staff1(id, 8);
Bow1(id + 0x100000, 8);
Sword1(id + 0x200000, 8);
Staff2(id + 0x300000, 8);
Bow2(id + 0x400000, 8);
Sword2(id + 0x500000, 8);
Staff1(id, 5.3f);
Bow1(id + 0x100000, 8.7f);
Sword1(id + 0x200000, 10.4f);
Staff2(id + 0x300000, 7.4f);
Bow2(id + 0x400000, 9.1f);
Sword2(id + 0x500000, 7.9f);
Enrage(id + 0x600000, 16); // TODO: timing
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public override void OnEventCast(BossModule module, Actor caster, ActorCastEvent
switch ((AID)spell.Action.ID)
{
case AID.LotsCastBigShort:
//case AID.LotsCastSmallShort:
case AID.LotsCastSmallShort:
AdvanceState(State.ShortExplosionsDone);
break;
case AID.LotsCastLong:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ public enum AID : uint
AboveBoard = 23051, // QueensWarrior->self, 6.0s cast, range 60 circle, visual (throw up)
AboveBoardExtra = 23438, // Helper->self, 6.0s cast, range 60 circle, visual (???)
LotsCastBigShort = 23433, // AetherialBurst->location, no cast, range 10 circle
LotsCastSmallShort = 23053, // AetherialBolt->location, no cast, range 10 circle
LotsCastBigLong = 23052, // AetherialBurst->location, no cast, range 10 circle visual
LotsCastSmallLong = 23432, // AetherialBolt->location, no cast, range 10 circle visual
LotsCastLong = 23478, // Helper->location, 1.2s cast, range 10 circle

Expand Down
5 changes: 4 additions & 1 deletion BossMod/Replay/ReplayUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ public static class ReplayUtils
{
public static string ParticipantString(Replay.Participant? p, DateTime t)
{
return p != null ? $"{p.Type} {p.InstanceID:X} ({p.OID:X}) '{p.NameAt(t)}'" : "<none>";
if (p == null)
return "<none>";
var name = p.NameAt(t);
return $"{p.Type} {p.InstanceID:X} ({p.OID:X}/{name.id}) '{name.name}'";
}

public static string ParticipantPosRotString(Replay.Participant? p, DateTime t)
Expand Down

0 comments on commit bd53596

Please sign in to comment.