From 472a3b73b867715d954259b0d74941478f4a21c5 Mon Sep 17 00:00:00 2001 From: CarnifexOptimus <156172553+CarnifexOptimus@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:14:32 +0100 Subject: [PATCH] some stylistic changes --- BossMod/BossModule/MiniArena.cs | 2 +- BossMod/Components/Adds.cs | 2 +- BossMod/Components/BaitAway.cs | 2 +- BossMod/Components/Cleave.cs | 2 +- BossMod/Components/Tethers.cs | 2 +- .../Dungeon/D02WorqorZormor/D023Gurfurlur.cs | 19 ++++++++------ .../D03SkydeepCenote/D031FeatherRay.cs | 25 +++++++++++-------- .../Ex2ZoraalJa/ProjectionOfTurmoil.cs | 5 ++-- .../Dawntrail/FATE/MicaTheMagicalMu.cs | 10 ++++---- .../Dawntrail/Ultimate/FRU/P2LightRampant.cs | 2 +- .../Ultimate/FRU/P3UltimateRelativity.cs | 2 +- .../Savage/P7SAgdistis/ForbiddenFruit5.cs | 6 ++--- .../RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs | 10 ++++---- .../Raid/T04Gauntlet/T04Gauntlet.cs | 12 ++++----- .../RealmReborn/Raid/T05Twintania/Phase4.cs | 2 +- .../CE41WithDiremiteAndMain.cs | 4 +-- .../CriticalEngagement/CE52TimeToBurn.cs | 2 +- .../CriticalEngagement/CE54NeverCryWolf.cs | 2 +- .../CriticalEngagement/CE62LooksToDieFor.cs | 2 +- .../CriticalEngagement/CE64FeelingTheBurn.cs | 4 +-- .../DRN3QueensGuard/AboveBoard.cs | 4 +-- .../DRN3QueensGuard/QueensGuard.cs | 8 +++--- .../DRN6Queen/AboveBoard.cs | 4 +-- .../DRS3Dahu/SpitFlame.cs | 2 +- .../DRS4QueensGuard/AboveBoard.cs | 4 +-- .../DRS4QueensGuard/DRS4.cs | 12 ++++----- .../DRS4QueensGuard/GreatBallOfFire.cs | 14 ++++++++--- .../DRS7StygimolochLord/DRS7.cs | 6 ++--- .../DRS8Queen/AboveBoard.cs | 4 +-- .../DRS8Queen/MaelstromsBolt.cs | 10 +++----- .../DAL1Sartauvoir/DAL1Sartauvoir.cs | 4 +-- .../DAL3SaunionDawon/DAL3SaunionDawon.cs | 4 +-- .../Ultimate/TEA/P1JagdDolls.cs | 2 +- .../Ultimate/TEA/P1ProteanWaveTornado.cs | 2 +- .../Shadowbringers/Ultimate/TEA/TEA.cs | 4 +-- .../Extreme/Ex2Lakshmi/Ex2LakshmiStates.cs | 2 +- .../Stormblood/Trial/T07Byakko/T07Byakko.cs | 2 +- .../Modules/Stormblood/Ultimate/UCOB/Hatch.cs | 4 +-- .../Stormblood/Ultimate/UCOB/P3EarthShaker.cs | 2 +- .../Ultimate/UCOB/P3FellruinTrio.cs | 2 +- .../Stormblood/Ultimate/UWU/P1Mesohigh.cs | 2 +- .../Stormblood/Ultimate/UWU/P1MistralSong.cs | 2 +- .../Stormblood/Ultimate/UWU/P1Plumes.cs | 6 ++--- .../Stormblood/Ultimate/UWU/P2Nails.cs | 2 +- .../Stormblood/Ultimate/UWU/P3Burst.cs | 2 +- .../Stormblood/Ultimate/UWU/P4MagitekBits.cs | 2 +- .../Ultimate/UWU/P4UltimateAnnihilation.cs | 2 +- .../Modules/Stormblood/Ultimate/UWU/UWU.cs | 8 +++--- 48 files changed, 125 insertions(+), 114 deletions(-) diff --git a/BossMod/BossModule/MiniArena.cs b/BossMod/BossModule/MiniArena.cs index bf5e8f8d85..28b45147cb 100644 --- a/BossMod/BossModule/MiniArena.cs +++ b/BossMod/BossModule/MiniArena.cs @@ -456,7 +456,7 @@ public void Actors(IEnumerable actors, uint color = 0, bool allowDeadAndU Actor(a, color == 0 ? Colors.Enemy : color, allowDeadAndUntargetable); } - public void Actors(IReadOnlyList actors, uint color = 0, bool allowDeadAndUntargetable = false) + public void Actors(List actors, uint color = 0, bool allowDeadAndUntargetable = false) { for (var i = 0; i < actors.Count; ++i) { diff --git a/BossMod/Components/Adds.cs b/BossMod/Components/Adds.cs index c82273ffcb..43818ba9ca 100644 --- a/BossMod/Components/Adds.cs +++ b/BossMod/Components/Adds.cs @@ -3,7 +3,7 @@ // generic component used for drawing adds public class Adds(BossModule module, uint oid, int priority = 0) : BossComponent(module) { - public readonly IReadOnlyList Actors = module.Enemies(oid); + public readonly List Actors = module.Enemies(oid); public IEnumerable ActiveActors => Actors.Where(a => a.IsTargetable && !a.IsDead); public override void AddAIHints(int slot, Actor actor, PartyRolesConfig.Assignment assignment, AIHints hints) diff --git a/BossMod/Components/BaitAway.cs b/BossMod/Components/BaitAway.cs index f217610c7b..807aeecb90 100644 --- a/BossMod/Components/BaitAway.cs +++ b/BossMod/Components/BaitAway.cs @@ -127,7 +127,7 @@ public class BaitAwayTethers(BossModule module, AOEShape shape, uint tetherID, A public AOEShape Shape = shape; public uint TID = tetherID; public bool DrawTethers = true; - public readonly IReadOnlyList _enemies = module.Enemies(enemyOID); + public readonly List _enemies = module.Enemies(enemyOID); public float ActivationDelay = activationDelay; public override void DrawArenaForeground(int pcSlot, Actor pc) diff --git a/BossMod/Components/Cleave.cs b/BossMod/Components/Cleave.cs index f348eeb2da..f0484a84cd 100644 --- a/BossMod/Components/Cleave.cs +++ b/BossMod/Components/Cleave.cs @@ -9,7 +9,7 @@ public class Cleave(BossModule module, ActionID aid, AOEShape shape, uint enemyO public bool ActiveWhileCasting { get; init; } = activeWhileCasting; public bool OriginAtTarget { get; init; } = originAtTarget; public DateTime NextExpected; - private readonly IReadOnlyList _enemies = module.Enemies(enemyOID != 0 ? enemyOID : module.PrimaryActor.OID); + private readonly List _enemies = module.Enemies(enemyOID != 0 ? enemyOID : module.PrimaryActor.OID); public override void AddHints(int slot, Actor actor, TextHints hints) { diff --git a/BossMod/Components/Tethers.cs b/BossMod/Components/Tethers.cs index c05d42fd49..354ad4f876 100644 --- a/BossMod/Components/Tethers.cs +++ b/BossMod/Components/Tethers.cs @@ -203,7 +203,7 @@ public class StretchTetherDuo(BossModule module, float minimumDistance, float ac public uint TIDBad = tetherIDBad; public float MinimumDistance = minimumDistance; public bool KnockbackImmunity { get; init; } = knockbackImmunity; - public readonly IReadOnlyList _enemies = module.Enemies(enemyOID); + public readonly List _enemies = module.Enemies(enemyOID); public readonly List<(Actor, uint)> TetherOnActor = []; public readonly List<(Actor, DateTime)> ActivationDelayOnActor = []; public float ActivationDelay = activationDelay; diff --git a/BossMod/Modules/Dawntrail/Dungeon/D02WorqorZormor/D023Gurfurlur.cs b/BossMod/Modules/Dawntrail/Dungeon/D02WorqorZormor/D023Gurfurlur.cs index 51fb20fd00..ff51bdb094 100644 --- a/BossMod/Modules/Dawntrail/Dungeon/D02WorqorZormor/D023Gurfurlur.cs +++ b/BossMod/Modules/Dawntrail/Dungeon/D02WorqorZormor/D023Gurfurlur.cs @@ -67,32 +67,35 @@ public override void OnEventEnvControl(byte index, uint state) class AuraSphere(BossModule module) : BossComponent(module) { - private readonly IReadOnlyList _orbs = module.Enemies(OID.AuraSphere); - - private IEnumerable ActiveOrbs => _orbs.Where(orb => !orb.IsDead); + private readonly IEnumerable _orbs = module.Enemies(OID.AuraSphere).Where(orb => !orb.IsDead); public override void AddGlobalHints(GlobalHints hints) { - if (ActiveOrbs.Any()) + if (_orbs.Any()) hints.Add("Soak the orbs!"); } public override void AddAIHints(int slot, Actor actor, PartyRolesConfig.Assignment assignment, AIHints hints) { var orbs = new List>(); - if (ActiveOrbs.Any()) + Actor[] sph = [.. _orbs]; + var len = sph.Length; + if (len != 0) { hints.ActionsToExecute.Push(ActionID.MakeSpell(ClassShared.AID.Sprint), actor, ActionQueue.Priority.High); - foreach (var o in ActiveOrbs) + for (var i = 0; i < len; ++i) + { + var o = sph[i]; orbs.Add(ShapeDistance.InvertedCircle(o.Position + 0.5f * o.Rotation.ToDirection(), 0.5f)); + } } - if (orbs.Count > 0) + if (orbs.Count != 0) hints.AddForbiddenZone(p => orbs.Max(f => f(p))); } public override void DrawArenaForeground(int pcSlot, Actor pc) { - foreach (var orb in ActiveOrbs) + foreach (var orb in _orbs) Arena.AddCircle(orb.Position, 1.4f, Colors.Safe); } } diff --git a/BossMod/Modules/Dawntrail/Dungeon/D03SkydeepCenote/D031FeatherRay.cs b/BossMod/Modules/Dawntrail/Dungeon/D03SkydeepCenote/D031FeatherRay.cs index 46782bdb8a..e4bc691b37 100644 --- a/BossMod/Modules/Dawntrail/Dungeon/D03SkydeepCenote/D031FeatherRay.cs +++ b/BossMod/Modules/Dawntrail/Dungeon/D03SkydeepCenote/D031FeatherRay.cs @@ -62,22 +62,24 @@ class AiryBubble(BossModule module) : Components.GenericAOEs(module) private const float Radius = 1.1f; private const int Length = 3; private static readonly AOEShapeCapsule capsule = new(Radius, Length); - private readonly IReadOnlyList _orbs = module.Enemies(OID.AiryBubble); - private IEnumerable Orbs => _orbs.Where(x => x.HitboxRadius == Radius); private readonly List _aoes = []; public override IEnumerable ActiveAOEs(int slot, Actor actor) { - foreach (var o in _aoes) + for (var i = 0; i < _aoes.Count; ++i) + { + var o = _aoes[i]; yield return new(capsule, o.Position, o.Rotation); + } } public override void OnActorPlayActionTimelineEvent(Actor actor, ushort id) { - if (id == 0x1E46 && Orbs.Contains(actor)) - _aoes.Add(actor); - else if (id == 0x1E3C && Orbs.Contains(actor)) - _aoes.Remove(actor); + if (Module.Enemies(OID.AiryBubble).Where(x => x.HitboxRadius == 1.1f).Contains(actor)) + if (id == 0x1E46) + _aoes.Add(actor); + else if (id == 0x1E3C) + _aoes.Remove(actor); } public override void AddAIHints(int slot, Actor actor, PartyRolesConfig.Assignment assignment, AIHints hints) @@ -85,8 +87,11 @@ public override void AddAIHints(int slot, Actor actor, PartyRolesConfig.Assignme if (_aoes.Count == 0) return; var forbidden = new List>(); - foreach (var o in _aoes) + for (var i = 0; i < _aoes.Count; ++i) + { + var o = _aoes[i]; forbidden.Add(ShapeDistance.Capsule(o.Position, o.Rotation, Length, Radius)); + } forbidden.Add(ShapeDistance.Circle(Arena.Center, Module.PrimaryActor.HitboxRadius)); hints.AddForbiddenZone(p => forbidden.Min(f => f(p))); } @@ -94,8 +99,6 @@ public override void AddAIHints(int slot, Actor actor, PartyRolesConfig.Assignme class Burst(BossModule module) : Components.GenericAOEs(module) { - private readonly IReadOnlyList _orbs = module.Enemies(OID.AiryBubble); - private IEnumerable Orbs => _orbs.Where(x => x.HitboxRadius != 1.1f); private static readonly AOEShapeCircle circle = new(6); private readonly List _aoes = []; @@ -117,7 +120,7 @@ public override void OnCastStarted(Actor caster, ActorCastInfo spell) private void AddAOEs(float offset, DateTime activation) { - foreach (var orb in Orbs) + foreach (var orb in Module.Enemies(OID.AiryBubble).Where(x => x.HitboxRadius != 1.1f)) _aoes.Add(new(circle, orb.Position + new WDir(offset, 0), default, activation)); } diff --git a/BossMod/Modules/Dawntrail/Extreme/Ex2ZoraalJa/ProjectionOfTurmoil.cs b/BossMod/Modules/Dawntrail/Extreme/Ex2ZoraalJa/ProjectionOfTurmoil.cs index 461d828d68..ad5a334f67 100644 --- a/BossMod/Modules/Dawntrail/Extreme/Ex2ZoraalJa/ProjectionOfTurmoil.cs +++ b/BossMod/Modules/Dawntrail/Extreme/Ex2ZoraalJa/ProjectionOfTurmoil.cs @@ -3,7 +3,7 @@ // TODO: consider improving this somehow? too many ways to resolve... class ProjectionOfTurmoil(BossModule module) : Components.CastCounter(module, ActionID.MakeSpell(AID.MightOfVollok)) { - private readonly IReadOnlyList _line = module.Enemies(OID.ProjectionOfTurmoil); + private readonly List _line = module.Enemies(OID.ProjectionOfTurmoil); private BitMask _targets; public override PlayerPriority CalcPriority(int pcSlot, Actor pc, int playerSlot, Actor player, ref uint customColor) => _targets[playerSlot] ? PlayerPriority.Interesting : PlayerPriority.Normal; @@ -16,8 +16,9 @@ public override void DrawArenaForeground(int pcSlot, Actor pc) if (actor != null) Arena.AddCircle(actor.Position, 8, Colors.Safe); } - foreach (var l in _line) + for (var i = 0; i < _line.Count; ++i) { + var l = _line[i]; var off = new WDir(28.28427f - Math.Abs(l.Position.Z - Module.Center.Z), 0); Arena.AddLine(l.Position - off, l.Position + off, Colors.Danger); } diff --git a/BossMod/Modules/Dawntrail/FATE/MicaTheMagicalMu.cs b/BossMod/Modules/Dawntrail/FATE/MicaTheMagicalMu.cs index d34952186e..49c3050195 100644 --- a/BossMod/Modules/Dawntrail/FATE/MicaTheMagicalMu.cs +++ b/BossMod/Modules/Dawntrail/FATE/MicaTheMagicalMu.cs @@ -76,7 +76,7 @@ public enum AID : uint class Draw(BossModule module) : Components.GenericAOEs(module) { - private readonly IReadOnlyList[] _cards = [ + private readonly List[] _cards = [ module.Enemies(OID.Card1), module.Enemies(OID.Card2), module.Enemies(OID.Card3), @@ -91,11 +91,11 @@ class Draw(BossModule module) : Components.GenericAOEs(module) public override IEnumerable ActiveAOEs(int slot, Actor actor) { - if (_safeZones.Count > 0) - for (int i = 0; i < _cards.Length; ++i) + if (_safeZones.Count != 0) + for (var i = 0; i < 6; ++i) if (i != _safeZones[0]) - foreach (var a in _cards[i]) - yield return new(_shape, a.Position, default, _activation); + for (var j = 0; j < _cards[j].Count; ++j) + yield return new(_shape, _cards[i][j].Position, default, _activation); } public override void OnCastStarted(Actor caster, ActorCastInfo spell) diff --git a/BossMod/Modules/Dawntrail/Ultimate/FRU/P2LightRampant.cs b/BossMod/Modules/Dawntrail/Ultimate/FRU/P2LightRampant.cs index feb3260076..2e03d08cf4 100644 --- a/BossMod/Modules/Dawntrail/Ultimate/FRU/P2LightRampant.cs +++ b/BossMod/Modules/Dawntrail/Ultimate/FRU/P2LightRampant.cs @@ -11,7 +11,7 @@ public override void DrawArenaForeground(int pcSlot, Actor pc) var source = Raid[i]; var target = _tetherTargets[i]; if (source != null && target != null) - Arena.AddLine(source.Position, target.Position, (source.Position - target.Position).LengthSq() < 625 ? ArenaColor.Danger : ArenaColor.Safe); + Arena.AddLine(source.Position, target.Position, (source.Position - target.Position).LengthSq() < 625 ? Colors.Danger : Colors.Safe); } } diff --git a/BossMod/Modules/Dawntrail/Ultimate/FRU/P3UltimateRelativity.cs b/BossMod/Modules/Dawntrail/Ultimate/FRU/P3UltimateRelativity.cs index 7e5289f842..8c76e3c987 100644 --- a/BossMod/Modules/Dawntrail/Ultimate/FRU/P3UltimateRelativity.cs +++ b/BossMod/Modules/Dawntrail/Ultimate/FRU/P3UltimateRelativity.cs @@ -32,7 +32,7 @@ public override void DrawArenaForeground(int pcSlot, Actor pc) { var assignedDir = States[pcSlot].AssignedDir; if (assignedDir != default) - Arena.AddCircle(Module.Center + RangeHint(States[pcSlot], pc.Class.IsSupport(), NumCasts) * assignedDir, 1, ArenaColor.Safe); + Arena.AddCircle(Module.Center + RangeHint(States[pcSlot], pc.Class.IsSupport(), NumCasts) * assignedDir, 1, Colors.Safe); } public override void OnStatusGain(Actor actor, ActorStatus status) diff --git a/BossMod/Modules/Endwalker/Savage/P7SAgdistis/ForbiddenFruit5.cs b/BossMod/Modules/Endwalker/Savage/P7SAgdistis/ForbiddenFruit5.cs index 3a7d508b90..5bb86c638e 100644 --- a/BossMod/Modules/Endwalker/Savage/P7SAgdistis/ForbiddenFruit5.cs +++ b/BossMod/Modules/Endwalker/Savage/P7SAgdistis/ForbiddenFruit5.cs @@ -3,7 +3,7 @@ // TODO: improve! class ForbiddenFruit5(BossModule module) : ForbiddenFruitCommon(module, ActionID.MakeSpell(AID.Burst)) { - private readonly IReadOnlyList _towers = module.Enemies(OID.Tower); + private readonly List _towers = module.Enemies(OID.Tower); private const float _towerRadius = 5; @@ -13,7 +13,7 @@ public override void DrawArenaForeground(int pcSlot, Actor pc) if (tetherSource != null) Arena.AddLine(tetherSource.Position, pc.Position, TetherColor(tetherSource)); - foreach (var tower in _towers) - Arena.AddCircle(tower.Position, _towerRadius, tetherSource == null ? Colors.Safe : Colors.Danger); + for (var i = 0; i < _towers.Count; ++i) + Arena.AddCircle(_towers[i].Position, _towerRadius, tetherSource == null ? Colors.Safe : Colors.Danger); } } diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs b/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs index b3f57927da..528c52cbaf 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs @@ -6,12 +6,12 @@ class GaolerVoidzone(BossModule module) : Components.PersistentVoidzone(module, [ModuleInfo(BossModuleInfo.Maturity.Verified, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 64, NameID = 1801, PlanLevel = 50)] public class Ex3Titan : BossModule { - private readonly IReadOnlyList _heart; + private readonly List _heart; public Actor? Heart() => _heart.FirstOrDefault(); - public IReadOnlyList Gaolers; - public IReadOnlyList Gaols; - public IReadOnlyList Bombs; + public readonly List Gaolers; + public readonly List Gaols; + public readonly List Bombs; public Ex3Titan(WorldState ws, Actor primary) : base(ws, primary, new(0, 0), new ArenaBoundsCircle(25)) { @@ -35,7 +35,7 @@ protected override void CalculateModuleAIHints(int slot, Actor actor, PartyRoles protected override void DrawEnemies(int pcSlot, Actor pc) { - Arena.Actor(PrimaryActor, Colors.Enemy, true); + Arena.Actor(PrimaryActor, allowDeadAndUntargetable: true); Arena.Actors(Gaolers); Arena.Actors(Gaols, Colors.Object); Arena.Actors(Bombs, Colors.Object); diff --git a/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs b/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs index 36f01733d0..5f8d3dabed 100644 --- a/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs +++ b/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs @@ -70,12 +70,12 @@ private void SinglePhase(uint id) [ModuleInfo(BossModuleInfo.Maturity.Verified, PrimaryActorOID = (uint)OID.TerminalStart, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 96)] public class T04Gauntlet : BossModule { - public IReadOnlyList P1Bugs; - public IReadOnlyList Bugs; - public IReadOnlyList Soldiers; - public IReadOnlyList Knights; - public IReadOnlyList Rooks; - public IReadOnlyList Dreadnaughts; + public readonly List P1Bugs; + public readonly List Bugs; + public readonly List Soldiers; + public readonly List Knights; + public readonly List Rooks; + public readonly List Dreadnaughts; public T04Gauntlet(WorldState ws, Actor primary) : base(ws, primary, new(0, 0), new ArenaBoundsCircle(25)) { diff --git a/BossMod/Modules/RealmReborn/Raid/T05Twintania/Phase4.cs b/BossMod/Modules/RealmReborn/Raid/T05Twintania/Phase4.cs index 8997ddc140..c72768a1cc 100644 --- a/BossMod/Modules/RealmReborn/Raid/T05Twintania/Phase4.cs +++ b/BossMod/Modules/RealmReborn/Raid/T05Twintania/Phase4.cs @@ -43,7 +43,7 @@ public override void DrawArenaForeground(int pcSlot, Actor pc) class P4Dreadknights(BossModule module) : BossComponent(module) { private Actor? _target; - private readonly IReadOnlyList _dreadknights = module.Enemies(OID.Dreadknight); + private readonly List _dreadknights = module.Enemies(OID.Dreadknight); public IEnumerable ActiveDreadknights => _dreadknights.Where(a => !a.IsDead); public override void Update() diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs index b99bacc72a..bc4311e858 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs @@ -165,8 +165,8 @@ public CE41WithDiremiteAndMainStates(BossModule module) : base(module) [ModuleInfo(BossModuleInfo.Maturity.Verified, GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 21)] // bnpcname=9969 public class CE41WithDiremiteAndMain : BossModule { - private readonly IReadOnlyList _dimCrystals; - private readonly IReadOnlyList _corruptedCrystals; + private readonly List _dimCrystals; + private readonly List _corruptedCrystals; public CE41WithDiremiteAndMain(WorldState ws, Actor primary) : base(ws, primary, new(-220, 530), new ArenaBoundsCircle(30)) { diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs index 653b03bf89..3a661badb4 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs @@ -37,7 +37,7 @@ class TimeEruptionBombReproduce(BossModule module) : Components.GenericAOEs(modu { private DateTime _bombsActivation; private DateTime _eruptionStart; // timestamp of StartTime cast start - private readonly IReadOnlyList _bombs = module.Enemies(OID.TimeBomb1); // either 1 or 2 works, dunno what's the difference + private readonly List _bombs = module.Enemies(OID.TimeBomb1); // either 1 or 2 works, dunno what's the difference private readonly List _cycloneCasters = []; private readonly List<(WPos pos, TimeSpan delay)> _clocks = []; private readonly List _eruptionSafeSpots = []; diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs index bb42579406..0391a0a2b8 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs @@ -198,7 +198,7 @@ public CE54NeverCryWolfStates(BossModule module) : base(module) [ModuleInfo(BossModuleInfo.Maturity.Verified, Contributors = "Malediktus", GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 25)] // bnpcname=9941 public class CE54NeverCryWolf : BossModule { - private readonly IReadOnlyList _adds; + private readonly List _adds; public CE54NeverCryWolf(WorldState ws, Actor primary) : base(ws, primary, new(-830, 190), new ArenaBoundsSquare(24)) { diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs index 4cc23d1562..15e7df2fb9 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs @@ -104,7 +104,7 @@ class Flame(BossModule module) : Components.RaidwideCast(module, ActionID.MakeSp class Burn(BossModule module) : Components.GenericAOEs(module) { - private readonly IReadOnlyList _flames = module.Enemies(OID.BallOfFire); + private readonly List _flames = module.Enemies(OID.BallOfFire); private readonly List<(Actor actor, AOEInstance? aoe)> _casters = []; private static readonly AOEShapeCircle _shape = new(8); diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs index d87b4baf78..ee3b45d0df 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs @@ -166,7 +166,7 @@ public CE64FeelingTheBurnStates(BossModule module) : base(module) [ModuleInfo(BossModuleInfo.Maturity.Verified, GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 18)] // bnpcname=9945 public class CE64FeelingTheBurn : BossModule { - public IReadOnlyList Escorts; + public List Escorts; public CE64FeelingTheBurn(WorldState ws, Actor primary) : base(ws, primary, new(-240, -230), new ArenaBoundsSquare(24)) { @@ -176,6 +176,6 @@ public class CE64FeelingTheBurn : BossModule protected override void DrawEnemies(int pcSlot, Actor pc) { base.DrawEnemies(pcSlot, pc); - Arena.Actors(Escorts, Colors.Enemy); + Arena.Actors(Escorts); } } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/AboveBoard.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/AboveBoard.cs index 880ce377be..7d593288ab 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/AboveBoard.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/AboveBoard.cs @@ -5,8 +5,8 @@ class AboveBoard(BossModule module) : Components.GenericAOEs(module) public enum State { Initial, ThrowUpDone, ShortExplosionsDone, LongExplosionsDone } public State CurState { get; private set; } - private readonly IReadOnlyList _smallBombs = module.Enemies(OID.AetherialBolt); - private readonly IReadOnlyList _bigBombs = module.Enemies(OID.AetherialBurst); + private readonly List _smallBombs = module.Enemies(OID.AetherialBolt); + private readonly List _bigBombs = module.Enemies(OID.AetherialBurst); private bool _invertedBombs; // bombs are always either all normal (big=short) or all inverted private readonly BitMask _invertedPlayers; // default for player is 'long', short is considered inverted (has visible status) private readonly DateTime _activation = module.WorldState.FutureTime(12); diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/QueensGuard.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/QueensGuard.cs index beba1e4888..9197cc953a 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/QueensGuard.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN3QueensGuard/QueensGuard.cs @@ -8,15 +8,15 @@ [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "The Combat Reborn Team", PrimaryActorOID = (uint)OID.Knight, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 760, NameID = 9838)] public class DRN3QueensGuard : BossModule { - private readonly IReadOnlyList _warrior; - private readonly IReadOnlyList _soldier; - private readonly IReadOnlyList _gunner; + private readonly List _warrior; + private readonly List _soldier; + private readonly List _gunner; public Actor? Knight() => PrimaryActor.IsDestroyed ? null : PrimaryActor; public Actor? Warrior() => _warrior.FirstOrDefault(); public Actor? Soldier() => _soldier.FirstOrDefault(); public Actor? Gunner() => _gunner.FirstOrDefault(); - public IReadOnlyList GunTurrets; + public readonly List GunTurrets; public DRN3QueensGuard(WorldState ws, Actor primary) : base(ws, primary, new(244, -162), new ArenaBoundsCircle(25)) { diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN6Queen/AboveBoard.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN6Queen/AboveBoard.cs index a9cc7efdde..bac3ac7791 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN6Queen/AboveBoard.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeNormal/DRN6Queen/AboveBoard.cs @@ -6,8 +6,8 @@ class AboveBoard(BossModule module) : Components.GenericAOEs(module) public enum State { Initial, ThrowUpDone, ShortExplosionsDone, LongExplosionsDone } public State CurState { get; private set; } - private readonly IReadOnlyList _smallBombs = module.Enemies(OID.AetherialBolt); - private readonly IReadOnlyList _bigBombs = module.Enemies(OID.AetherialBurst); + private readonly List _smallBombs = module.Enemies(OID.AetherialBolt); + private readonly List _bigBombs = module.Enemies(OID.AetherialBurst); private bool _invertedBombs; // bombs are always either all normal (big=short) or all inverted private BitMask _invertedPlayers; // default for player is 'long', short is considered inverted (has visible status) private readonly DateTime _activation = module.WorldState.FutureTime(14.4f); diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS3Dahu/SpitFlame.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS3Dahu/SpitFlame.cs index e6246af0a9..5db4b23cc2 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS3Dahu/SpitFlame.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS3Dahu/SpitFlame.cs @@ -3,7 +3,7 @@ class SpitFlame(BossModule module) : Components.UniformStackSpread(module, 0, 4, alwaysShowSpreads: true, raidwideOnResolve: false) { private readonly Actor?[] _targets = [null, null, null, null]; - private readonly IReadOnlyList _adds = module.Enemies(OID.Marchosias); + private readonly List _adds = module.Enemies(OID.Marchosias); public override void Update() { diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/AboveBoard.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/AboveBoard.cs index 8ce8c33216..79590eaf37 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/AboveBoard.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/AboveBoard.cs @@ -5,8 +5,8 @@ class AboveBoard(BossModule module) : Components.GenericAOEs(module) public enum State { Initial, ThrowUpDone, ShortExplosionsDone, LongExplosionsDone } public State CurState { get; private set; } - private readonly IReadOnlyList _smallBombs = module.Enemies(OID.AetherialBolt); - private readonly IReadOnlyList _bigBombs = module.Enemies(OID.AetherialBurst); + private readonly List _smallBombs = module.Enemies(OID.AetherialBolt); + private readonly List _bigBombs = module.Enemies(OID.AetherialBurst); private bool _invertedBombs; // bombs are always either all normal (big=short) or all inverted private BitMask _invertedPlayers; // default for player is 'long', short is considered inverted (has visible status) private DateTime _activation = module.WorldState.FutureTime(12); diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/DRS4.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/DRS4.cs index 4cfd76d1c0..cf8afb644d 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/DRS4.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/DRS4.cs @@ -16,17 +16,17 @@ class Fracture(BossModule module) : Components.CastCounter(module, ActionID.Make [ModuleInfo(BossModuleInfo.Maturity.Verified, Contributors = "Malediktus", PrimaryActorOID = (uint)OID.Knight, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9838, PlanLevel = 80)] public class DRS4 : BossModule { - private readonly IReadOnlyList _warrior; - private readonly IReadOnlyList _soldier; - private readonly IReadOnlyList _gunner; + private readonly List _warrior; + private readonly List _soldier; + private readonly List _gunner; public Actor? Knight() => PrimaryActor.IsDestroyed ? null : PrimaryActor; public Actor? Warrior() => _warrior.FirstOrDefault(); public Actor? Soldier() => _soldier.FirstOrDefault(); public Actor? Gunner() => _gunner.FirstOrDefault(); - public IReadOnlyList GunTurrets; - public IReadOnlyList AuraSpheres; - public IReadOnlyList SpiritualSpheres; + public readonly List GunTurrets; + public readonly List AuraSpheres; + public readonly List SpiritualSpheres; public DRS4(WorldState ws, Actor primary) : base(ws, primary, new(244, -162), new ArenaBoundsCircle(25)) { diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/GreatBallOfFire.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/GreatBallOfFire.cs index 885ab82c7b..53d58430b3 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/GreatBallOfFire.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS4QueensGuard/GreatBallOfFire.cs @@ -2,8 +2,8 @@ class GreatBallOfFire(BossModule module) : Components.GenericAOEs(module) { - private readonly IReadOnlyList _smallFlames = module.Enemies(OID.RagingFlame); - private readonly IReadOnlyList _bigFlames = module.Enemies(OID.ImmolatingFlame); + private readonly List _smallFlames = module.Enemies(OID.RagingFlame); + private readonly List _bigFlames = module.Enemies(OID.ImmolatingFlame); private readonly DateTime _activation = module.WorldState.FutureTime(6.6f); private static readonly AOEShapeCircle _shapeSmall = new(10); @@ -11,10 +11,16 @@ class GreatBallOfFire(BossModule module) : Components.GenericAOEs(module) public override IEnumerable ActiveAOEs(int slot, Actor actor) { - foreach (var f in _smallFlames) + for (var i = 0; i < _smallFlames.Count; ++i) + { + var f = _smallFlames[i]; yield return new(_shapeSmall, f.Position, new(), Module.CastFinishAt(f.CastInfo, 0, _activation)); - foreach (var f in _bigFlames) + } + for (var i = 0; i < _bigFlames.Count; ++i) + { + var f = _bigFlames[i]; yield return new(_shapeBig, f.Position, new(), Module.CastFinishAt(f.CastInfo, 0, _activation)); + } } public override void OnEventCast(Actor caster, ActorCastEvent spell) diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS7StygimolochLord/DRS7.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS7StygimolochLord/DRS7.cs index 54bbe5e507..6902a8dcea 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS7StygimolochLord/DRS7.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS7StygimolochLord/DRS7.cs @@ -12,9 +12,9 @@ class Electrocution(BossModule module) : Components.LocationTargetedAOEs(module, [ModuleInfo(BossModuleInfo.Maturity.Verified, Contributors = "Malediktus", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9759, PlanLevel = 80)] public class DRS7 : BossModule { - private readonly IReadOnlyList _monks; - private readonly IReadOnlyList _ballsEarth; - private readonly IReadOnlyList _ballsFire; + private readonly List _monks; + private readonly List _ballsEarth; + private readonly List _ballsFire; public DRS7(WorldState ws, Actor primary) : base(ws, primary, Border.BoundsCenter, Border.DefaultBounds) { diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/AboveBoard.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/AboveBoard.cs index f0122a6bed..6a82ea468d 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/AboveBoard.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/AboveBoard.cs @@ -6,8 +6,8 @@ class AboveBoard(BossModule module) : Components.GenericAOEs(module) public enum State { Initial, ThrowUpDone, ShortExplosionsDone, LongExplosionsDone } public State CurState { get; private set; } - private readonly IReadOnlyList _smallBombs = module.Enemies(OID.AetherialBolt); - private readonly IReadOnlyList _bigBombs = module.Enemies(OID.AetherialBurst); + private readonly List _smallBombs = module.Enemies(OID.AetherialBolt); + private readonly List _bigBombs = module.Enemies(OID.AetherialBurst); private bool _invertedBombs; // bombs are always either all normal (big=short) or all inverted private BitMask _invertedPlayers; // default for player is 'long', short is considered inverted (has visible status) private DateTime _activation = module.WorldState.FutureTime(14.4f); diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/MaelstromsBolt.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/MaelstromsBolt.cs index 5a932c21b0..47440f91e1 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/MaelstromsBolt.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginaeSavage/DRS8Queen/MaelstromsBolt.cs @@ -3,8 +3,8 @@ // TODO: show reflect hints, show stay under dome hints class MaelstromsBolt(BossModule module) : Components.CastCounter(module, ActionID.MakeSpell(AID.MaelstromsBoltAOE)) { - private readonly IReadOnlyList _ballLightnings = module.Enemies(OID.BallLightning); - private readonly IReadOnlyList _domes = module.Enemies(OID.ProtectiveDome); + private readonly List _ballLightnings = module.Enemies(OID.BallLightning); + private readonly List _domes = module.Enemies(OID.ProtectiveDome); public override void DrawArenaForeground(int pcSlot, Actor pc) { @@ -13,9 +13,7 @@ public override void DrawArenaForeground(int pcSlot, Actor pc) Arena.Actor(b, Colors.Object, true); Arena.AddCircle(b.Position, 8, Colors.Object); } - foreach (var d in _domes) - { - Arena.AddCircle(d.Position, 8, Colors.Safe); - } + for (var i = 0; i < _domes.Count; ++i) + Arena.AddCircle(_domes[i].Position, 8, Colors.Safe); } } diff --git a/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL1Sartauvoir/DAL1Sartauvoir.cs b/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL1Sartauvoir/DAL1Sartauvoir.cs index cf96f12474..09e198522c 100644 --- a/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL1Sartauvoir/DAL1Sartauvoir.cs +++ b/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL1Sartauvoir/DAL1Sartauvoir.cs @@ -87,8 +87,8 @@ public override void OnCastFinished(Actor caster, ActorCastInfo spell) [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "The Combat Reborn Team", GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 32, SortOrder = 2)] //BossNameID = 9384 public class DAL1Sartauvoir : BossModule { - public readonly IReadOnlyList Boss; - public readonly IReadOnlyList BossP2; + public readonly List Boss; + public readonly List BossP2; public DAL1Sartauvoir(WorldState ws, Actor primary) : base(ws, primary, new(631, 157), new ArenaBoundsSquare(20)) { diff --git a/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL3SaunionDawon/DAL3SaunionDawon.cs b/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL3SaunionDawon/DAL3SaunionDawon.cs index 1278419823..c6b1a37b86 100644 --- a/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL3SaunionDawon/DAL3SaunionDawon.cs +++ b/BossMod/Modules/Shadowbringers/Foray/TheDalriada/DAL3SaunionDawon/DAL3SaunionDawon.cs @@ -16,8 +16,8 @@ class AntiPersonnelMissile(BossModule module) : Components.SpreadFromCastTargets [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "The Combat Reborn Team", GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 32, SortOrder = 4)] //BossNameID = 10192 & 10006 public class DAL3SaunionDawon : BossModule { - public readonly IReadOnlyList Boss; - public readonly IReadOnlyList Dawon; + public readonly List Boss; + public readonly List Dawon; public DAL3SaunionDawon(WorldState ws, Actor primary) : base(ws, primary, new(650, -659), new ArenaBoundsSquare(25)) { diff --git a/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1JagdDolls.cs b/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1JagdDolls.cs index 45c5de28be..a5eeab7344 100644 --- a/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1JagdDolls.cs +++ b/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1JagdDolls.cs @@ -3,7 +3,7 @@ class P1JagdDolls(BossModule module) : BossComponent(module) { public int NumExhausts { get; private set; } - private readonly IReadOnlyList _dolls = module.Enemies(OID.JagdDoll); + private readonly List _dolls = module.Enemies(OID.JagdDoll); private readonly HashSet _exhaustsDone = []; private const float _exhaustRadius = 8.8f; diff --git a/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1ProteanWaveTornado.cs b/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1ProteanWaveTornado.cs index c50b0c04c2..04cb92c8d3 100644 --- a/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1ProteanWaveTornado.cs +++ b/BossMod/Modules/Shadowbringers/Ultimate/TEA/P1ProteanWaveTornado.cs @@ -2,7 +2,7 @@ class P1ProteanWaveTornado : Components.GenericBaitAway { - private readonly IReadOnlyList _liquidRage; + private readonly List _liquidRage; private static readonly AOEShapeCone _shape = new(40, 15.Degrees()); diff --git a/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs b/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs index 323ea6f70d..416aac48ba 100644 --- a/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs +++ b/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs @@ -25,7 +25,7 @@ class P3DivineJudgmentRaidwide(BossModule module) : Components.CastCounter(modul [ModuleInfo(BossModuleInfo.Maturity.Verified, PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 694, PlanLevel = 80)] public class TEA : BossModule { - private readonly IReadOnlyList _liquidHand; + private readonly List _liquidHand; public Actor? BossP1() => PrimaryActor.IsDestroyed ? null : PrimaryActor; public Actor? LiquidHand() => _liquidHand.FirstOrDefault(); @@ -35,7 +35,7 @@ public class TEA : BossModule public Actor? CruiseChaser() => _cruiseChaser; private Actor? _alexPrime; - private readonly IReadOnlyList _trueHeart; + private readonly List _trueHeart; public Actor? AlexPrime() => _alexPrime; public Actor? TrueHeart() => _trueHeart.FirstOrDefault(); diff --git a/BossMod/Modules/Stormblood/Extreme/Ex2Lakshmi/Ex2LakshmiStates.cs b/BossMod/Modules/Stormblood/Extreme/Ex2Lakshmi/Ex2LakshmiStates.cs index f16806e4a8..ca09c29d2f 100644 --- a/BossMod/Modules/Stormblood/Extreme/Ex2Lakshmi/Ex2LakshmiStates.cs +++ b/BossMod/Modules/Stormblood/Extreme/Ex2Lakshmi/Ex2LakshmiStates.cs @@ -8,7 +8,7 @@ class InnerDemonsGaze(BossModule module) : Components.CastGaze(module, ActionID. [ModuleInfo(BossModuleInfo.Maturity.WIP, Contributors = "The Combat Reborn Team", GroupType = BossModuleInfo.GroupType.CFC, GroupID = 264, NameID = 6385)] public class Ex2Lakshmi : BossModule { - public readonly IReadOnlyList DreamingKshatriya; + public readonly List DreamingKshatriya; public Ex2Lakshmi(WorldState ws, Actor primary) : base(ws, primary, new(0, 0), new ArenaBoundsCircle(20)) { diff --git a/BossMod/Modules/Stormblood/Trial/T07Byakko/T07Byakko.cs b/BossMod/Modules/Stormblood/Trial/T07Byakko/T07Byakko.cs index 8514862bfa..0062ca9f10 100644 --- a/BossMod/Modules/Stormblood/Trial/T07Byakko/T07Byakko.cs +++ b/BossMod/Modules/Stormblood/Trial/T07Byakko/T07Byakko.cs @@ -16,7 +16,7 @@ class HighestStakes(BossModule module) : Components.StackWithIcon(module, (uint) class AratamaForce(BossModule module) : Components.GenericAOEs(module) { - private readonly IReadOnlyList _bubbles = module.Enemies(OID.AratamaForce); + private readonly List _bubbles = module.Enemies(OID.AratamaForce); private static readonly AOEShapeCircle _shape = new(2); diff --git a/BossMod/Modules/Stormblood/Ultimate/UCOB/Hatch.cs b/BossMod/Modules/Stormblood/Ultimate/UCOB/Hatch.cs index 7f74e8b759..ffa022ddfd 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UCOB/Hatch.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UCOB/Hatch.cs @@ -5,8 +5,8 @@ class Hatch : Components.CastCounter public bool Active = true; public int NumNeurolinkSpawns { get; private set; } public int NumTargetsAssigned { get; private set; } - private readonly IReadOnlyList _orbs; - private readonly IReadOnlyList _neurolinks; + private readonly List _orbs; + private readonly List _neurolinks; private BitMask _targets; public Hatch(BossModule module) : base(module, ActionID.MakeSpell(AID.Hatch)) diff --git a/BossMod/Modules/Stormblood/Ultimate/UCOB/P3EarthShaker.cs b/BossMod/Modules/Stormblood/Ultimate/UCOB/P3EarthShaker.cs index 31178da09e..7cf3a4aa13 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UCOB/P3EarthShaker.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UCOB/P3EarthShaker.cs @@ -28,7 +28,7 @@ public override void OnEventCast(Actor caster, ActorCastEvent spell) class P3EarthShakerVoidzone(BossModule module) : Components.GenericAOEs(module, default, "GTFO from voidzone!") { - private readonly IReadOnlyList _voidzones = module.Enemies(OID.VoidzoneEarthShaker); + private readonly List _voidzones = module.Enemies(OID.VoidzoneEarthShaker); private readonly List _predicted = []; private BitMask _targets; diff --git a/BossMod/Modules/Stormblood/Ultimate/UCOB/P3FellruinTrio.cs b/BossMod/Modules/Stormblood/Ultimate/UCOB/P3FellruinTrio.cs index 4a86dc3a5b..9100e7922a 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UCOB/P3FellruinTrio.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UCOB/P3FellruinTrio.cs @@ -3,7 +3,7 @@ class P3AethericProfusion(BossModule module) : Components.CastCounter(module, ActionID.MakeSpell(AID.AethericProfusion)) { public bool Active; - private readonly IReadOnlyList _neurolinks = module.Enemies(OID.Neurolink); + private readonly List _neurolinks = module.Enemies(OID.Neurolink); public override void AddHints(int slot, Actor actor, TextHints hints) { diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P1Mesohigh.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P1Mesohigh.cs index 7a7a52c5d4..03174c2bc3 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P1Mesohigh.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P1Mesohigh.cs @@ -3,7 +3,7 @@ // TODO :implement hints... class P1Mesohigh(BossModule module) : Components.CastCounter(module, ActionID.MakeSpell(AID.Mesohigh)) { - private readonly IReadOnlyList _sisters = module.Enemies(OID.GarudaSister); + private readonly List _sisters = module.Enemies(OID.GarudaSister); private const float _radius = 3; public override void DrawArenaForeground(int pcSlot, Actor pc) diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P1MistralSong.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P1MistralSong.cs index 11665c878f..c24f96d532 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P1MistralSong.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P1MistralSong.cs @@ -21,7 +21,7 @@ public override void OnEventIcon(Actor actor, uint iconID, ulong targetID) // TODO: verify width class P1MistralSongAdds(BossModule module) : Components.CastCounter(module, ActionID.MakeSpell(AID.MistralSongAdds)) { - private readonly IReadOnlyList _sisters = module.Enemies(OID.GarudaSister); + private readonly List _sisters = module.Enemies(OID.GarudaSister); private readonly List _targets = []; private static readonly AOEShapeRect _shape = new(40, 5); diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P1Plumes.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P1Plumes.cs index 5f87807067..a8aab5f62c 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P1Plumes.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P1Plumes.cs @@ -2,9 +2,9 @@ class P1Plumes(BossModule module) : BossComponent(module) { - private readonly IReadOnlyList _razor = module.Enemies(OID.RazorPlume); - private readonly IReadOnlyList _spiny = module.Enemies(OID.SpinyPlume); - private readonly IReadOnlyList _satin = module.Enemies(OID.SatinPlume); + private readonly List _razor = module.Enemies(OID.RazorPlume); + private readonly List _spiny = module.Enemies(OID.SpinyPlume); + private readonly List _satin = module.Enemies(OID.SatinPlume); public bool Active => _razor.Any(p => p.IsTargetable) || _spiny.Any(p => p.IsTargetable) || _satin.Any(p => p.IsTargetable); diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P2Nails.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P2Nails.cs index 4503946e70..70dfc8d884 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P2Nails.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P2Nails.cs @@ -3,7 +3,7 @@ // TODO: kill priorities class P2Nails(BossModule module) : BossComponent(module) { - private readonly IReadOnlyList _nails = module.Enemies(OID.InfernalNail); + private readonly List _nails = module.Enemies(OID.InfernalNail); public bool Active => _nails.Any(a => a.IsTargetable); diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P3Burst.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P3Burst.cs index 5abecdf8cb..7923147d2b 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P3Burst.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P3Burst.cs @@ -2,7 +2,7 @@ class P3Burst(BossModule module) : Components.GenericAOEs(module, ActionID.MakeSpell(AID.Burst)) { - private readonly IReadOnlyList _bombs = module.Enemies(OID.BombBoulder); + private readonly List _bombs = module.Enemies(OID.BombBoulder); private readonly Dictionary _bombActivation = []; private static readonly AOEShape _shape = new AOEShapeCircle(6.3f); diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P4MagitekBits.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P4MagitekBits.cs index 9da774cd5d..e5620b3260 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P4MagitekBits.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P4MagitekBits.cs @@ -2,7 +2,7 @@ class P4MagitekBits(BossModule module) : BossComponent(module) { - private readonly IReadOnlyList _bits = module.Enemies(OID.MagitekBit); + private readonly List _bits = module.Enemies(OID.MagitekBit); public bool Active => _bits.Any(b => b.IsTargetable); diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/P4UltimateAnnihilation.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/P4UltimateAnnihilation.cs index f582ac9763..ab792daf3b 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/P4UltimateAnnihilation.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/P4UltimateAnnihilation.cs @@ -2,7 +2,7 @@ class P4UltimateAnnihilation(BossModule module) : BossComponent(module) { - private readonly IReadOnlyList _orbs = module.Enemies(OID.Aetheroplasm); + private readonly List _orbs = module.Enemies(OID.Aetheroplasm); private const float _radius = 6; diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs index a538f542ef..a5556b6ac2 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs @@ -24,12 +24,12 @@ class P5AethericBoom(BossModule module) : Components.KnockbackFromCastTarget(mod [ModuleInfo(BossModuleInfo.Maturity.Verified, PrimaryActorOID = (uint)OID.Garuda, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 539, PlanLevel = 70)] public class UWU : BossModule { - private readonly IReadOnlyList _titan; - private readonly IReadOnlyList _lahabrea; - private readonly IReadOnlyList _ultima; + private readonly List _titan; + private readonly List _lahabrea; + private readonly List _ultima; private Actor? _mainIfrit; - public IReadOnlyList Ifrits { get; } + public List Ifrits { get; } public Actor? Garuda() => PrimaryActor.IsDestroyed ? null : PrimaryActor; public Actor? Ifrit() => _mainIfrit;