From cebc93680ff89c7e5795daad2637adf3e3703278 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 00:35:12 +0000 Subject: [PATCH 01/11] Module viewer refactoring WIP. - refactored expansions --- BossMod/BossModule/BossModule.cs | 22 ---- BossMod/BossModule/BossModuleInfo.cs | 41 +++++++ BossMod/Config/ModuleViewer.cs | 107 ++++++++++-------- .../Endwalker/Unreal/Un1Ultima/Un1Ultima.cs | 2 +- .../Unreal/Un2Sephirot/Un2Sephirot.cs | 2 +- .../Endwalker/Unreal/Un3Sophia/Un3Sophia.cs | 2 +- .../Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs | 2 +- .../Endwalker/Unreal/Un5Thordan/Un5Thordan.cs | 2 +- BossMod/Modules/Events/FF15Collab/MA-x.cs | 4 +- .../TheSliceIsRight/TheSliceIsRight.cs | 2 +- BossMod/Modules/ModuleRegistry.cs | 104 +++++++++++------ .../Shadowbringers/FATE/Archaeotania.cs | 2 +- .../Modules/Shadowbringers/FATE/Formidable.cs | 4 +- BossMod/Util/UIMisc.cs | 8 ++ 14 files changed, 190 insertions(+), 114 deletions(-) create mode 100644 BossMod/BossModule/BossModuleInfo.cs diff --git a/BossMod/BossModule/BossModule.cs b/BossMod/BossModule/BossModule.cs index 00cdf0a633..b35c5f7088 100644 --- a/BossMod/BossModule/BossModule.cs +++ b/BossMod/BossModule/BossModule.cs @@ -2,28 +2,6 @@ namespace BossMod; -// attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases -[AttributeUsage(AttributeTargets.Class, Inherited = false)] -public class ModuleInfoAttribute : Attribute -{ - public Type? StatesType; // default: ns.xxxStates - public Type? ConfigType; // default: ns.xxxConfig - public Type? ObjectIDType; // default: ns.OID - public Type? ActionIDType; // default: ns.AID - public Type? StatusIDType; // default: ns.SID - public Type? TetherIDType; // default: ns.TetherID - public Type? IconIDType; // default: ns.IconID - public string? DisplayName; - public uint ExVersion; // default: 0 - public uint QuestID; // default: 0 - public uint DynamicEventID; // default: 0 - public uint FateID; // default: 0 - public uint NotoriousMonsterID; // default: 0 - public uint NameID; // default: 0 - public uint CFCID; // default: 0 - public uint PrimaryActorOID; // default: OID.Boss -} - // base for boss modules - provides all the common features, so that look is standardized // by default, module activates (transitions to phase 0) whenever "primary" actor becomes both targetable and in combat (this is how we detect 'pull') - though this can be overridden if needed public abstract class BossModule : IDisposable diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs new file mode 100644 index 0000000000..36cc6dbcb8 --- /dev/null +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -0,0 +1,41 @@ +using static BossMod.BossModuleInfo; + +namespace BossMod; + +public static class BossModuleInfo +{ + public enum Expansion : uint + { + RealmReborn, + Heavensward, + Stormblood, + Shadowbringers, + Endwalker, + + Count + } +} + + + +// attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases +[AttributeUsage(AttributeTargets.Class, Inherited = false)] +public class ModuleInfoAttribute : Attribute +{ + public Type? StatesType; // default: ns.xxxStates + public Type? ConfigType; // default: ns.xxxConfig + public Type? ObjectIDType; // default: ns.OID + public Type? ActionIDType; // default: ns.AID + public Type? StatusIDType; // default: ns.SID + public Type? TetherIDType; // default: ns.TetherID + public Type? IconIDType; // default: ns.IconID + public string? DisplayName; + public Expansion Expansion = Expansion.Count; + public uint QuestID; // default: 0 + public uint DynamicEventID; // default: 0 + public uint FateID; // default: 0 + public uint NotoriousMonsterID; // default: 0 + public uint NameID; // default: 0 + public uint CFCID; // default: 0 + public uint PrimaryActorOID; // default: OID.Boss +} diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index 491e2ae56d..2ccccaf764 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -12,75 +12,75 @@ namespace BossMod; public class ModuleViewer { private const int SpaceBetweenFilterWidgets = 3; - private const int IconSize = 30; - private readonly Dictionary ExpansionFilter; + + private BitMask _availableExpansions; + private BitMask _filterExpansions; private readonly Dictionary ContentFilter; - private readonly Lumina.Excel.ExcelSheet _exSheet = Service.LuminaGameData!.GetExcelSheet()!; - private Dictionary exversionToIconID = new() - { - {0, 61875}, - {1, 61876}, - {2, 61877}, - {3, 61878}, - {4, 61879}, - }; + private Vector2 _iconSize = new(30, 30); public ModuleViewer() { - ExpansionFilter = ModuleRegistry.AvailableExpansions.ToDictionary(e => e, e => true); + foreach (var m in ModuleRegistry.RegisteredModules.Values) + _availableExpansions.Set((int)m.Expansion); + _availableExpansions.Clear((int)BossModuleInfo.Expansion.Count); + ContentFilter = ModuleRegistry.AvailableContent.ToDictionary(c => c, c => true); } - public string GetExpansionName(uint id) => _exSheet.GetRow(id)!.Name; - - public static IDalamudTextureWrap? GetIcon(int iconId) => Service.Texture.GetIcon((uint)iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes); - public static IDalamudTextureWrap? GetIcon(uint iconId) => GetIcon((int)iconId); - public void Draw(UITree _tree) { using (var group = ImRaii.Group()) - { - using var table = ImRaii.Table("Filters", 1, ImGuiTableFlags.BordersOuter | ImGuiTableFlags.NoHostExtendX | ImGuiTableFlags.SizingFixedSame | ImGuiTableFlags.ScrollY); - if (!table) - return; - - ImGui.TableNextColumn(); - ImGui.TableHeader("Expansion"); - ImGui.TableNextRow(ImGuiTableRowFlags.None); - ImGui.TableNextColumn(); - DrawExpansionFilters(); - - ImGui.TableNextRow(); - - ImGui.TableNextColumn(); - ImGui.TableHeader("Content"); - ImGui.TableNextRow(ImGuiTableRowFlags.None); - ImGui.TableNextColumn(); - DrawContentTypeFilters(); - } + DrawFilters(); ImGui.SameLine(); using (var group = ImRaii.Group()) DrawModules(_tree); } - public void DrawExpansionFilters() + private void DrawFilters() + { + using var table = ImRaii.Table("Filters", 1, ImGuiTableFlags.BordersOuter | ImGuiTableFlags.NoHostExtendX | ImGuiTableFlags.SizingFixedSame | ImGuiTableFlags.ScrollY); + if (!table) + return; + + ImGui.TableNextColumn(); + ImGui.TableHeader("Expansion"); + ImGui.TableNextRow(ImGuiTableRowFlags.None); + ImGui.TableNextColumn(); + DrawExpansionFilters(); + + ImGui.TableNextRow(); + + ImGui.TableNextColumn(); + ImGui.TableHeader("Content"); + ImGui.TableNextRow(ImGuiTableRowFlags.None); + ImGui.TableNextColumn(); + DrawContentTypeFilters(); + } + + private void DrawExpansionFilters() { - foreach (var expac in ModuleRegistry.AvailableExpansions) + foreach (var e in _availableExpansions.SetBits()) { - UIMisc.ImageToggleButton(GetIcon(exversionToIconID[expac]), new Vector2(IconSize, IconSize), ExpansionFilter[expac], GetExpansionName(expac)); + var expansion = (BossModuleInfo.Expansion)e; + UIMisc.ImageToggleButton(GetExpansionIcon(expansion), _iconSize, !_filterExpansions[e], GetExpansionName(expansion)); if (ImGui.IsItemClicked()) - ExpansionFilter[expac] = !ExpansionFilter[expac]; + { + _filterExpansions.Toggle(e); + } if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) - ExpansionFilter.Keys.Except([expac]).ToList().ForEach(k => ExpansionFilter[k] = !ExpansionFilter[k]); + { + _filterExpansions ^= _availableExpansions; + _filterExpansions.Toggle(e); + } } } - public void DrawContentTypeFilters() + private void DrawContentTypeFilters() { foreach (var cont in ModuleRegistry.AvailableContentIcons) { - UIMisc.ImageToggleButton(GetIcon(cont.Value), new Vector2(IconSize, IconSize), ContentFilter[cont.Key], cont.Key); + UIMisc.ImageToggleButton(GetIcon(cont.Value), _iconSize, ContentFilter[cont.Key], cont.Key); if (ImGui.IsItemClicked()) ContentFilter[cont.Key] = !ContentFilter[cont.Key]; if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) @@ -88,7 +88,7 @@ public void DrawContentTypeFilters() } } - public void DrawModules(UITree _tree) + private void DrawModules(UITree _tree) { using var table = ImRaii.Table("ModulesTable", 2, ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.ScrollX | ImGuiTableFlags.NoHostExtendX); if (!table) @@ -102,14 +102,14 @@ private void DrawRows(IEnumerable enumerable, UITree _tree) { foreach (var mod in enumerable) { - if (!ContentFilter[mod.ContentType ?? new()] || !ExpansionFilter[mod.ExVersion]) + if (!ContentFilter[mod.ContentType ?? new()] || _filterExpansions[(int)mod.Expansion]) continue; ImGui.TableNextRow(); ImGui.TableNextColumn(); - ImGui.Image(GetIcon(exversionToIconID[mod.ExVersion])!.ImGuiHandle, new Vector2(36)); + UIMisc.Image(GetExpansionIcon(mod.Expansion), new(36)); ImGui.SameLine(); - ImGui.Image(GetIcon(mod.ContentIcon)!.ImGuiHandle, new Vector2(36)); + UIMisc.Image(GetIcon(mod.ContentIcon), new(36)); ImGui.TableNextColumn(); foreach (var _ in _tree.Node($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.DisplayName!)}##{mod.PrimaryActorOID}")) DrawBosses(ModuleRegistry.RegisteredModules.Values, mod.DisplayName ?? new()); @@ -122,4 +122,17 @@ private void DrawBosses(IEnumerable modules, SeString name) if (!mod.BossName!.RawString.IsNullOrEmpty()) ImGui.TextUnformatted($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.BossName)}"); } + + private string GetExpansionName(BossModuleInfo.Expansion expansion) => Service.LuminaRow((uint)expansion)?.Name ?? expansion.ToString(); + private IDalamudTextureWrap? GetExpansionIcon(BossModuleInfo.Expansion expansion) => GetIcon(expansion switch + { + BossModuleInfo.Expansion.RealmReborn => 61875, + BossModuleInfo.Expansion.Heavensward => 61876, + BossModuleInfo.Expansion.Stormblood => 61877, + BossModuleInfo.Expansion.Shadowbringers => 61878, + BossModuleInfo.Expansion.Endwalker => 61879, + _ => 0, + }); + + private static IDalamudTextureWrap? GetIcon(uint iconId) => iconId != 0 ? Service.Texture.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes) : null; } diff --git a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs index 1cc9b9edb8..22406a1dad 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs @@ -33,7 +33,7 @@ public Un1UltimaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 825, NameID = 3632, ExVersion = 4, DisplayName = "Ultima's Bane (Unreal)")] +[ModuleInfo(CFCID = 825, NameID = 3632, DisplayName = "Ultima's Bane (Unreal)")] public class Un1Ultima : BossModule { public Un1Ultima(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs index d1ac94363d..47b5677dff 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs @@ -56,7 +56,7 @@ class P3PillarOfSeverity : Components.CastCounter public P3PillarOfSeverity() : base(ActionID.MakeSpell(AID.PillarOfSeverityAOE)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 875, NameID = 4776, ExVersion = 4, DisplayName = "Containment Bay S1T7 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 875, NameID = 4776, DisplayName = "Containment Bay S1T7 (Unreal)")] public class Un2Sephirot : BossModule { public Actor? BossP1() => PrimaryActor.IsDestroyed ? null : PrimaryActor; diff --git a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs index dca6cd430f..9d38341bb8 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs @@ -72,7 +72,7 @@ public class Un3SophiaConfig : CooldownPlanningConfigNode public Un3SophiaConfig() : base(90) { } } -[ModuleInfo(CFCID = 926, NameID = 5199, ExVersion = 4, DisplayName = "Containment Bay P1T6 (Unreal)")] +[ModuleInfo(CFCID = 926, NameID = 5199, DisplayName = "Containment Bay P1T6 (Unreal)")] public class Un3Sophia : BossModule { public Un3Sophia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 0), 20, 15)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs index ca421f59b8..c09df1ec0d 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs @@ -66,7 +66,7 @@ public class Un4ZurvanConfig : CooldownPlanningConfigNode public Un4ZurvanConfig() : base(90) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 951, NameID = 5567, ExVersion = 4, DisplayName = "Containment Bay Z1T9 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 951, NameID = 5567, DisplayName = "Containment Bay Z1T9 (Unreal)")] public class Un4Zurvan : BossModule { private Actor? _bossP2; diff --git a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs index bcb5ee7a75..c0d2904606 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs @@ -72,7 +72,7 @@ public class Un5ThordanConfig : CooldownPlanningConfigNode public Un5ThordanConfig() : base(90) { } } -[ModuleInfo(CFCID = 963, NameID = 3632, ExVersion = 4)] +[ModuleInfo(CFCID = 963, NameID = 3632)] public class Un5Thordan : BossModule { public Un5Thordan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/Events/FF15Collab/MA-x.cs b/BossMod/Modules/Events/FF15Collab/MA-x.cs index 8ae0dc6da1..266bef2c16 100644 --- a/BossMod/Modules/Events/FF15Collab/MA-x.cs +++ b/BossMod/Modules/Events/FF15Collab/MA-x.cs @@ -8,6 +8,7 @@ public enum OID : uint Helper = 0x233C, Noctis = 0x2529, } + public enum AID : uint { AutoAttack = 14675, // 252A->player/Noctis, no cast, single-target @@ -46,10 +47,11 @@ public MAxStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1409, NameID = 7898, ExVersion = 0)] +[ModuleInfo(FateID = 1409, NameID = 7898, Expansion = BossModuleInfo.Expansion.RealmReborn)] public class MAx : BossModule { public MAx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(295, -22), 25)) { } + protected override void DrawEnemies(int pcSlot, Actor pc) { Arena.Actor(PrimaryActor, ArenaColor.Enemy); diff --git a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs b/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs index 7ea0c5ed34..c63300e6cd 100644 --- a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs +++ b/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs @@ -142,7 +142,7 @@ public TheSliceIsRightStates(BossModule module) : base(module) } } -[ModuleInfo(NameID = 9066)] //GoldSaucerTextData ID 181 +[ModuleInfo(NameID = 9066, Expansion = BossModuleInfo.Expansion.Shadowbringers)] //GoldSaucerTextData ID 181 public class TheSliceIsRight : BossModule { public TheSliceIsRight(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(70.5f, -36), 15)) { } diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index ae7f3121ec..0274443856 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -22,8 +22,8 @@ public class Info public Type? IconIDType; public uint PrimaryActorOID; + public BossModuleInfo.Expansion Expansion; public uint CFCID; - public uint ExVersion; public uint ContentIcon; public SeString? ContentType; public SeString? DisplayName; @@ -135,16 +135,15 @@ public bool IsRemovedContent() return null; } + var expansion = infoAttr?.Expansion ?? BossModuleInfo.Expansion.Count; uint nameID = infoAttr?.NameID ?? 0; uint nmID = infoAttr?.NotoriousMonsterID ?? 0; uint fateID = infoAttr?.FateID ?? 0; uint dynamicEventID = infoAttr?.DynamicEventID ?? 0; uint cfcID = infoAttr?.CFCID ?? 0; uint questID = infoAttr?.QuestID ?? 0; - uint exVersion = infoAttr?.ExVersion ?? 69; SeString displayName = new SeString(infoAttr?.DisplayName ?? string.Empty); - uint _exVersion = exVersion; SeString _displayName = displayName; bool uncatalogued = (cfcID == 0 && nameID == 0 && nmID == 0 && fateID == 0 && dynamicEventID == 0 && questID == 0) || (cfcID != 0 && _cfcSheet.GetRow(cfcID)!.ShortCode.RawString.IsNullOrEmpty()); @@ -163,7 +162,8 @@ public bool IsRemovedContent() { var cfcRow = _cfcSheet.GetRow(cfcID)!; contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); - exVersion = cfcRow.TerritoryType?.Value?.ExVersion.Value?.RowId ?? 0; + if (expansion == BossModuleInfo.Expansion.Count && cfcRow.TerritoryType.Value is var terr && terr != null) + expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; displayName = cfcRow.Name; if (cfcID is 735 or 760 or 761 or 778) // bozja et al @@ -194,9 +194,9 @@ public bool IsRemovedContent() //displayName = new SeString($"{displayName} ({huntRank} Rank)"); contentType = _playStyleSheet.GetRow(10)!.Name; contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; - foreach (var row in _nmtSheet) - if (row.Monster.Contains((ushort)nmID)) - exVersion = _territorySheet.FirstOrDefault(x => x.Unknown42 == row.RowId)?.ExVersion.Value?.RowId ?? 0; + + if (expansion == BossModuleInfo.Expansion.Count && _notoriousMonsterToTerritory.TryGetValue(nmID, out var terr)) + expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; } // ideally you could parse the location field to get the exversion in the fate sheet but that requires parsing lgb files @@ -214,14 +214,29 @@ public bool IsRemovedContent() displayName = forayName = _dynamicEventSheet.GetRow(dynamicEventID)!.Name; } - if (questID != 0) + if (_questSheet.GetRow(questID) is var quest && quest != null) { contentType = _contentTypeSheet.GetRow(7)!.Name; contentIcon = _contentTypeSheet.GetRow(7)!.Icon; - displayName = _questSheet.GetRow(questID)!.Name; - exVersion = _questSheet.GetRow(questID)!.Expansion.Value?.RowId ?? 0; + displayName = quest.Name; + if (expansion == BossModuleInfo.Expansion.Count) + expansion = (BossModuleInfo.Expansion)quest.Expansion.Row; } + if (expansion == BossModuleInfo.Expansion.Count && (module.Namespace?.StartsWith("BossMod.") ?? false)) + { + // try to determine expansion from module namespace + var exName = module.Namespace.Substring(8); + var exEnd = exName.IndexOf("."); + if (exEnd > 0) + exName = exName.Substring(0, exEnd); + if (Enum.TryParse(exName, out BossModuleInfo.Expansion guessedExpansion)) + expansion = guessedExpansion; + } + + if (expansion == BossModuleInfo.Expansion.Count) + Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; autodetection failed, consider specifying value manually"); + return new Info(module, statesType) { ConfigType = configType, @@ -232,11 +247,11 @@ public bool IsRemovedContent() IconIDType = iidType, PrimaryActorOID = primaryOID, + Expansion = expansion, CFCID = cfcID, ContentType = contentType, ContentIcon = contentIcon, DisplayName = infoAttr?.DisplayName != null ? _displayName : displayName, - ExVersion = exVersion, BossName = bossName, FateName = fateName, ForayName = forayName, @@ -257,7 +272,8 @@ private Info(Type moduleType, Type statesType) private static Dictionary _modules = new(); // [primary-actor-oid] = module type - private static readonly ExcelSheet _nmtSheet; + private static readonly Dictionary _notoriousMonsterToTerritory = new(); + private static readonly ExcelSheet _playStyleSheet; private static readonly ExcelSheet _cfcSheet; private static readonly ExcelSheet _dynamicEventSheet; @@ -268,7 +284,7 @@ private Info(Type moduleType, Type statesType) private static readonly ExcelSheet _questSheet; private static readonly ExcelSheet _fateSheet; - private static readonly List _expacs; + //private static readonly List _expacs; private static readonly List _catalogued; private static readonly List _uncatalogued; private static readonly List _contentTypes; @@ -276,12 +292,32 @@ private Info(Type moduleType, Type statesType) static ModuleRegistry() { - _nmtSheet = Service.LuminaGameData!.GetExcelSheet()!; + var territorySheet = Service.LuminaGameData?.GetExcelSheet(); + var nmtSheet = Service.LuminaGameData?.GetExcelSheet(); + if (territorySheet != null) + { + foreach (var terr in territorySheet.Where(terr => terr.Unknown42 != 0)) + { + var nmt = nmtSheet?.GetRowParser(terr.Unknown42); + if (nmt != null) + { + for (int i = 0; i < 10; ++i) + { + var nmId = nmt.ReadColumn(i); + if (nmId != 0) + { + _notoriousMonsterToTerritory.Add(nmId, terr); + } + } + } + } + } + _playStyleSheet = Service.LuminaGameData!.GetExcelSheet()!; _cfcSheet = Service.LuminaGameData!.GetExcelSheet()!; _dynamicEventSheet = Service.LuminaGameData!.GetExcelSheet()!; _contentTypeSheet = Service.LuminaGameData!.GetExcelSheet()!; - _territorySheet = Service.LuminaGameData!.GetExcelSheet()!; + _territorySheet = territorySheet!; _nmSheet = Service.LuminaGameData!.GetExcelSheet()!; _npcNamesSheet = Service.LuminaGameData!.GetExcelSheet()!; _questSheet = Service.LuminaGameData!.GetExcelSheet()!; @@ -300,12 +336,11 @@ static ModuleRegistry() _catalogued = _modules.Values .Where(x => !x.IsUncatalogued) - .GroupBy(x => new { x.ExVersion, ContentType = x.ContentType ?? new() }) - .OrderBy(g => g.Key.ExVersion) + .GroupBy(x => new { x.Expansion, ContentType = x.ContentType ?? new() }) + .OrderBy(g => g.Key.Expansion) .SelectMany(group => group.OrderBy(x => _cfcSheet.GetRow(x.CFCID)?.SortKey)) .ToList(); - _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.ExVersion == 69).Select(x => x).ToList(); - _expacs = _modules.Where(x => x.Value.ExVersion != 69).Select(x => x.Value.ExVersion).Distinct().OrderBy(x => x).ToList(); + _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.Expansion == BossModuleInfo.Expansion.Count).Select(x => x).ToList(); _contentTypes = _modules.Select(x => x.Value.ContentType ?? new()).Distinct().ToList(); _contentTypesIcons = _modules .Where(x => x.Value.ContentType != null && x.Value.ContentIcon != default) @@ -316,7 +351,6 @@ static ModuleRegistry() public static IReadOnlyDictionary RegisteredModules => _modules; public static IReadOnlyList CataloguedModules => _catalogued; public static IReadOnlyList UncataloguedModules => _uncatalogued; - public static IReadOnlyList AvailableExpansions => _expacs; public static IReadOnlyList AvailableContent => _contentTypes; public static IReadOnlyDictionary AvailableContentIcons => _contentTypesIcons; @@ -347,19 +381,19 @@ static ModuleRegistry() return CreateModule(FindByOID(oid)?.ModuleType, new(TimeSpan.TicksPerSecond, "fake"), new(0, oid, -1, "", ActorType.None, Class.None, 0, new())); } - [Sheet("NotoriousMonsterTerritory", columnHash: 0xf057da9c)] - public partial class NotoriousMonsterTerritory : ExcelRow - { - public const int Length = 10; - public ushort[] Monster { get; private set; } = new ushort[Length]; - - public override void PopulateData(RowParser parser, GameData gameData, Lumina.Data.Language language) - { - base.PopulateData(parser, gameData, language); - for (var i = 0; i < Length; ++i) - { - Monster[i] = parser.ReadOffset(2 * i); - } - } - } + //[Sheet("NotoriousMonsterTerritory", columnHash: 0xf057da9c)] + //public partial class NotoriousMonsterTerritory : ExcelRow + //{ + // public const int Length = 10; + // public ushort[] Monster { get; private set; } = new ushort[Length]; + + // public override void PopulateData(RowParser parser, GameData gameData, Lumina.Data.Language language) + // { + // base.PopulateData(parser, gameData, language); + // for (var i = 0; i < Length; ++i) + // { + // Monster[i] = parser.ReadOffset(2 * i); + // } + // } + //} } diff --git a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs index e459501d93..79938839b1 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs @@ -168,7 +168,7 @@ public ArchaeotaniaStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1432, ExVersion = 3, NameID = 8234)] +[ModuleInfo(FateID = 1432, NameID = 8234)] public class Archaeotania : BossModule { public Archaeotania(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(279, 249), 29)) { } diff --git a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs index 8c2a0a7b1a..3ce51285e8 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs @@ -271,5 +271,5 @@ public FormidableStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1464, ExVersion = 3, NameID = 8822)] -public class Formidable(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } \ No newline at end of file +[ModuleInfo(FateID = 1464, NameID = 8822)] +public class Formidable(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Util/UIMisc.cs b/BossMod/Util/UIMisc.cs index 27f9f218b3..16582d7b40 100644 --- a/BossMod/Util/UIMisc.cs +++ b/BossMod/Util/UIMisc.cs @@ -29,6 +29,14 @@ public static void TextUnderlined(Vector4 colour, string text) ImGui.TextColored(colour, text); } + public static void Image(IDalamudTextureWrap? icon, Vector2 size) + { + if (icon != null) + ImGui.Image(icon.ImGuiHandle, size); + else + ImGui.Dummy(size); + } + public static bool ImageToggleButton(IDalamudTextureWrap? icon, Vector2 size, bool state, string text) { var cursor = ImGui.GetCursorPos(); From be186691a20c81051d31fdfd682787af1a540d99 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 10:43:45 +0000 Subject: [PATCH 02/11] Module viewer refactoring WIP. - refactored categories --- BossMod/BossModule/BossModuleInfo.cs | 38 ++++-- BossMod/Config/ConfigUI.cs | 7 +- BossMod/Config/ModuleViewer.cs | 111 ++++++++++++----- .../{HuntA => Hunt/RankA}/Aegeiros.cs | 2 +- .../{HuntA => Hunt/RankA}/ArchEta.cs | 2 +- .../Endwalker/{HuntA => Hunt/RankA}/FanAil.cs | 2 +- .../{HuntA => Hunt/RankA}/Gurangatch.cs | 2 +- .../Endwalker/{HuntA => Hunt/RankA}/Hulder.cs | 2 +- .../{HuntA => Hunt/RankA}/LunatenderQueen.cs | 2 +- .../{HuntA => Hunt/RankA}/Minerva.cs | 2 +- .../{HuntA => Hunt/RankA}/MoussePrincess.cs | 2 +- .../{HuntA => Hunt/RankA}/Petalodus.cs | 2 +- .../{HuntA => Hunt/RankA}/Storsie.cs | 2 +- .../{HuntA => Hunt/RankA}/Sugriva.cs | 2 +- .../Endwalker/{HuntA => Hunt/RankA}/Yilan.cs | 2 +- .../{HuntS => Hunt/RankS}/Armstrong.cs | 2 +- .../{HuntS => Hunt/RankS}/Burfurlur.cs | 2 +- .../Endwalker/{HuntS => Hunt/RankS}/Ker.cs | 2 +- .../{HuntS => Hunt/RankS}/KerShroud.cs | 2 +- .../{HuntS => Hunt/RankS}/NarrowRift.cs | 2 +- .../{HuntS => Hunt/RankS}/Ophioneus.cs | 2 +- .../{HuntS => Hunt/RankS}/Ruminator.cs | 2 +- .../{HuntS => Hunt/RankS}/Sphatika.cs | 2 +- .../{Trials => Trial}/T02Hydaelyn/Echoes.cs | 2 +- .../{Trials => Trial}/T02Hydaelyn/Exodus.cs | 2 +- .../T02Hydaelyn/Lightwave.cs | 2 +- .../T02Hydaelyn/ParhelicCircle.cs | 2 +- .../T02Hydaelyn/T02Hydaelyn.cs | 2 +- .../T02Hydaelyn/T02HydaelynEnums.cs | 2 +- .../T02Hydaelyn/WeaponTracker.cs | 2 +- .../{Trials => Trial}/T08Asura/T08Asura.cs | 2 +- .../T08Asura/T08AsuriChakra.cs | 2 +- .../{Trials => Trial}/T08Asura/T08Enums.cs | 2 +- .../T08Asura/T08Laceration.cs | 2 +- .../T08Asura/T08ManyFaces.cs | 2 +- .../T08Asura/T08MyriadAspects.cs | 2 +- .../T08Asura/T08SixBladedKhadga.cs | 2 +- .../Event}/FF15Collab/Garuda.cs | 2 +- .../Event}/FF15Collab/Iseultalon.cs | 2 +- .../Event}/FF15Collab/MA-x.cs | 4 +- .../TheSliceIsRight/TheSliceIsRight.cs | 4 +- .../MaskedCarnivale/ObstacleLayouts.cs | 2 +- .../Stage01AllsWellThatStartsWell/Stage01.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act1.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act2.cs | 2 +- .../Stage03WaitingForGolem/Stage03.cs | 2 +- .../Stage04Act1.cs | 2 +- .../Stage04Act2.cs | 2 +- .../Stage05TheThreepennyTurtles/Stage05.cs | 2 +- .../Stage06EyeSociety/Stage06Act1.cs | 2 +- .../Stage06EyeSociety/Stage06Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act1.cs | 2 +- .../Stage07AChorusSlime/Stage07Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act3.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act1.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act2.cs | 2 +- .../Stage09ToKillAMockingslime}/Stage09.cs | 2 +- .../Stage10ALittleKnightMusic/Stage10.cs | 2 +- .../Stage11Act1.cs | 2 +- .../Stage11Act2.cs | 2 +- .../Stage12Act1.cs | 2 +- .../Stage12Act2.cs | 2 +- .../Stage13BeautyAndABeast}/Stage13Act1.cs | 2 +- .../Stage13BeautyAndABeast}/Stage13Act2.cs | 2 +- .../Stage14BlobsInTheWoods}/Stage14Act1.cs | 2 +- .../Stage14BlobsInTheWoods}/Stage14Act2.cs | 2 +- .../Stage15TheMeNobodyNodes/Stage15.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act1.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act2.cs | 2 +- .../Stage17TheSwordOfMusic}/Stage17Act1.cs | 2 +- .../Stage17TheSwordOfMusic}/Stage17Act2.cs | 2 +- .../Stage18Act1.cs | 2 +- .../Stage18Act2.cs | 2 +- .../Stage19Act1.cs | 2 +- .../Stage19Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act1.cs | 2 +- .../Stage20MissTyphon/Stage20Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act3.cs | 2 +- .../Stage21Act1.cs | 2 +- .../Stage21Act2.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act1.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act2.cs | 2 +- .../Stage23BehemothsAndBroomsticks/Stage23.cs | 2 +- .../Stage24Act1.cs | 2 +- .../Stage24Act2.cs | 2 +- .../Stage24Act3.cs | 2 +- .../Stage25Act1.cs | 2 +- .../Stage25Act2.cs | 2 +- .../Stage25Act3.cs | 2 +- .../Stage26PapaMia/Stage26Act1.cs | 2 +- .../Stage26PapaMia/Stage26Act2.cs | 2 +- .../Stage27LockUpYourSnorters/Stage27.cs | 2 +- .../PVP/HiddenGorge/GoblinMercenary.cs | 2 +- BossMod/Modules/ModuleRegistry.cs | 116 ++++++++---------- .../Trial/T09WhorleaterH/T09WhorleaterH.cs | 2 +- .../T09WhorleaterH/T09WhorleaterHBodyslam.cs | 2 +- .../T09WhorleaterH/T09WhorleaterHEnums.cs | 2 +- .../T09WhorleaterH/T09WhorleaterHHints.cs | 2 +- .../T09WhorleaterHSpinningDive.cs | 2 +- .../{HuntA => Hunt/RankA}/Baal.cs | 2 +- .../{HuntA => Hunt/RankA}/Grassman.cs | 2 +- .../{HuntA => Hunt/RankA}/Huracan.cs | 2 +- .../{HuntA => Hunt/RankA}/LilMurderer.cs | 2 +- .../{HuntA => Hunt/RankA}/Maliktender.cs | 2 +- .../{HuntA => Hunt/RankA}/Nariphon.cs | 2 +- .../{HuntA => Hunt/RankA}/Nuckelavee.cs | 2 +- .../{HuntA => Hunt/RankA}/OPoorestPauldia.cs | 2 +- .../{HuntA => Hunt/RankA}/Rusalka.cs | 2 +- .../{HuntA => Hunt/RankA}/Sugaar.cs | 2 +- .../{HuntA => Hunt/RankA}/Supay.cs | 2 +- .../{HuntA => Hunt/RankA}/TheMudman.cs | 2 +- .../{HuntS => Hunt/RankS}/Aglaope.cs | 2 +- .../{HuntS => Hunt/RankS}/ForgivenGossip.cs | 2 +- .../{HuntS => Hunt/RankS}/ForgivenPedantry.cs | 2 +- .../RankS}/ForgivenRebellion.cs | 2 +- .../{HuntS => Hunt/RankS}/Gunitt.cs | 2 +- .../{HuntS => Hunt/RankS}/Ixtab.cs | 2 +- .../{HuntS => Hunt/RankS}/Tarchia.cs | 2 +- .../{HuntS => Hunt/RankS}/Tyger.cs | 2 +- .../{HuntA => Hunt/RankA}/Angada.cs | 2 +- .../{HuntA => Hunt/RankA}/Gajasura.cs | 2 +- .../{HuntS => Hunt/RankS}/BoneCrawler.cs | 2 +- .../Stormblood/{HuntS => Hunt/RankS}/Gamma.cs | 2 +- .../Stormblood/{HuntS => Hunt/RankS}/Okina.cs | 2 +- .../{HuntS => Hunt/RankS}/Orghana.cs | 2 +- .../Visualization/ReplayDetailsWindow.cs | 1 + UIDev/ConfigTest.cs | 5 + 127 files changed, 292 insertions(+), 232 deletions(-) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Aegeiros.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/ArchEta.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/FanAil.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Gurangatch.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Hulder.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/LunatenderQueen.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Minerva.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/MoussePrincess.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Petalodus.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Storsie.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Sugriva.cs (99%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Yilan.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Armstrong.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Burfurlur.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Ker.cs (99%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/KerShroud.cs (94%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/NarrowRift.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Ophioneus.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Ruminator.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Sphatika.cs (99%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/Echoes.cs (92%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/Exodus.cs (95%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/Lightwave.cs (93%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/ParhelicCircle.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/T02Hydaelyn.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/T02HydaelynEnums.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/WeaponTracker.cs (96%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08Asura.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08AsuriChakra.cs (94%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08Enums.cs (99%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08Laceration.cs (95%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08ManyFaces.cs (97%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08MyriadAspects.cs (97%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08SixBladedKhadga.cs (96%) rename BossMod/Modules/{Events => Global/Event}/FF15Collab/Garuda.cs (99%) rename BossMod/Modules/{Events => Global/Event}/FF15Collab/Iseultalon.cs (99%) rename BossMod/Modules/{Events => Global/Event}/FF15Collab/MA-x.cs (93%) rename BossMod/Modules/{ => Global}/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/ObstacleLayouts.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage09ToKillaMockingslime => Global/MaskedCarnivale/Stage09ToKillAMockingslime}/Stage09.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage13BeautyandaBeast => Global/MaskedCarnivale/Stage13BeautyAndABeast}/Stage13Act1.cs (96%) rename BossMod/Modules/{MaskedCarnivale/Stage13BeautyandaBeast => Global/MaskedCarnivale/Stage13BeautyAndABeast}/Stage13Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage14BlobsintheWoods => Global/MaskedCarnivale/Stage14BlobsInTheWoods}/Stage14Act1.cs (97%) rename BossMod/Modules/{MaskedCarnivale/Stage14BlobsintheWoods => Global/MaskedCarnivale/Stage14BlobsInTheWoods}/Stage14Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs (96%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage17TheSwordofMusic => Global/MaskedCarnivale/Stage17TheSwordOfMusic}/Stage17Act1.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage17TheSwordofMusic => Global/MaskedCarnivale/Stage17TheSwordOfMusic}/Stage17Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever => Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever}/Stage19Act1.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever => Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever}/Stage19Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs (99%) rename BossMod/Modules/{ => Global}/PVP/HiddenGorge/GoblinMercenary.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Baal.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Grassman.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Huracan.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/LilMurderer.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Maliktender.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Nariphon.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Nuckelavee.cs (96%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/OPoorestPauldia.cs (96%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Rusalka.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Sugaar.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Supay.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/TheMudman.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Aglaope.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/ForgivenGossip.cs (94%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/ForgivenPedantry.cs (99%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/ForgivenRebellion.cs (99%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Gunitt.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Ixtab.cs (99%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Tarchia.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Tyger.cs (98%) rename BossMod/Modules/Stormblood/{HuntA => Hunt/RankA}/Angada.cs (98%) rename BossMod/Modules/Stormblood/{HuntA => Hunt/RankA}/Gajasura.cs (96%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/BoneCrawler.cs (97%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/Gamma.cs (98%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/Okina.cs (98%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/Orghana.cs (96%) diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs index 36cc6dbcb8..bd0b43dcf4 100644 --- a/BossMod/BossModule/BossModuleInfo.cs +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -1,22 +1,45 @@ -using static BossMod.BossModuleInfo; - -namespace BossMod; +namespace BossMod; public static class BossModuleInfo { - public enum Expansion : uint + public enum Expansion { RealmReborn, Heavensward, Stormblood, Shadowbringers, Endwalker, + Global, Count } -} + public enum Category + { + Uncategorized, + Dungeon, + Trial, + Extreme, + Raid, + Savage, + Ultimate, + Unreal, + Alliance, + Foray, + Criterion, + DeepDungeon, + FATE, + Hunt, + Quest, + TreasureHunt, + PVP, + MaskedCarnivale, + GoldSaucer, + Event, + Count + } +} // attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases [AttributeUsage(AttributeTargets.Class, Inherited = false)] @@ -29,13 +52,14 @@ public class ModuleInfoAttribute : Attribute public Type? StatusIDType; // default: ns.SID public Type? TetherIDType; // default: ns.TetherID public Type? IconIDType; // default: ns.IconID + public uint PrimaryActorOID; // default: OID.Boss public string? DisplayName; - public Expansion Expansion = Expansion.Count; + public BossModuleInfo.Expansion Expansion = BossModuleInfo.Expansion.Count; // default: second namespace level + public BossModuleInfo.Category Category = BossModuleInfo.Category.Count; // default: third namespace level public uint QuestID; // default: 0 public uint DynamicEventID; // default: 0 public uint FateID; // default: 0 public uint NotoriousMonsterID; // default: 0 public uint NameID; // default: 0 public uint CFCID; // default: 0 - public uint PrimaryActorOID; // default: OID.Boss } diff --git a/BossMod/Config/ConfigUI.cs b/BossMod/Config/ConfigUI.cs index 8035c6d3e6..e38f7f7793 100644 --- a/BossMod/Config/ConfigUI.cs +++ b/BossMod/Config/ConfigUI.cs @@ -4,7 +4,7 @@ namespace BossMod; -public class ConfigUI +public class ConfigUI : IDisposable { private class UINode { @@ -54,6 +54,11 @@ public ConfigUI(ConfigRoot config, WorldState ws) SortByOrder(_roots); } + public void Dispose() + { + _mv.Dispose(); + } + public void Draw() { using var tabs = ImRaii.TabBar("Tabs"); diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index 2ccccaf764..d9c6653d49 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -9,23 +9,60 @@ namespace BossMod; -public class ModuleViewer +public class ModuleViewer : IDisposable { - private const int SpaceBetweenFilterWidgets = 3; - - private BitMask _availableExpansions; private BitMask _filterExpansions; - private readonly Dictionary ContentFilter; + private BitMask _filterCategories; + + private (string name, IDalamudTextureWrap? icon)[] _expansions; + private (string name, IDalamudTextureWrap? icon)[] _categories; private Vector2 _iconSize = new(30, 30); public ModuleViewer() { - foreach (var m in ModuleRegistry.RegisteredModules.Values) - _availableExpansions.Set((int)m.Expansion); - _availableExpansions.Clear((int)BossModuleInfo.Expansion.Count); + var defaultIcon = GetIcon(61762); + _expansions = Enum.GetNames().Take((int)BossModuleInfo.Expansion.Count).Select(n => (n, defaultIcon)).ToArray(); + _categories = Enum.GetNames().Take((int)BossModuleInfo.Category.Count).Select(n => (n, defaultIcon)).ToArray(); + + var exVersion = Service.LuminaGameData?.GetExcelSheet(); + Customize(BossModuleInfo.Expansion.RealmReborn, 61875, exVersion?.GetRow(0)?.Name); + Customize(BossModuleInfo.Expansion.Heavensward, 61876, exVersion?.GetRow(1)?.Name); + Customize(BossModuleInfo.Expansion.Stormblood, 61877, exVersion?.GetRow(2)?.Name); + Customize(BossModuleInfo.Expansion.Shadowbringers, 61878, exVersion?.GetRow(3)?.Name); + Customize(BossModuleInfo.Expansion.Endwalker, 61879, exVersion?.GetRow(4)?.Name); + + var contentType = Service.LuminaGameData?.GetExcelSheet(); + Customize(BossModuleInfo.Category.Dungeon, contentType?.GetRow(2)); + Customize(BossModuleInfo.Category.Trial, contentType?.GetRow(4)); + Customize(BossModuleInfo.Category.Raid, contentType?.GetRow(5)); + Customize(BossModuleInfo.Category.PVP, contentType?.GetRow(6)); + Customize(BossModuleInfo.Category.Quest, contentType?.GetRow(7)); + Customize(BossModuleInfo.Category.FATE, contentType?.GetRow(8)); + Customize(BossModuleInfo.Category.TreasureHunt, contentType?.GetRow(9)); + Customize(BossModuleInfo.Category.GoldSaucer, contentType?.GetRow(19)); + Customize(BossModuleInfo.Category.DeepDungeon, contentType?.GetRow(21)); + Customize(BossModuleInfo.Category.Ultimate, contentType?.GetRow(28)); + Customize(BossModuleInfo.Category.Criterion, contentType?.GetRow(30)); + + var playStyle = Service.LuminaGameData?.GetExcelSheet(); + Customize(BossModuleInfo.Category.Foray, playStyle?.GetRow(6)); + Customize(BossModuleInfo.Category.MaskedCarnivale, playStyle?.GetRow(8)); + Customize(BossModuleInfo.Category.Hunt, playStyle?.GetRow(10)); + + _categories[(int)BossModuleInfo.Category.Extreme].icon = _categories[(int)BossModuleInfo.Category.Trial].icon; + _categories[(int)BossModuleInfo.Category.Unreal].icon = _categories[(int)BossModuleInfo.Category.Trial].icon; + _categories[(int)BossModuleInfo.Category.Savage].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; + _categories[(int)BossModuleInfo.Category.Alliance].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; + _categories[(int)BossModuleInfo.Category.Event].icon = GetIcon(61757); + } - ContentFilter = ModuleRegistry.AvailableContent.ToDictionary(c => c, c => true); + public void Dispose() + { + foreach (var e in _expansions) + e.icon?.Dispose(); + foreach (var c in _categories) + c.icon?.Dispose(); } public void Draw(UITree _tree) @@ -60,31 +97,37 @@ private void DrawFilters() private void DrawExpansionFilters() { - foreach (var e in _availableExpansions.SetBits()) + for (var e = BossModuleInfo.Expansion.RealmReborn; e < BossModuleInfo.Expansion.Count; ++e) { - var expansion = (BossModuleInfo.Expansion)e; - UIMisc.ImageToggleButton(GetExpansionIcon(expansion), _iconSize, !_filterExpansions[e], GetExpansionName(expansion)); + ref var expansion = ref _expansions[(int)e]; + UIMisc.ImageToggleButton(expansion.icon, _iconSize, !_filterExpansions[(int)e], expansion.name); if (ImGui.IsItemClicked()) { - _filterExpansions.Toggle(e); + _filterExpansions.Toggle((int)e); } if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) { - _filterExpansions ^= _availableExpansions; - _filterExpansions.Toggle(e); + _filterExpansions = ~_filterExpansions; + _filterExpansions.Toggle((int)e); } } } private void DrawContentTypeFilters() { - foreach (var cont in ModuleRegistry.AvailableContentIcons) + for (var c = BossModuleInfo.Category.Uncategorized; c < BossModuleInfo.Category.Count; ++c) { - UIMisc.ImageToggleButton(GetIcon(cont.Value), _iconSize, ContentFilter[cont.Key], cont.Key); + ref var category = ref _categories[(int)c]; + UIMisc.ImageToggleButton(category.icon, _iconSize, !_filterCategories[(int)c], category.name); if (ImGui.IsItemClicked()) - ContentFilter[cont.Key] = !ContentFilter[cont.Key]; + { + _filterCategories.Toggle((int)c); + } if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) - ContentFilter.Keys.Except([cont.Key]).ToList().ForEach(k => ContentFilter[k] = !ContentFilter[k]); + { + _filterCategories = ~_filterCategories; + _filterCategories.Toggle((int)c); + } } } @@ -102,14 +145,14 @@ private void DrawRows(IEnumerable enumerable, UITree _tree) { foreach (var mod in enumerable) { - if (!ContentFilter[mod.ContentType ?? new()] || _filterExpansions[(int)mod.Expansion]) + if (_filterExpansions[(int)mod.Expansion] || _filterCategories[(int)mod.Category]) continue; ImGui.TableNextRow(); ImGui.TableNextColumn(); - UIMisc.Image(GetExpansionIcon(mod.Expansion), new(36)); + UIMisc.Image(_expansions[(int)mod.Expansion].icon, new(36)); ImGui.SameLine(); - UIMisc.Image(GetIcon(mod.ContentIcon), new(36)); + UIMisc.Image(_categories[(int)mod.Category].icon, new(36)); ImGui.TableNextColumn(); foreach (var _ in _tree.Node($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.DisplayName!)}##{mod.PrimaryActorOID}")) DrawBosses(ModuleRegistry.RegisteredModules.Values, mod.DisplayName ?? new()); @@ -123,16 +166,18 @@ private void DrawBosses(IEnumerable modules, SeString name) ImGui.TextUnformatted($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.BossName)}"); } - private string GetExpansionName(BossModuleInfo.Expansion expansion) => Service.LuminaRow((uint)expansion)?.Name ?? expansion.ToString(); - private IDalamudTextureWrap? GetExpansionIcon(BossModuleInfo.Expansion expansion) => GetIcon(expansion switch + private void Customize((string name, IDalamudTextureWrap? icon)[] array, int element, uint iconId, SeString? name) { - BossModuleInfo.Expansion.RealmReborn => 61875, - BossModuleInfo.Expansion.Heavensward => 61876, - BossModuleInfo.Expansion.Stormblood => 61877, - BossModuleInfo.Expansion.Shadowbringers => 61878, - BossModuleInfo.Expansion.Endwalker => 61879, - _ => 0, - }); - - private static IDalamudTextureWrap? GetIcon(uint iconId) => iconId != 0 ? Service.Texture.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes) : null; + var icon = iconId != 0 ? GetIcon(iconId) : null; + if (icon != null) + array[element].icon = icon; + if (name != null) + array[element].name = name; + } + private void Customize(BossModuleInfo.Expansion expansion, uint iconId, SeString? name) => Customize(_expansions, (int)expansion, iconId, name); + private void Customize(BossModuleInfo.Category category, uint iconId, SeString? name) => Customize(_categories, (int)category, iconId, name); + private void Customize(BossModuleInfo.Category category, ContentType? ct) => Customize(category, ct?.Icon ?? 0, ct?.Name); + private void Customize(BossModuleInfo.Category category, CharaCardPlayStyle? ps) => Customize(category, (uint)(ps?.Icon ?? 0), ps?.Name); + + private static IDalamudTextureWrap? GetIcon(uint iconId) => Service.Texture?.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes); } diff --git a/BossMod/Modules/Endwalker/HuntA/Aegeiros.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Aegeiros.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs index 47c9dfc336..33242c712a 100644 --- a/BossMod/Modules/Endwalker/HuntA/Aegeiros.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Aegeiros; +namespace BossMod.Endwalker.Hunt.RankA.Aegeiros; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/ArchEta.cs b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/ArchEta.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs index 0f86f79ec7..6f31241e08 100644 --- a/BossMod/Modules/Endwalker/HuntA/ArchEta.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.ArchEta; +namespace BossMod.Endwalker.Hunt.RankA.ArchEta; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/FanAil.cs b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/FanAil.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs index 8d37173bc5..3bb1d70b0f 100644 --- a/BossMod/Modules/Endwalker/HuntA/FanAil.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.FanAil; +namespace BossMod.Endwalker.Hunt.RankA.FanAil; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Gurangatch.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Gurangatch.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs index d621a7784e..08b53f964a 100644 --- a/BossMod/Modules/Endwalker/HuntA/Gurangatch.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Gurangatch; +namespace BossMod.Endwalker.Hunt.RankA.Gurangatch; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Hulder.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/Hulder.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs index 3a334aeca1..0423d68fa4 100644 --- a/BossMod/Modules/Endwalker/HuntA/Hulder.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Hulder; +namespace BossMod.Endwalker.Hunt.RankA.Hulder; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/LunatenderQueen.cs b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/LunatenderQueen.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs index f5f332faf9..c4efdbaacb 100644 --- a/BossMod/Modules/Endwalker/HuntA/LunatenderQueen.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.LunatenderQueen; +namespace BossMod.Endwalker.Hunt.RankA.LunatenderQueen; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Minerva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Minerva.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs index ebfaa7d021..ecd739f743 100644 --- a/BossMod/Modules/Endwalker/HuntA/Minerva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Minerva; +namespace BossMod.Endwalker.Hunt.RankA.Minerva; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/MoussePrincess.cs b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/MoussePrincess.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs index ce0f2d4bae..243aecd93e 100644 --- a/BossMod/Modules/Endwalker/HuntA/MoussePrincess.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.MoussePrincess; +namespace BossMod.Endwalker.Hunt.RankA.MoussePrincess; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Petalodus.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/Petalodus.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs index a7b75afccb..7bf84f9d3a 100644 --- a/BossMod/Modules/Endwalker/HuntA/Petalodus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Petalodus; +namespace BossMod.Endwalker.Hunt.RankA.Petalodus; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Storsie.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Storsie.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs index db69833e22..a33536bc40 100644 --- a/BossMod/Modules/Endwalker/HuntA/Storsie.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Storsie; +namespace BossMod.Endwalker.Hunt.RankA.Storsie; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Sugriva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs similarity index 99% rename from BossMod/Modules/Endwalker/HuntA/Sugriva.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs index c7e92162c4..218d30da01 100644 --- a/BossMod/Modules/Endwalker/HuntA/Sugriva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Sugriva; +namespace BossMod.Endwalker.Hunt.RankA.Sugriva; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Yilan.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Yilan.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs index 6af85bbe7e..414f366ae4 100644 --- a/BossMod/Modules/Endwalker/HuntA/Yilan.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Yilan; +namespace BossMod.Endwalker.Hunt.RankA.Yilan; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Armstrong.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Armstrong.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs index 7dbbbc3ef2..d9bcb68342 100644 --- a/BossMod/Modules/Endwalker/HuntS/Armstrong.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Armstrong; +namespace BossMod.Endwalker.Hunt.RankS.Armstrong; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Burfurlur.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Burfurlur.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs index 62ce20ad7d..caf87c80ed 100644 --- a/BossMod/Modules/Endwalker/HuntS/Burfurlur.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Burfurlur; +namespace BossMod.Endwalker.Hunt.RankS.Burfurlur; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Ker.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs similarity index 99% rename from BossMod/Modules/Endwalker/HuntS/Ker.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs index 7f37ddf4a0..9c85fa9a0d 100644 --- a/BossMod/Modules/Endwalker/HuntS/Ker.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs @@ -1,5 +1,5 @@ // CONTRIB: changes by malediktus, not checked -namespace BossMod.Endwalker.HuntS.Ker; +namespace BossMod.Endwalker.Hunt.RankS.Ker; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/KerShroud.cs b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs similarity index 94% rename from BossMod/Modules/Endwalker/HuntS/KerShroud.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs index a3cfeec381..9a942cf8e2 100644 --- a/BossMod/Modules/Endwalker/HuntS/KerShroud.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.KerShroud; +namespace BossMod.Endwalker.Hunt.RankS.KerShroud; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/NarrowRift.cs b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/NarrowRift.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs index 181bcdf145..b1382f9bc6 100644 --- a/BossMod/Modules/Endwalker/HuntS/NarrowRift.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.NarrowRift; +namespace BossMod.Endwalker.Hunt.RankS.NarrowRift; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Ophioneus.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Ophioneus.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs index daa0008aec..83a85b67e1 100644 --- a/BossMod/Modules/Endwalker/HuntS/Ophioneus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Ophioneus; +namespace BossMod.Endwalker.Hunt.RankS.Ophioneus; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Ruminator.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Ruminator.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs index 4d90e3cce2..1b111016fd 100644 --- a/BossMod/Modules/Endwalker/HuntS/Ruminator.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Ruminator; +namespace BossMod.Endwalker.Hunt.RankS.Ruminator; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Sphatika.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs similarity index 99% rename from BossMod/Modules/Endwalker/HuntS/Sphatika.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs index 8a8062f0c2..c957329921 100644 --- a/BossMod/Modules/Endwalker/HuntS/Sphatika.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Sphatika; +namespace BossMod.Endwalker.Hunt.RankS.Sphatika; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Echoes.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Echoes.cs similarity index 92% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Echoes.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Echoes.cs index 3ecfcffc0f..d169810517 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Echoes.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Echoes.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class Echoes : Components.UniformStackSpread { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Exodus.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Exodus.cs similarity index 95% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Exodus.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Exodus.cs index 2bee1c750c..9055f0da4b 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Exodus.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Exodus.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class Exodus : BossComponent { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Lightwave.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Lightwave.cs similarity index 93% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Lightwave.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Lightwave.cs index 9b9c977fad..a59353fe35 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Lightwave.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Lightwave.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class Lightwave : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/ParhelicCircle.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/ParhelicCircle.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/ParhelicCircle.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/ParhelicCircle.cs index 39e7eaea8d..ff8e6068cf 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/ParhelicCircle.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/ParhelicCircle.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class ParhelicCircle : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02Hydaelyn.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02Hydaelyn.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs index 38da2db74a..13abb237fe 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02Hydaelyn.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class MousasScorn : Components.CastSharedTankbuster { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02HydaelynEnums.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02HydaelynEnums.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02HydaelynEnums.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02HydaelynEnums.cs index 99f97bdb12..c15b1bad36 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02HydaelynEnums.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02HydaelynEnums.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/WeaponTracker.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/WeaponTracker.cs similarity index 96% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/WeaponTracker.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/WeaponTracker.cs index 3e5755f553..efcca27b34 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/WeaponTracker.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/WeaponTracker.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class WeaponTracker : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Asura.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08Asura.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs index 735c27c4fc..27fb4032c6 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Asura.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class LowerRealm : Components.RaidwideCast { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08AsuriChakra.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08AsuriChakra.cs similarity index 94% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08AsuriChakra.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08AsuriChakra.cs index 76a67cb50f..a693d9b28e 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08AsuriChakra.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08AsuriChakra.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class AsuriChakra : Components.SelfTargetedAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Enums.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Enums.cs similarity index 99% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08Enums.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08Enums.cs index 123ee92015..b1e72554c9 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Enums.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Enums.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Laceration.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Laceration.cs similarity index 95% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08Laceration.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08Laceration.cs index a255a637ef..c12049e844 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Laceration.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Laceration.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class Laceration : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08ManyFaces.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08ManyFaces.cs similarity index 97% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08ManyFaces.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08ManyFaces.cs index 7b646d5979..d77c134fc4 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08ManyFaces.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08ManyFaces.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class ManyFaces : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08MyriadAspects.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08MyriadAspects.cs similarity index 97% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08MyriadAspects.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08MyriadAspects.cs index 0b7488d5fb..a68dd7cf06 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08MyriadAspects.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08MyriadAspects.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class MyriadAspects : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08SixBladedKhadga.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08SixBladedKhadga.cs similarity index 96% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08SixBladedKhadga.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08SixBladedKhadga.cs index f532322e9f..238c84c5e7 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08SixBladedKhadga.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08SixBladedKhadga.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class SixBladedKhadga : Components.GenericAOEs { diff --git a/BossMod/Modules/Events/FF15Collab/Garuda.cs b/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs similarity index 99% rename from BossMod/Modules/Events/FF15Collab/Garuda.cs rename to BossMod/Modules/Global/Event/FF15Collab/Garuda.cs index fbc57de332..84e7f19a34 100644 --- a/BossMod/Modules/Events/FF15Collab/Garuda.cs +++ b/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Events.FF15Collab.Garuda; +namespace BossMod.Global.Event.FF15Collab.Garuda; public enum OID : uint { diff --git a/BossMod/Modules/Events/FF15Collab/Iseultalon.cs b/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs similarity index 99% rename from BossMod/Modules/Events/FF15Collab/Iseultalon.cs rename to BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs index bcf90b1faa..47d0be139f 100644 --- a/BossMod/Modules/Events/FF15Collab/Iseultalon.cs +++ b/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Events.FF15Collab.Iseultalon; +namespace BossMod.Global.Event.FF15Collab.Iseultalon; public enum OID : uint { diff --git a/BossMod/Modules/Events/FF15Collab/MA-x.cs b/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs similarity index 93% rename from BossMod/Modules/Events/FF15Collab/MA-x.cs rename to BossMod/Modules/Global/Event/FF15Collab/MA-x.cs index 266bef2c16..47bd078d49 100644 --- a/BossMod/Modules/Events/FF15Collab/MA-x.cs +++ b/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Events.FF15Collab.MAx; +namespace BossMod.Global.Event.FF15Collab.MAx; public enum OID : uint { @@ -47,7 +47,7 @@ public MAxStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1409, NameID = 7898, Expansion = BossModuleInfo.Expansion.RealmReborn)] +[ModuleInfo(FateID = 1409, NameID = 7898)] public class MAx : BossModule { public MAx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(295, -22), 25)) { } diff --git a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs similarity index 97% rename from BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs rename to BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs index c63300e6cd..85f332b999 100644 --- a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs +++ b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.GoldSaucer.SliceIsRight; +namespace BossMod.Global.GoldSaucer.SliceIsRight; public enum OID : uint { @@ -142,7 +142,7 @@ public TheSliceIsRightStates(BossModule module) : base(module) } } -[ModuleInfo(NameID = 9066, Expansion = BossModuleInfo.Expansion.Shadowbringers)] //GoldSaucerTextData ID 181 +[ModuleInfo(NameID = 9066)] //GoldSaucerTextData ID 181 public class TheSliceIsRight : BossModule { public TheSliceIsRight(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(70.5f, -36), 15)) { } diff --git a/BossMod/Modules/MaskedCarnivale/ObstacleLayouts.cs b/BossMod/Modules/Global/MaskedCarnivale/ObstacleLayouts.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/ObstacleLayouts.cs rename to BossMod/Modules/Global/MaskedCarnivale/ObstacleLayouts.cs index 179b94277a..a4fbb34bc7 100644 --- a/BossMod/Modules/MaskedCarnivale/ObstacleLayouts.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/ObstacleLayouts.cs @@ -1,4 +1,4 @@ -namespace BossMod.MaskedCarnivale; +namespace BossMod.Global.MaskedCarnivale; public class Layout2Corners : BossComponent { diff --git a/BossMod/Modules/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs index a6332a81e7..5b4d156cca 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage01; +namespace BossMod.Global.MaskedCarnivale.Stage01; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs index 1d17e39939..b9a6fec117 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage02.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage02.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs index b62ced44b9..dafc8feded 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage02.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage02.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs index 9611d2a672..bf758b8b20 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage03; +namespace BossMod.Global.MaskedCarnivale.Stage03; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs index 85ebf21dd8..7069842b02 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage04.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage04.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs index 56213ad1a7..1ff0cef7ef 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage04.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage04.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs index 129885abd3..1c30238b34 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage05; +namespace BossMod.Global.MaskedCarnivale.Stage05; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs index d962302121..0fbbbbc632 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage06.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage06.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs index 2ee378bb28..fda1d46c0c 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage06.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage06.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs index b4be82a847..6c064e274b 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage07.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage07.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs index 911c6ff1a0..def5019d7b 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage07.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage07.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs index 184665d752..d4083bc666 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage07.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage07.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs index 741536b16d..6b37f26712 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage08.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage08.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs index 4533285465..e682721fe9 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage08.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage08.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage09ToKillaMockingslime/Stage09.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage09ToKillaMockingslime/Stage09.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs index 32061821a7..d58960d70a 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage09ToKillaMockingslime/Stage09.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage09; +namespace BossMod.Global.MaskedCarnivale.Stage09; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs index 59d9d409d0..9c8853aaf3 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage10; +namespace BossMod.Global.MaskedCarnivale.Stage10; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs index 9e0639ce69..132668b040 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage11.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage11.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs index b180b48e2f..10b77406a9 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage11.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage11.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs index d9a7c992e9..46a9ba0155 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage12.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage12.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs index 54cae859cf..8b0438d3ba 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage12.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage12.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs similarity index 96% rename from BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs index ceddcc3bf2..a7a28edb40 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage13.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage13.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs index 2e4bd784c0..6ac1953ee4 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage13.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage13.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs index ffe8fede53..1998237dd3 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage14.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage14.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs index 634a1d106b..b467cf61f4 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage14.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage14.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs index a1180e30cf..2b40a458bc 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage15; +namespace BossMod.Global.MaskedCarnivale.Stage15; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs similarity index 96% rename from BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs index a06a2bc333..fd4ceac65f 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage16.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage16.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs index 0bdde5294f..60a1e4fab5 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage16.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage16.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs index efb9bfe990..da57544b38 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage17.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage17.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs index 439a8a2cd9..080c50416f 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage17.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage17.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs index 93b051eeab..ece756817f 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage18.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage18.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs index 101948fbb1..ef69290d82 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage18.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage18.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs index a62403eb70..bf2a11366a 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage19.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage19.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs index d754d8d494..226de6394a 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage19.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage19.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs index 22f5288742..37babb7c47 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage20.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage20.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs index 08e3a39a45..e4e03b02cb 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage20.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage20.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs index 8ec08561b6..c52998d086 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage20.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage20.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs index 4d6f4d0b52..9ddd76cd40 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage21.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage21.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs index 759a5ac726..ae31fc9fae 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage21.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage21.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs index f492537724..9a34770f95 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage22.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage22.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs index 245a2b527a..dee8fd2053 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage22.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage22.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs index 86ff1f1d64..b9183de13b 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage23; +namespace BossMod.Global.MaskedCarnivale.Stage23; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs index d914c30ee6..9e6f6d82a4 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage24.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage24.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs index 5a96b8b9ce..c6d2a12960 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage24.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage24.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs index 750f0f7895..bd416bdd8c 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage24.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage24.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs index 3fe9575733..c93e15ed52 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage25.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage25.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs index fac8df5881..22fce921f1 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage25.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage25.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs index 6b472b14f9..35db9d54fb 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage25.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage25.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs index 7e1cc9623d..09b3045e48 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage26.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage26.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs index 934d3ad2ac..a58ac3e9ee 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage26.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage26.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs index 5c3bad7096..51a8690089 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage27; +namespace BossMod.Global.MaskedCarnivale.Stage27; public enum OID : uint { diff --git a/BossMod/Modules/PVP/HiddenGorge/GoblinMercenary.cs b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs similarity index 98% rename from BossMod/Modules/PVP/HiddenGorge/GoblinMercenary.cs rename to BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs index 65bfb56b28..3e7532349b 100644 --- a/BossMod/Modules/PVP/HiddenGorge/GoblinMercenary.cs +++ b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.PVP.HiddenGorge.GoblinMercenary; +namespace BossMod.Global.PVP.HiddenGorge.GoblinMercenary; public enum OID : uint { diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index 0274443856..efb1b85484 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -23,9 +23,8 @@ public class Info public uint PrimaryActorOID; public BossModuleInfo.Expansion Expansion; + public BossModuleInfo.Category Category; public uint CFCID; - public uint ContentIcon; - public SeString? ContentType; public SeString? DisplayName; public SeString? ForayName; public SeString? FateName; @@ -135,7 +134,31 @@ public bool IsRemovedContent() return null; } + var splitNamespace = module.Namespace?.Split('.') ?? []; // expected to be 'BossMod.expansion.category.rest' + var expansion = infoAttr?.Expansion ?? BossModuleInfo.Expansion.Count; + if (expansion == BossModuleInfo.Expansion.Count && splitNamespace.Length > 1 && Enum.TryParse(splitNamespace[1], out BossModuleInfo.Expansion parsedExpansion)) + { + expansion = parsedExpansion; + } + if (expansion == BossModuleInfo.Expansion.Count) + { + Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; consider fixing namespace or specifying value manually"); + expansion = BossModuleInfo.Expansion.Global; + } + + var category = infoAttr?.Category ?? BossModuleInfo.Category.Count; + if (category == BossModuleInfo.Category.Count && splitNamespace.Length > 2 && Enum.TryParse(splitNamespace[2], out BossModuleInfo.Category parsedCategory)) + { + category = parsedCategory; + } + if (category == BossModuleInfo.Category.Count) + { + Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid category assigned; consider fixing namespace or specifying value manually"); + category = BossModuleInfo.Category.Uncategorized; + } + + uint nameID = infoAttr?.NameID ?? 0; uint nmID = infoAttr?.NotoriousMonsterID ?? 0; uint fateID = infoAttr?.FateID ?? 0; @@ -150,8 +173,6 @@ public bool IsRemovedContent() if (uncatalogued) Service.Log($"[{nameof(ModuleRegistry)}] Module {module.Name} is uncatalogued. It does not provide sufficient {nameof(Info)} tags."); - SeString contentType = new(); - uint contentIcon = default; string huntRank = ""; int carnivaleStage = 0; SeString fateName = new(); @@ -161,25 +182,27 @@ public bool IsRemovedContent() if (cfcID != 0) { var cfcRow = _cfcSheet.GetRow(cfcID)!; - contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); - if (expansion == BossModuleInfo.Expansion.Count && cfcRow.TerritoryType.Value is var terr && terr != null) - expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; + //contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); + if ((uint)expansion != cfcRow.TerritoryType.Value?.ExVersion.Row) + Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {cfcRow.TerritoryType.Value?.ExVersion.Row}"); displayName = cfcRow.Name; if (cfcID is 735 or 760 or 761 or 778) // bozja et al { - contentType = _playStyleSheet!.GetRow(6)!.Name; - contentIcon = (uint)_playStyleSheet!.GetRow(6)!.Icon; + //contentType = _playStyleSheet!.GetRow(6)!.Name; + //contentIcon = (uint)_playStyleSheet!.GetRow(6)!.Icon; } else if (cfcRow.ShortCode.RawString.StartsWith("aoz")) // masked carnivale { - contentType = _playStyleSheet!.GetRow(8)!.Name; - contentIcon = (uint)_playStyleSheet!.GetRow(8)!.Icon; + //contentType = _playStyleSheet!.GetRow(8)!.Name; + //contentIcon = (uint)_playStyleSheet!.GetRow(8)!.Icon; carnivaleStage = int.Parse(Regex.Replace(cfcRow.ShortCode.RawString, @"\D", "").TrimStart('0')); //displayName = new SeString($"{displayName} (Stage {carnivaleStage})"); } else - contentIcon = cfcRow.ContentType?.Value?.Icon ?? 0; + { + //contentIcon = cfcRow.ContentType?.Value?.Icon ?? 0; + } } if (nameID != 0) @@ -192,51 +215,34 @@ public bool IsRemovedContent() displayName = bossName = _nmSheet.GetRow(nmID)!.BNpcName.Value?.Singular ?? new SeString(); huntRank = Enum.Parse(_nmSheet.GetRow(nmID)!.Rank.ToString()).ToString(); //displayName = new SeString($"{displayName} ({huntRank} Rank)"); - contentType = _playStyleSheet.GetRow(10)!.Name; - contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; - - if (expansion == BossModuleInfo.Expansion.Count && _notoriousMonsterToTerritory.TryGetValue(nmID, out var terr)) - expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; + //contentType = _playStyleSheet.GetRow(10)!.Name; + //contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; } // ideally you could parse the location field to get the exversion in the fate sheet but that requires parsing lgb files if (fateID != 0) // needs exversion { - contentType = _contentTypeSheet.GetRow(8)!.Name; - contentIcon = _contentTypeSheet.GetRow(8)!.Icon; + //contentType = _contentTypeSheet.GetRow(8)!.Name; + //contentIcon = _contentTypeSheet.GetRow(8)!.Icon; displayName = _fateSheet.GetRow(fateID)!.Name; } if (dynamicEventID != 0) // needs exversion? { - contentType = _playStyleSheet.GetRow(6)!.Name; - contentIcon = (uint)_playStyleSheet.GetRow(6)!.Icon; + //contentType = _playStyleSheet.GetRow(6)!.Name; + //contentIcon = (uint)_playStyleSheet.GetRow(6)!.Icon; displayName = forayName = _dynamicEventSheet.GetRow(dynamicEventID)!.Name; } if (_questSheet.GetRow(questID) is var quest && quest != null) { - contentType = _contentTypeSheet.GetRow(7)!.Name; - contentIcon = _contentTypeSheet.GetRow(7)!.Icon; + //contentType = _contentTypeSheet.GetRow(7)!.Name; + //contentIcon = _contentTypeSheet.GetRow(7)!.Icon; displayName = quest.Name; - if (expansion == BossModuleInfo.Expansion.Count) - expansion = (BossModuleInfo.Expansion)quest.Expansion.Row; + if ((uint)expansion != quest.Expansion.Row) + Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {quest.Expansion.Row}"); } - if (expansion == BossModuleInfo.Expansion.Count && (module.Namespace?.StartsWith("BossMod.") ?? false)) - { - // try to determine expansion from module namespace - var exName = module.Namespace.Substring(8); - var exEnd = exName.IndexOf("."); - if (exEnd > 0) - exName = exName.Substring(0, exEnd); - if (Enum.TryParse(exName, out BossModuleInfo.Expansion guessedExpansion)) - expansion = guessedExpansion; - } - - if (expansion == BossModuleInfo.Expansion.Count) - Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; autodetection failed, consider specifying value manually"); - return new Info(module, statesType) { ConfigType = configType, @@ -248,9 +254,8 @@ public bool IsRemovedContent() PrimaryActorOID = primaryOID, Expansion = expansion, + Category = category, CFCID = cfcID, - ContentType = contentType, - ContentIcon = contentIcon, DisplayName = infoAttr?.DisplayName != null ? _displayName : displayName, BossName = bossName, FateName = fateName, @@ -284,11 +289,8 @@ private Info(Type moduleType, Type statesType) private static readonly ExcelSheet _questSheet; private static readonly ExcelSheet _fateSheet; - //private static readonly List _expacs; private static readonly List _catalogued; private static readonly List _uncatalogued; - private static readonly List _contentTypes; - private static readonly Dictionary _contentTypesIcons; static ModuleRegistry() { @@ -336,23 +338,17 @@ static ModuleRegistry() _catalogued = _modules.Values .Where(x => !x.IsUncatalogued) - .GroupBy(x => new { x.Expansion, ContentType = x.ContentType ?? new() }) + .GroupBy(x => new { x.Expansion, x.Category }) .OrderBy(g => g.Key.Expansion) .SelectMany(group => group.OrderBy(x => _cfcSheet.GetRow(x.CFCID)?.SortKey)) .ToList(); _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.Expansion == BossModuleInfo.Expansion.Count).Select(x => x).ToList(); - _contentTypes = _modules.Select(x => x.Value.ContentType ?? new()).Distinct().ToList(); - _contentTypesIcons = _modules - .Where(x => x.Value.ContentType != null && x.Value.ContentIcon != default) - .Select(x => (x.Value.ContentType!, x.Value.ContentIcon)) - .Distinct().OrderBy(x => x.ContentIcon).ToDictionary(x => x.Item1, x => x.ContentIcon); } public static IReadOnlyDictionary RegisteredModules => _modules; public static IReadOnlyList CataloguedModules => _catalogued; public static IReadOnlyList UncataloguedModules => _uncatalogued; - public static IReadOnlyList AvailableContent => _contentTypes; - public static IReadOnlyDictionary AvailableContentIcons => _contentTypesIcons; + public static Info? FindByOID(uint oid) => _modules.GetValueOrDefault(oid); @@ -380,20 +376,4 @@ static ModuleRegistry() { return CreateModule(FindByOID(oid)?.ModuleType, new(TimeSpan.TicksPerSecond, "fake"), new(0, oid, -1, "", ActorType.None, Class.None, 0, new())); } - - //[Sheet("NotoriousMonsterTerritory", columnHash: 0xf057da9c)] - //public partial class NotoriousMonsterTerritory : ExcelRow - //{ - // public const int Length = 10; - // public ushort[] Monster { get; private set; } = new ushort[Length]; - - // public override void PopulateData(RowParser parser, GameData gameData, Lumina.Data.Language language) - // { - // base.PopulateData(parser, gameData, language); - // for (var i = 0; i < Length; ++i) - // { - // Monster[i] = parser.ReadOffset(2 * i); - // } - // } - //} } diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs index 0594cd5c44..43fd3caa10 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs @@ -1,5 +1,5 @@ // CONTRIB: made by taurenkey, changed by malediktus, not checked -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class GrandFall : Components.LocationTargetedAOEs { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs index 50b4114f72..a61a4a3361 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class BodySlamKB : Components.Knockback { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs index 13a1148b84..726d0ccf65 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; public enum OID : uint { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs index 3267ceccd1..64a1a2c149 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class Hints : BossComponent { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs index d510abc6b4..bf66b0de8c 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class SpinningDive : Components.GenericAOEs //TODO: Find out how to detect spinning dives earlier eg. the water column telegraph { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Baal.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Baal.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs index 1fc260eb2f..b01123f1da 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Baal.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Baal; +namespace BossMod.Shadowbringers.Hunt.RankA.Baal; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Grassman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Grassman.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs index 902af5437a..079984a08b 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Grassman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Grassman; +namespace BossMod.Shadowbringers.Hunt.RankA.Grassman; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Huracan.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Huracan.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs index f5ddf9d768..215638f346 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Huracan.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Huracan; +namespace BossMod.Shadowbringers.Hunt.RankA.Huracan; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/LilMurderer.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/LilMurderer.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs index ed458bdbaf..47278eb73e 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/LilMurderer.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.LilMurderer; +namespace BossMod.Shadowbringers.Hunt.RankA.LilMurderer; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Maliktender.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/Maliktender.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs index 0196a05fcd..9d74fa4d6e 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Maliktender.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Maliktender; +namespace BossMod.Shadowbringers.Hunt.RankA.Maliktender; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Nariphon.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Nariphon.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs index 5c189da3b2..5916928a43 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Nariphon.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Nariphon; +namespace BossMod.Shadowbringers.Hunt.RankA.Nariphon; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Nuckelavee.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs similarity index 96% rename from BossMod/Modules/Shadowbringers/HuntA/Nuckelavee.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs index 75302f5561..467f74dfe8 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Nuckelavee.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Nuckelavee; +namespace BossMod.Shadowbringers.Hunt.RankA.Nuckelavee; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/OPoorestPauldia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs similarity index 96% rename from BossMod/Modules/Shadowbringers/HuntA/OPoorestPauldia.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs index abe3ce3259..5d4ff9c306 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/OPoorestPauldia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.OPoorestPauldia; +namespace BossMod.Shadowbringers.Hunt.RankA.OPoorestPauldia; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Rusalka.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/Rusalka.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs index ebaca6e192..20e287c89f 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Rusalka.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Rusalka; +namespace BossMod.Shadowbringers.Hunt.RankA.Rusalka; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Sugaar.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Sugaar.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs index ff15d64ff7..2a07bfc401 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Sugaar.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, verified -namespace BossMod.Shadowbringers.HuntA.Sugaar; +namespace BossMod.Shadowbringers.Hunt.RankA.Sugaar; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Supay.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/Supay.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs index 7cfd39ce6f..afc8c070c6 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Supay.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Supay; +namespace BossMod.Shadowbringers.Hunt.RankA.Supay; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/TheMudman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/TheMudman.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs index ae60b08be7..51c5fb6d87 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/TheMudman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.TheMudman; +namespace BossMod.Shadowbringers.Hunt.RankA.TheMudman; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Aglaope.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Aglaope.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs index c9473c3794..4bbe8e832e 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Aglaope.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Aglaope; +namespace BossMod.Shadowbringers.Hunt.RankS.Aglaope; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/ForgivenGossip.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs similarity index 94% rename from BossMod/Modules/Shadowbringers/HuntS/ForgivenGossip.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs index dffb8d3750..79002dcf6f 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/ForgivenGossip.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.ForgivenGossip; +namespace BossMod.Shadowbringers.Hunt.RankS.ForgivenGossip; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/ForgivenPedantry.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs similarity index 99% rename from BossMod/Modules/Shadowbringers/HuntS/ForgivenPedantry.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs index 04a3496d17..ecd7afb23a 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/ForgivenPedantry.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.ForgivenPedantry; +namespace BossMod.Shadowbringers.Hunt.RankS.ForgivenPedantry; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/ForgivenRebellion.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs similarity index 99% rename from BossMod/Modules/Shadowbringers/HuntS/ForgivenRebellion.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs index 289504b9d7..2a5263118f 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/ForgivenRebellion.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.ForgivenRebellion; +namespace BossMod.Shadowbringers.Hunt.RankS.ForgivenRebellion; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Gunitt.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Gunitt.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs index 5dbedefc8b..f787ff839a 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Gunitt.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Gunitt; +namespace BossMod.Shadowbringers.Hunt.RankS.Gunitt; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Ixtab.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs similarity index 99% rename from BossMod/Modules/Shadowbringers/HuntS/Ixtab.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs index d8518f608d..19a7e8e64d 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Ixtab.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Ixtab; +namespace BossMod.Shadowbringers.Hunt.RankS.Ixtab; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Tarchia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Tarchia.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs index d6f0086e38..67db1f711a 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Tarchia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Tarchia; +namespace BossMod.Shadowbringers.Hunt.RankS.Tarchia; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Tyger.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Tyger.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs index e337a4b596..d1340798c9 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Tyger.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Tyger; +namespace BossMod.Shadowbringers.Hunt.RankS.Tyger; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntA/Angada.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs similarity index 98% rename from BossMod/Modules/Stormblood/HuntA/Angada.cs rename to BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs index e15db5dbce..4b9427d4a8 100644 --- a/BossMod/Modules/Stormblood/HuntA/Angada.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntA.Angada; +namespace BossMod.Stormblood.Hunt.RankA.Angada; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntA/Gajasura.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs similarity index 96% rename from BossMod/Modules/Stormblood/HuntA/Gajasura.cs rename to BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs index 1b5194af35..3ca4ff98a8 100644 --- a/BossMod/Modules/Stormblood/HuntA/Gajasura.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntA.Gajasura; +namespace BossMod.Stormblood.Hunt.RankA.Gajasura; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/BoneCrawler.cs b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs similarity index 97% rename from BossMod/Modules/Stormblood/HuntS/BoneCrawler.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs index 41a8aab51d..6243a48947 100644 --- a/BossMod/Modules/Stormblood/HuntS/BoneCrawler.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.BoneCrawler; +namespace BossMod.Stormblood.Hunt.RankS.BoneCrawler; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/Gamma.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs similarity index 98% rename from BossMod/Modules/Stormblood/HuntS/Gamma.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs index 91e32df6b3..3423e3500f 100644 --- a/BossMod/Modules/Stormblood/HuntS/Gamma.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.Gamma; +namespace BossMod.Stormblood.Hunt.RankS.Gamma; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/Okina.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs similarity index 98% rename from BossMod/Modules/Stormblood/HuntS/Okina.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs index bdeb35f774..7277120f19 100644 --- a/BossMod/Modules/Stormblood/HuntS/Okina.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.Okina; +namespace BossMod.Stormblood.Hunt.RankS.Okina; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/Orghana.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs similarity index 96% rename from BossMod/Modules/Stormblood/HuntS/Orghana.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs index a620dde0e9..78c789316c 100644 --- a/BossMod/Modules/Stormblood/HuntS/Orghana.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.Orghana; +namespace BossMod.Stormblood.Hunt.RankS.Orghana; public enum OID : uint { diff --git a/BossMod/Replay/Visualization/ReplayDetailsWindow.cs b/BossMod/Replay/Visualization/ReplayDetailsWindow.cs index 7d307abc3a..26a89eb81e 100644 --- a/BossMod/Replay/Visualization/ReplayDetailsWindow.cs +++ b/BossMod/Replay/Visualization/ReplayDetailsWindow.cs @@ -40,6 +40,7 @@ class ReplayDetailsWindow : UIWindow protected override void Dispose(bool disposing) { _mgr.Dispose(); + _config.Dispose(); } public override void Draw() diff --git a/UIDev/ConfigTest.cs b/UIDev/ConfigTest.cs index b67089591d..2f25e716b5 100644 --- a/UIDev/ConfigTest.cs +++ b/UIDev/ConfigTest.cs @@ -13,6 +13,11 @@ class ConfigTest : TestWindow _ui = new(Service.Config, new(TimeSpan.TicksPerSecond, "fake")); } + protected override void Dispose(bool disposing) + { + _ui.Dispose(); + } + public override void Draw() { ImGui.InputText("##console", ref _command, 1024); From a6f5bce53ae25427ed819fbcc68a26af3082287f Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 20:09:16 +0000 Subject: [PATCH 03/11] Module viewer refactoring WIP. --- BossMod/BossModule/BossModuleInfo.cs | 38 +++- BossMod/Config/ModuleViewer.cs | 139 +++++++++--- .../Endwalker/Alliance/A10Lions/A10Lions.cs | 2 +- .../A10RhalgrEmissary/A10RhalgrEmissary.cs | 2 +- .../Alliance/A11Byregot/A11Byregot.cs | 2 +- .../Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs | 2 +- .../Endwalker/Alliance/A13Azeyma/A13Azeyma.cs | 2 +- .../Alliance/A14Naldthal/A14Naldthal.cs | 2 +- .../Alliance/A21Nophica/A21Nophica.cs | 2 +- .../A22AlthykNymeia/A22AlthykNymeia.cs | 2 +- .../Endwalker/Alliance/A23Halone/A23Halone.cs | 2 +- .../Alliance/A24Menphina/A24Menphina.cs | 2 +- .../Criterion/C01ASS/C010Trash/C010Armor.cs | 4 +- .../C01ASS/C010Trash/C010Belladonna.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Dryad.cs | 4 +- .../C01ASS/C010Trash/C010Dullahan.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Kaluk.cs | 4 +- .../C01ASS/C010Trash/C010Udumbara.cs | 4 +- .../Criterion/C01ASS/C011Silkie/C011Silkie.cs | 4 +- .../C01ASS/C012Gladiator/C012Gladiator.cs | 4 +- .../C013Shadowcaster/C013Shadowcaster.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Fuko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Kotengu.cs | 4 +- .../C02AMR/C020Trash/C020Onmitsugashira.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Raiko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Yuki.cs | 4 +- .../C02AMR/C021Shishio/C021Shishio.cs | 4 +- .../Criterion/C02AMR/C022Gorai/C022Gorai.cs | 4 +- .../Criterion/C02AMR/C023Moko/C023Moko.cs | 4 +- .../C03AAI/C030Trash/C030Islekeeper.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Kiwakin.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Monk.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Ray.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Snipper.cs | 4 +- .../C03AAI/C030Trash/C030WoodGolem.cs | 4 +- .../C03AAI/C031Ketuduke/C031Ketuduke.cs | 4 +- .../Criterion/C03AAI/C032Lala/C032Lala.cs | 4 +- .../C03AAI/C033Statice/C033Statice.cs | 4 +- .../EurekaOrthos/DD30TiamatsClone.cs | 2 +- .../DeepDungeon/EurekaOrthos/DD70Aeturna.cs | 2 +- .../Dungeon/D01TowerOfZot/D011Minduruva.cs | 2 +- .../Dungeon/D01TowerOfZot/D012Sanduruva.cs | 2 +- .../Dungeon/D01TowerOfZot/D013MagusSisters.cs | 2 +- .../D11LapisManalis/D110AlbusGriffin.cs | 2 +- .../D11LapisManalis/D110CaladriusMaturus.cs | 2 +- .../Dungeon/D11LapisManalis/D111Albion.cs | 2 +- .../D11LapisManalis/D112GalateaMagna.cs | 2 +- .../Dungeon/D11LapisManalis/D113Cagnazzo.cs | 2 +- .../Dungeon/D12Aetherfont/D121Lyngbakr.cs | 2 +- .../Dungeon/D12Aetherfont/D122Arkas.cs | 2 +- .../Dungeon/D12Aetherfont/D123Octomammoth.cs | 2 +- .../Dungeon/D13LunarSubterrane/D131DarkElf.cs | 2 +- .../D13LunarSubterrane/D132DamcyanAntilon.cs | 2 +- .../Dungeon/D13LunarSubterrane/D133Durante.cs | 2 +- .../Extreme/Ex1Zodiark/Ex1Zodiark.cs | 2 +- .../Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs | 2 +- .../Extreme/Ex3Endsinger/Ex3Endsinger.cs | 2 +- .../Extreme/Ex4Barbariccia/Ex4Barbariccia.cs | 2 +- .../Extreme/Ex5Rubicante/Ex5Rubicante.cs | 2 +- .../Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs | 2 +- .../Extreme/Ex7Zeromus/Ex7Zeromus.cs | 2 +- BossMod/Modules/Endwalker/FATE/Chi.cs | 2 +- BossMod/Modules/Endwalker/FATE/Daivadipa.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Aegeiros.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/ArchEta.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/FanAil.cs | 2 +- .../Endwalker/Hunt/RankA/Gurangatch.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Hulder.cs | 2 +- .../Endwalker/Hunt/RankA/LunatenderQueen.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Minerva.cs | 2 +- .../Endwalker/Hunt/RankA/MoussePrincess.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Petalodus.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Storsie.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Sugriva.cs | 2 +- BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Armstrong.cs | 3 +- .../Modules/Endwalker/Hunt/RankS/Burfurlur.cs | 2 +- BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/KerShroud.cs | 2 +- .../Endwalker/Hunt/RankS/NarrowRift.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Ophioneus.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Ruminator.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Sphatika.cs | 2 +- .../Endwalker/Quest/Endwalker/Endwalker.cs | 2 +- .../P10SPandaemonium/P10SPandaemonium.cs | 2 +- .../Endwalker/Savage/P11SThemis/P11SThemis.cs | 2 +- .../Savage/P12S1Athena/P12S1Athena.cs | 2 +- .../P12S2PallasAthena/P12S2PallasAthena.cs | 2 +- .../Endwalker/Savage/P1SErichthonios/P1S.cs | 2 +- .../Endwalker/Savage/P2SHippokampos/P2S.cs | 2 +- .../Endwalker/Savage/P3SPhoinix/P3S.cs | 2 +- .../Endwalker/Savage/P4S1Hesperos/P4S1.cs | 2 +- .../Endwalker/Savage/P4S2Hesperos/P4S2.cs | 2 +- .../Endwalker/Savage/P5SProtoCarbuncle/P5S.cs | 2 +- .../Endwalker/Savage/P6SHegemone/P6S.cs | 2 +- .../Endwalker/Savage/P7SAgdistis/P7S.cs | 2 +- .../Endwalker/Savage/P8S1Hephaistos/P8S1.cs | 2 +- .../Endwalker/Savage/P8S2Hephaistos/P8S2.cs | 2 +- .../Endwalker/Savage/P9SKokytos/P9SKokytos.cs | 2 +- .../TheExcitatron6000/LuckyFace.cs | 2 +- .../GymnasiouAcheloios.cs | 2 +- .../GymnasiouLeon.cs | 2 +- .../GymnasiouMandragoras.cs | 2 +- .../GymnasiouMegakantha.cs | 2 +- .../GymnasiouMeganereis.cs | 2 +- .../GymnasiouPithekos.cs | 2 +- .../GymnasiouSatyros.cs | 2 +- .../GymnasiouSphinx.cs | 2 +- .../GymnasiouStyphnolobion.cs | 2 +- .../GymnasiouTigris.cs | 2 +- .../GymnasiouTriton.cs | 2 +- .../LampasChrysine.cs | 2 +- .../LyssaChrysine.cs | 2 +- .../TheShiftingGymnasionAgonon/Narkissos.cs | 2 +- .../Trial/T02Hydaelyn/T02Hydaelyn.cs | 2 +- .../Endwalker/Trial/T08Asura/T08Asura.cs | 2 +- .../Modules/Endwalker/Ultimate/DSW1/DSW1.cs | 2 +- .../Modules/Endwalker/Ultimate/DSW2/DSW2.cs | 2 +- BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs | 2 +- .../Endwalker/Unreal/Un1Ultima/Un1Ultima.cs | 2 +- .../Unreal/Un2Sephirot/Un2Sephirot.cs | 2 +- .../Endwalker/Unreal/Un3Sophia/Un3Sophia.cs | 2 +- .../Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs | 2 +- .../Endwalker/Unreal/Un5Thordan/Un5Thordan.cs | 2 +- .../TheSliceIsRight/TheSliceIsRight.cs | 2 +- .../Stage01AllsWellThatStartsWell/Stage01.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act1.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act2.cs | 2 +- .../Stage03WaitingForGolem/Stage03.cs | 2 +- .../Stage04Act1.cs | 2 +- .../Stage04Act2.cs | 2 +- .../Stage05TheThreepennyTurtles/Stage05.cs | 2 +- .../Stage06EyeSociety/Stage06Act1.cs | 2 +- .../Stage06EyeSociety/Stage06Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act1.cs | 2 +- .../Stage07AChorusSlime/Stage07Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act3.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act1.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act2.cs | 2 +- .../Stage09ToKillAMockingslime/Stage09.cs | 2 +- .../Stage10ALittleKnightMusic/Stage10.cs | 2 +- .../Stage11Act1.cs | 2 +- .../Stage11Act2.cs | 2 +- .../Stage12Act1.cs | 2 +- .../Stage12Act2.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act1.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act2.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act1.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act2.cs | 2 +- .../Stage15TheMeNobodyNodes/Stage15.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act1.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act2.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act1.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act2.cs | 2 +- .../Stage18Act1.cs | 2 +- .../Stage18Act2.cs | 2 +- .../Stage19Act1.cs | 2 +- .../Stage19Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act1.cs | 2 +- .../Stage20MissTyphon/Stage20Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act3.cs | 2 +- .../Stage21Act1.cs | 2 +- .../Stage21Act2.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act1.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act2.cs | 2 +- .../Stage23BehemothsAndBroomsticks/Stage23.cs | 2 +- .../Stage24Act1.cs | 2 +- .../Stage24Act2.cs | 2 +- .../Stage24Act3.cs | 2 +- .../Stage25Act1.cs | 2 +- .../Stage25Act2.cs | 2 +- .../Stage25Act3.cs | 2 +- .../Stage26PapaMia/Stage26Act1.cs | 2 +- .../Stage26PapaMia/Stage26Act2.cs | 2 +- .../Stage27LockUpYourSnorters/Stage27.cs | 2 +- .../Global/PVP/HiddenGorge/GoblinMercenary.cs | 2 +- .../{Event => Quest}/FF15Collab/Garuda.cs | 4 +- .../{Event => Quest}/FF15Collab/Iseultalon.cs | 4 +- .../{Event => Quest}/FF15Collab/MA-x.cs | 4 +- BossMod/Modules/ModuleRegistry.cs | 204 ++---------------- .../Dungeon/D01Sastasha/D010Switch.cs | 2 +- .../Dungeon/D03Copperbell/D031Kottos.cs | 2 +- .../Dungeon/D03Copperbell/D032IchorousIre.cs | 2 +- .../Dungeon/D03Copperbell/D033Gyges.cs | 2 +- .../Dungeon/D05Totorak/D053Graffias.cs | 2 +- .../Dungeon/D06Haukke/D061ManorClaviger.cs | 2 +- .../Dungeon/D06Haukke/D063LadyAmandine.cs | 2 +- .../Dungeon/D07Brayflox/D074Aiatar.cs | 2 +- .../Dungeon/D08Qarn/D081Teratotaur.cs | 2 +- .../Dungeon/D08Qarn/D082TempleGuardian.cs | 2 +- .../Dungeon/D08Qarn/D083Adjudicator.cs | 2 +- .../Dungeon/D09Cutter/D092GiantTunnelWorm.cs | 2 +- .../Dungeon/D09Cutter/D093Chimera.cs | 2 +- .../Dungeon/D10StoneVigil/D101ChudoYudo.cs | 2 +- .../Dungeon/D10StoneVigil/D102Koshchei.cs | 2 +- .../Dungeon/D10StoneVigil/D103Isgebind.cs | 2 +- .../D11DzemaelDarkhold/D111AllSeeingEye.cs | 2 +- .../Dungeon/D11DzemaelDarkhold/D113Batraal.cs | 2 +- .../Dungeon/D12AurumVale/D121Locksmith.cs | 2 +- .../Dungeon/D12AurumVale/D122Coincounter.cs | 2 +- .../D12AurumVale/D123MisersMistress.cs | 2 +- .../D13CastrumMeridianum/D131BlackEft.cs | 2 +- .../D132MagitekVanguardF1.cs | 2 +- .../Dungeon/D13CastrumMeridianum/D133Livia.cs | 2 +- .../Dungeon/D14Praetorium/D141Colossus.cs | 2 +- .../Dungeon/D14Praetorium/D142Nero.cs | 2 +- .../Dungeon/D14Praetorium/D143Gaius.cs | 2 +- .../D15WanderersPalace/D151KeeperOfHalidom.cs | 2 +- .../D15WanderersPalace/D152GiantBavarois.cs | 2 +- .../D15WanderersPalace/D153TonberryKing.cs | 2 +- .../Dungeon/D16Amdapor/D161Psycheflayer.cs | 2 +- .../Dungeon/D16Amdapor/D162DemonWall.cs | 2 +- .../Dungeon/D16Amdapor/D163Anantaboga.cs | 2 +- .../Extreme/Ex1Ultima/Ex1Ultima.cs | 2 +- .../Extreme/Ex2Garuda/Ex2Garuda.cs | 2 +- .../RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs | 2 +- .../RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs | 2 +- .../RealmReborn/Raid/T01Caduceus/T01ADS.cs | 2 +- .../Raid/T01Caduceus/T01Caduceus.cs | 2 +- .../Raid/T02MultiADS/T02MultiADS.cs | 14 +- .../Raid/T04Gauntlet/T04Gauntlet.cs | 2 +- .../Raid/T05Twintania/T05Twintania.cs | 2 +- .../RealmReborn/Trial/T01IfritN/T01IfritN.cs | 2 +- .../RealmReborn/Trial/T02TitanN/T02TitanN.cs | 2 +- .../Trial/T03GarudaN/T03GarudaN.cs | 2 +- .../T04PortaDecumana/T04PortaDecumana1.cs | 2 +- .../T04PortaDecumana/T04PortaDecumana2.cs | 2 +- .../RealmReborn/Trial/T05IfritH/T05IfritH.cs | 2 +- .../Trial/T06GarudaH/T06GarudaH.cs | 2 +- .../RealmReborn/Trial/T07TitanH/T07TitanH.cs | 2 +- .../Trial/T08ThornmarchH/T08ThornmarchH.cs | 2 +- .../Trial/T09WhorleaterH/T09WhorleaterH.cs | 2 +- .../D01Holminster/D011ForgivenDissonance.cs | 2 +- .../D01Holminster/D012TesleentheForgiven.cs | 2 +- .../Dungeon/D01Holminster/D013Philia.cs | 2 +- .../D03QitanaRavel/D030RonkanDreamer.cs | 2 +- .../Dungeon/D03QitanaRavel/D031Lozatl.cs | 2 +- .../Dungeon/D03QitanaRavel/D032Batsquatch.cs | 2 +- .../Dungeon/D03QitanaRavel/D033Eros.cs | 2 +- .../Dungeon/D05MtGulg/D050ForgivePrejudice.cs | 2 +- .../Dungeon/D05MtGulg/D051ForgivenCruelty.cs | 2 +- .../Dungeon/D05MtGulg/D052ForgivenApathy.cs | 2 +- .../Dungeon/D05MtGulg/D053ForgivenWhimsy.cs | 2 +- .../Dungeon/D05MtGulg/D054ForgivenRevelry.cs | 2 +- .../D05MtGulg/D055ForgivenObscenity.cs | 2 +- .../Shadowbringers/FATE/Archaeotania.cs | 2 +- .../Modules/Shadowbringers/FATE/Formidable.cs | 2 +- .../CE11ShadowOfDeathHand.cs | 2 +- .../CriticalEngagement/CE12BayingOfHounds.cs | 2 +- .../CriticalEngagement/CE13KillItWithFire.cs | 2 +- .../CriticalEngagement/CE14VigilForLost.cs | 2 +- .../CriticalEngagement/CE21FinalFurlong.cs | 2 +- .../CriticalEngagement/CE31MetalFoxChaos.cs | 2 +- .../CE41WithDiremiteAndMain.cs | 2 +- .../CE42FromBeyondTheGrave.cs | 2 +- .../CriticalEngagement/CE44FamiliarFace.cs | 2 +- .../CE51ThereWouldBeBlood.cs | 2 +- .../CriticalEngagement/CE52TimeToBurn.cs | 2 +- .../CE53HereComesTheCavalry.cs | 2 +- .../CriticalEngagement/CE54NeverCryWolf.cs | 2 +- .../CriticalEngagement/CE62LooksToDieFor.cs | 2 +- .../CriticalEngagement/CE63WornToShadow.cs | 2 +- .../CriticalEngagement/CE64FeelingTheBurn.cs | 2 +- .../DelubrumReginae/DRS1TrinitySeeker/DRS1.cs | 2 +- .../Foray/DelubrumReginae/DRS2Dahu/DRS2.cs | 2 +- .../DelubrumReginae/DRS3QueensGuard/DRS3.cs | 2 +- .../Foray/DelubrumReginae/DRS4Phantom/DRS4.cs | 2 +- .../DelubrumReginae/DRS5TrinityAvowed/DRS5.cs | 2 +- .../DRS6StygimolochLord/DRS6.cs | 2 +- .../Foray/DelubrumReginae/DRS7Queen/DRS7.cs | 2 +- .../Foray/Duel/Duel2Lyon/Duel2Lyon.cs | 2 +- .../Foray/Duel/Duel4Dabog/Duel4Dabog.cs | 2 +- .../Modules/Shadowbringers/Hunt/RankA/Baal.cs | 2 +- .../Shadowbringers/Hunt/RankA/Grassman.cs | 2 +- .../Shadowbringers/Hunt/RankA/Huracan.cs | 2 +- .../Shadowbringers/Hunt/RankA/LilMurderer.cs | 2 +- .../Shadowbringers/Hunt/RankA/Maliktender.cs | 2 +- .../Shadowbringers/Hunt/RankA/Nariphon.cs | 2 +- .../Shadowbringers/Hunt/RankA/Nuckelavee.cs | 2 +- .../Hunt/RankA/OPoorestPauldia.cs | 2 +- .../Shadowbringers/Hunt/RankA/Rusalka.cs | 2 +- .../Shadowbringers/Hunt/RankA/Sugaar.cs | 2 +- .../Shadowbringers/Hunt/RankA/Supay.cs | 2 +- .../Shadowbringers/Hunt/RankA/TheMudman.cs | 2 +- .../Shadowbringers/Hunt/RankS/Aglaope.cs | 2 +- .../Hunt/RankS/ForgivenGossip.cs | 2 +- .../Hunt/RankS/ForgivenPedantry.cs | 2 +- .../Hunt/RankS/ForgivenRebellion.cs | 2 +- .../Shadowbringers/Hunt/RankS/Gunitt.cs | 2 +- .../Shadowbringers/Hunt/RankS/Ixtab.cs | 2 +- .../Shadowbringers/Hunt/RankS/Tarchia.cs | 2 +- .../Shadowbringers/Hunt/RankS/Tyger.cs | 2 +- .../TheDungeonsOfLyheGhiah/Goliath.cs | 2 +- .../FuathTroublemaker.cs | 2 +- .../GreedyPixie.cs | 2 +- .../SecretBasket.cs | 2 +- .../SecretCladoselache.cs | 2 +- .../SecretDjinn.cs | 2 +- .../SecretKeeper.cs | 2 +- .../SecretKorrigan.cs | 2 +- .../SecretPegasus.cs | 2 +- .../SecretPorxie.cs | 2 +- .../SecretSerpent.cs | 2 +- .../SecretSwallow.cs | 2 +- .../SecretUndine.cs | 2 +- .../SecretWorm.cs | 2 +- .../Shadowbringers/Ultimate/TEA/TEA.cs | 2 +- .../Modules/Stormblood/Hunt/RankA/Angada.cs | 2 +- .../Modules/Stormblood/Hunt/RankA/Gajasura.cs | 2 +- .../Stormblood/Hunt/RankS/BoneCrawler.cs | 2 +- .../Modules/Stormblood/Hunt/RankS/Gamma.cs | 2 +- .../Modules/Stormblood/Hunt/RankS/Okina.cs | 2 +- .../Modules/Stormblood/Hunt/RankS/Orghana.cs | 2 +- .../TheLostCanalsOfUznair/CanalIcebeast.cs | 2 +- .../AltarAiravata.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarArachne.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarBeast.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarChimera.cs | 2 +- .../AltarDiresaur.cs | 2 +- .../AltarDullahan.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarKelpie.cs | 2 +- .../AltarMandragora.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarSkatene.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarTotem.cs | 2 +- .../TheShiftingAltarsOfUznair/Hati.cs | 2 +- .../TheGreatGoldWhisker.cs | 2 +- .../TheShiftingAltarsOfUznair/TheOlderOne.cs | 2 +- .../TheShiftingAltarsOfUznair/TheWinged.cs | 2 +- .../Modules/Stormblood/Ultimate/UCOB/UCOB.cs | 2 +- .../Modules/Stormblood/Ultimate/UWU/UWU.cs | 2 +- 330 files changed, 516 insertions(+), 590 deletions(-) rename BossMod/Modules/Global/{Event => Quest}/FF15Collab/Garuda.cs (98%) rename BossMod/Modules/Global/{Event => Quest}/FF15Collab/Iseultalon.cs (97%) rename BossMod/Modules/Global/{Event => Quest}/FF15Collab/MA-x.cs (92%) diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs index bd0b43dcf4..972cfeffcc 100644 --- a/BossMod/BossModule/BossModuleInfo.cs +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -35,10 +35,36 @@ public enum Category PVP, MaskedCarnivale, GoldSaucer, - Event, Count } + + public enum GroupType + { + None, + CFC, // group id is ContentFinderCondition row + MaskedCarnivale, // group id is ContentFinderCondition row + RemovedUnreal, // group id is ContentFinderCondition row + Quest, // group id is Quest row + Fate, // group id is Fate row + Hunt, // group id is HuntRank + BozjaCE, // group id is ContentFinderCondition row, name id is DynamicEvent row + BozjaDuel, // group id is ContentFinderCondition row, name id is DynamicEvent row + GoldSaucer, // group id is GoldSaucerTextData row + } + + public enum HuntRank : uint { B, A, S, SS } + + // shorthand expansion names + public static string ShortName(this Expansion e) => e switch + { + Expansion.RealmReborn => "ARR", + Expansion.Heavensward => "HW", + Expansion.Stormblood => "SB", + Expansion.Shadowbringers => "ShB", + Expansion.Endwalker => "EW", + _ => e.ToString() + }; } // attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases @@ -53,13 +79,9 @@ public class ModuleInfoAttribute : Attribute public Type? TetherIDType; // default: ns.TetherID public Type? IconIDType; // default: ns.IconID public uint PrimaryActorOID; // default: OID.Boss - public string? DisplayName; public BossModuleInfo.Expansion Expansion = BossModuleInfo.Expansion.Count; // default: second namespace level public BossModuleInfo.Category Category = BossModuleInfo.Category.Count; // default: third namespace level - public uint QuestID; // default: 0 - public uint DynamicEventID; // default: 0 - public uint FateID; // default: 0 - public uint NotoriousMonsterID; // default: 0 - public uint NameID; // default: 0 - public uint CFCID; // default: 0 + public BossModuleInfo.GroupType GroupType = BossModuleInfo.GroupType.None; + public uint GroupID; + public uint NameID; // usually BNpcName row, unless GroupType uses it differently } diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index d9c6653d49..ed1acf8d5c 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -1,6 +1,5 @@ using Dalamud.Interface.Internal; using Dalamud.Interface.Utility.Raii; -using Dalamud.Utility; using ImGuiNET; using Lumina.Excel.GeneratedSheets; using Lumina.Text; @@ -11,12 +10,18 @@ namespace BossMod; public class ModuleViewer : IDisposable { + private record struct ModuleInfo(Type Type, string Name, uint SortOrder); + private record struct ModuleGroupInfo(string Name, uint Id, uint SortOrder, IDalamudTextureWrap? Icon = null); + private record struct ModuleGroup(ModuleGroupInfo Info, List Modules); + private BitMask _filterExpansions; private BitMask _filterCategories; private (string name, IDalamudTextureWrap? icon)[] _expansions; private (string name, IDalamudTextureWrap? icon)[] _categories; - + private IDalamudTextureWrap? _iconFATE; + private IDalamudTextureWrap? _iconHunt; + private List[,] _groups; private Vector2 _iconSize = new(30, 30); public ModuleViewer() @@ -54,7 +59,39 @@ public ModuleViewer() _categories[(int)BossModuleInfo.Category.Unreal].icon = _categories[(int)BossModuleInfo.Category.Trial].icon; _categories[(int)BossModuleInfo.Category.Savage].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; _categories[(int)BossModuleInfo.Category.Alliance].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; - _categories[(int)BossModuleInfo.Category.Event].icon = GetIcon(61757); + //_categories[(int)BossModuleInfo.Category.Event].icon = GetIcon(61757); + + _iconFATE = GetIcon(contentType?.GetRow(8)?.Icon ?? 0); + _iconHunt = GetIcon((uint)(playStyle?.GetRow(10)?.Icon ?? 0)); + + _groups = new List[(int)BossModuleInfo.Expansion.Count, (int)BossModuleInfo.Category.Count]; + for (int i = 0; i < (int)BossModuleInfo.Expansion.Count; ++i) + for (int j = 0; j < (int)BossModuleInfo.Category.Count; ++j) + _groups[i, j] = new(); + + foreach (var info in ModuleRegistry.RegisteredModules.Values) + { + var groups = _groups[(int)info.Expansion, (int)info.Category]; + var (groupInfo, moduleInfo) = Classify(info); + var groupIndex = groups.FindIndex(g => g.Info.Id == groupInfo.Id); + if (groupIndex < 0) + { + groupIndex = groups.Count; + groups.Add(new(groupInfo, new())); + } + else if (groups[groupIndex].Info != groupInfo) + { + Service.Log($"[ModuleViewer] Group properties mismatch between {groupInfo} and {groups[groupIndex].Info}"); + } + groups[groupIndex].Modules.Add(moduleInfo); + } + + foreach (var groups in _groups) + { + groups.SortBy(g => g.Info.SortOrder); + foreach (var g in groups) + g.Modules.SortBy(m => m.SortOrder); + } } public void Dispose() @@ -63,6 +100,8 @@ public void Dispose() e.icon?.Dispose(); foreach (var c in _categories) c.icon?.Dispose(); + _iconFATE?.Dispose(); + _iconHunt?.Dispose(); } public void Draw(UITree _tree) @@ -137,38 +176,35 @@ private void DrawModules(UITree _tree) if (!table) return; - DrawRows(ModuleRegistry.CataloguedModules.DistinctBy(x => x.DisplayName), _tree); - DrawRows(ModuleRegistry.UncataloguedModules, _tree); - } - - private void DrawRows(IEnumerable enumerable, UITree _tree) - { - foreach (var mod in enumerable) + for (int i = 0; i < (int)BossModuleInfo.Expansion.Count; ++i) { - if (_filterExpansions[(int)mod.Expansion] || _filterCategories[(int)mod.Category]) + if (_filterExpansions[i]) continue; + for (int j = 0; j < (int)BossModuleInfo.Category.Count; ++j) + { + if (_filterCategories[j]) + continue; - ImGui.TableNextRow(); - ImGui.TableNextColumn(); - UIMisc.Image(_expansions[(int)mod.Expansion].icon, new(36)); - ImGui.SameLine(); - UIMisc.Image(_categories[(int)mod.Category].icon, new(36)); - ImGui.TableNextColumn(); - foreach (var _ in _tree.Node($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.DisplayName!)}##{mod.PrimaryActorOID}")) - DrawBosses(ModuleRegistry.RegisteredModules.Values, mod.DisplayName ?? new()); - } - } + foreach (var group in _groups[i, j]) + { + ImGui.TableNextRow(); + ImGui.TableNextColumn(); + UIMisc.Image(_expansions[i].icon, new(36)); + ImGui.SameLine(); + UIMisc.Image(group.Info.Icon ?? _categories[j].icon, new(36)); + ImGui.TableNextColumn(); - private void DrawBosses(IEnumerable modules, SeString name) - { - foreach (var mod in modules.Where(x => x.DisplayName == name)) - if (!mod.BossName!.RawString.IsNullOrEmpty()) - ImGui.TextUnformatted($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.BossName)}"); + foreach (var _ in _tree.Node($"{group.Info.Name}###{i}/{j}/{group.Info.Id}")) + foreach (var mod in group.Modules) + ImGui.TextUnformatted($"{mod.Name} [{mod.Type.Name}]"); + } + } + } } private void Customize((string name, IDalamudTextureWrap? icon)[] array, int element, uint iconId, SeString? name) { - var icon = iconId != 0 ? GetIcon(iconId) : null; + var icon = GetIcon(iconId); if (icon != null) array[element].icon = icon; if (name != null) @@ -179,5 +215,52 @@ private void Customize((string name, IDalamudTextureWrap? icon)[] array, int ele private void Customize(BossModuleInfo.Category category, ContentType? ct) => Customize(category, ct?.Icon ?? 0, ct?.Name); private void Customize(BossModuleInfo.Category category, CharaCardPlayStyle? ps) => Customize(category, (uint)(ps?.Icon ?? 0), ps?.Name); - private static IDalamudTextureWrap? GetIcon(uint iconId) => Service.Texture?.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes); + private static IDalamudTextureWrap? GetIcon(uint iconId) => iconId != 0 ? Service.Texture?.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes) : null; + private static string FixCase(SeString? str) => CultureInfo.InvariantCulture.TextInfo.ToTitleCase(str ?? ""); + private static string BNpcName(uint id) => FixCase(Service.LuminaRow(id)?.Singular); + + private (ModuleGroupInfo, ModuleInfo) Classify(ModuleRegistry.Info module) + { + var groupId = (uint)module.GroupType << 24; + switch (module.GroupType) + { + case BossModuleInfo.GroupType.CFC: + groupId |= module.GroupID; + var cfcRow = Service.LuminaRow(module.GroupID); + var cfcSort = cfcRow?.SortKey ?? 0u; + var cfcName = FixCase(cfcRow?.Name); + return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.MaskedCarnivale: + groupId |= module.GroupID; + var mcRow = Service.LuminaRow(module.GroupID); + var mcSort = uint.Parse((mcRow?.ShortCode ?? "").Substring(3)); // 'aozNNN' + var mcName = $"Stage {mcSort}: {FixCase(mcRow?.Name)}"; + return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.RemovedUnreal: + return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.Quest: + var questRow = Service.LuminaRow(module.GroupID); + groupId |= questRow?.JournalGenre.Row ?? 0; + var questCategoryName = questRow?.JournalGenre.Value?.Name ?? ""; + return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + case BossModuleInfo.GroupType.Fate: + var fateRow = Service.LuminaRow(module.GroupID); + return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + case BossModuleInfo.GroupType.Hunt: + groupId |= module.GroupID; + return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + case BossModuleInfo.GroupType.BozjaCE: + groupId |= module.GroupID; + var ceName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} CE"; + return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.BozjaDuel: + groupId |= module.GroupID; + var duelName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} Duel"; + return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.GoldSaucer: + return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.GroupID)); + default: + return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + } + } } diff --git a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs index 6164505eb3..2039dff58e 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs @@ -19,7 +19,7 @@ public A10LionsStates(A10Lions module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, CFCID = 866, NameID = 11294)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11294)] public class A10Lions : BossModule { private Actor? _lioness; diff --git a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs index adbcc20a96..fc6dbf8075 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs @@ -20,7 +20,7 @@ class DestructiveStrike : Components.BaitAwayCast public DestructiveStrike() : base(ActionID.MakeSpell(AID.DestructiveStrike), new AOEShapeCone(13, 60.Degrees())) { } // TODO: verify angle } -[ModuleInfo(CFCID = 866, NameID = 11274)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11274)] public class A10RhalgrEmissary : BossModule { public A10RhalgrEmissary(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(74, 516), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs index de0c7d7e41..dd390ab8b3 100644 --- a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs +++ b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs @@ -5,7 +5,7 @@ class ByregotWard : Components.BaitAwayCast public ByregotWard() : base(ActionID.MakeSpell(AID.ByregotWard), new AOEShapeCone(10, 45.Degrees())) { } } -[ModuleInfo(CFCID = 866, NameID = 11281)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11281)] public class A11Byregot : BossModule { public A11Byregot(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 700), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs index a0236d1d2c..27deb30011 100644 --- a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs +++ b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs @@ -15,7 +15,7 @@ class BronzeLightning : Components.SelfTargetedAOEs public BronzeLightning() : base(ActionID.MakeSpell(AID.BronzeLightning), new AOEShapeCone(50, 22.5f.Degrees()), 4) { } } -[ModuleInfo(CFCID = 866, NameID = 11273)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11273)] public class A12Rhalgr : BossModule { public A12Rhalgr(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-15, 275), 30)) // note: arena has a really complex shape... diff --git a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs index bb1c55d6f0..7630095fdf 100644 --- a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs +++ b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs @@ -25,7 +25,7 @@ class SublimeSunset : Components.LocationTargetedAOEs public SublimeSunset() : base(ActionID.MakeSpell(AID.SublimeSunsetAOE), 40) { } // TODO: check falloff } -[ModuleInfo(CFCID = 866, NameID = 11277)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11277)] public class A13Azeyma : BossModule { public A13Azeyma(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs index c0864b8b80..8df0db0c31 100644 --- a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs +++ b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs @@ -46,7 +46,7 @@ public TippedScales() : base(ActionID.MakeSpell(AID.TippedScalesAOE)) { } } // TODO: balancing counter -[ModuleInfo(CFCID = 866, NameID = 11286)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11286)] public class A14Naldthal : BossModule { public A14Naldthal(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs b/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs index 79f85f80aa..b623d663d6 100644 --- a/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs +++ b/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs @@ -30,7 +30,7 @@ class HeavensEarth : Components.BaitAwayCast public HeavensEarth() : base(ActionID.MakeSpell(AID.HeavensEarthAOE), new AOEShapeCircle(5), true) { } } -[ModuleInfo(CFCID = 911, NameID = 12065)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12065)] public class A21Nophica : BossModule { public A21Nophica(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -238), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs b/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs index da53f74842..325d5ef9cd 100644 --- a/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs +++ b/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs @@ -10,7 +10,7 @@ class Hydroptosis : Components.SpreadFromCastTargets public Hydroptosis() : base(ActionID.MakeSpell(AID.HydroptosisAOE), 6) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Althyk, CFCID = 911, NameID = 12244)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Althyk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12244)] public class A22AlthykNymeia : BossModule { private Actor? _nymeia; diff --git a/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs b/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs index ae9be18ff5..bd78819a20 100644 --- a/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs +++ b/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs @@ -45,7 +45,7 @@ class Niphas : Components.SelfTargetedAOEs public Niphas() : base(ActionID.MakeSpell(AID.Niphas), new AOEShapeCircle(9)) { } } -[ModuleInfo(CFCID = 911, NameID = 12064)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12064)] public class A23Halone : BossModule { public A23Halone(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-700, 600), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs b/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs index 413ba7214e..aadb05102c 100644 --- a/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs +++ b/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs @@ -60,7 +60,7 @@ class MoonsetRays : Components.StackWithCastTargets public MoonsetRays() : base(ActionID.MakeSpell(AID.MoonsetRaysAOE), 6, 4) { } } -[ModuleInfo(CFCID = 911, NameID = 12063)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12063)] public class A24Menphina : BossModule { public A24Menphina(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(800, 750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs index c115c21232..791f539633 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs @@ -54,8 +54,8 @@ public C010ArmorStates(BossModule module, bool savage) : base(module) class C010NArmorStates : C010ArmorStates { public C010NArmorStates(BossModule module) : base(module, false) { } } class C010SArmorStates : C010ArmorStates { public C010SArmorStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11515)] public class C010NArmor : SimpleBossModule { public C010NArmor(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11515)] public class C010SArmor : SimpleBossModule { public C010SArmor(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs index ecea71c546..ff381dfe72 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs @@ -54,8 +54,8 @@ public C010BelladonnaStates(BossModule module, bool savage) : base(module) class C010NBelladonnaStates : C010BelladonnaStates { public C010NBelladonnaStates(BossModule module) : base(module, false) { } } class C010SBelladonnaStates : C010BelladonnaStates { public C010SBelladonnaStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11514)] public class C010NBelladonna : SimpleBossModule { public C010NBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11514)] public class C010SBelladonna : SimpleBossModule { public C010SBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs index 168e353f51..416deb3d5f 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs @@ -68,7 +68,7 @@ public C010DryadStates(BossModule module, bool savage) : base(module) class C010NDryadStates : C010DryadStates { public C010NDryadStates(BossModule module) : base(module, false) { } } class C010SDryadStates : C010DryadStates { public C010SDryadStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11513)] public class C010NDryad : SimpleBossModule { public C010NDryad(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11513)] public class C010SDryad : SimpleBossModule { public C010SDryad(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs index fd71a2051c..50f6f2bab0 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs @@ -54,8 +54,8 @@ public C010DullahanStates(BossModule module, bool savage) : base(module) class C010NDullahanStates : C010DullahanStates { public C010NDullahanStates(BossModule module) : base(module, false) { } } class C010SDullahanStates : C010DullahanStates { public C010SDullahanStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11506)] public class C010NDullahan : SimpleBossModule { public C010NDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11506)] public class C010SDullahan : SimpleBossModule { public C010SDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs index a77822b061..0eec6496d5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs @@ -54,8 +54,8 @@ public C010KalukStates(BossModule module, bool savage) : base(module) class C010NKalukStates : C010KalukStates { public C010NKalukStates(BossModule module) : base(module, false) { } } class C010SKalukStates : C010KalukStates { public C010SKalukStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11510)] public class C010NKaluk : SimpleBossModule { public C010NKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11510)] public class C010SKaluk : SimpleBossModule { public C010SKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs index a2a57b5983..aa142e8b4a 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs @@ -68,7 +68,7 @@ public C010UdumbaraStates(BossModule module, bool savage) : base(module) class C010NUdumbaraStates : C010UdumbaraStates { public C010NUdumbaraStates(BossModule module) : base(module, false) { } } class C010SUdumbaraStates : C010UdumbaraStates { public C010SUdumbaraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11511)] public class C010NUdumbara : SimpleBossModule { public C010NUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11511)] public class C010SUdumbara : SimpleBossModule { public C010SUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs index cab6ea8e00..3b6d162279 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs @@ -58,8 +58,8 @@ public abstract class C011Silkie : BossModule public C011Silkie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-335, -155), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11369)] public class C011NSilkie : C011Silkie { public C011NSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11369)] public class C011SSilkie : C011Silkie { public C011SSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs index 2483e9ffb6..d31745d85d 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs @@ -19,8 +19,8 @@ public abstract class C012Gladiator : BossModule public C012Gladiator(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-35, -271), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11387)] public class C012NGladiator : C012Gladiator { public C012NGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11387)] public class C012SGladiator : C012Gladiator { public C012SGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs index ac9c238926..b2a5aca840 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs @@ -27,8 +27,8 @@ public abstract class C013Shadowcaster : BossModule public C013Shadowcaster(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(289, -105), 15, 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11393)] public class C013NShadowcaster : C013Shadowcaster { public C013NShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11393)] public class C013SShadowcaster : C013Shadowcaster { public C013SShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs index dcade21310..f6747a6df4 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs @@ -82,7 +82,7 @@ private void Crosswind(uint id, float delay) class C020NFukoStates : C020FukoStates { public C020NFukoStates(BossModule module) : base(module, false) { } } class C020SFukoStates : C020FukoStates { public C020SFukoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, CFCID = 946, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12399)] public class C020NFuko : C020Trash1 { public C020NFuko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -95,7 +95,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, CFCID = 947, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12399)] public class C020SFuko : C020Trash1 { public C020SFuko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs index cfd675bb95..58df10f580 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs @@ -71,8 +71,8 @@ public C020KotenguStates(BossModule module, bool savage) : base(module) class C020NKotenguStates : C020KotenguStates { public C020NKotenguStates(BossModule module) : base(module, false) { } } class C020SKotenguStates : C020KotenguStates { public C020SKotenguStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, CFCID = 946, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12410)] public class C020NKotengu : C020Trash2 { public C020NKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, CFCID = 947, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12410)] public class C020SKotengu : C020Trash2 { public C020SKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs index a259601dd6..b3a30240f5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs @@ -52,8 +52,8 @@ public C020OnmitsugashiraStates(BossModule module, bool savage) : base(module) class C020NOnmitsugashiraStates : C020OnmitsugashiraStates { public C020NOnmitsugashiraStates(BossModule module) : base(module, false) { } } class C020SOnmitsugashiraStates : C020OnmitsugashiraStates { public C020SOnmitsugashiraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, CFCID = 946, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12424)] public class C020NOnmitsugashira : C020Trash2 { public C020NOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, CFCID = 947, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12424)] public class C020SOnmitsugashira : C020Trash2 { public C020SOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs index 262c832e26..0d85b9d9a0 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs @@ -89,7 +89,7 @@ private void MasterOfLevin(uint id, float delay) class C020NRaikoStates : C020RaikoStates { public C020NRaikoStates(BossModule module) : base(module, false) { } } class C020SRaikoStates : C020RaikoStates { public C020SRaikoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, CFCID = 946, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12422)] public class C020NRaiko : C020Trash1 { public C020NRaiko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -102,7 +102,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, CFCID = 947, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12422)] public class C020SRaiko : C020Trash1 { public C020SRaiko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs index d70f793f07..29644a5c07 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs @@ -28,8 +28,8 @@ public C020YukiStates(BossModule module, bool savage) : base(module) class C020NYukiStates : C020YukiStates { public C020NYukiStates(BossModule module) : base(module, false) { } } class C020SYukiStates : C020YukiStates { public C020SYukiStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, CFCID = 946, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12425)] public class C020NYuki : C020Trash1 { public C020NYuki(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, CFCID = 947, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12425)] public class C020SYuki : C020Trash1 { public C020SYuki(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs index a475a82c86..3a0166acc6 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs @@ -19,8 +19,8 @@ public abstract class C021Shishio : BossModule public C021Shishio(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, -100), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 946, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12428)] public class C021NShishio : C021Shishio { public C021NShishio(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 947, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12428)] public class C021SShishio : C021Shishio { public C021SShishio(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs index 5f318ca29e..2f3f083c91 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs @@ -12,8 +12,8 @@ public abstract class C022Gorai : BossModule public C022Gorai(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(300, -120), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 946, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12373)] public class C022NGorai : C022Gorai { public C022NGorai(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 947, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12373)] public class C022SGorai : C022Gorai { public C022SGorai(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs index 6c69cf2772..0183285172 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs @@ -12,8 +12,8 @@ public abstract class C023Moko : BossModule public C023Moko(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 946, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12357)] public class C023NMoko : C023Moko { public C023NMoko(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 947, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12357)] public class C023SMoko : C023Moko { public C023SMoko(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs index ef56149c78..3add92ecc8 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs @@ -58,13 +58,13 @@ private void IsleDrop(uint id, float delay) class C030NIslekeeperStates : C030IslekeeperStates { public C030NIslekeeperStates(BossModule module) : base(module, false) { } } class C030SIslekeeperStates : C030IslekeeperStates { public C030SIslekeeperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, CFCID = 979, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12561)] public class C030NIslekeeper : C030Trash2 { public C030NIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, CFCID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] public class C030SIslekeeper : C030Trash2 { public C030SIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs index 81006fc6e3..68f1fc3209 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs @@ -70,13 +70,13 @@ private void TailScrew(uint id, float delay) class C030NKiwakinStates : C030KiwakinStates { public C030NKiwakinStates(BossModule module) : base(module, false) { } } class C030SKiwakinStates : C030KiwakinStates { public C030SKiwakinStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, CFCID = 979, NameID = 12632)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12632)] public class C030NKiwakin : C030Trash1 { public C030NKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, CFCID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] public class C030SKiwakin : C030Trash1 { public C030SKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs index 3dfacb7f07..d8fb80798e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs @@ -58,13 +58,13 @@ private void CrossAttack(uint id, float delay) class C030NMonkStates : C030MonkStates { public C030NMonkStates(BossModule module) : base(module, false) { } } class C030SMonkStates : C030MonkStates { public C030SMonkStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, CFCID = 979, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12631)] public class C030NMonk : C030Trash1 { public C030NMonk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, CFCID = 980, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12631)] public class C030SMonk : C030Trash1 { public C030SMonk(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs index 1954645c63..7547ec9185 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs @@ -59,7 +59,7 @@ private void ExpulsionElectricWhorl(uint id, float delay) class C030NRayStates : C030RayStates { public C030NRayStates(BossModule module) : base(module, false) { } } class C030SRayStates : C030RayStates { public C030SRayStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, CFCID = 979, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12541)] public class C030NRay : C030Trash1 { public C030NRay(WorldState ws, Actor primary) : base(ws, primary) { } @@ -71,7 +71,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, CFCID = 980, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12541)] public class C030SRay : C030Trash1 { public C030SRay(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs index e226ec8228..31c20cab89 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs @@ -74,7 +74,7 @@ private void BubbleShowerCrabDribble(uint id, float delay) class C030NSnipperStates : C030SnipperStates { public C030NSnipperStates(BossModule module) : base(module, false) { } } class C030SSnipperStates : C030SnipperStates { public C030SSnipperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, CFCID = 979, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12537)] public class C030NSnipper : C030Trash1 { public C030NSnipper(WorldState ws, Actor primary) : base(ws, primary) { } @@ -86,7 +86,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, CFCID = 980, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12537)] public class C030SSnipper : C030Trash1 { public C030SSnipper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs index 81e2dba16e..7ba9ebbc3e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs @@ -60,13 +60,13 @@ private void Ovation(uint id, float delay) class C030NWoodGolemStates : C030WoodGolemStates { public C030NWoodGolemStates(BossModule module) : base(module, false) { } } class C030SWoodGolemStates : C030WoodGolemStates { public C030SWoodGolemStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, CFCID = 979, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12560)] public class C030NWoodGolem : C030Trash2 { public C030NWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, CFCID = 980, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12560)] public class C030SWoodGolem : C030Trash2 { public C030SWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs index bf3210dd73..343547a980 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs @@ -28,8 +28,8 @@ public abstract class C031Ketuduke : BossModule public C031Ketuduke(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 979, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12605)] public class C031NKetuduke : C031Ketuduke { public C031NKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 980, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12605)] public class C031SKetuduke : C031Ketuduke { public C031SKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs index 93a58712cd..61ea0215b5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs @@ -12,8 +12,8 @@ public abstract class C032Lala : BossModule public C032Lala(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 979, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12639)] public class C032NLala : C032Lala { public C032NLala(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 980, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12639)] public class C032SLala : C032Lala { public C032SLala(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs index 747b728af8..c4fdbe64b7 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs @@ -24,8 +24,8 @@ public abstract class C033Statice : BossModule public C033Statice(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 979, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12506)] public class C033NStatice : C033Statice { public C033NStatice(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 980, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12506)] public class C033SStatice : C033Statice { public C033SStatice(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs index abccdd8c8a..c9cee76bb5 100644 --- a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs +++ b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs @@ -88,7 +88,7 @@ public DD30TiamatsCloneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 899, NameID = 12242)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 899, NameID = 12242)] public class DD30TiamatsClone : BossModule { public DD30TiamatsClone(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-300, -300), 20)) { } diff --git a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs index 6aa99e935f..798bc8c9d8 100644 --- a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs +++ b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs @@ -206,7 +206,7 @@ public DD70AeturnaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 903, NameID = 12246)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 903, NameID = 12246)] public class DD70Aeturna : BossModule { public DD70Aeturna(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-300, -300), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs index 93b7293253..7f897245d3 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs @@ -152,7 +152,7 @@ public D011MinduruvaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 783, NameID = 10256)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 783, NameID = 10256)] public class D011Minduruva : BossModule { public D011Minduruva(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(68, -124), 19.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs index 3534a336a5..ddc9e84a44 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs @@ -105,7 +105,7 @@ public D012SanduruvaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 783, NameID = 10257)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 783, NameID = 10257)] public class D012Sanduruva : BossModule { public D012Sanduruva(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-258, -26), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs index f396c573a8..69b3f849e0 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs @@ -269,7 +269,7 @@ public D013MagusSistersStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 783, NameID = 10265)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 783, NameID = 10265)] class D013MagusSisters : BossModule { public D013MagusSisters(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-27.5f, -49.5f), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs index fff1818813..0fb8331f6d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs @@ -41,7 +41,7 @@ public D110AlbusGriffinStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 12245)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 12245)] public class D110AlbusGriffin : BossModule { public D110AlbusGriffin(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(47, -570.5f), 8.5f, 11.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs index 38612f9162..b876a1aa1d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs @@ -28,7 +28,7 @@ public D110CaladriusMaturusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 12078)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 12078)] public class D110CaladriusMaturus : BossModule { public D110CaladriusMaturus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(47, -570.5f), 8.5f, 11.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs index 64de41fffc..53c1753251 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs @@ -273,7 +273,7 @@ public D111AlbionStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 11992)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 11992)] public class D111Albion : BossModule { public D111Albion(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(24, -744), 19.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs index f3c4395a7c..c3266dd001 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs @@ -272,7 +272,7 @@ public D112GalateaMagnaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 10308)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 10308)] public class D112GalateaMagna : BossModule { public D112GalateaMagna(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(350, -394), 19.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs index d29b5625c1..1806922999 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs @@ -234,7 +234,7 @@ public D113CagnazzoStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 11995)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 11995)] public class D113Cagnazzo : BossModule { public D113Cagnazzo(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-250, 130), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs index 79e598db08..8e99d66375 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs @@ -111,7 +111,7 @@ public D121LyngbakrStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 822, NameID = 12336)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 822, NameID = 12336)] public class D121Lyngbakr : BossModule { public D121Lyngbakr(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-322, 120), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs index bdd8170101..34222bb296 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs @@ -197,7 +197,7 @@ public D122ArkasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 822, NameID = 12337)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 822, NameID = 12337)] public class D122Arkas : BossModule { public D122Arkas(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(425, -440), 14.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs index 2219905121..0a575a4eda 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs @@ -141,7 +141,7 @@ public D123OctomammothStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 822, NameID = 12334)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 822, NameID = 12334)] class D123Octomammoth : BossModule { public D123Octomammoth(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-370, -368), 33.3f)) diff --git a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs index 081392a02f..f13452333a 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs @@ -145,7 +145,7 @@ public D131DarkElfStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 823, NameID = 12500)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 823, NameID = 12500)] public class D131DarkElf : BossModule { public D131DarkElf(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-401, -231), 15.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs index a01ce2ff6b..b5d1e022e4 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs @@ -184,7 +184,7 @@ public D132DamcyanAntilonStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 823, NameID = 12484)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 823, NameID = 12484)] public class D132DamcyanAntilon : BossModule { public D132DamcyanAntilon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 60), 19.5f, 25)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs index 68e5a63c8c..2424bfb502 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs @@ -194,7 +194,7 @@ public D133DuranteStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 823, NameID = 12584)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 823, NameID = 12584)] class D133Durante : BossModule { public D133Durante(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -422), 23)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs b/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs index 53896733ff..546f1b93a0 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs @@ -17,7 +17,7 @@ public class Ex1ZodiarkConfig : CooldownPlanningConfigNode public Ex1ZodiarkConfig() : base(90) { } } -[ModuleInfo(CFCID = 803, NameID = 10456)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 803, NameID = 10456)] public class Ex1Zodiark : BossModule { public Ex1Zodiark(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs b/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs index 6f00284d02..f14db18249 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs @@ -24,7 +24,7 @@ public class Ex2HydaelynConfig : CooldownPlanningConfigNode public Ex2HydaelynConfig() : base(90) { } } -[ModuleInfo(CFCID = 791, NameID = 10453)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 791, NameID = 10453)] public class Ex2Hydaelyn : BossModule { public Ex2Hydaelyn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs b/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs index c143608289..80f75fec34 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs @@ -34,7 +34,7 @@ public class Ex3EndsingerConfig : CooldownPlanningConfigNode public Ex3EndsingerConfig() : base(90) { } } -[ModuleInfo(CFCID = 846, NameID = 10448)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 846, NameID = 10448)] public class Ex3Endsinger : BossModule { public Ex3Endsinger(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs b/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs index ab979ba902..eb4a86745c 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs @@ -120,7 +120,7 @@ class IronOut : Components.CastCounter public IronOut() : base(ActionID.MakeSpell(AID.IronOutAOE)) { } } -[ModuleInfo(CFCID = 871, NameID = 11398)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 871, NameID = 11398)] public class Ex4Barbariccia : BossModule { public Ex4Barbariccia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs b/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs index 6c2ef898ac..0b27b19d96 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs @@ -21,7 +21,7 @@ public class Ex5RubicanteConfig : CooldownPlanningConfigNode public Ex5RubicanteConfig() : base(90) { } } -[ModuleInfo(CFCID = 924, NameID = 12057)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 924, NameID = 12057)] public class Ex5Rubicante : BossModule { public Ex5Rubicante(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs b/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs index f54bf47f46..974b82ea14 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs @@ -76,7 +76,7 @@ public class Ex6GolbezConfig : CooldownPlanningConfigNode public Ex6GolbezConfig() : base(90) { } } -[ModuleInfo(CFCID = 950, NameID = 12365)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 950, NameID = 12365)] public class Ex6Golbez : BossModule { public Ex6Golbez(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 15)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs b/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs index b1121fe1ad..26aa935bb0 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs @@ -31,7 +31,7 @@ public class Ex7ZeromusConfig : CooldownPlanningConfigNode public Ex7ZeromusConfig() : base(90) { } } -[ModuleInfo(CFCID = 965, NameID = 12586)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 965, NameID = 12586)] public class Ex7Zeromus : BossModule { public Ex7Zeromus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/FATE/Chi.cs b/BossMod/Modules/Endwalker/FATE/Chi.cs index 52061c1b37..ab984dee9d 100644 --- a/BossMod/Modules/Endwalker/FATE/Chi.cs +++ b/BossMod/Modules/Endwalker/FATE/Chi.cs @@ -340,7 +340,7 @@ public ChiStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1855)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1855, NameID = 10400)] public class Chi : BossModule { public Chi(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(650, 0), 30)) { } diff --git a/BossMod/Modules/Endwalker/FATE/Daivadipa.cs b/BossMod/Modules/Endwalker/FATE/Daivadipa.cs index 92d0aa4fba..a602834932 100644 --- a/BossMod/Modules/Endwalker/FATE/Daivadipa.cs +++ b/BossMod/Modules/Endwalker/FATE/Daivadipa.cs @@ -307,7 +307,7 @@ public DaivadipaStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1763)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1763, NameID = 10269)] public class Daivadipa : BossModule { public Daivadipa(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-608, 811), 24.5f)) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs index 33242c712a..0ab8acac05 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs @@ -72,7 +72,7 @@ public AegeirosStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 195)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10628)] public class Aegeiros : SimpleBossModule { public Aegeiros(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs index 6f31241e08..90019bbea9 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs @@ -54,7 +54,7 @@ public ArchEtaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 224)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10634)] public class ArchEta : SimpleBossModule { public ArchEta(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs index 3bb1d70b0f..c100875474 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs @@ -56,7 +56,7 @@ public FanAilStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 225)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10633)] public class FanAil : SimpleBossModule { public FanAil(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs index 08b53f964a..9c7f9b55d4 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs @@ -73,7 +73,7 @@ public GurangatchStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 215)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10631)] public class Gurangatch : SimpleBossModule { public Gurangatch(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs index 0423d68fa4..718f8b97be 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs @@ -53,7 +53,7 @@ public HulderStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 174)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10624)] public class Hulder : SimpleBossModule { public Hulder(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs index c4efdbaacb..58c600c2e0 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs @@ -74,7 +74,7 @@ public LunatenderQueenStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 205)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10629)] public class LunatenderQueen : SimpleBossModule { public LunatenderQueen(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs index ecd739f743..75cad0a739 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs @@ -114,7 +114,7 @@ public MinervaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 194)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10627)] public class Minerva : SimpleBossModule { public Minerva(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs index 243aecd93e..4d8ebee212 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs @@ -103,7 +103,7 @@ public MoussePrincessStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 204)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10630)] public class MoussePrincess : SimpleBossModule { public MoussePrincess(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs index 7bf84f9d3a..535ce61be6 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs @@ -48,7 +48,7 @@ public PetalodusStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 214)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10632)] public class Petalodus : SimpleBossModule { public Petalodus(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs index a33536bc40..2430dc6179 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs @@ -71,7 +71,7 @@ public StorsieStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 175)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10623)] public class Storsie : SimpleBossModule { public Storsie(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs index 218d30da01..e9adb78db6 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs @@ -140,7 +140,7 @@ public SugrivaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10626)] public class Sugriva : SimpleBossModule { public Sugriva(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs index 414f366ae4..0807b66abd 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs @@ -96,7 +96,7 @@ public YilanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 184)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10625)] public class Yilan : SimpleBossModule { public Yilan(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs index d9bcb68342..b823904e09 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs @@ -94,7 +94,8 @@ public ArmstrongStates(BossModule module) : base(module) .ActivateOnEnter(); } } -[ModuleInfo(NotoriousMonsterID = 196)] + +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10619)] public class Armstrong : SimpleBossModule { public Armstrong(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs index caf87c80ed..017e726efe 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs @@ -90,7 +90,7 @@ public BurfurlurStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 176)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10617)] public class Burfurlur : SimpleBossModule { public Burfurlur(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs index 9c85fa9a0d..79384a078d 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs @@ -280,7 +280,7 @@ public KerStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 181)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 10615)] public class Ker : SimpleBossModule { public Ker(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs index 9a942cf8e2..6bab258984 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs @@ -32,7 +32,7 @@ public KerShroudStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 177)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 10616)] public class KerShroud : SimpleBossModule { public KerShroud(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs index b1382f9bc6..87911cc0df 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs @@ -125,7 +125,7 @@ public NarrowRiftStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 226)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10622)] public class NarrowRift : SimpleBossModule { public NarrowRift(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs index 83a85b67e1..51d4d6f57a 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs @@ -83,7 +83,7 @@ public OphioneusStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 216)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10621)] public class Ophioneus : SimpleBossModule { public Ophioneus(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs index 1b111016fd..e6c73a733f 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs @@ -85,7 +85,7 @@ public RuminatorStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 206)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10620)] public class Ruminator : SimpleBossModule { public Ruminator(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs index c957329921..d2d6156623 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs @@ -148,7 +148,7 @@ public SphatikaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 186)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10618)] public class Sphatika : SimpleBossModule { public Sphatika(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs b/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs index bbdfc158c7..3c622c47a9 100644 --- a/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs +++ b/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs @@ -138,7 +138,7 @@ public override IEnumerable ActiveAOEs(BossModule module, int slot, => ActiveCasters.Select((c, i) => new AOEInstance(Shape, c.Position, c.CastInfo!.Rotation, c.CastInfo.NPCFinishAt, i < 2 ? ArenaColor.Danger : ArenaColor.AOE)); } -[ModuleInfo(PrimaryActorOID = (uint)OID.ZenosP1, QuestID = 70000, NameID = 10393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.ZenosP1, GroupType = BossModuleInfo.GroupType.Quest, GroupID = 70000, NameID = 10393)] public class Endwalker : BossModule { private IReadOnlyList _zenosP2; diff --git a/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs b/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs index 0b5e5249c1..4c1aa90e18 100644 --- a/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs +++ b/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs @@ -48,7 +48,7 @@ public class P10SPandaemoniumConfig : CooldownPlanningConfigNode public P10SPandaemoniumConfig() : base(90) { } } -[ModuleInfo(CFCID = 939, NameID = 12354)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 939, NameID = 12354)] public class P10SPandaemonium : BossModule { public P10SPandaemonium(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(100, 92.5f), 30, 22.5f)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs b/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs index 12971cd5c0..e39a9321fb 100644 --- a/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs +++ b/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs @@ -6,7 +6,7 @@ public class P11SThemisConfig : CooldownPlanningConfigNode public P11SThemisConfig() : base(90) { } } -[ModuleInfo(CFCID = 941, NameID = 12388)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 941, NameID = 12388)] public class P11SThemis : BossModule { public P11SThemis(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs index 70acdb3495..1edaf644f8 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs @@ -15,7 +15,7 @@ class Parthenos : Components.SelfTargetedAOEs public Parthenos() : base(ActionID.MakeSpell(AID.Parthenos), new AOEShapeRect(60, 8, 60)) { } } -[ModuleInfo(CFCID = 943, NameID = 12377)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12377)] public class P12S1Athena : BossModule { public P12S1Athena(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs index f626d084e4..db4ec10854 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Savage.P12S2PallasAthena; -[ModuleInfo(CFCID = 943, NameID = 12382)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12382)] public class P12S2PallasAthena : BossModule { public static ArenaBoundsRect DefaultBounds = new ArenaBoundsRect(new(100, 95), 20, 15); diff --git a/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs b/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs index 014c34b0da..40ba4bdf98 100644 --- a/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs +++ b/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Savage.P1SErichthonios; -[ModuleInfo(CFCID = 809, NameID = 10576)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 809, NameID = 10576)] public class P1S : BossModule { public static readonly float InnerCircleRadius = 12; // this determines in/out flails and cells boundary diff --git a/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs b/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs index 7cf595c297..f465c35d69 100644 --- a/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs +++ b/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs @@ -16,7 +16,7 @@ public class P2SConfig : CooldownPlanningConfigNode public P2SConfig() : base(90) { } } -[ModuleInfo(CFCID = 811, NameID = 10348)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 811, NameID = 10348)] public class P2S : BossModule { public P2S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs b/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs index f29c62c1ae..2ec472d83f 100644 --- a/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs +++ b/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs @@ -11,7 +11,7 @@ class HeatOfCondemnation : Components.TankbusterTether public HeatOfCondemnation() : base(ActionID.MakeSpell(AID.HeatOfCondemnationAOE), (uint)TetherID.HeatOfCondemnation, 6) { } } -[ModuleInfo(CFCID = 807, NameID = 10720)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 807, NameID = 10720)] public class P3S : BossModule { public P3S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs index e4f02033f1..82362724ac 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs @@ -13,7 +13,7 @@ public class P4S1Config : CooldownPlanningConfigNode public P4S1Config() : base(90) { } } -[ModuleInfo(CFCID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] public class P4S1 : BossModule { public P4S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs index 500f49543a..ddeec62abd 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs @@ -13,7 +13,7 @@ class HeartStake : Components.CastCounter public HeartStake() : base(ActionID.MakeSpell(AID.HeartStakeSecond)) { } } -[ModuleInfo(CFCID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] public class P4S2 : BossModule { // common wreath of thorns constants diff --git a/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs b/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs index b3afe953f0..df01624c9e 100644 --- a/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs +++ b/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs @@ -33,7 +33,7 @@ public class P5SConfig : CooldownPlanningConfigNode public P5SConfig() : base(90) { } } -[ModuleInfo(CFCID = 873, NameID = 11440)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 873, NameID = 11440)] public class P5S : BossModule { public P5S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 15)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs b/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs index ef8dc8cb2f..61190e9df0 100644 --- a/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs +++ b/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs @@ -26,7 +26,7 @@ public class P6SConfig : CooldownPlanningConfigNode public P6SConfig() : base(90) { } } -[ModuleInfo(CFCID = 881, NameID = 11381)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 881, NameID = 11381)] public class P6S : BossModule { public P6S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs b/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs index 30d48f7c53..45ac1329e4 100644 --- a/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs +++ b/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs @@ -51,7 +51,7 @@ public class P7SConfig : CooldownPlanningConfigNode public P7SConfig() : base(90) { } } -[ModuleInfo(CFCID = 877, NameID = 11374)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 877, NameID = 11374)] public class P7S : BossModule { public P7S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 27)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs index 7700061d42..521f9ce2d8 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs @@ -10,7 +10,7 @@ class AbyssalFires : Components.LocationTargetedAOEs public AbyssalFires() : base(ActionID.MakeSpell(AID.AbyssalFires), 15) { } // TODO: verify falloff } -[ModuleInfo(CFCID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] public class P8S1 : BossModule { public P8S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs index 6a36196264..2737e9828d 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs @@ -7,7 +7,7 @@ public TyrantsFlare() : base(ActionID.MakeSpell(AID.TyrantsFlareAOE), 6) { } // TODO: autoattack component // TODO: HC components -[ModuleInfo(CFCID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] public class P8S2 : BossModule { public P8S2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs b/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs index 594b8f0b33..87d433cce2 100644 --- a/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs +++ b/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs @@ -21,7 +21,7 @@ public class P9SKokytosConfig : CooldownPlanningConfigNode public P9SKokytosConfig() : base(90) { } } -[ModuleInfo(CFCID = 937, NameID = 12369)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 937, NameID = 12369)] public class P9SKokytos : BossModule { public P9SKokytos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs index da66406273..55a098504d 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs @@ -180,7 +180,7 @@ public LuckyFaceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 819, NameID = 10831)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 819, NameID = 10831)] public class LuckyFace : BossModule { public LuckyFace(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -460), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs index ca67047566..a0fe5f2db9 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs @@ -182,7 +182,7 @@ public AcheloiosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12019)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12019)] public class Acheloios : BossModule { public Acheloios(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs index 9538e44c0a..a50b15551f 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs @@ -74,7 +74,7 @@ public LeonStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 11997)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 11997)] public class Leon : BossModule { public Leon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs index 160cdfb7fc..fbc35ad912 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs @@ -84,7 +84,7 @@ public MandragorasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12022)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12022)] public class Mandragoras : BossModule { public Mandragoras(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs index ecbd04234a..cc37fe1dfd 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs @@ -107,7 +107,7 @@ public MegakanthaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12009)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12009)] public class Megakantha : BossModule { public Megakantha(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs index 8d39af84fd..6a29df3051 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs @@ -139,7 +139,7 @@ public MeganereisStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12014)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12014)] public class Meganereis : BossModule { public Meganereis(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs index ff984392dd..1f057ca788 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs @@ -120,7 +120,7 @@ public PithekosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12001)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12001)] public class Pithekos : BossModule { public Pithekos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs index 1da52fc432..44a7bbf2d7 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs @@ -75,7 +75,7 @@ public SatyrosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12003)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12003)] public class Satyros : BossModule { public Satyros(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs index 6c114f4ed8..0b8e944953 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs @@ -133,7 +133,7 @@ public SphinxStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12016)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12016)] public class Sphinx : BossModule { public Sphinx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs index aa87df7880..c477020324 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs @@ -139,7 +139,7 @@ public StyphnolobionStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12012)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12012)] public class Styphnolobion : BossModule { public Styphnolobion(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs index 4c734b554d..dab238a3a5 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs @@ -107,7 +107,7 @@ public TigrisStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 11999)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 11999)] public class Tigris : BossModule { public Tigris(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs index 9cf4cb5368..684a094414 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs @@ -54,7 +54,7 @@ public TritonStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12006)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12006)] public class Triton : BossModule { public Triton(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs index c6f894e921..3fb03fbf6a 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs @@ -66,7 +66,7 @@ public LampasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12021)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12021)] public class Lampas : BossModule { public Lampas(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs index 88c7933c96..c2bb93c59f 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs @@ -149,7 +149,7 @@ public LyssaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12024)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12024)] public class Lyssa : BossModule { public Lyssa(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs index 4c2d898c9a..771a981d2f 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs @@ -143,7 +143,7 @@ public NarkissosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12029)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12029)] public class Narkissos : BossModule { public Narkissos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs index 13abb237fe..e0c63e1c75 100644 --- a/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs @@ -86,7 +86,7 @@ public T02HydaelynStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 790, NameID = 10453)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 790, NameID = 10453)] public class T02Hydaelyn : BossModule { public T02Hydaelyn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs index 27fb4032c6..b44d2ed5ba 100644 --- a/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs @@ -97,7 +97,7 @@ public T08AsuraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 944, NameID = 12351)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 944, NameID = 12351)] public class T08Asura : BossModule { public T08Asura(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs b/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs index 1df106f6ae..21f7da2a15 100644 --- a/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs +++ b/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs @@ -15,7 +15,7 @@ class HoliestHallowing : Components.CastHint public HoliestHallowing() : base(ActionID.MakeSpell(AID.HoliestHallowing), "Interrupt!") { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SerAdelphel, CFCID = 788)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SerAdelphel, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 788)] public class DSW1 : BossModule { private Actor? _grinnaux; diff --git a/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs b/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs index 0fcac4f89d..968877cc64 100644 --- a/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs +++ b/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs @@ -75,7 +75,7 @@ class P7AlternativeEnd : Components.CastCounter public P7AlternativeEnd() : base(ActionID.MakeSpell(AID.AlternativeEnd)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP2, CFCID = 788)] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP2, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 788)] public class DSW2 : BossModule { public static ArenaBoundsCircle BoundsCircle = new ArenaBoundsCircle(new (100, 100), 21); // p2, intermission diff --git a/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs b/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs index 77019c6b9f..513078e4fc 100644 --- a/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs +++ b/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs @@ -20,7 +20,7 @@ class P5BlindFaith : Components.CastHint public P5BlindFaith() : base(ActionID.MakeSpell(AID.BlindFaithSuccess), "Intermission") { } } -[ModuleInfo(CFCID = 908)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 908)] public class TOP : BossModule { private Actor? _opticalUnit; diff --git a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs index 22406a1dad..189f150de5 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs @@ -33,7 +33,7 @@ public Un1UltimaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 825, NameID = 3632, DisplayName = "Ultima's Bane (Unreal)")] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 825, NameID = 2137)] public class Un1Ultima : BossModule { public Un1Ultima(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs index 47b5677dff..337a923633 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs @@ -56,7 +56,7 @@ class P3PillarOfSeverity : Components.CastCounter public P3PillarOfSeverity() : base(ActionID.MakeSpell(AID.PillarOfSeverityAOE)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 875, NameID = 4776, DisplayName = "Containment Bay S1T7 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 875, NameID = 4776)] public class Un2Sephirot : BossModule { public Actor? BossP1() => PrimaryActor.IsDestroyed ? null : PrimaryActor; diff --git a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs index 9d38341bb8..360dd64ded 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs @@ -72,7 +72,7 @@ public class Un3SophiaConfig : CooldownPlanningConfigNode public Un3SophiaConfig() : base(90) { } } -[ModuleInfo(CFCID = 926, NameID = 5199, DisplayName = "Containment Bay P1T6 (Unreal)")] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 926, NameID = 5199)] public class Un3Sophia : BossModule { public Un3Sophia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 0), 20, 15)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs index c09df1ec0d..85f4c18ed2 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs @@ -66,7 +66,7 @@ public class Un4ZurvanConfig : CooldownPlanningConfigNode public Un4ZurvanConfig() : base(90) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 951, NameID = 5567, DisplayName = "Containment Bay Z1T9 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 951, NameID = 5567)] public class Un4Zurvan : BossModule { private Actor? _bossP2; diff --git a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs index c0d2904606..961d916c0c 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs @@ -72,7 +72,7 @@ public class Un5ThordanConfig : CooldownPlanningConfigNode public Un5ThordanConfig() : base(90) { } } -[ModuleInfo(CFCID = 963, NameID = 3632)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 963, NameID = 3632)] public class Un5Thordan : BossModule { public Un5Thordan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs index 85f332b999..e45019d2fc 100644 --- a/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs +++ b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs @@ -142,7 +142,7 @@ public TheSliceIsRightStates(BossModule module) : base(module) } } -[ModuleInfo(NameID = 9066)] //GoldSaucerTextData ID 181 +[ModuleInfo(GroupType = BossModuleInfo.GroupType.GoldSaucer, GroupID = 181, NameID = 9066)] public class TheSliceIsRight : BossModule { public TheSliceIsRight(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(70.5f, -36), 15)) { } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs index 5b4d156cca..7af89472b2 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs @@ -39,7 +39,7 @@ public Stage01States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 610, NameID = 8077)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 610, NameID = 8077)] public class Stage01 : BossModule { public Stage01(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs index b9a6fec117..104a146cbf 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs @@ -49,7 +49,7 @@ public Stage02Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 612, NameID = 8078)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8078)] public class Stage02Act1 : BossModule { public Stage02Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs index dafc8feded..cd4cf8a546 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs @@ -41,7 +41,7 @@ public Stage02Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 612, NameID = 8079)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8079)] public class Stage02Act2(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { protected override bool CheckPull() { return PrimaryActor.IsTargetable && PrimaryActor.InCombat || Enemies(OID.Flan).Any(e => e.InCombat) || Enemies(OID.Licorice).Any(e => e.InCombat); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs index bf758b8b20..587cba2f04 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs @@ -59,7 +59,7 @@ public Stage03States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 613, NameID = 8084)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 613, NameID = 8084)] public class Stage03 : BossModule { public Stage03(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs index 7069842b02..72b73861d7 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs @@ -42,7 +42,7 @@ public Stage04Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 614, NameID = 8086)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8086)] public class Stage04Act1 : BossModule { public Stage04Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs index 1ff0cef7ef..4b49ea254e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs @@ -61,7 +61,7 @@ public Stage04Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 614, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8087)] public class Stage04Act2 : BossModule { public Stage04Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs index 1c30238b34..edab82b43e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs @@ -23,7 +23,7 @@ public Stage05States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 615, NameID = 8089)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 615, NameID = 8089)] public class Stage05 : BossModule { public Stage05(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs index 0fbbbbc632..93918597f4 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs @@ -114,7 +114,7 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 616, NameID = 8090)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8090)] public class Stage06Act2 : BossModule { public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs index fda1d46c0c..10b074cce1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs @@ -141,7 +141,7 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 616, NameID = 8092)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8092)] public class Stage06Act2 : BossModule { public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs index 6c064e274b..425a75bc66 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs @@ -59,7 +59,7 @@ public Stage07Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] public class Stage07Act1 : BossModule { public Stage07Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs index def5019d7b..2de0ecd6e5 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs @@ -52,7 +52,7 @@ public Stage07Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] public class Stage07Act2 : BossModule { public Stage07Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs index d4083bc666..8a39071158 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs @@ -57,7 +57,7 @@ public Stage07Act3States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 617, NameID = 8095)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8095)] public class Stage07Act3 : BossModule { public Stage07Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs index 6b37f26712..4a3b573752 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs @@ -80,7 +80,7 @@ public Stage08Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 618, NameID = 8140)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8140)] public class Stage08Act1 : BossModule { public Stage08Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs index e682721fe9..582dd3e375 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs @@ -76,7 +76,7 @@ public Stage08Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 618, NameID = 8098)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8098)] public class Stage08Act2 : BossModule { public Stage08Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs index d58960d70a..1948dd2759 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs @@ -61,7 +61,7 @@ public Stage09States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 619, NameID = 8099)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 619, NameID = 8099)] public class Stage09 : BossModule { public Stage09(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs index 9c8853aaf3..14f0efd905 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs @@ -97,7 +97,7 @@ public Stage10States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 620, NameID = 8100)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 620, NameID = 8100)] public class Stage10 : BossModule { public Stage10(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs index 132668b040..cb5a2ef2be 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs @@ -29,7 +29,7 @@ public Stage11Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] public class Stage11Act1 : BossModule { public Stage11Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs index 10b77406a9..c8711582d3 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs @@ -29,7 +29,7 @@ public Stage11Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] public class Stage11Act2 : BossModule { public Stage11Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs index 46a9ba0155..f87c29fbd3 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs @@ -28,7 +28,7 @@ public Stage12Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 622, NameID = 8103)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8103)] public class Stage12Act1 : BossModule { public Stage12Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs index 8b0438d3ba..4c193e075b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs @@ -57,7 +57,7 @@ public Stage12Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 622, NameID = 8102)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8102)] public class Stage12Act2 : BossModule { public Stage12Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs index a7a28edb40..6cb3476835 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs @@ -37,7 +37,7 @@ public Stage13Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 623, NameID = 8104)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8104)] public class Stage13Act1 : BossModule { public Stage13Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs index 6ac1953ee4..79d1e7ff55 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs @@ -96,7 +96,7 @@ public Stage13Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 623, NameID = 8107)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8107)] public class Stage13Act2 : BossModule { public Stage13Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs index 1998237dd3..e9f975ab1e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs @@ -59,7 +59,7 @@ public Stage14Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] public class Stage14Act1 : BossModule { public Stage14Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs index b467cf61f4..0bd5b91f64 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs @@ -59,7 +59,7 @@ public Stage14Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] public class Stage14Act2 : BossModule { public Stage14Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs index 2b40a458bc..5a815875a8 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs @@ -187,7 +187,7 @@ public Stage15States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 625, NameID = 8109)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 625, NameID = 8109)] public class Stage15 : BossModule { public Stage15(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs index fd4ceac65f..d1e00459d9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs @@ -29,7 +29,7 @@ public Stage16Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 626, NameID = 8112)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8112)] public class Stage16Act1 : BossModule { public Stage16Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs index 60a1e4fab5..705842bfc1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs @@ -112,7 +112,7 @@ public Stage16Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 626, NameID = 8113)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8113)] public class Stage16Act2 : BossModule { public Stage16Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs index da57544b38..6d4090cb8e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs @@ -62,7 +62,7 @@ public Stage17Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 627, NameID = 8115)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8115)] public class Stage17Act1 : BossModule { public Stage17Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs index 080c50416f..5f9fbb76dc 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs @@ -85,7 +85,7 @@ public Stage17Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 627, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8087)] public class Stage17Act2 : BossModule { public Stage17Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs index ece756817f..11ca6d9395 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs @@ -100,7 +100,7 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 628, NameID = 8116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] public class Stage18Act2 : BossModule { public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs index ef69290d82..68ea10947d 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs @@ -100,7 +100,7 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 628, NameID = 8116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] public class Stage18Act2 : BossModule { public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs index bf2a11366a..5127a100cd 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs @@ -96,7 +96,7 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 629, NameID = 8117)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] public class Stage19Act1 : BossModule { public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs index 226de6394a..173a1ef95e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs @@ -143,7 +143,7 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 629, NameID = 8117)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] public class Stage19Act1 : BossModule { public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs index 37babb7c47..db12244152 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs @@ -57,7 +57,7 @@ public Stage20Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] public class Stage20Act1 : BossModule { public Stage20Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs index e4e03b02cb..f49c60bcc1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs @@ -64,7 +64,7 @@ public Stage20Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 630, NameID = 7111)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 7111)] public class Stage20Act2 : BossModule { public Stage20Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs index c52998d086..0f2eced428 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs @@ -97,7 +97,7 @@ public Stage20Act3States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] public class Stage20Act3 : BossModule { public Stage20Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs index 9ddd76cd40..9ba90d53ee 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs @@ -52,7 +52,7 @@ public Stage21Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 631, NameID = 8120)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8120)] public class Stage21Act1 : BossModule { public Stage21Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs index ae31fc9fae..7bc9bfeaf6 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs @@ -83,7 +83,7 @@ public Stage21Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 631, NameID = 8121)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8121)] public class Stage21Act2 : BossModule { public Stage21Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs index 9a34770f95..4bfe570e36 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs @@ -39,7 +39,7 @@ public Stage22Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 632, NameID = 8122)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8122)] public class Stage22Act1 : BossModule { public Stage22Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs index dee8fd2053..d11c973042 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs @@ -81,7 +81,7 @@ public Stage22Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 632, NameID = 8123)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8123)] public class Stage22Act2 : BossModule { public Stage22Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs index b9183de13b..b34caa799d 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs @@ -67,7 +67,7 @@ public Stage23States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 633, NameID = 8124)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 633, NameID = 8124)] public class Stage23 : BossModule { public Stage23(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs index 9e6f6d82a4..c37f23bc92 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs @@ -64,7 +64,7 @@ public Stage24Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 634, NameID = 8127)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8127)] public class Stage24Act1 : BossModule { public Stage24Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs index c6d2a12960..98a1d9a434 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs @@ -85,7 +85,7 @@ public Stage24Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 634, NameID = 8128)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8128)] public class Stage24Act2 : BossModule { public Stage24Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs index bd416bdd8c..62e5743ac1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs @@ -116,7 +116,7 @@ public Stage24Act3States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 634, NameID = 8125)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8125)] public class Stage24Act3 : BossModule { public Stage24Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs index c93e15ed52..96367b3c02 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs @@ -107,7 +107,7 @@ public Stage25Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] public class Stage25Act1 : BossModule { public Stage25Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs index 22fce921f1..1db7625b51 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs @@ -86,7 +86,7 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] public class Stage25Act2 : BossModule { public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs index 35db9d54fb..31a0b1cf15 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs @@ -161,7 +161,7 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] public class Stage25Act2 : BossModule { public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs index 09b3045e48..8f43ba8e66 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs @@ -77,7 +77,7 @@ public Stage26Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 695, NameID = 9230)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9230)] public class Stage26Act1 : BossModule { public Stage26Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs index a58ac3e9ee..1c7a908609 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs @@ -129,7 +129,7 @@ public Stage26Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 695, NameID = 9231)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9231)] public class Stage26Act2 : BossModule { public Stage26Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs index 51a8690089..a33f7dcf8b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs @@ -179,7 +179,7 @@ public Stage27States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 696, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 696, NameID = 3046)] public class Stage27 : BossModule { public Stage27(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs index 3e7532349b..e5f9feb630 100644 --- a/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs +++ b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs @@ -137,7 +137,7 @@ public GoblinMercenaryStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 599, NameID = 7906)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 599, NameID = 7906)] public class GoblinMercenary : BossModule { public GoblinMercenary(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 0)) { } diff --git a/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs b/BossMod/Modules/Global/Quest/FF15Collab/Garuda.cs similarity index 98% rename from BossMod/Modules/Global/Event/FF15Collab/Garuda.cs rename to BossMod/Modules/Global/Quest/FF15Collab/Garuda.cs index 84e7f19a34..469b8ff72a 100644 --- a/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs +++ b/BossMod/Modules/Global/Quest/FF15Collab/Garuda.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Global.Event.FF15Collab.Garuda; +namespace BossMod.Global.Quest.FF15Collab.Garuda; public enum OID : uint { @@ -209,7 +209,7 @@ public GarudaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 646, NameID = 7893)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Quest, GroupID = 68696, NameID = 7893)] // also: CFC 646 public class Garuda : BossModule { public Garuda(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 22)) { } diff --git a/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs b/BossMod/Modules/Global/Quest/FF15Collab/Iseultalon.cs similarity index 97% rename from BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs rename to BossMod/Modules/Global/Quest/FF15Collab/Iseultalon.cs index 47d0be139f..05f1e05e29 100644 --- a/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs +++ b/BossMod/Modules/Global/Quest/FF15Collab/Iseultalon.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Global.Event.FF15Collab.Iseultalon; +namespace BossMod.Global.Quest.FF15Collab.Iseultalon; public enum OID : uint { @@ -154,7 +154,7 @@ public IseultalonStates(BossModule module) : base(module) } } -[ModuleInfo(QuestID = 68695, NameID = 7895)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Quest, GroupID = 68695, NameID = 7895)] public class Iseultalon : BossModule { public Iseultalon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-289, -30), 25)) { } //note the arena is actually a 6 sided polygon diff --git a/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs b/BossMod/Modules/Global/Quest/FF15Collab/MA-x.cs similarity index 92% rename from BossMod/Modules/Global/Event/FF15Collab/MA-x.cs rename to BossMod/Modules/Global/Quest/FF15Collab/MA-x.cs index 47bd078d49..5d922736ee 100644 --- a/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs +++ b/BossMod/Modules/Global/Quest/FF15Collab/MA-x.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Global.Event.FF15Collab.MAx; +namespace BossMod.Global.Quest.FF15Collab.MAx; public enum OID : uint { @@ -47,7 +47,7 @@ public MAxStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1409, NameID = 7898)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Quest, GroupID = 68694, NameID = 7898)] // also: fate 1409 public class MAx : BossModule { public MAx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(295, -22), 25)) { } diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index efb1b85484..67efa92b57 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -1,10 +1,9 @@ using Dalamud.Utility; using Lumina.Excel; -using Lumina; using Lumina.Excel.GeneratedSheets; using Lumina.Text; +using System.Globalization; using System.Reflection; -using System.Text.RegularExpressions; namespace BossMod; @@ -24,50 +23,12 @@ public class Info public BossModuleInfo.Expansion Expansion; public BossModuleInfo.Category Category; - public uint CFCID; - public SeString? DisplayName; - public SeString? ForayName; - public SeString? FateName; - public SeString? BossName; - public string HuntRank = ""; - public int CarnivaleStage; - public uint QuestID; - - public bool IsUncatalogued; - - public enum HuntRanks : byte - { - None = 0, - B = 1, - A = 2, - S = 3, - } + public BossModuleInfo.GroupType GroupType; + public uint GroupID; + public uint NameID; public bool CooldownPlanningSupported => ConfigType?.IsSubclassOf(typeof(CooldownPlanningConfigNode)) ?? false; - public bool IsFate() => !FateName!.RawString.IsNullOrEmpty(); - public bool IsHunt() => !HuntRank.IsNullOrEmpty(); - public bool IsCarnivale() => CarnivaleStage != 0; - public bool IsCriticalEngagement() => !ForayName!.RawString.IsNullOrEmpty(); - - // AFAIK, unreals are the only piece of content that regularly get removed. Their CFCID stays but the properties are all reverted to default. - public bool IsRemovedContent() - { - var cfcRow = _cfcSheet.GetRow(CFCID); - - if (cfcRow == null) - return true; - - foreach (var prop in cfcRow.GetType().GetProperties()) - { - var propValue = prop.GetValue(cfcRow); - if (propValue != null && !propValue.Equals(default(PropertyInfo))) - return false; // Property has a non-default value, module is not removed content - } - - return true; // All properties have default values, module is considered removed content - } - public static Info? Build(Type module) { var infoAttr = module.GetCustomAttribute(); @@ -158,89 +119,12 @@ public bool IsRemovedContent() category = BossModuleInfo.Category.Uncategorized; } - - uint nameID = infoAttr?.NameID ?? 0; - uint nmID = infoAttr?.NotoriousMonsterID ?? 0; - uint fateID = infoAttr?.FateID ?? 0; - uint dynamicEventID = infoAttr?.DynamicEventID ?? 0; - uint cfcID = infoAttr?.CFCID ?? 0; - uint questID = infoAttr?.QuestID ?? 0; - SeString displayName = new SeString(infoAttr?.DisplayName ?? string.Empty); - - SeString _displayName = displayName; - - bool uncatalogued = (cfcID == 0 && nameID == 0 && nmID == 0 && fateID == 0 && dynamicEventID == 0 && questID == 0) || (cfcID != 0 && _cfcSheet.GetRow(cfcID)!.ShortCode.RawString.IsNullOrEmpty()); - if (uncatalogued) - Service.Log($"[{nameof(ModuleRegistry)}] Module {module.Name} is uncatalogued. It does not provide sufficient {nameof(Info)} tags."); - - string huntRank = ""; - int carnivaleStage = 0; - SeString fateName = new(); - SeString forayName = new(); - SeString bossName = new(); - - if (cfcID != 0) - { - var cfcRow = _cfcSheet.GetRow(cfcID)!; - //contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); - if ((uint)expansion != cfcRow.TerritoryType.Value?.ExVersion.Row) - Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {cfcRow.TerritoryType.Value?.ExVersion.Row}"); - displayName = cfcRow.Name; - - if (cfcID is 735 or 760 or 761 or 778) // bozja et al - { - //contentType = _playStyleSheet!.GetRow(6)!.Name; - //contentIcon = (uint)_playStyleSheet!.GetRow(6)!.Icon; - } - else if (cfcRow.ShortCode.RawString.StartsWith("aoz")) // masked carnivale - { - //contentType = _playStyleSheet!.GetRow(8)!.Name; - //contentIcon = (uint)_playStyleSheet!.GetRow(8)!.Icon; - carnivaleStage = int.Parse(Regex.Replace(cfcRow.ShortCode.RawString, @"\D", "").TrimStart('0')); - //displayName = new SeString($"{displayName} (Stage {carnivaleStage})"); - } - else - { - //contentIcon = cfcRow.ContentType?.Value?.Icon ?? 0; - } - } - - if (nameID != 0) - { - bossName = _npcNamesSheet.GetRow(nameID)!.Singular; - } - - if (nmID != 0) - { - displayName = bossName = _nmSheet.GetRow(nmID)!.BNpcName.Value?.Singular ?? new SeString(); - huntRank = Enum.Parse(_nmSheet.GetRow(nmID)!.Rank.ToString()).ToString(); - //displayName = new SeString($"{displayName} ({huntRank} Rank)"); - //contentType = _playStyleSheet.GetRow(10)!.Name; - //contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; - } - - // ideally you could parse the location field to get the exversion in the fate sheet but that requires parsing lgb files - if (fateID != 0) // needs exversion - { - //contentType = _contentTypeSheet.GetRow(8)!.Name; - //contentIcon = _contentTypeSheet.GetRow(8)!.Icon; - displayName = _fateSheet.GetRow(fateID)!.Name; - } - - if (dynamicEventID != 0) // needs exversion? - { - //contentType = _playStyleSheet.GetRow(6)!.Name; - //contentIcon = (uint)_playStyleSheet.GetRow(6)!.Icon; - displayName = forayName = _dynamicEventSheet.GetRow(dynamicEventID)!.Name; - } - - if (_questSheet.GetRow(questID) is var quest && quest != null) + var groupType = infoAttr?.GroupType ?? BossModuleInfo.GroupType.None; + var groupID = infoAttr?.GroupID ?? 0; + var nameID = infoAttr?.NameID ?? 0; + if (groupType == BossModuleInfo.GroupType.None && groupID == 0) { - //contentType = _contentTypeSheet.GetRow(7)!.Name; - //contentIcon = _contentTypeSheet.GetRow(7)!.Icon; - displayName = quest.Name; - if ((uint)expansion != quest.Expansion.Row) - Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {quest.Expansion.Row}"); + Service.Log($"[ModuleRegistry] Module {module.Name} does not have group type/id assignments."); } return new Info(module, statesType) @@ -255,16 +139,9 @@ public bool IsRemovedContent() Expansion = expansion, Category = category, - CFCID = cfcID, - DisplayName = infoAttr?.DisplayName != null ? _displayName : displayName, - BossName = bossName, - FateName = fateName, - ForayName = forayName, - HuntRank = huntRank, - CarnivaleStage = carnivaleStage, - QuestID = questID, - - IsUncatalogued = uncatalogued, + GroupType = groupType, + GroupID = groupID, + NameID = nameID, }; } @@ -277,54 +154,8 @@ private Info(Type moduleType, Type statesType) private static Dictionary _modules = new(); // [primary-actor-oid] = module type - private static readonly Dictionary _notoriousMonsterToTerritory = new(); - - private static readonly ExcelSheet _playStyleSheet; - private static readonly ExcelSheet _cfcSheet; - private static readonly ExcelSheet _dynamicEventSheet; - private static readonly ExcelSheet _contentTypeSheet; - private static readonly ExcelSheet _territorySheet; - private static readonly ExcelSheet _nmSheet; - private static readonly ExcelSheet _npcNamesSheet; - private static readonly ExcelSheet _questSheet; - private static readonly ExcelSheet _fateSheet; - - private static readonly List _catalogued; - private static readonly List _uncatalogued; - static ModuleRegistry() { - var territorySheet = Service.LuminaGameData?.GetExcelSheet(); - var nmtSheet = Service.LuminaGameData?.GetExcelSheet(); - if (territorySheet != null) - { - foreach (var terr in territorySheet.Where(terr => terr.Unknown42 != 0)) - { - var nmt = nmtSheet?.GetRowParser(terr.Unknown42); - if (nmt != null) - { - for (int i = 0; i < 10; ++i) - { - var nmId = nmt.ReadColumn(i); - if (nmId != 0) - { - _notoriousMonsterToTerritory.Add(nmId, terr); - } - } - } - } - } - - _playStyleSheet = Service.LuminaGameData!.GetExcelSheet()!; - _cfcSheet = Service.LuminaGameData!.GetExcelSheet()!; - _dynamicEventSheet = Service.LuminaGameData!.GetExcelSheet()!; - _contentTypeSheet = Service.LuminaGameData!.GetExcelSheet()!; - _territorySheet = territorySheet!; - _nmSheet = Service.LuminaGameData!.GetExcelSheet()!; - _npcNamesSheet = Service.LuminaGameData!.GetExcelSheet()!; - _questSheet = Service.LuminaGameData!.GetExcelSheet()!; - _fateSheet = Service.LuminaGameData!.GetExcelSheet()!; - foreach (var t in Utils.GetDerivedTypes(Assembly.GetExecutingAssembly()).Where(t => !t.IsAbstract && t != typeof(DemoModule))) { var info = Info.Build(t); @@ -335,20 +166,9 @@ static ModuleRegistry() throw new Exception($"Two boss modules have same primary actor OID: {t.Name} and {_modules[info.PrimaryActorOID].ModuleType.Name}"); _modules[info.PrimaryActorOID] = info; } - - _catalogued = _modules.Values - .Where(x => !x.IsUncatalogued) - .GroupBy(x => new { x.Expansion, x.Category }) - .OrderBy(g => g.Key.Expansion) - .SelectMany(group => group.OrderBy(x => _cfcSheet.GetRow(x.CFCID)?.SortKey)) - .ToList(); - _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.Expansion == BossModuleInfo.Expansion.Count).Select(x => x).ToList(); } public static IReadOnlyDictionary RegisteredModules => _modules; - public static IReadOnlyList CataloguedModules => _catalogued; - public static IReadOnlyList UncataloguedModules => _uncatalogued; - public static Info? FindByOID(uint oid) => _modules.GetValueOrDefault(oid); diff --git a/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs b/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs index a4543745a2..496a6a3c88 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs @@ -32,7 +32,7 @@ public D010SwitchStates(BossModule module) : base(module) } // the switch spawns chopper, so maybe we can use that as a nameID -[ModuleInfo(PrimaryActorOID = (uint)OID.Blue, CFCID = 4, NameID = 1204)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Blue, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 4, NameID = 1204)] public class D010Switch : BossModule { public D010Switch(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(primary.Position, 20)) diff --git a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs index 3a740e3f78..83a8f6ae43 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs @@ -49,7 +49,7 @@ public D031KottosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 3, NameID = 548)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 3, NameID = 548)] public class D031Kottos : BossModule { public D031Kottos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(43, -89.56f), 15)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs index 8c139f68fd..a8fae4ed84 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs @@ -42,7 +42,7 @@ public D032IchorousIreStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 3, NameID = 554)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 3, NameID = 554)] public class D032IchorousIre : BossModule { public D032IchorousIre(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(26.97f, 113.97f), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs index 3957cfef7e..6ebaa88775 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs @@ -54,7 +54,7 @@ public D033GygesStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 3, NameID = 101)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 3, NameID = 101)] public class D033Gyges : BossModule { public D033Gyges(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-100.42f, 6.67f), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs b/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs index 3b72d1c9c1..df96bbc86c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs @@ -58,7 +58,7 @@ public D053GraffiasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 1, NameID = 444)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 1, NameID = 444)] public class D053Graffias : BossModule { public D053Graffias(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(215, -145), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs index 8e833a478e..9b3999904f 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs @@ -39,7 +39,7 @@ public D061ManorClavigerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 6, NameID = 423)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 6, NameID = 423)] public class D061ManorClaviger : BossModule { public D061ManorClaviger(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(2.5f, 0), 16)) { } // TODO: really a rect, x=[-25, +20], y=[-16, +16] diff --git a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs index 50b5833212..91dde10eb9 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs @@ -56,7 +56,7 @@ public D063LadyAmandineStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 6, NameID = 422)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 6, NameID = 422)] public class D063LadyAmandine : BossModule { public D063LadyAmandine(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 4), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs b/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs index 22e8c9aa7a..1fe4fdd5cf 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs @@ -48,7 +48,7 @@ public D074AiatarStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 8, NameID = 1279)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 8, NameID = 1279)] public class D074Aiatar : BossModule { public D074Aiatar(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-25, -235), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs index 6b11c75e45..96c3ff35e2 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs @@ -106,7 +106,7 @@ public D081TeratotaurStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 9, NameID = 1567)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 9, NameID = 1567)] public class D081Teratotaur : BossModule { public D081Teratotaur(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-70, -60), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs index a34498cb65..be70143baa 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs @@ -42,7 +42,7 @@ public D082TempleGuardianStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 9, NameID = 1569)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 9, NameID = 1569)] public class D082TempleGuardian : BossModule { public D082TempleGuardian(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(50, -10), 15)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs index c4082e4f64..fc6356ae6c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs @@ -40,7 +40,7 @@ public D083AdjudicatorStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 9, NameID = 1570)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 9, NameID = 1570)] public class D083Adjudicator : BossModule { public D083Adjudicator(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(238, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs index daeed88ce8..51a281343f 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs @@ -47,7 +47,7 @@ public D092GiantTunnelWormStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 12, NameID = 1589)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 12, NameID = 1589)] public class D092GiantTunnelWorm : BossModule { public D092GiantTunnelWorm(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-140, 150), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs index 44e4b9a131..55ceef42e0 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs @@ -84,7 +84,7 @@ public D093ChimeraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 12, NameID = 1590)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 12, NameID = 1590)] public class D093Chimera : BossModule { public D093Chimera(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-170, -200), 30)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs index bb9210dfb7..bf28e9d373 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs @@ -44,7 +44,7 @@ public D101ChudoYudoStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 11, NameID = 1677)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 11, NameID = 1677)] public class D101ChudoYudo : BossModule { public D101ChudoYudo(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 115), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs index ac3fb79757..06cb05bb5c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs @@ -84,7 +84,7 @@ public D102KoshcheiStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 11, NameID = 1678)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 11, NameID = 1678)] public class D102Koshchei : BossModule { public D102Koshchei(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(40, -80), 10)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs index 27009629bc..be49c9c6b0 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs @@ -70,7 +70,7 @@ public D103IsgebindStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 11, NameID = 1680)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 11, NameID = 1680)] public class D103Isgebind : BossModule { public D103Isgebind(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, -248), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs index f53d2dbf48..58dd5dccf6 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs @@ -72,7 +72,7 @@ public D111AllSeeingEyeStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 13, NameID = 1397)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 13, NameID = 1397)] public class D111AllSeeingEye : BossModule { public D111AllSeeingEye(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(40, 70), 30)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs index 62903814ca..1b64c46d28 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs @@ -59,7 +59,7 @@ public D113BatraalStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 13, NameID = 1396)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 13, NameID = 1396)] public class D113Batraal : BossModule { public D113Batraal(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(85, -180), 25)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs index e23cc05681..0a5ab1b226 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs @@ -43,7 +43,7 @@ public D121LocksmithStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 5, NameID = 1534)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 5, NameID = 1534)] public class D121Locksmith : BossModule { public D121Locksmith(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(35, 0), 15, 25)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs index e291e679f1..dbb2a53a47 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs @@ -54,7 +54,7 @@ public D122CoincounterStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 5, NameID = 1533)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 5, NameID = 1533)] public class D122Coincounter : BossModule { public D122Coincounter(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-150, -150), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs index 41468d1c91..d8544a4c66 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs @@ -47,7 +47,7 @@ public D123MisersMistressStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 5, NameID = 1532)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 5, NameID = 1532)] public class D123MisersMistress : BossModule { public D123MisersMistress(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-400, -130), 25)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs index dbd2479ddc..615bc87db0 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs @@ -50,7 +50,7 @@ public D131BlackEftStates(BossModule module) : base(module) // first wave = 3x signifier + 3x laquearius // second wave = 2x colossus // third wave = 2x colossus + 2x signifier + 2x laquearius -[ModuleInfo(CFCID = 15, NameID = 557)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 15, NameID = 557)] public class D131BlackEft : BossModule { public D131BlackEft(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(10, -40), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs index 2239dd705f..e7ec26e9be 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs @@ -64,7 +64,7 @@ public D132MagitekVanguardF1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 15, NameID = 2116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 15, NameID = 2116)] public class D132MagitekVanguardF1 : BossModule { public D132MagitekVanguardF1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-13, 31), 20, 20, 20.Degrees())) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs index 99f99ea46b..65cea00737 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs @@ -230,7 +230,7 @@ public D133LiviaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 15, NameID = 2118)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 15, NameID = 2118)] public class D133Livia : BossModule { public D133Livia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-98, -33), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs index 3f4741ee97..856ec11888 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs @@ -57,7 +57,7 @@ public D141ColossusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 16, NameID = 2134)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 16, NameID = 2134)] public class D141Colossus : BossModule { public D141Colossus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(192, 0), 15)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs index f57ad8e551..f158f77505 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs @@ -71,7 +71,7 @@ public D142NeroStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 16, NameID = 2135)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 16, NameID = 2135)] public class D142Nero : BossModule { public D142Nero(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-164, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs index 51082ec72c..2658d7804e 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs @@ -110,7 +110,7 @@ public D143GaiusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 16, NameID = 2136)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 16, NameID = 2136)] public class D143Gaius : BossModule { public D143Gaius(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-562, 220), 15, 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs index 27d2b95f0d..251f45e311 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs @@ -81,7 +81,7 @@ public D151KeeperOfHalidomStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 10, NameID = 1548)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 10, NameID = 1548)] public class D151KeeperOfHalidom : BossModule { public D151KeeperOfHalidom(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(125, 108), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs index 0a5d961c57..efdd07d913 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs @@ -64,7 +64,7 @@ public D152GiantBavaroisStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 10, NameID = 1549)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 10, NameID = 1549)] public class D152GiantBavarois : BossModule { public D152GiantBavarois(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(43, -232), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs index 2f104d3c02..4c03e10d30 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs @@ -32,7 +32,7 @@ public D153TonberryKingStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 10, NameID = 1547)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 10, NameID = 1547)] public class D153TonberryKing : BossModule { public D153TonberryKing(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(73, -435), 30)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs index 0403f14937..3850a2f305 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs @@ -84,7 +84,7 @@ public D161PsycheflayerStates(D161Psycheflayer module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 14, NameID = 1689)] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 14, NameID = 1689)] public class D161Psycheflayer : BossModule { private Actor? _bossP2; diff --git a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs index d86013299e..ed85d5bb5c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs @@ -67,7 +67,7 @@ public D162DemonWallStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 14, NameID = 1694)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 14, NameID = 1694)] public class D162DemonWall : BossModule { public D162DemonWall(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(200, -131), 10, 21)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs index e1ee6a4da2..29ec4fba05 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs @@ -121,7 +121,7 @@ public D163AnantabogaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 14, NameID = 1696)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 14, NameID = 1696)] public class D163Anantaboga : BossModule { public D163Anantaboga(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(10, 0), 25)) { } diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs b/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs index 315f3e9c89..d5ae75ab11 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs @@ -66,7 +66,7 @@ public Ex1UltimaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 68, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 68, NameID = 2137)] public class Ex1Ultima : BossModule { public Ex1Ultima(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs b/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs index b7aad83941..bdd0d97cf5 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs @@ -50,7 +50,7 @@ class GreatWhirlwind : Components.LocationTargetedAOEs public GreatWhirlwind() : base(ActionID.MakeSpell(AID.GreatWhirlwind), 8) { } } -[ModuleInfo(CFCID = 65, NameID = 1644)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 65, NameID = 1644)] public class Ex2Garuda : BossModule { public IReadOnlyList Monoliths; diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs b/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs index 673c9f91d1..418826c3cb 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs @@ -16,7 +16,7 @@ public class Ex3TitanConfig : CooldownPlanningConfigNode public Ex3TitanConfig() : base(50) { } } -[ModuleInfo(CFCID = 64, NameID = 1801)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 64, NameID = 1801)] public class Ex3Titan : BossModule { private IReadOnlyList _heart; diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs b/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs index 0b6dbc69ac..bd5b398693 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs @@ -18,7 +18,7 @@ class CrimsonCyclone : Components.SelfTargetedAOEs public CrimsonCyclone() : base(ActionID.MakeSpell(AID.CrimsonCyclone), new AOEShapeRect(49, 9)) { } } -[ModuleInfo(CFCID = 63, NameID = 1185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 63, NameID = 1185)] public class Ex4Ifrit : BossModule { public IReadOnlyList SmallNails; diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs index b30786e759..0465adcedd 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs @@ -66,7 +66,7 @@ public T01ADSStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 93, NameID = 1459)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1459)] public class T01ADS : BossModule { public T01ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-3, 27), 7, 28)) { } diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs index 937ff4cf37..990bc044d4 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs @@ -119,7 +119,7 @@ public class T01CaduceusConfig : CooldownPlanningConfigNode public T01CaduceusConfig() : base(50) { } } -[ModuleInfo(CFCID = 93, NameID = 1466)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1466)] public class T01Caduceus : BossModule { public T01Caduceus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-26, -407), 35, 43)) diff --git a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs index eab57078a3..b9f260bcaf 100644 --- a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs @@ -158,7 +158,7 @@ public class T02ADSConfig : CooldownPlanningConfigNode public T02ADSConfig() : base(50) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, CFCID = 94, NameID = 1459)] +[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1459)] public class T02ADS : BossModule { public T02ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 77), 18, 13)) { } @@ -177,7 +177,7 @@ public T02QuarantineNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, CFCID = 94, NameID = 1468)] +[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1468)] public class T02QuarantineNode : BossModule { public T02QuarantineNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 112), 14, 13)) { } @@ -197,7 +197,7 @@ public T02AttackNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, CFCID = 94, NameID = 1469)] +[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1469)] public class T02AttackNode : BossModule { public T02AttackNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-44, 94), 17)) { } @@ -219,7 +219,7 @@ public T02SanitaryNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, CFCID = 94, NameID = 1470)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1470)] public class T02SanitaryNode : BossModule { public T02SanitaryNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-43, 52), 18, 15)) { } @@ -238,7 +238,7 @@ public T02MonitoringNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, CFCID = 94, NameID = 1471)] +[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1471)] public class T02MonitoringNode : BossModule { public T02MonitoringNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 39), 17, 15)) { } @@ -257,7 +257,7 @@ public T02DefenseNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, CFCID = 94, NameID = 1472)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1472)] public class T02DefenseNode : BossModule { public T02DefenseNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(46, 52), 17, 14)) { } @@ -277,7 +277,7 @@ public T02DisposalNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, CFCID = 94, NameID = 1473)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1473)] public class T02DisposalNode : BossModule { public T02DisposalNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(41, 94), 14, 20)) { } diff --git a/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs b/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs index cd047cef5e..7bf9f64ecb 100644 --- a/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs +++ b/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs @@ -75,7 +75,7 @@ private void SinglePhase(uint id) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.TerminalStart, CFCID = 96)] +[ModuleInfo(PrimaryActorOID = (uint)OID.TerminalStart, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 96)] public class T04Gauntlet : BossModule { public IReadOnlyList P1Bugs; diff --git a/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs b/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs index f60eb63276..e8ee6e316a 100644 --- a/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs +++ b/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs @@ -138,7 +138,7 @@ private void Divebomb(uint id, float delay, string name) } } -[ModuleInfo(CFCID = 97, NameID = 1482)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 97, NameID = 1482)] public class T05Twintania : BossModule { public const float NeurolinkRadius = 2; diff --git a/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs b/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs index 9b9e87f915..ea28b274a9 100644 --- a/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs +++ b/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs @@ -64,7 +64,7 @@ public T01IfritNStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 56, NameID = 1185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 56, NameID = 1185)] public class T01IfritN : BossModule { public T01IfritN(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-0, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs b/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs index d9ef20c828..aaa684817b 100644 --- a/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs +++ b/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs @@ -73,7 +73,7 @@ public T02TitanNStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 57, NameID = 1801)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 57, NameID = 1801)] public class T02TitanN : BossModule { private IReadOnlyList _heart; diff --git a/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs b/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs index 01fd2d6eee..6b5efc7926 100644 --- a/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs +++ b/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs @@ -91,7 +91,7 @@ public T03GarudaNStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 58, NameID = 1644)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 58, NameID = 1644)] public class T03GarudaN : BossModule { public T03GarudaN(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs index a3bffbe812..e16054ae47 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs @@ -130,7 +130,7 @@ public T04PortaDecumana1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] public class T04PortaDecumana1 : BossModule { public T04PortaDecumana1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-772, -600), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs index 3ef49f317c..01adfe1c58 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs @@ -181,7 +181,7 @@ public T04PortaDecumana2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] public class T04PortaDecumana2 : BossModule { public T04PortaDecumana2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-704, 480), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs b/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs index 4ba12b8f69..e03ed3b5b5 100644 --- a/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs @@ -93,7 +93,7 @@ public T05IfritHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 59, NameID = 1185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 59, NameID = 1185)] public class T05IfritH : BossModule { private IReadOnlyList _nails; diff --git a/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs b/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs index 320f50ab20..85e2b2f1b5 100644 --- a/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs @@ -102,7 +102,7 @@ public T06GarudaHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 61, NameID = 1644)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 61, NameID = 1644)] public class T06GarudaH : BossModule { private IReadOnlyList _monoliths; diff --git a/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs b/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs index f56f884829..1d828ca2b2 100644 --- a/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs @@ -134,7 +134,7 @@ public T07TitanHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 60, NameID = 1801)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 60, NameID = 1801)] public class T07TitanH : BossModule { private IReadOnlyList _heart; diff --git a/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs b/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs index 344fafb72a..adea2c7317 100644 --- a/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs @@ -157,7 +157,7 @@ public T08ThornmarchHStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.WhiskerwallKupdiKoop, CFCID = 66, NameID = 725)] +[ModuleInfo(PrimaryActorOID = (uint)OID.WhiskerwallKupdiKoop, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 66, NameID = 725)] public class T08ThornmarchH : BossModule { public T08ThornmarchH(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs index 43fd3caa10..51683ac864 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs @@ -32,7 +32,7 @@ public T09WhorleaterHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 72, NameID = 2505)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 72, NameID = 2505)] public class T09WhorleaterH(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(-0, 0), 14.5f, 20)) { protected override void DrawEnemies(int pcSlot, Actor pc) diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs index f0fddeec2a..3a34de0356 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs @@ -73,7 +73,7 @@ public D011ForgivenDissonanceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 676, NameID = 8299)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 676, NameID = 8299)] public class D011ForgivenDissonance : BossModule { public D011ForgivenDissonance(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-15, 240), 19.5f)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs index de76dc572b..23e7251118 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs @@ -89,7 +89,7 @@ public D012TesleentheForgivenStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 676, NameID = 8300)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 676, NameID = 8300)] public class D012TesleentheForgiven : BossModule { public D012TesleentheForgiven(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(78, -82), 19.5f)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs index d9150166af..0d2a70a32d 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs @@ -388,7 +388,7 @@ public D013PhiliaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 676, NameID = 8301)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 676, NameID = 8301)] public class D013Philia : BossModule { public D013Philia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(134, -465), 19.5f)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs index e764acf1ed..b8bace207a 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs @@ -176,7 +176,7 @@ public D030RonkanDreamerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8639)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8639)] public class D030RonkanDreamer : BossModule { public D030RonkanDreamer(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 0)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs index ab241daa00..da727fad41 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs @@ -85,7 +85,7 @@ public D031LozatlStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8231)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8231)] public class D031Lozatl : BossModule { public D031Lozatl(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 315), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs index 6a6a70abfc..335068335b 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs @@ -70,7 +70,7 @@ public D032BatsquatchStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8232)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8232)] public class D032Batsquatch : BossModule { public D032Batsquatch(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(62, -35), 15)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs index 7c4dc3c89b..a3f6121195 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs @@ -240,7 +240,7 @@ public D033ErosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8233)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8233)] public class D033Eros : BossModule { public D033Eros(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(17, -538), 15, 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivePrejudice.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivePrejudice.cs index 650d090807..eec787c79e 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivePrejudice.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivePrejudice.cs @@ -48,7 +48,7 @@ public D050ForgivenPrejudiceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8269)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8269)] public class D050ForgivenPrejudice : SimpleBossModule { public D050ForgivenPrejudice(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs index 5db053e7e3..add926caa6 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs @@ -68,7 +68,7 @@ public D051ForgivenCrueltyStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8260)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8260)] public class D051ForgivenCruelty : BossModule { public D051ForgivenCruelty(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(188, -170), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs index 5ac421b20e..744f639da8 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs @@ -50,7 +50,7 @@ public D052ForgivenApathyStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8267)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8267)] public class D052ForgivenApathy : BossModule { public D052ForgivenApathy(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 0)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs index 2288852763..d06d9b4828 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs @@ -190,7 +190,7 @@ public D053ForgivenWhimsyStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8261)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8261)] public class D053ForgivenWhimsy : BossModule { public D053ForgivenWhimsy(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-240, -50), 15)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs index 0af3e05f0f..0ee3e77a05 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs @@ -62,7 +62,7 @@ public D054ForgivenRevelryStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8270)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8270)] public class D054ForgivenRevelry : BossModule { public D054ForgivenRevelry(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-240, 176), 15)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs index a785cf1593..7c7838085c 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs @@ -270,7 +270,7 @@ public D055ForgivenObscenityStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8262)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8262)] public class D055ForgivenObscenity : BossModule { public D055ForgivenObscenity(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-240, 237), 15, 20)) { } diff --git a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs index 79938839b1..b6a0c54bc8 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs @@ -168,7 +168,7 @@ public ArchaeotaniaStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1432, NameID = 8234)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1432, NameID = 8234)] public class Archaeotania : BossModule { public Archaeotania(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(279, 249), 29)) { } diff --git a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs index 3ce51285e8..e146cddc04 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs @@ -271,5 +271,5 @@ public FormidableStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1464, NameID = 8822)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1464, NameID = 8822)] public class Formidable(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs index 20d4d2bd59..27e53ffcf8 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs @@ -122,7 +122,7 @@ public CE11ShadowOfDeathHandStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 5)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 5)] public class CE11ShadowOfDeathHand : BossModule { public CE11ShadowOfDeathHand(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(825, 640), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs index acb4b000ed..2d7ed8d0a0 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs @@ -154,7 +154,7 @@ public CE12BayingOfHoundsStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 2)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 2)] public class CE12BayingOfHounds : BossModule { public CE12BayingOfHounds(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(154, 785), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs index f89e004ac7..31cdef8168 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs @@ -147,7 +147,7 @@ public CE13KillItWithFireStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 1)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 1)] public class CE13KillItWithFire : BossModule { public CE13KillItWithFire(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-90, 700), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs index 6fa9921092..5e65c47af7 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs @@ -86,7 +86,7 @@ public CE14VigilForLostStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 3)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 3)] public class CE14VigilForLost : BossModule { public CE14VigilForLost(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(451, 830), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs index 266d706111..d0c6cd38be 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs @@ -138,7 +138,7 @@ public CE21FinalFurlongStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 6)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 6)] public class CE21FinalFurlong : BossModule { public CE21FinalFurlong(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(644, 228), 27)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs index e02ccdbca5..d9d8cd1f14 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs @@ -126,7 +126,7 @@ public CE31MetalFoxChaosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 13)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 13)] public class CE31MetalFoxChaos : BossModule { public CE31MetalFoxChaos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-234, 262), 30.2f)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs index 3c9ed7a46d..cf3e39e60b 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs @@ -187,7 +187,7 @@ public CE41WithDiremiteAndMainStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 21)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 21)] public class CE41WithDiremiteAndMain : BossModule { private IReadOnlyList _dimCrystals; diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs index 6540717c93..ed41d50db9 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs @@ -205,7 +205,7 @@ public CE42FromBeyondTheGraveStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 20)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 20)] public class CE42FromBeyondTheGrave : BossModule { public CE42FromBeyondTheGrave(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-60, 800), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs index b53c004fcc..e5281f9958 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs @@ -173,7 +173,7 @@ public CE44FamiliarFaceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 29)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 29)] public class CE44FamiliarFace : BossModule { public CE44FamiliarFace(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(330, 390), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs index 256ac271e1..e6e5513372 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs @@ -99,7 +99,7 @@ public CE51ThereWouldBeBloodStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 24)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 24)] public class CE51ThereWouldBeBlood : BossModule { public CE51ThereWouldBeBlood(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-390, 230), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs index b385481f0b..bd4e79df79 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs @@ -163,7 +163,7 @@ public CE52TimeToBurnStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 26)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 26)] public class CE52TimeToBurn : BossModule { public CE52TimeToBurn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-550, 0), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs index 987fd779bf..1dabad14a0 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs @@ -199,7 +199,7 @@ public CE53HereComesTheCavalryStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 22)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 22)] public class CE53HereComesTheCavalry : BossModule { public CE53HereComesTheCavalry(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-750, 790), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs index e73e402e45..e7759600d1 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs @@ -227,7 +227,7 @@ public CE54NeverCryWolfStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 25)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 25)] public class CE54NeverCryWolf : BossModule { private IReadOnlyList _adds; diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs index 83325ab10f..e695479d61 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs @@ -204,7 +204,7 @@ public CE62LooksToDieForStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 30)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 30)] public class CE62LooksToDieFor : BossModule { public CE62LooksToDieFor(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-200, -580), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs index 96b6a3c8a6..e99463578c 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs @@ -173,7 +173,7 @@ public CE63WornToShadowStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 28)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 28)] public class CE63WornToShadow : BossModule { public CE63WornToShadow(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-480, -690), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs index 551ac2081a..01640276ae 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs @@ -181,7 +181,7 @@ public CE64FeelingTheBurnStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 18)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 18)] public class CE64FeelingTheBurn : BossModule { public IReadOnlyList Escorts; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs index d853a0ece7..7d0e51ae37 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs @@ -32,7 +32,7 @@ class IronRose : Components.SelfTargetedAOEs public IronRose() : base(ActionID.MakeSpell(AID.IronRose), new AOEShapeRect(50, 4)) { } } -[ModuleInfo(CFCID = 761, NameID = 9834)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9834)] public class DRS1 : BossModule { public static readonly float BarricadeRadius = 20; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs index 37d65de5ee..65b3769d3b 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs @@ -25,7 +25,7 @@ class HuntersClaw : Components.SelfTargetedAOEs public HuntersClaw() : base(ActionID.MakeSpell(AID.HuntersClaw), new AOEShapeCircle(8)) { } } -[ModuleInfo(CFCID = 761, NameID = 9751)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9751)] public class DRS2 : BossModule { public DRS2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(82, 138), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs index c0596145fb..e3600a799e 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs @@ -42,7 +42,7 @@ class Fracture : Components.CastCounter public Fracture() : base(ActionID.MakeSpell(AID.Fracture)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Knight, CFCID = 761, NameID = 9838)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Knight, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9838)] public class DRS3 : BossModule { private IReadOnlyList _warrior; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs index 83e740a222..58dbc2b077 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs @@ -5,7 +5,7 @@ class MaledictionOfAgony : Components.CastCounter public MaledictionOfAgony() : base(ActionID.MakeSpell(AID.MaledictionOfAgonyAOE)) { } } -[ModuleInfo(CFCID = 761, NameID = 9755)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9755)] public class DRS4 : BossModule { public DRS4(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(202, -370), 24)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs index 41ef2eb150..dd0903b4d5 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs @@ -21,7 +21,7 @@ class GleamingArrow : Components.SelfTargetedAOEs public GleamingArrow() : base(ActionID.MakeSpell(AID.GleamingArrow), new AOEShapeRect(60, 5)) { } } -[ModuleInfo(CFCID = 761, NameID = 9853)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9853)] public class DRS5 : BossModule { public DRS5(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-272, -82), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs index 6e8f8b1245..f29ded7f2a 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs @@ -31,7 +31,7 @@ public Electrocution() : base(ActionID.MakeSpell(AID.Electrocution), 3) { } } // TODO: ManaFlame component - show reflect hints -[ModuleInfo(CFCID = 761, NameID = 9759)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9759)] public class DRS6 : BossModule { private IReadOnlyList _monks; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs index a6bf4a5fde..8a9577cb3e 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs @@ -53,7 +53,7 @@ class OptimalPlayCone : Components.SelfTargetedAOEs public OptimalPlayCone() : base(ActionID.MakeSpell(AID.OptimalPlayCone), new AOEShapeCone(60, 135.Degrees())) { } } -[ModuleInfo(CFCID = 761, NameID = 9863)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9863)] public class DRS7 : BossModule { public DRS7(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-272, -415), 25)) { } // note: initially arena is square, but it quickly changes to circle diff --git a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs index 9aa16a12d4..d9927b4fc0 100644 --- a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs +++ b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs @@ -23,7 +23,7 @@ public Duel2LyonStates(BossModule module) : base(module) .ActivateOnEnter(); } } -[ModuleInfo(CFCID = 735, DynamicEventID = 8)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaDuel, GroupID = 735, NameID = 8)] public class Duel2Lyon: BossModule { public Duel2Lyon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(211, 380), 20)) {} diff --git a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs index 8d7933bab3..6a9da02eaf 100644 --- a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs +++ b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs @@ -20,7 +20,7 @@ class LeftArmWave : Components.LocationTargetedAOEs public LeftArmWave() : base(ActionID.MakeSpell(AID.LeftArmWaveAOE), 24) { } } -[ModuleInfo(CFCID = 778, DynamicEventID = 19)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaDuel, GroupID = 778, NameID = 19)] public class Duel4Dabog : BossModule { public Duel4Dabog(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(250, 710), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs index b01123f1da..7fcfab1551 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs @@ -83,5 +83,5 @@ public BaalStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 140)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8897)] public class Baal(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs index 079984a08b..8e93093be0 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs @@ -96,5 +96,5 @@ public GrassmanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 135)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8892)] public class Grassman(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs index 215638f346..b3f363e331 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs @@ -102,5 +102,5 @@ public HuracanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 120)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8912)] public class Huracan(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs index 47278eb73e..9b1adbe0cf 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs @@ -74,5 +74,5 @@ public LilMurdererStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 119)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8911)] public class LilMurderer(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs index 9d74fa4d6e..da6821e2fa 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs @@ -63,5 +63,5 @@ public MaliktenderStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 124)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8901)] public class Maliktender(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs index 5916928a43..0308514d40 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs @@ -102,5 +102,5 @@ public NariphonStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 115)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8907)] public class Nariphon(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs index 467f74dfe8..5be44bc41a 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs @@ -55,5 +55,5 @@ public NuckelaveeStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 114)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8906)] public class Nuckelavee(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs index 5d4ff9c306..ff9fe5f5e8 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs @@ -47,5 +47,5 @@ public OPoorestPauldiaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 130)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8655)] public class OPoorestPauldia(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs index 20e287c89f..a1cb9cf1ed 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs @@ -63,5 +63,5 @@ public RusalkaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 139)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8896)] public class Rusalka(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs index 2a07bfc401..b89f3f6a41 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs @@ -103,5 +103,5 @@ public SugaarStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 125)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8902)] public class Sugaar(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs index afc8c070c6..05bbafec53 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs @@ -66,5 +66,5 @@ public SupayStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 134)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8891)] public class Supay(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs index 51c5fb6d87..3e8d0d71c2 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs @@ -85,5 +85,5 @@ public TheMudmanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8654)] public class TheMudman(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs index 4bbe8e832e..b672177333 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs @@ -110,7 +110,7 @@ public AglaopeStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 131)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8653)] public class Aglaope : SimpleBossModule { public Aglaope(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs index 79002dcf6f..2b90603489 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs @@ -33,7 +33,7 @@ public ForgivenGossipStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 142)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 8916)] public class ForgivenGossip : SimpleBossModule { public ForgivenGossip(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs index ecd7afb23a..1931ce4886 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs @@ -159,7 +159,7 @@ public ForgivenPedantryStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 121)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8910)] public class ForgivenPedantry : SimpleBossModule { public ForgivenPedantry(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs index 2a5263118f..d1a0aa13b5 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs @@ -229,7 +229,7 @@ public ForgivenRebellionStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 146)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 8915)] public class ForgivenRebellion : SimpleBossModule { public ForgivenRebellion(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs index f787ff839a..e822090863 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs @@ -114,7 +114,7 @@ public GunittStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 141)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8895)] public class Gunitt : SimpleBossModule { public Gunitt(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs index 19a7e8e64d..8b45d12660 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs @@ -189,7 +189,7 @@ public IxtabStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 136)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8890)] public class Ixtab : SimpleBossModule { public Ixtab(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs index 67db1f711a..5a897ff6ef 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs @@ -96,7 +96,7 @@ public TarchiaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 126)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8900)] public class Tarchia : SimpleBossModule { public Tarchia(WorldState ws, Actor primary) : base(ws, primary) diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs index d1340798c9..26a04d1bdc 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs @@ -105,7 +105,7 @@ public TygerStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8905)] public class Tyger : SimpleBossModule { public Tyger(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs index 9422162fb0..31d2b6ca99 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs @@ -132,7 +132,7 @@ public GoliathStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 688, NameID = 8953)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 688, NameID = 8953)] public class Goliath : BossModule { public Goliath(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -390), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs index 7ac791d2a4..913a859c5f 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs @@ -61,7 +61,7 @@ public FuathTroublemakerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9786)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9786)] public class FuathTroublemaker : BossModule { public FuathTroublemaker(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs index c20985678a..6c1f620443 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs @@ -140,7 +140,7 @@ public GreedyPixieStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9797)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9797)] public class GreedyPixie : BossModule { public GreedyPixie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs index 4ba40ea462..50e3505265 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs @@ -146,7 +146,7 @@ public BasketStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9784)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9784)] public class Basket : BossModule { public Basket(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs index e467f7b29c..723179c934 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs @@ -143,7 +143,7 @@ public CladoselacheStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9778)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9778)] public class Cladoselache : BossModule { public Cladoselache(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs index 0a03b82066..3714866725 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs @@ -67,7 +67,7 @@ public DjinnStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9788)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9788)] public class Djinn : BossModule { public Djinn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs index bd9ef36b6b..b114b1be8b 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs @@ -89,7 +89,7 @@ public KeeperStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9807)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9807)] public class Keeper : BossModule { public Keeper(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs index 3700d826fc..709b41aebe 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs @@ -92,7 +92,7 @@ public KorriganStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9806)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9806)] public class Korrigan : BossModule { public Korrigan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs index 9001d16cc7..4545a64806 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs @@ -76,7 +76,7 @@ public PegasusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9793)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9793)] public class Pegasus : BossModule { public Pegasus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs index 3fe7987dc3..c485bf898a 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs @@ -142,7 +142,7 @@ public PorxieStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9795)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9795)] public class Porxie : BossModule { public Porxie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs index 2a460bedae..a6fee715fc 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs @@ -101,7 +101,7 @@ public SerpentStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9776)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9776)] public class Serpent : BossModule { public Serpent(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs index d5bb999ef2..ed77f36803 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs @@ -76,7 +76,7 @@ public SwallowStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9782)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9782)] public class Swallow : BossModule { public Swallow(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs index 1a74d2b08e..f0dca1be12 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs @@ -92,7 +92,7 @@ public UndineStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9790)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9790)] public class Undine : BossModule { public Undine(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs index 0d7daf6bb1..f2eaaceefa 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs @@ -102,7 +102,7 @@ public WormStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9780)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9780)] public class Worm : BossModule { public Worm(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs b/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs index 8c050a6056..5a62820b62 100644 --- a/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs +++ b/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs @@ -81,7 +81,7 @@ class P3DivineJudgmentRaidwide : Components.CastCounter public P3DivineJudgmentRaidwide() : base(ActionID.MakeSpell(AID.DivineJudgmentRaidwide)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 694)] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 694)] public class TEA : BossModule { private IReadOnlyList _liquidHand; diff --git a/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs index 4b9427d4a8..d236a189e0 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs @@ -67,7 +67,7 @@ public AngadaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 90)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 5999)] public class Angada : SimpleBossModule { public Angada(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs index 3ca4ff98a8..905900986a 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs @@ -40,7 +40,7 @@ public GajasuraStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 89)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 5998)] public class Gajasura : SimpleBossModule { public Gajasura(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs index 6243a48947..35a94c57c6 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs @@ -70,7 +70,7 @@ public BoneCrawlerStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 106)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5988)] public class BoneCrawler : SimpleBossModule { public BoneCrawler(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs index 3423e3500f..8da5070aad 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs @@ -92,7 +92,7 @@ public GammaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 91)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5985)] public class Gamma : SimpleBossModule { public Gamma(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs index 7277120f19..10a4751791 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs @@ -80,7 +80,7 @@ public OkinaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 86)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5984)] public class Okina : SimpleBossModule { public Okina(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs index 78c789316c..e50f28f8c2 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs @@ -42,7 +42,7 @@ public OrghanaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 96)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5986)] public class Orghana : SimpleBossModule { public Orghana(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs index ee3bf11784..91b6e925fd 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs @@ -79,7 +79,7 @@ public IcebeastStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 268, NameID = 6650)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 268, NameID = 6650)] public class Icebeast : BossModule { public Icebeast(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -420), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs index 1a36f13293..31272053fb 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs @@ -161,7 +161,7 @@ public AiravataStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7601)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7601)] public class Airavata : BossModule { public Airavata(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs index 5ee5446f5a..37465dbec6 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs @@ -98,7 +98,7 @@ public ArachneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7623)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7623)] public class Arachne : BossModule { public Arachne(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs index 94eeb7895e..abe5359020 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs @@ -131,7 +131,7 @@ public BeastStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7588)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7588)] public class Beast : BossModule { public Beast(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs index 0bb90a93f2..e1dc6d0b2f 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs @@ -155,7 +155,7 @@ public ChimeraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7591)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7591)] public class Chimera : BossModule { public Chimera(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs index b7798a7f25..f7fb839cad 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs @@ -153,7 +153,7 @@ public DiresaurStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7627)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7627)] public class Diresaur : BossModule { public Diresaur(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs index a3d0e62dd3..2b75d79612 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs @@ -136,7 +136,7 @@ public DullahanStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7585)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7585)] public class Dullahan : BossModule { public Dullahan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs index 7ea0aedc87..1d3cb608be 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs @@ -167,7 +167,7 @@ public KelpieStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7589)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7589)] public class Kelpie : BossModule { public Kelpie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs index bd6ec3c519..fa9bd16260 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs @@ -93,7 +93,7 @@ public MandragoraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7600)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7600)] public class Mandragora : BossModule { public Mandragora(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs index 99ebfa5156..ddc2c9bfc9 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs @@ -51,7 +51,7 @@ public SkateneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7587)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7587)] public class Skatene : BossModule { public Skatene(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs index 416e55f3c5..59938b354c 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs @@ -138,7 +138,7 @@ public TotemStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7586)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7586)] public class Totem : BossModule { public Totem(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs index 617493d616..885cb8c404 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs @@ -59,7 +59,7 @@ public HatiStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7590)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7590)] public class Hati : BossModule { public Hati(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs index f9cd79e8f6..9f5679beaa 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs @@ -44,7 +44,7 @@ public TheGreatGoldWhiskerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7599)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7599)] public class TheGreatGoldWhisker : BossModule { public TheGreatGoldWhisker(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs index 0e3aff2dff..a0bf9a049e 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs @@ -136,7 +136,7 @@ public TheOlderOneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7597)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7597)] public class TheOlderOne : BossModule { public TheOlderOne(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs index 923544ec56..24417f4714 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs @@ -133,7 +133,7 @@ public TheWingedStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7595)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7595)] public class TheWinged : BossModule { public TheWinged(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs b/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs index 9a58d4fb9c..ae0871f854 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs @@ -25,7 +25,7 @@ class P5MornAfah : Components.StackWithCastTargets public P5MornAfah() : base(ActionID.MakeSpell(AID.MornAfah), 4, 8) { } // TODO: verify radius } -[ModuleInfo(PrimaryActorOID = (uint)OID.Twintania, CFCID = 280)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Twintania, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 280)] public class UCOB : BossModule { private Actor? _nael; diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs index 016852038b..dc12c0bbf5 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs @@ -119,7 +119,7 @@ public P5AethericBoom() : base(ActionID.MakeSpell(AID.AethericBoom), 10) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Garuda, CFCID = 539)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Garuda, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 539)] public class UWU : BossModule { private IReadOnlyList _ifrits; From ff5dda996c54bfdae6beb2201e010097898c1d01 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 20:53:48 +0000 Subject: [PATCH 04/11] Module viewer refactoring WIP. - sort order --- BossMod/BossModule/BossModuleInfo.cs | 1 + BossMod/Config/ModuleViewer.cs | 31 +++++++++----- BossMod/Framework/Utils.cs | 16 ++++++++ .../Endwalker/Alliance/A10Lions/A10Lions.cs | 2 +- .../A10RhalgrEmissary/A10RhalgrEmissary.cs | 2 +- .../Alliance/A11Byregot/A11Byregot.cs | 2 +- .../Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs | 2 +- .../Endwalker/Alliance/A13Azeyma/A13Azeyma.cs | 2 +- .../Alliance/A14Naldthal/A14Naldthal.cs | 2 +- .../Criterion/C01ASS/C010Trash/C010Armor.cs | 4 +- .../C01ASS/C010Trash/C010Belladonna.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Dryad.cs | 4 +- .../C01ASS/C010Trash/C010Dullahan.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Kaluk.cs | 4 +- .../C01ASS/C010Trash/C010Udumbara.cs | 4 +- .../Criterion/C01ASS/C011Silkie/C011Silkie.cs | 4 +- .../C01ASS/C012Gladiator/C012Gladiator.cs | 4 +- .../C013Shadowcaster/C013Shadowcaster.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Fuko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Kotengu.cs | 4 +- .../C02AMR/C020Trash/C020Onmitsugashira.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Raiko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Yuki.cs | 4 +- .../C02AMR/C021Shishio/C021Shishio.cs | 4 +- .../Criterion/C02AMR/C022Gorai/C022Gorai.cs | 4 +- .../Criterion/C02AMR/C023Moko/C023Moko.cs | 4 +- .../C03AAI/C030Trash/C030Islekeeper.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Kiwakin.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Monk.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Ray.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Snipper.cs | 4 +- .../C03AAI/C030Trash/C030WoodGolem.cs | 4 +- .../C03AAI/C031Ketuduke/C031Ketuduke.cs | 4 +- .../Criterion/C03AAI/C032Lala/C032Lala.cs | 4 +- .../C03AAI/C033Statice/C033Statice.cs | 4 +- .../Savage/P12S1Athena/P12S1Athena.cs | 2 +- .../P12S2PallasAthena/P12S2PallasAthena.cs | 2 +- .../Endwalker/Savage/P4S1Hesperos/P4S1.cs | 2 +- .../Endwalker/Savage/P4S2Hesperos/P4S2.cs | 2 +- .../Endwalker/Savage/P8S1Hephaistos/P8S1.cs | 2 +- .../Endwalker/Savage/P8S2Hephaistos/P8S2.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act1.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act2.cs | 2 +- .../Stage04Act1.cs | 2 +- .../Stage04Act2.cs | 2 +- .../Stage06EyeSociety/Stage06Act1.cs | 10 ++--- .../Stage06EyeSociety/Stage06Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act1.cs | 2 +- .../Stage07AChorusSlime/Stage07Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act3.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act1.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act2.cs | 2 +- .../Stage11Act1.cs | 2 +- .../Stage11Act2.cs | 2 +- .../Stage12Act1.cs | 2 +- .../Stage12Act2.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act1.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act2.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act1.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act2.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act1.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act2.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act1.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act2.cs | 2 +- .../Stage18Act1.cs | 10 ++--- .../Stage18Act2.cs | 2 +- .../Stage19Act1.cs | 2 +- .../Stage19Act2.cs | 10 ++--- .../Stage20MissTyphon/Stage20Act1.cs | 2 +- .../Stage20MissTyphon/Stage20Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act3.cs | 2 +- .../Stage21Act1.cs | 2 +- .../Stage21Act2.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act1.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act2.cs | 2 +- .../Stage24Act1.cs | 2 +- .../Stage24Act2.cs | 2 +- .../Stage24Act3.cs | 2 +- .../Stage25Act1.cs | 2 +- .../Stage25Act2.cs | 2 +- .../Stage25Act3.cs | 10 ++--- .../Stage26PapaMia/Stage26Act1.cs | 2 +- .../Stage26PapaMia/Stage26Act2.cs | 2 +- BossMod/Modules/ModuleRegistry.cs | 41 +++++++++++-------- .../RealmReborn/Raid/T01Caduceus/T01ADS.cs | 2 +- .../Raid/T01Caduceus/T01Caduceus.cs | 2 +- .../Raid/T02MultiADS/T02MultiADS.cs | 14 +++---- .../T04PortaDecumana/T04PortaDecumana1.cs | 2 +- .../T04PortaDecumana/T04PortaDecumana2.cs | 2 +- 89 files changed, 194 insertions(+), 161 deletions(-) diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs index 972cfeffcc..68214b6af6 100644 --- a/BossMod/BossModule/BossModuleInfo.cs +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -84,4 +84,5 @@ public class ModuleInfoAttribute : Attribute public BossModuleInfo.GroupType GroupType = BossModuleInfo.GroupType.None; public uint GroupID; public uint NameID; // usually BNpcName row, unless GroupType uses it differently + public int SortOrder; // default: first number in type name } diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index ed1acf8d5c..2ead81c04c 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -10,7 +10,7 @@ namespace BossMod; public class ModuleViewer : IDisposable { - private record struct ModuleInfo(Type Type, string Name, uint SortOrder); + private record struct ModuleInfo(Type Type, string Name, int SortOrder); private record struct ModuleGroupInfo(string Name, uint Id, uint SortOrder, IDalamudTextureWrap? Icon = null); private record struct ModuleGroup(ModuleGroupInfo Info, List Modules); @@ -89,8 +89,17 @@ public ModuleViewer() foreach (var groups in _groups) { groups.SortBy(g => g.Info.SortOrder); + foreach (var (g1, g2) in groups.Pairwise()) + if (g1.Info.SortOrder == g2.Info.SortOrder) + Service.Log($"[ModuleViewer] Same sort order between groups {g1.Info} and {g2.Info}"); + foreach (var g in groups) + { g.Modules.SortBy(m => m.SortOrder); + foreach (var (m1, m2) in g.Modules.Pairwise()) + if (m1.SortOrder == m2.SortOrder) + Service.Log($"[ModuleViewer] Same sort order between modules {m1.Type.FullName} and {m2.Type.FullName}"); + } } } @@ -229,38 +238,38 @@ private void Customize((string name, IDalamudTextureWrap? icon)[] array, int ele var cfcRow = Service.LuminaRow(module.GroupID); var cfcSort = cfcRow?.SortKey ?? 0u; var cfcName = FixCase(cfcRow?.Name); - return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.MaskedCarnivale: groupId |= module.GroupID; var mcRow = Service.LuminaRow(module.GroupID); var mcSort = uint.Parse((mcRow?.ShortCode ?? "").Substring(3)); // 'aozNNN' var mcName = $"Stage {mcSort}: {FixCase(mcRow?.Name)}"; - return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.RemovedUnreal: - return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.Quest: var questRow = Service.LuminaRow(module.GroupID); groupId |= questRow?.JournalGenre.Row ?? 0; var questCategoryName = questRow?.JournalGenre.Value?.Name ?? ""; - return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Fate: var fateRow = Service.LuminaRow(module.GroupID); - return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Hunt: groupId |= module.GroupID; - return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.BozjaCE: groupId |= module.GroupID; var ceName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} CE"; - return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.BozjaDuel: groupId |= module.GroupID; var duelName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} Duel"; - return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.GoldSaucer: - return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.GroupID)); + return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.SortOrder)); default: - return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); } } } diff --git a/BossMod/Framework/Utils.cs b/BossMod/Framework/Utils.cs index 14a0c62ecf..9f582b138f 100644 --- a/BossMod/Framework/Utils.cs +++ b/BossMod/Framework/Utils.cs @@ -255,6 +255,22 @@ public static IEnumerable ZeroOrOne(T? value) where T : struct yield return value.Value; } + // enumerate pairs of neighbouring elements + public static IEnumerable<(T, T)> Pairwise(this IEnumerable source) + { + using var e = source.GetEnumerator(); + if (!e.MoveNext()) + yield break; + + var prev = e.Current; + while (e.MoveNext()) + { + var curr = e.Current; + yield return (prev, curr); + prev = curr; + } + } + // swap to values public static void Swap(ref T l, ref T r) { diff --git a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs index 2039dff58e..dbaee2010d 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs @@ -19,7 +19,7 @@ public A10LionsStates(A10Lions module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11294)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11294, SortOrder = 4)] public class A10Lions : BossModule { private Actor? _lioness; diff --git a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs index fc6dbf8075..baccaded80 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs @@ -20,7 +20,7 @@ class DestructiveStrike : Components.BaitAwayCast public DestructiveStrike() : base(ActionID.MakeSpell(AID.DestructiveStrike), new AOEShapeCone(13, 60.Degrees())) { } // TODO: verify angle } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11274)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11274, SortOrder = 2)] public class A10RhalgrEmissary : BossModule { public A10RhalgrEmissary(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(74, 516), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs index dd390ab8b3..19a3b75152 100644 --- a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs +++ b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs @@ -5,7 +5,7 @@ class ByregotWard : Components.BaitAwayCast public ByregotWard() : base(ActionID.MakeSpell(AID.ByregotWard), new AOEShapeCone(10, 45.Degrees())) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11281)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11281, SortOrder = 1)] public class A11Byregot : BossModule { public A11Byregot(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 700), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs index 27deb30011..bde9542617 100644 --- a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs +++ b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs @@ -15,7 +15,7 @@ class BronzeLightning : Components.SelfTargetedAOEs public BronzeLightning() : base(ActionID.MakeSpell(AID.BronzeLightning), new AOEShapeCone(50, 22.5f.Degrees()), 4) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11273)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11273, SortOrder = 3)] public class A12Rhalgr : BossModule { public A12Rhalgr(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-15, 275), 30)) // note: arena has a really complex shape... diff --git a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs index 7630095fdf..84576e19a7 100644 --- a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs +++ b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs @@ -25,7 +25,7 @@ class SublimeSunset : Components.LocationTargetedAOEs public SublimeSunset() : base(ActionID.MakeSpell(AID.SublimeSunsetAOE), 40) { } // TODO: check falloff } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11277)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11277, SortOrder = 5)] public class A13Azeyma : BossModule { public A13Azeyma(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs index 8df0db0c31..bcab531727 100644 --- a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs +++ b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs @@ -46,7 +46,7 @@ public TippedScales() : base(ActionID.MakeSpell(AID.TippedScalesAOE)) { } } // TODO: balancing counter -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11286)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11286, SortOrder = 6)] public class A14Naldthal : BossModule { public A14Naldthal(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs index 791f539633..51c23aea5b 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs @@ -54,8 +54,8 @@ public C010ArmorStates(BossModule module, bool savage) : base(module) class C010NArmorStates : C010ArmorStates { public C010NArmorStates(BossModule module) : base(module, false) { } } class C010SArmorStates : C010ArmorStates { public C010SArmorStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11515, SortOrder = 6)] public class C010NArmor : SimpleBossModule { public C010NArmor(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11515, SortOrder = 6)] public class C010SArmor : SimpleBossModule { public C010SArmor(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs index ff381dfe72..a0658f2d9b 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs @@ -54,8 +54,8 @@ public C010BelladonnaStates(BossModule module, bool savage) : base(module) class C010NBelladonnaStates : C010BelladonnaStates { public C010NBelladonnaStates(BossModule module) : base(module, false) { } } class C010SBelladonnaStates : C010BelladonnaStates { public C010SBelladonnaStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11514, SortOrder = 1)] public class C010NBelladonna : SimpleBossModule { public C010NBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11514, SortOrder = 1)] public class C010SBelladonna : SimpleBossModule { public C010SBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs index 416deb3d5f..67e21b9b53 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs @@ -68,7 +68,7 @@ public C010DryadStates(BossModule module, bool savage) : base(module) class C010NDryadStates : C010DryadStates { public C010NDryadStates(BossModule module) : base(module, false) { } } class C010SDryadStates : C010DryadStates { public C010SDryadStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11513, SortOrder = 4)] public class C010NDryad : SimpleBossModule { public C010NDryad(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11513, SortOrder = 4)] public class C010SDryad : SimpleBossModule { public C010SDryad(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs index 50f6f2bab0..dc68959f9c 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs @@ -54,8 +54,8 @@ public C010DullahanStates(BossModule module, bool savage) : base(module) class C010NDullahanStates : C010DullahanStates { public C010NDullahanStates(BossModule module) : base(module, false) { } } class C010SDullahanStates : C010DullahanStates { public C010SDullahanStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11506, SortOrder = 7)] public class C010NDullahan : SimpleBossModule { public C010NDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11506, SortOrder = 7)] public class C010SDullahan : SimpleBossModule { public C010SDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs index 0eec6496d5..718eab2efc 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs @@ -54,8 +54,8 @@ public C010KalukStates(BossModule module, bool savage) : base(module) class C010NKalukStates : C010KalukStates { public C010NKalukStates(BossModule module) : base(module, false) { } } class C010SKalukStates : C010KalukStates { public C010SKalukStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11510, SortOrder = 2)] public class C010NKaluk : SimpleBossModule { public C010NKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11510, SortOrder = 2)] public class C010SKaluk : SimpleBossModule { public C010SKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs index aa142e8b4a..d9c084c167 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs @@ -68,7 +68,7 @@ public C010UdumbaraStates(BossModule module, bool savage) : base(module) class C010NUdumbaraStates : C010UdumbaraStates { public C010NUdumbaraStates(BossModule module) : base(module, false) { } } class C010SUdumbaraStates : C010UdumbaraStates { public C010SUdumbaraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11511, SortOrder = 3)] public class C010NUdumbara : SimpleBossModule { public C010NUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11511, SortOrder = 3)] public class C010SUdumbara : SimpleBossModule { public C010SUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs index 3b6d162279..55b3be63f1 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs @@ -58,8 +58,8 @@ public abstract class C011Silkie : BossModule public C011Silkie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-335, -155), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11369, SortOrder = 5)] public class C011NSilkie : C011Silkie { public C011NSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11369, SortOrder = 5)] public class C011SSilkie : C011Silkie { public C011SSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs index d31745d85d..18c6fc03c2 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs @@ -19,8 +19,8 @@ public abstract class C012Gladiator : BossModule public C012Gladiator(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-35, -271), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11387, SortOrder = 8)] public class C012NGladiator : C012Gladiator { public C012NGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11387, SortOrder = 8)] public class C012SGladiator : C012Gladiator { public C012SGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs index b2a5aca840..793c0e5a20 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs @@ -27,8 +27,8 @@ public abstract class C013Shadowcaster : BossModule public C013Shadowcaster(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(289, -105), 15, 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11393, SortOrder = 9)] public class C013NShadowcaster : C013Shadowcaster { public C013NShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11393, SortOrder = 9)] public class C013SShadowcaster : C013Shadowcaster { public C013SShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs index f6747a6df4..0cbfcf8a93 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs @@ -82,7 +82,7 @@ private void Crosswind(uint id, float delay) class C020NFukoStates : C020FukoStates { public C020NFukoStates(BossModule module) : base(module, false) { } } class C020SFukoStates : C020FukoStates { public C020SFukoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12399, SortOrder = 2)] public class C020NFuko : C020Trash1 { public C020NFuko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -95,7 +95,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12399, SortOrder = 2)] public class C020SFuko : C020Trash1 { public C020SFuko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs index 58df10f580..0cf50ab8a5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs @@ -71,8 +71,8 @@ public C020KotenguStates(BossModule module, bool savage) : base(module) class C020NKotenguStates : C020KotenguStates { public C020NKotenguStates(BossModule module) : base(module, false) { } } class C020SKotenguStates : C020KotenguStates { public C020SKotenguStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12410, SortOrder = 6)] public class C020NKotengu : C020Trash2 { public C020NKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12410, SortOrder = 6)] public class C020SKotengu : C020Trash2 { public C020SKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs index b3a30240f5..684aba79e9 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs @@ -52,8 +52,8 @@ public C020OnmitsugashiraStates(BossModule module, bool savage) : base(module) class C020NOnmitsugashiraStates : C020OnmitsugashiraStates { public C020NOnmitsugashiraStates(BossModule module) : base(module, false) { } } class C020SOnmitsugashiraStates : C020OnmitsugashiraStates { public C020SOnmitsugashiraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12424, SortOrder = 5)] public class C020NOnmitsugashira : C020Trash2 { public C020NOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12424, SortOrder = 5)] public class C020SOnmitsugashira : C020Trash2 { public C020SOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs index 0d85b9d9a0..8f23f3f4b4 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs @@ -89,7 +89,7 @@ private void MasterOfLevin(uint id, float delay) class C020NRaikoStates : C020RaikoStates { public C020NRaikoStates(BossModule module) : base(module, false) { } } class C020SRaikoStates : C020RaikoStates { public C020SRaikoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12422, SortOrder = 1)] public class C020NRaiko : C020Trash1 { public C020NRaiko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -102,7 +102,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12422, SortOrder = 1)] public class C020SRaiko : C020Trash1 { public C020SRaiko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs index 29644a5c07..1cd12b78e3 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs @@ -28,8 +28,8 @@ public C020YukiStates(BossModule module, bool savage) : base(module) class C020NYukiStates : C020YukiStates { public C020NYukiStates(BossModule module) : base(module, false) { } } class C020SYukiStates : C020YukiStates { public C020SYukiStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12425, SortOrder = 3)] public class C020NYuki : C020Trash1 { public C020NYuki(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12425, SortOrder = 3)] public class C020SYuki : C020Trash1 { public C020SYuki(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs index 3a0166acc6..b46a4e5c85 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs @@ -19,8 +19,8 @@ public abstract class C021Shishio : BossModule public C021Shishio(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, -100), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12428, SortOrder = 4)] public class C021NShishio : C021Shishio { public C021NShishio(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12428, SortOrder = 4)] public class C021SShishio : C021Shishio { public C021SShishio(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs index 2f3f083c91..bf6e3036b3 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs @@ -12,8 +12,8 @@ public abstract class C022Gorai : BossModule public C022Gorai(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(300, -120), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12373, SortOrder = 7)] public class C022NGorai : C022Gorai { public C022NGorai(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12373, SortOrder = 7)] public class C022SGorai : C022Gorai { public C022SGorai(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs index 0183285172..a9a289e3bf 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs @@ -12,8 +12,8 @@ public abstract class C023Moko : BossModule public C023Moko(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12357, SortOrder = 8)] public class C023NMoko : C023Moko { public C023NMoko(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12357, SortOrder = 8)] public class C023SMoko : C023Moko { public C023SMoko(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs index 3add92ecc8..28222e212e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs @@ -58,13 +58,13 @@ private void IsleDrop(uint id, float delay) class C030NIslekeeperStates : C030IslekeeperStates { public C030NIslekeeperStates(BossModule module) : base(module, false) { } } class C030SIslekeeperStates : C030IslekeeperStates { public C030SIslekeeperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12561, SortOrder = 7)] public class C030NIslekeeper : C030Trash2 { public C030NIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561, SortOrder = 7)] public class C030SIslekeeper : C030Trash2 { public C030SIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs index 68f1fc3209..6421c599be 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs @@ -70,13 +70,13 @@ private void TailScrew(uint id, float delay) class C030NKiwakinStates : C030KiwakinStates { public C030NKiwakinStates(BossModule module) : base(module, false) { } } class C030SKiwakinStates : C030KiwakinStates { public C030SKiwakinStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12632)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12632, SortOrder = 1)] public class C030NKiwakin : C030Trash1 { public C030NKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12632, SortOrder = 1)] public class C030SKiwakin : C030Trash1 { public C030SKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs index d8fb80798e..12554a11dc 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs @@ -58,13 +58,13 @@ private void CrossAttack(uint id, float delay) class C030NMonkStates : C030MonkStates { public C030NMonkStates(BossModule module) : base(module, false) { } } class C030SMonkStates : C030MonkStates { public C030SMonkStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12631, SortOrder = 4)] public class C030NMonk : C030Trash1 { public C030NMonk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12631, SortOrder = 4)] public class C030SMonk : C030Trash1 { public C030SMonk(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs index 7547ec9185..0f4a1ca248 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs @@ -59,7 +59,7 @@ private void ExpulsionElectricWhorl(uint id, float delay) class C030NRayStates : C030RayStates { public C030NRayStates(BossModule module) : base(module, false) { } } class C030SRayStates : C030RayStates { public C030SRayStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12541, SortOrder = 3)] public class C030NRay : C030Trash1 { public C030NRay(WorldState ws, Actor primary) : base(ws, primary) { } @@ -71,7 +71,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12541, SortOrder = 3)] public class C030SRay : C030Trash1 { public C030SRay(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs index 31c20cab89..1e5a8ff912 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs @@ -74,7 +74,7 @@ private void BubbleShowerCrabDribble(uint id, float delay) class C030NSnipperStates : C030SnipperStates { public C030NSnipperStates(BossModule module) : base(module, false) { } } class C030SSnipperStates : C030SnipperStates { public C030SSnipperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12537, SortOrder = 2)] public class C030NSnipper : C030Trash1 { public C030NSnipper(WorldState ws, Actor primary) : base(ws, primary) { } @@ -86,7 +86,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12537, SortOrder = 2)] public class C030SSnipper : C030Trash1 { public C030SSnipper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs index 7ba9ebbc3e..a1c4c0cd39 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs @@ -60,13 +60,13 @@ private void Ovation(uint id, float delay) class C030NWoodGolemStates : C030WoodGolemStates { public C030NWoodGolemStates(BossModule module) : base(module, false) { } } class C030SWoodGolemStates : C030WoodGolemStates { public C030SWoodGolemStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12560, SortOrder = 6)] public class C030NWoodGolem : C030Trash2 { public C030NWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12560, SortOrder = 6)] public class C030SWoodGolem : C030Trash2 { public C030SWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs index 343547a980..999df708e2 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs @@ -28,8 +28,8 @@ public abstract class C031Ketuduke : BossModule public C031Ketuduke(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12605, SortOrder = 5)] public class C031NKetuduke : C031Ketuduke { public C031NKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12605, SortOrder = 5)] public class C031SKetuduke : C031Ketuduke { public C031SKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs index 61ea0215b5..a4597a480e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs @@ -12,8 +12,8 @@ public abstract class C032Lala : BossModule public C032Lala(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12639, SortOrder = 8)] public class C032NLala : C032Lala { public C032NLala(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12639, SortOrder = 8)] public class C032SLala : C032Lala { public C032SLala(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs index c4fdbe64b7..2d27032bbf 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs @@ -24,8 +24,8 @@ public abstract class C033Statice : BossModule public C033Statice(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12506, SortOrder = 9)] public class C033NStatice : C033Statice { public C033NStatice(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12506, SortOrder = 9)] public class C033SStatice : C033Statice { public C033SStatice(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs index 1edaf644f8..06541a533c 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs @@ -15,7 +15,7 @@ class Parthenos : Components.SelfTargetedAOEs public Parthenos() : base(ActionID.MakeSpell(AID.Parthenos), new AOEShapeRect(60, 8, 60)) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12377)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12377, SortOrder = 1)] public class P12S1Athena : BossModule { public P12S1Athena(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs index db4ec10854..921414a2bc 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Savage.P12S2PallasAthena; -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12382)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12382, SortOrder = 2)] public class P12S2PallasAthena : BossModule { public static ArenaBoundsRect DefaultBounds = new ArenaBoundsRect(new(100, 95), 20, 15); diff --git a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs index 82362724ac..5be43f1449 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs @@ -13,7 +13,7 @@ public class P4S1Config : CooldownPlanningConfigNode public P4S1Config() : base(90) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744, SortOrder = 1)] public class P4S1 : BossModule { public P4S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs index ddeec62abd..065a2c7e43 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs @@ -13,7 +13,7 @@ class HeartStake : Components.CastCounter public HeartStake() : base(ActionID.MakeSpell(AID.HeartStakeSecond)) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744, SortOrder = 2)] public class P4S2 : BossModule { // common wreath of thorns constants diff --git a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs index 521f9ce2d8..4edce4e46f 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs @@ -10,7 +10,7 @@ class AbyssalFires : Components.LocationTargetedAOEs public AbyssalFires() : base(ActionID.MakeSpell(AID.AbyssalFires), 15) { } // TODO: verify falloff } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399, SortOrder = 1)] public class P8S1 : BossModule { public P8S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs index 2737e9828d..4224f99a0c 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs @@ -7,7 +7,7 @@ public TyrantsFlare() : base(ActionID.MakeSpell(AID.TyrantsFlareAOE), 6) { } // TODO: autoattack component // TODO: HC components -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399, SortOrder = 2)] public class P8S2 : BossModule { public P8S2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs index 104a146cbf..225c3c8c3f 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs @@ -49,7 +49,7 @@ public Stage02Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8078)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8078, SortOrder = 1)] public class Stage02Act1 : BossModule { public Stage02Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs index cd4cf8a546..5d36515b0c 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs @@ -41,7 +41,7 @@ public Stage02Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8079)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8079, SortOrder = 2)] public class Stage02Act2(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { protected override bool CheckPull() { return PrimaryActor.IsTargetable && PrimaryActor.InCombat || Enemies(OID.Flan).Any(e => e.InCombat) || Enemies(OID.Licorice).Any(e => e.InCombat); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs index 72b73861d7..fb531839d1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs @@ -42,7 +42,7 @@ public Stage04Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8086)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8086, SortOrder = 1)] public class Stage04Act1 : BossModule { public Stage04Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs index 4b49ea254e..55c6504762 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs @@ -61,7 +61,7 @@ public Stage04Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8087, SortOrder = 2)] public class Stage04Act2 : BossModule { public Stage04Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs index 93918597f4..1df0a8385c 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs @@ -103,9 +103,9 @@ public override void AddGlobalHints(BossModule module, GlobalHints hints) } } -class Stage06Act2States : StateMachineBuilder +class Stage06Act1States : StateMachineBuilder { - public Stage06Act2States(BossModule module) : base(module) + public Stage06Act1States(BossModule module) : base(module) { TrivialPhase() .DeactivateOnEnter() @@ -114,10 +114,10 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8090)] -public class Stage06Act2 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8090, SortOrder = 1)] +public class Stage06Act1 : BossModule { - public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) + public Stage06Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { ActivateComponent(); ActivateComponent(); diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs index 10b074cce1..6427c4fb11 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs @@ -141,7 +141,7 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8092)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8092, SortOrder = 2)] public class Stage06Act2 : BossModule { public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs index 425a75bc66..9cca76ebcd 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs @@ -59,7 +59,7 @@ public Stage07Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094, SortOrder = 1)] public class Stage07Act1 : BossModule { public Stage07Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs index 2de0ecd6e5..a8ef17365a 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs @@ -52,7 +52,7 @@ public Stage07Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094, SortOrder = 2)] public class Stage07Act2 : BossModule { public Stage07Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs index 8a39071158..49fcfe2f77 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs @@ -57,7 +57,7 @@ public Stage07Act3States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8095)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8095, SortOrder = 3)] public class Stage07Act3 : BossModule { public Stage07Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs index 4a3b573752..0c4a8c05c7 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs @@ -80,7 +80,7 @@ public Stage08Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8140)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8140, SortOrder = 1)] public class Stage08Act1 : BossModule { public Stage08Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs index 582dd3e375..91d0ce78fb 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs @@ -76,7 +76,7 @@ public Stage08Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8098)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8098, SortOrder = 2)] public class Stage08Act2 : BossModule { public Stage08Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs index cb5a2ef2be..35c9451257 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs @@ -29,7 +29,7 @@ public Stage11Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280, SortOrder = 1)] public class Stage11Act1 : BossModule { public Stage11Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs index c8711582d3..00e92c823e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs @@ -29,7 +29,7 @@ public Stage11Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280, SortOrder = 2)] public class Stage11Act2 : BossModule { public Stage11Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs index f87c29fbd3..3d9c02aa06 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs @@ -28,7 +28,7 @@ public Stage12Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8103)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8103, SortOrder = 1)] public class Stage12Act1 : BossModule { public Stage12Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs index 4c193e075b..93aeac69d1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs @@ -57,7 +57,7 @@ public Stage12Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8102)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8102, SortOrder = 2)] public class Stage12Act2 : BossModule { public Stage12Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs index 6cb3476835..6d748cf133 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs @@ -37,7 +37,7 @@ public Stage13Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8104)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8104, SortOrder = 1)] public class Stage13Act1 : BossModule { public Stage13Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs index 79d1e7ff55..96558a5eb0 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs @@ -96,7 +96,7 @@ public Stage13Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8107)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8107, SortOrder = 2)] public class Stage13Act2 : BossModule { public Stage13Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs index e9f975ab1e..3563c5793b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs @@ -59,7 +59,7 @@ public Stage14Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108, SortOrder = 1)] public class Stage14Act1 : BossModule { public Stage14Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs index 0bd5b91f64..6227a59546 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs @@ -59,7 +59,7 @@ public Stage14Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108, SortOrder = 2)] public class Stage14Act2 : BossModule { public Stage14Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs index d1e00459d9..fdb64b2faf 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs @@ -29,7 +29,7 @@ public Stage16Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8112)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8112, SortOrder = 1)] public class Stage16Act1 : BossModule { public Stage16Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs index 705842bfc1..34237fa2c4 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs @@ -112,7 +112,7 @@ public Stage16Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8113)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8113, SortOrder = 2)] public class Stage16Act2 : BossModule { public Stage16Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs index 6d4090cb8e..6bf8171a29 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs @@ -62,7 +62,7 @@ public Stage17Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8115)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8115, SortOrder = 1)] public class Stage17Act1 : BossModule { public Stage17Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs index 5f9fbb76dc..5496102340 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs @@ -85,7 +85,7 @@ public Stage17Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8087, SortOrder = 2)] public class Stage17Act2 : BossModule { public Stage17Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs index 11ca6d9395..f03bf6a10c 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs @@ -84,9 +84,9 @@ public override void AddGlobalHints(BossModule module, GlobalHints hints) } } -class Stage18Act2States : StateMachineBuilder +class Stage18Act1States : StateMachineBuilder { - public Stage18Act2States(BossModule module) : base(module) + public Stage18Act1States(BossModule module) : base(module) { TrivialPhase() .DeactivateOnEnter() @@ -100,10 +100,10 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] -public class Stage18Act2 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116, SortOrder = 1)] +public class Stage18Act1 : BossModule { - public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) + public Stage18Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { ActivateComponent(); ActivateComponent(); diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs index 68ea10947d..7955ae6a50 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs @@ -100,7 +100,7 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116, SortOrder = 2)] public class Stage18Act2 : BossModule { public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs index 5127a100cd..9133d3f8fe 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs @@ -96,7 +96,7 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117, SortOrder = 1)] public class Stage19Act1 : BossModule { public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs index 173a1ef95e..a2fc746300 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs @@ -129,9 +129,9 @@ public override void AddGlobalHints(BossModule module, GlobalHints hints) } } -class Stage19Act1States : StateMachineBuilder +class Stage19Act2States : StateMachineBuilder { - public Stage19Act1States(BossModule module) : base(module) + public Stage19Act2States(BossModule module) : base(module) { TrivialPhase() .DeactivateOnEnter() @@ -143,10 +143,10 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] -public class Stage19Act1 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117, SortOrder = 2)] +public class Stage19Act2 : BossModule { - public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) + public Stage19Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) { ActivateComponent(); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs index db12244152..d99738f6e9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs @@ -57,7 +57,7 @@ public Stage20Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046, SortOrder = 1)] public class Stage20Act1 : BossModule { public Stage20Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs index f49c60bcc1..b4e0304508 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs @@ -64,7 +64,7 @@ public Stage20Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 7111)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 7111, SortOrder = 2)] public class Stage20Act2 : BossModule { public Stage20Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs index 0f2eced428..9ca1a1e7c6 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs @@ -97,7 +97,7 @@ public Stage20Act3States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046, SortOrder = 3)] public class Stage20Act3 : BossModule { public Stage20Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs index 9ba90d53ee..25ed3cad9b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs @@ -52,7 +52,7 @@ public Stage21Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8120)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8120, SortOrder = 1)] public class Stage21Act1 : BossModule { public Stage21Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs index 7bc9bfeaf6..12faccfa17 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs @@ -83,7 +83,7 @@ public Stage21Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8121)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8121, SortOrder = 2)] public class Stage21Act2 : BossModule { public Stage21Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs index 4bfe570e36..e09d96cdef 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs @@ -39,7 +39,7 @@ public Stage22Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8122)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8122, SortOrder = 1)] public class Stage22Act1 : BossModule { public Stage22Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs index d11c973042..5b8ebcdfc9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs @@ -81,7 +81,7 @@ public Stage22Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8123)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8123, SortOrder = 2)] public class Stage22Act2 : BossModule { public Stage22Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs index c37f23bc92..98d1b0158b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs @@ -64,7 +64,7 @@ public Stage24Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8127)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8127, SortOrder = 1)] public class Stage24Act1 : BossModule { public Stage24Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs index 98a1d9a434..29e16ec5d5 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs @@ -85,7 +85,7 @@ public Stage24Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8128)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8128, SortOrder = 2)] public class Stage24Act2 : BossModule { public Stage24Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs index 62e5743ac1..55a45cbfa8 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs @@ -116,7 +116,7 @@ public Stage24Act3States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8125)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8125, SortOrder = 3)] public class Stage24Act3 : BossModule { public Stage24Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs index 96367b3c02..b02ae782ea 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs @@ -107,7 +107,7 @@ public Stage25Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129, SortOrder = 1)] public class Stage25Act1 : BossModule { public Stage25Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs index 1db7625b51..c7b4625c56 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs @@ -86,7 +86,7 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129, SortOrder = 2)] public class Stage25Act2 : BossModule { public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs index 31a0b1cf15..b703811eb9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs @@ -139,9 +139,9 @@ public override void AddHints(BossModule module, int slot, Actor actor, TextHint } } -class Stage25Act2States : StateMachineBuilder +class Stage25Act3States : StateMachineBuilder { - public Stage25Act2States(BossModule module) : base(module) + public Stage25Act3States(BossModule module) : base(module) { TrivialPhase() .ActivateOnEnter() @@ -161,10 +161,10 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] -public class Stage25Act2 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129, SortOrder = 3)] +public class Stage25Act3 : BossModule { - public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) + public Stage25Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) { ActivateComponent(); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs index 8f43ba8e66..d27592480a 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs @@ -77,7 +77,7 @@ public Stage26Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9230)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9230, SortOrder = 1)] public class Stage26Act1 : BossModule { public Stage26Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs index 1c7a908609..2f0f1e01f1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs @@ -129,7 +129,7 @@ public Stage26Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9231)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9231, SortOrder = 2)] public class Stage26Act2 : BossModule { public Stage26Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index 67efa92b57..25d0af0750 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -1,9 +1,4 @@ -using Dalamud.Utility; -using Lumina.Excel; -using Lumina.Excel.GeneratedSheets; -using Lumina.Text; -using System.Globalization; -using System.Reflection; +using System.Reflection; namespace BossMod; @@ -26,6 +21,7 @@ public class Info public BossModuleInfo.GroupType GroupType; public uint GroupID; public uint NameID; + public int SortOrder; public bool CooldownPlanningSupported => ConfigType?.IsSubclassOf(typeof(CooldownPlanningConfigNode)) ?? false; @@ -42,43 +38,43 @@ public class Info if (statesType == null || !statesType.IsSubclassOf(typeof(StateMachineBuilder)) || statesType.GetConstructor(new[] { module }) == null) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated states type: it should be derived from StateMachineBuilder and have a constructor accepting module"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated states type: it should be derived from StateMachineBuilder and have a constructor accepting module"); return null; } if (configType != null && !configType.IsSubclassOf(typeof(ConfigNode))) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated config type: it should be derived from ConfigNode"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated config type: it should be derived from ConfigNode"); configType = null; } if (oidType != null && !oidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated object ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated object ID type: it should be an enum"); oidType = null; } if (aidType != null && !aidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated action ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated action ID type: it should be an enum"); aidType = null; } if (sidType != null && !sidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated status ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated status ID type: it should be an enum"); sidType = null; } if (tidType != null && !tidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated tether ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated tether ID type: it should be an enum"); tidType = null; } if (iidType != null && !iidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated icon ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated icon ID type: it should be an enum"); iidType = null; } @@ -91,7 +87,7 @@ public class Info } if (primaryOID == 0) { - Service.Log($"[ModuleRegistry] Module {module.Name} has no associated primary actor OID: either specify one explicitly or ensure OID enum has Boss entry"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has no associated primary actor OID: either specify one explicitly or ensure OID enum has Boss entry"); return null; } @@ -104,7 +100,7 @@ public class Info } if (expansion == BossModuleInfo.Expansion.Count) { - Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; consider fixing namespace or specifying value manually"); + Service.Log($"[ModuleRegistry] Module {module.FullName} does not have valid expansion assigned; consider fixing namespace or specifying value manually"); expansion = BossModuleInfo.Expansion.Global; } @@ -115,7 +111,7 @@ public class Info } if (category == BossModuleInfo.Category.Count) { - Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid category assigned; consider fixing namespace or specifying value manually"); + Service.Log($"[ModuleRegistry] Module {module.FullName} does not have valid category assigned; consider fixing namespace or specifying value manually"); category = BossModuleInfo.Category.Uncategorized; } @@ -124,7 +120,17 @@ public class Info var nameID = infoAttr?.NameID ?? 0; if (groupType == BossModuleInfo.GroupType.None && groupID == 0) { - Service.Log($"[ModuleRegistry] Module {module.Name} does not have group type/id assignments."); + Service.Log($"[ModuleRegistry] Module {module.FullName} does not have group type/id assignments."); + } + + var sortOrder = infoAttr?.SortOrder ?? 0; + if (sortOrder == 0 && int.TryParse(module.Name.SkipWhile(c => !char.IsAsciiDigit(c)).TakeWhile(char.IsAsciiDigit).ToArray(), out var inferredSortOrder)) + { + sortOrder = inferredSortOrder; + } + if (sortOrder == 0) + { + sortOrder = (int)primaryOID; } return new Info(module, statesType) @@ -142,6 +148,7 @@ public class Info GroupType = groupType, GroupID = groupID, NameID = nameID, + SortOrder = sortOrder, }; } diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs index 0465adcedd..efd8309c7c 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs @@ -66,7 +66,7 @@ public T01ADSStates(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1459)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1459, SortOrder = 1)] public class T01ADS : BossModule { public T01ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-3, 27), 7, 28)) { } diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs index 990bc044d4..c8a827f8a9 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs @@ -119,7 +119,7 @@ public class T01CaduceusConfig : CooldownPlanningConfigNode public T01CaduceusConfig() : base(50) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1466)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1466, SortOrder = 2)] public class T01Caduceus : BossModule { public T01Caduceus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-26, -407), 35, 43)) diff --git a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs index b9f260bcaf..3038b97305 100644 --- a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs @@ -158,7 +158,7 @@ public class T02ADSConfig : CooldownPlanningConfigNode public T02ADSConfig() : base(50) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1459)] +[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1459, SortOrder = 1)] public class T02ADS : BossModule { public T02ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 77), 18, 13)) { } @@ -177,7 +177,7 @@ public T02QuarantineNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1468)] +[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1468, SortOrder = 2)] public class T02QuarantineNode : BossModule { public T02QuarantineNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 112), 14, 13)) { } @@ -197,7 +197,7 @@ public T02AttackNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1469)] +[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1469, SortOrder = 3)] public class T02AttackNode : BossModule { public T02AttackNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-44, 94), 17)) { } @@ -219,7 +219,7 @@ public T02SanitaryNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1470)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1470, SortOrder = 4)] public class T02SanitaryNode : BossModule { public T02SanitaryNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-43, 52), 18, 15)) { } @@ -238,7 +238,7 @@ public T02MonitoringNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1471)] +[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1471, SortOrder = 5)] public class T02MonitoringNode : BossModule { public T02MonitoringNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 39), 17, 15)) { } @@ -257,7 +257,7 @@ public T02DefenseNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1472)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1472, SortOrder = 6)] public class T02DefenseNode : BossModule { public T02DefenseNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(46, 52), 17, 14)) { } @@ -277,7 +277,7 @@ public T02DisposalNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1473)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1473, SortOrder = 7)] public class T02DisposalNode : BossModule { public T02DisposalNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(41, 94), 14, 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs index e16054ae47..34e7a02788 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs @@ -130,7 +130,7 @@ public T04PortaDecumana1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137, SortOrder = 1)] public class T04PortaDecumana1 : BossModule { public T04PortaDecumana1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-772, -600), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs index 01adfe1c58..24372ab23a 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs @@ -181,7 +181,7 @@ public T04PortaDecumana2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137, SortOrder = 2)] public class T04PortaDecumana2 : BossModule { public T04PortaDecumana2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-704, 480), 20)) { } From 050b388f746ccf3ceb6c1a1f342f1d0b57754de6 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 22:31:05 +0000 Subject: [PATCH 05/11] More accessible config. --- BossMod/BossModule/BossModuleConfigWindow.cs | 34 +++++++++++ BossMod/BossModule/BossModuleMainWindow.cs | 10 +++- BossMod/Config/ConfigUI.cs | 61 ++++++++++---------- BossMod/Config/ModuleViewer.cs | 37 +++++++----- BossMod/Util/UIMisc.cs | 13 ++++- TODO | 2 +- 6 files changed, 111 insertions(+), 46 deletions(-) create mode 100644 BossMod/BossModule/BossModuleConfigWindow.cs diff --git a/BossMod/BossModule/BossModuleConfigWindow.cs b/BossMod/BossModule/BossModuleConfigWindow.cs new file mode 100644 index 0000000000..04bc75bf77 --- /dev/null +++ b/BossMod/BossModule/BossModuleConfigWindow.cs @@ -0,0 +1,34 @@ +using Dalamud.Interface.Utility.Raii; + +namespace BossMod; + +public class BossModuleConfigWindow : UIWindow +{ + private ModuleRegistry.Info _info; + private WorldState _ws; + private UITree _tree = new(); + + public BossModuleConfigWindow(ModuleRegistry.Info info, WorldState ws) : base($"{info.ModuleType.Name} config", true, new(1200, 800)) + { + _info = info; + _ws = ws; + } + + public override void Draw() + { + if (_info.ConfigType == null) + return; // nothing to do... + + using var tabs = ImRaii.TabBar("Tabs"); + if (tabs) + { + using (var tab = ImRaii.TabItem("Encounter-specific config")) + if (tab) + ConfigUI.DrawNode(Service.Config.Get(_info.ConfigType), Service.Config, _tree, _ws); + if (_ws.Party.Player() != null) + using (var tab = ImRaii.TabItem("Party roles assignment")) + if (tab) + ConfigUI.DrawNode(Service.Config.Get(), Service.Config, _tree, _ws); + } + } +} diff --git a/BossMod/BossModule/BossModuleMainWindow.cs b/BossMod/BossModule/BossModuleMainWindow.cs index 2fe90422d2..f6cd46cc0b 100644 --- a/BossMod/BossModule/BossModuleMainWindow.cs +++ b/BossMod/BossModule/BossModuleMainWindow.cs @@ -1,4 +1,5 @@ -using ImGuiNET; +using Dalamud.Interface; +using ImGuiNET; namespace BossMod; @@ -12,6 +13,7 @@ public class BossModuleMainWindow : UIWindow { _mgr = mgr; RespectCloseHotkey = false; + TitleBarButtons.Add(new() { Icon = FontAwesomeIcon.Cog, IconOffset = new(1), Click = _ => OpenModuleConfig() }); } public override void PreOpenCheck() @@ -94,4 +96,10 @@ private void DrawMovementHints(BossComponent.MovementHints? arrows, float y) Camera.Instance.DrawWorldLine(arrowStart - offset, end3, color); } } + + private void OpenModuleConfig() + { + if (_mgr.ActiveModule?.Info?.ConfigType != null) + new BossModuleConfigWindow(_mgr.ActiveModule.Info, _mgr.WorldState); + } } diff --git a/BossMod/Config/ConfigUI.cs b/BossMod/Config/ConfigUI.cs index e38f7f7793..ac2bb2fdc6 100644 --- a/BossMod/Config/ConfigUI.cs +++ b/BossMod/Config/ConfigUI.cs @@ -73,6 +73,29 @@ public void Draw() } } + public static void DrawNode(ConfigNode node, ConfigRoot root, UITree tree, WorldState ws) + { + // draw standard properties + foreach (var field in node.GetType().GetFields()) + { + var props = field.GetCustomAttribute(); + if (props == null) + continue; + + _ = field.GetValue(node) switch + { + bool v => DrawProperty(props, node, field, v), + Enum v => DrawProperty(props, node, field, v), + float v => DrawProperty(props, node, field, v), + GroupAssignment v => DrawProperty(props, node, field, v, root, tree, ws), + _ => false + }; + } + + // draw custom stuff + node.DrawCustom(tree, ws); + } + private static string GenerateNodeName(Type t) => t.Name.EndsWith("Config") ? t.Name.Remove(t.Name.Length - "Config".Length) : t.Name; private void SortByOrder(List nodes) @@ -86,32 +109,12 @@ private void DrawNodes(List nodes) { foreach (var n in _tree.Nodes(nodes, n => new(n.Name))) { - // draw standard properties - foreach (var field in n.Node.GetType().GetFields()) - { - var props = field.GetCustomAttribute(); - if (props == null) - continue; - - _ = field.GetValue(n.Node) switch - { - bool v => DrawProperty(props, n.Node, field, v), - Enum v => DrawProperty(props, n.Node, field, v), - float v => DrawProperty(props, n.Node, field, v), - GroupAssignment v => DrawProperty(props, n.Node, field, v), - _ => false - }; - } - - // draw custom stuff - n.Node.DrawCustom(_tree, _ws); - - // draw subnodes + DrawNode(n.Node, _root, _tree, _ws); DrawNodes(n.Children); } } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, bool v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, bool v) { var combo = member.GetCustomAttribute(); if (combo != null) @@ -133,7 +136,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, Enum v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, Enum v) { if (UICombo.Enum(props.Label, ref v)) { @@ -143,7 +146,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, float v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, float v) { var slider = member.GetCustomAttribute(); if (slider != null) @@ -168,15 +171,15 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, GroupAssignment v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, GroupAssignment v, ConfigRoot root, UITree tree, WorldState ws) { var group = member.GetCustomAttribute(); if (group == null) return false; - foreach (var tn in _tree.Node(props.Label, false, v.Validate() ? 0xffffffff : 0xff00ffff, () => DrawPropertyContextMenu(node, member, v))) + foreach (var tn in tree.Node(props.Label, false, v.Validate() ? 0xffffffff : 0xff00ffff, () => DrawPropertyContextMenu(node, member, v))) { - var assignments = _root.Get().SlotsPerAssignment(_ws.Party); + var assignments = root.Get().SlotsPerAssignment(ws.Party); if (ImGui.BeginTable("table", group.Names.Length + 2, ImGuiTableFlags.SizingFixedFit)) { foreach (var n in group.Names) @@ -206,7 +209,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field string name = r.ToString(); if (assignments.Length > 0) - name += $" ({_ws.Party[assignments[i]]?.Name})"; + name += $" ({ws.Party[assignments[i]]?.Name})"; ImGui.TableNextColumn(); ImGui.TextUnformatted(name); } @@ -216,7 +219,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private void DrawPropertyContextMenu(ConfigNode node, FieldInfo member, GroupAssignment v) + private static void DrawPropertyContextMenu(ConfigNode node, FieldInfo member, GroupAssignment v) { foreach (var preset in member.GetCustomAttributes()) { diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index 2ead81c04c..be5a27e4e4 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -1,4 +1,5 @@ -using Dalamud.Interface.Internal; +using Dalamud.Interface; +using Dalamud.Interface.Internal; using Dalamud.Interface.Utility.Raii; using ImGuiNET; using Lumina.Excel.GeneratedSheets; @@ -10,7 +11,7 @@ namespace BossMod; public class ModuleViewer : IDisposable { - private record struct ModuleInfo(Type Type, string Name, int SortOrder); + private record struct ModuleInfo(ModuleRegistry.Info Info, string Name, int SortOrder); private record struct ModuleGroupInfo(string Name, uint Id, uint SortOrder, IDalamudTextureWrap? Icon = null); private record struct ModuleGroup(ModuleGroupInfo Info, List Modules); @@ -98,7 +99,7 @@ public ModuleViewer() g.Modules.SortBy(m => m.SortOrder); foreach (var (m1, m2) in g.Modules.Pairwise()) if (m1.SortOrder == m2.SortOrder) - Service.Log($"[ModuleViewer] Same sort order between modules {m1.Type.FullName} and {m2.Type.FullName}"); + Service.Log($"[ModuleViewer] Same sort order between modules {m1.Info.ModuleType.FullName} and {m2.Info.ModuleType.FullName}"); } } } @@ -204,8 +205,16 @@ private void DrawModules(UITree _tree) ImGui.TableNextColumn(); foreach (var _ in _tree.Node($"{group.Info.Name}###{i}/{j}/{group.Info.Id}")) + { foreach (var mod in group.Modules) - ImGui.TextUnformatted($"{mod.Name} [{mod.Type.Name}]"); + { + using (ImRaii.Disabled(mod.Info.ConfigType == null)) + if (UIMisc.IconButton(FontAwesomeIcon.Cog, "cfg", $"###{mod.Info.ModuleType.FullName}")) + new BossModuleConfigWindow(mod.Info, new(TimeSpan.TicksPerSecond, "fake")); + ImGui.SameLine(); + ImGui.TextUnformatted($"{mod.Name} [{mod.Info.ModuleType.Name}]"); + } + } } } } @@ -238,38 +247,38 @@ private void Customize((string name, IDalamudTextureWrap? icon)[] array, int ele var cfcRow = Service.LuminaRow(module.GroupID); var cfcSort = cfcRow?.SortKey ?? 0u; var cfcName = FixCase(cfcRow?.Name); - return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.MaskedCarnivale: groupId |= module.GroupID; var mcRow = Service.LuminaRow(module.GroupID); var mcSort = uint.Parse((mcRow?.ShortCode ?? "").Substring(3)); // 'aozNNN' var mcName = $"Stage {mcSort}: {FixCase(mcRow?.Name)}"; - return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new(mcName, groupId, mcSort), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.RemovedUnreal: - return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new("Removed Content", groupId, groupId), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.Quest: var questRow = Service.LuminaRow(module.GroupID); groupId |= questRow?.JournalGenre.Row ?? 0; var questCategoryName = questRow?.JournalGenre.Value?.Name ?? ""; - return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); + return (new(questCategoryName, groupId, groupId), new(module, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Fate: var fateRow = Service.LuminaRow(module.GroupID); - return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); + return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Hunt: groupId |= module.GroupID; - return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.BozjaCE: groupId |= module.GroupID; var ceName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} CE"; - return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); + return (new(ceName, groupId, groupId), new(module, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.BozjaDuel: groupId |= module.GroupID; var duelName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} Duel"; - return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); + return (new(duelName, groupId, groupId), new(module, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.GoldSaucer: - return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.SortOrder)); + return (new("Gold saucer", groupId, groupId), new(module, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.SortOrder)); default: - return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new("Ungrouped", groupId, groupId), new(module, BNpcName(module.NameID), module.SortOrder)); } } } diff --git a/BossMod/Util/UIMisc.cs b/BossMod/Util/UIMisc.cs index 16582d7b40..2a45505c5a 100644 --- a/BossMod/Util/UIMisc.cs +++ b/BossMod/Util/UIMisc.cs @@ -1,4 +1,6 @@ -using Dalamud.Interface.Internal; +using Dalamud.Interface; +using Dalamud.Interface.Internal; +using Dalamud.Interface.Utility.Raii; using ImGuiNET; namespace BossMod; @@ -55,4 +57,13 @@ public static bool ImageToggleButton(IDalamudTextureWrap? icon, Vector2 size, bo return ImGui.Button("", size); } } + + // works around issues with fonts in uidev + public static unsafe bool IconButton(FontAwesomeIcon icon, string fallback, string text) + { + if (Service.PluginInterface == null) + return ImGui.Button(fallback + text); + using var scope = ImRaii.PushFont(UiBuilder.IconFont); + return ImGui.Button(icon.ToIconString() + text); + } } diff --git a/TODO b/TODO index 8a52a9a756..3b8f3dc762 100644 --- a/TODO +++ b/TODO @@ -24,7 +24,7 @@ general: -- button to 'keep' last (add as temp to replay manager) or to 'save' last (save into replay file) - better timing tracking for: statuses, gauges, cooldowns, cast times, anim lock, ... - constrain bossmodules to zone id (e.g. for T04) -- module registry improvements +- revise module categories - consider merging fates/hunts/quests/gold saucer?/pvp? into outdoor?/casual? - refactor pendingeffects boss modules: From cae72d38d71ba04a480fc175abf6aea1ee75b17f Mon Sep 17 00:00:00 2001 From: LTS-FFXIV <127939494+LTS-FFXIV@users.noreply.github.com> Date: Sun, 31 Mar 2024 05:41:12 -0500 Subject: [PATCH 06/11] cleanup after merge --- .../Alliance/A31Thaliak/A31Thaliak.cs | 2 +- .../Alliance/A32Llymlaen/A32Llymlaen.cs | 2 +- .../Endwalker/Alliance/A33Oschon/A33Oschon.cs | 2 +- .../Alliance/A34OschonBig/A34OschonBig.cs | 2 +- .../Alliance/A35Eulogia/A35Eulogia.cs | 2 +- .../EurekaOrthos/Floors61-70/DD70Aeturna.cs | 214 ------------------ 6 files changed, 5 insertions(+), 219 deletions(-) delete mode 100644 BossMod/Modules/Endwalker/DeepDungeons/EurekaOrthos/Floors61-70/DD70Aeturna.cs diff --git a/BossMod/Modules/Endwalker/Alliance/A31Thaliak/A31Thaliak.cs b/BossMod/Modules/Endwalker/Alliance/A31Thaliak/A31Thaliak.cs index 67d3d0a331..9a33af36f2 100644 --- a/BossMod/Modules/Endwalker/Alliance/A31Thaliak/A31Thaliak.cs +++ b/BossMod/Modules/Endwalker/Alliance/A31Thaliak/A31Thaliak.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Alliance.A31Thaliak { - [ModuleInfo(CFCID = 962, PrimaryActorOID = 0x404C)] + [ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, PrimaryActorOID = 0x404C)] public class A31Thaliak : BossModule { public static ArenaBoundsSquare BoundsSquare = new ArenaBoundsSquare(new(-945.006f, 944.976f), 24f); diff --git a/BossMod/Modules/Endwalker/Alliance/A32Llymlaen/A32Llymlaen.cs b/BossMod/Modules/Endwalker/Alliance/A32Llymlaen/A32Llymlaen.cs index 3ea5e7032a..33395fc6e1 100644 --- a/BossMod/Modules/Endwalker/Alliance/A32Llymlaen/A32Llymlaen.cs +++ b/BossMod/Modules/Endwalker/Alliance/A32Llymlaen/A32Llymlaen.cs @@ -6,7 +6,7 @@ namespace BossMod.Endwalker.Alliance.A32Llymlaen { // - [ModuleInfo(CFCID = 962, PrimaryActorOID = 0x4024)] + [ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, PrimaryActorOID = 0x4024)] public class A32Llymlaen : BossModule { public A32Llymlaen(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-0.015f, -900.023f),20, 30)) diff --git a/BossMod/Modules/Endwalker/Alliance/A33Oschon/A33Oschon.cs b/BossMod/Modules/Endwalker/Alliance/A33Oschon/A33Oschon.cs index fc2bd52482..126c2314e9 100644 --- a/BossMod/Modules/Endwalker/Alliance/A33Oschon/A33Oschon.cs +++ b/BossMod/Modules/Endwalker/Alliance/A33Oschon/A33Oschon.cs @@ -17,7 +17,7 @@ public FlintedFoehnStack() : base(ActionID.MakeSpell(AID.FlintedFoehnStack), 6) } - [ModuleInfo(CFCID = 962, PrimaryActorOID = 0x406D)] + [ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, PrimaryActorOID = 0x406D)] public class A33Oschon : BossModule { public A33Oschon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-0.015f, 749.996f), 25, 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A34OschonBig/A34OschonBig.cs b/BossMod/Modules/Endwalker/Alliance/A34OschonBig/A34OschonBig.cs index 198ab19fb0..8b40efb1e7 100644 --- a/BossMod/Modules/Endwalker/Alliance/A34OschonBig/A34OschonBig.cs +++ b/BossMod/Modules/Endwalker/Alliance/A34OschonBig/A34OschonBig.cs @@ -7,7 +7,7 @@ namespace BossMod.Endwalker.Alliance.A34OschonBig { - [ModuleInfo(CFCID = 962, PrimaryActorOID = 0x406F)] + [ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, PrimaryActorOID = 0x406F)] public class A34Oschon : BossModule { public A34Oschon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-0.015f, 749.996f), 20, 20)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A35Eulogia/A35Eulogia.cs b/BossMod/Modules/Endwalker/Alliance/A35Eulogia/A35Eulogia.cs index 1983d0e092..03ddeb0330 100644 --- a/BossMod/Modules/Endwalker/Alliance/A35Eulogia/A35Eulogia.cs +++ b/BossMod/Modules/Endwalker/Alliance/A35Eulogia/A35Eulogia.cs @@ -23,7 +23,7 @@ public override void OnEventCast(BossModule module, Actor caster, ActorCastEvent } } - [ModuleInfo(CFCID = 962, PrimaryActorOID = 0x4086)] + [ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 962, PrimaryActorOID = 0x4086)] public class A35Eulogia : BossModule { public A35Eulogia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(944.976f, -945.006f), 30f)) { } diff --git a/BossMod/Modules/Endwalker/DeepDungeons/EurekaOrthos/Floors61-70/DD70Aeturna.cs b/BossMod/Modules/Endwalker/DeepDungeons/EurekaOrthos/Floors61-70/DD70Aeturna.cs deleted file mode 100644 index fa5744a464..0000000000 --- a/BossMod/Modules/Endwalker/DeepDungeons/EurekaOrthos/Floors61-70/DD70Aeturna.cs +++ /dev/null @@ -1,214 +0,0 @@ -// CONTRIB: made by legendoficeman, changes by Malediktus -using BossMod; - -namespace BossMod.Endwalker.DeepDungeons.EurekaOrthos.Floors61to70.DD30Aeturna -{ - public enum OID : uint - { - Boss = 0x3D1B, // R5.950, x1 - AllaganCrystal = 0x3D1C, // R1.500, x4 - Helper = 0x233C, // R0.500, x12, 523 type - }; - - - public enum AID : uint - { - AutoAttack = 6497, // 3D1B->player, no cast, single-target - FallingRock = 31441, // 233C->self, 2.5s cast, range 3 circle - Ferocity = 31442, // 3D1B->self, 5.0s cast, single-target - FerocityTetherStretchSuccess = 31443, // 3D1B->player, no cast, single-target - FerocityTetherStretchFail = 31444, // 3D1B->player, no cast, single-target - Impact = 31438, // 3D1C->self, 2.5s cast, range 5 circle - PreternaturalTurnCircle = 31436, // 3D1B->self, 6.0s cast, range 15 circle - PreternaturalTurnDonut = 31437, // 3D1B->self, 6.0s cast, range 6-30 donut - Roar = 31435, // 3D1B->self, 5.0s cast, range 60 circle - ShatterCircle = 31439, // 3D1C->self, 3.0s cast, range 8 circle - ShatterCone = 31440, // 3D1C->self, 2.5s cast, range 18+R 150-degree cone - SteelClaw = 31445, // 3D1B->player, 5.0s cast, single-target - Teleport = 31446, // 3D1B->location, no cast, single-target, boss teleports mid - }; - - public enum IconID : uint - { - tankbuster = 198, // player - }; - - public enum TetherID : uint - { - FerocityTetherGood = 1, // Boss->player - FerocityTetherStretch = 57, // Boss->player - }; - - class SteelClaw : Components.SingleTargetDelayableCast - { - public SteelClaw() : base(ActionID.MakeSpell(AID.SteelClaw)) { } - } - - class FerocityGood : Components.BaitAwayTethers //TODO: consider generalizing stretched tethers? - { - private ulong target; - public FerocityGood() : base(new AOEShapeCone(0, 0.Degrees()), (uint)TetherID.FerocityTetherGood) { } - public override void OnTethered(BossModule module, Actor source, ActorTetherInfo tether) - { - base.OnTethered(module, source, tether); - if (tether.ID == (uint)TetherID.FerocityTetherGood) - target = tether.Target; - } - - public override void DrawArenaForeground(BossModule module, int pcSlot, Actor pc, MiniArena arena) - { - if (DrawTethers && target == pc.InstanceID && CurrentBaits.Count > 0) - { - foreach (var b in ActiveBaits) - { - if (arena.Config.ShowOutlinesAndShadows) - arena.AddLine(b.Source.Position, b.Target.Position, 0xFF000000, 2); - arena.AddLine(b.Source.Position, b.Target.Position, ArenaColor.Safe); - } - } - } - - public override void AddHints(BossModule module, int slot, Actor actor, TextHints hints, MovementHints? movementHints) - { - if (target == actor.InstanceID && CurrentBaits.Count > 0) - hints.Add("Tether is stretched!", false); - } - - public override void AddAIHints(BossModule module, int slot, Actor actor, PartyRolesConfig.Assignment assignment, AIHints hints) - { - base.AddAIHints(module, slot, actor, assignment, hints); - if (target == actor.InstanceID && CurrentBaits.Count > 0) - hints.AddForbiddenZone(ShapeDistance.Circle(module.PrimaryActor.Position, 15)); - } - } - - class FerocityBad : Components.BaitAwayTethers - { - private ulong target; - public FerocityBad() : base(new AOEShapeCone(0, 0.Degrees()), (uint)TetherID.FerocityTetherStretch) { } - public override void OnTethered(BossModule module, Actor source, ActorTetherInfo tether) - { - base.OnTethered(module, source, tether); - if (tether.ID == (uint)TetherID.FerocityTetherStretch) - target = tether.Target; - } - - public override void DrawArenaForeground(BossModule module, int pcSlot, Actor pc, MiniArena arena) - { - if (DrawTethers && target == pc.InstanceID && CurrentBaits.Count > 0) - { - foreach (var b in ActiveBaits) - { - if (arena.Config.ShowOutlinesAndShadows) - arena.AddLine(b.Source.Position, b.Target.Position, 0xFF000000, 2); - arena.AddLine(b.Source.Position, b.Target.Position, ArenaColor.Danger); - } - } - } - - public override void AddHints(BossModule module, int slot, Actor actor, TextHints hints, MovementHints? movementHints) - { - if (target == actor.InstanceID && CurrentBaits.Count > 0) - hints.Add("Stretch tether further!"); - } - - public override void AddAIHints(BossModule module, int slot, Actor actor, PartyRolesConfig.Assignment assignment, AIHints hints) - { - base.AddAIHints(module, slot, actor, assignment, hints); - if (target == actor.InstanceID && CurrentBaits.Count > 0) - hints.AddForbiddenZone(ShapeDistance.Circle(module.PrimaryActor.Position, 15)); - } - } - - class PreternaturalTurnCircle : Components.SelfTargetedAOEs - { - public PreternaturalTurnCircle() : base(ActionID.MakeSpell(AID.PreternaturalTurnCircle), new AOEShapeCircle(15)) { } - } - - class PreternaturalTurnDonut : Components.SelfTargetedAOEs - { - public PreternaturalTurnDonut() : base(ActionID.MakeSpell(AID.PreternaturalTurnDonut), new AOEShapeDonut(6, 30)) { } - } - - class Shatter : Components.GenericAOEs - { - private static readonly AOEShapeCone cone = new(23.95f, 75.Degrees()); - private static readonly AOEShapeCircle circle = new(8); - private bool FerocityCasted; - public readonly List _crystals = []; - private readonly List _aoes = []; - - public override IEnumerable ActiveAOEs(BossModule module, int slot, Actor actor) => _aoes.Take(4); - - public override void OnCastStarted(BossModule module, Actor caster, ActorCastInfo spell) - { - if ((AID)spell.Action.ID == AID.Impact) - _crystals.Add(caster); - if ((AID)spell.Action.ID == AID.Ferocity) - FerocityCasted = true; - if (!FerocityCasted && (AID)spell.Action.ID == AID.PreternaturalTurnDonut) - foreach (var c in module.Enemies(OID.AllaganCrystal)) - _aoes.Add(new (circle, c.Position, activation: spell.NPCFinishAt.AddSeconds(0.5f))); - if (!FerocityCasted && (AID)spell.Action.ID == AID.PreternaturalTurnCircle) - foreach (var c in module.Enemies(OID.AllaganCrystal)) - _aoes.Add(new (cone, c.Position, c.Rotation, spell.NPCFinishAt.AddSeconds(0.5f))); - } - - public override void OnCastFinished(BossModule module, Actor caster, ActorCastInfo spell) - { - if ((AID)spell.Action.ID is AID.ShatterCircle or AID.ShatterCone) - { - _aoes.Clear(); - _crystals.Clear(); - } - if ((AID)spell.Action.ID is AID.PreternaturalTurnCircle or AID.PreternaturalTurnDonut) - FerocityCasted = false; - } - } - - class Roar : Components.RaidwideCast - { - public Roar() : base(ActionID.MakeSpell(AID.Roar)) { } - } - - class FallingRock : Components.SelfTargetedAOEs - { - public FallingRock() : base(ActionID.MakeSpell(AID.FallingRock), new AOEShapeCircle(3)) { } - } - - class Impact : Components.SelfTargetedAOEs - { - public Impact() : base(ActionID.MakeSpell(AID.Impact), new AOEShapeCircle(5)) { } - } - - class DD70AeturnaStates : StateMachineBuilder - { - public DD70AeturnaStates(BossModule module) : base(module) - { - TrivialPhase() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter() - .ActivateOnEnter(); - } - } - - [ModuleInfo(CFCID = 903, NameID = 12246)] - public class DD70Aeturna : BossModule - { - public DD70Aeturna(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-300, -300), 20)) { } - - protected override void DrawEnemies(int pcSlot, Actor pc) - { - Arena.Actor(PrimaryActor, ArenaColor.Enemy); - if (FindComponent() != null) - foreach (var s in FindComponent()!._crystals) - Arena.Actor(s, ArenaColor.Object, true); - } - } -} \ No newline at end of file From 2dd07b3521af4e32474e2bac2d8d1c1e119548ce Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 00:35:12 +0000 Subject: [PATCH 07/11] Module viewer refactoring WIP. - refactored expansions --- BossMod/BossModule/BossModule.cs | 22 ---- BossMod/BossModule/BossModuleInfo.cs | 41 +++++++ BossMod/Config/ModuleViewer.cs | 107 ++++++++++-------- .../Endwalker/Unreal/Un1Ultima/Un1Ultima.cs | 2 +- .../Unreal/Un2Sephirot/Un2Sephirot.cs | 2 +- .../Endwalker/Unreal/Un3Sophia/Un3Sophia.cs | 2 +- .../Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs | 2 +- .../Endwalker/Unreal/Un5Thordan/Un5Thordan.cs | 2 +- BossMod/Modules/Events/FF15Collab/MA-x.cs | 4 +- .../TheSliceIsRight/TheSliceIsRight.cs | 2 +- BossMod/Modules/ModuleRegistry.cs | 104 +++++++++++------ .../Shadowbringers/FATE/Archaeotania.cs | 2 +- .../Modules/Shadowbringers/FATE/Formidable.cs | 4 +- BossMod/Util/UIMisc.cs | 8 ++ 14 files changed, 190 insertions(+), 114 deletions(-) create mode 100644 BossMod/BossModule/BossModuleInfo.cs diff --git a/BossMod/BossModule/BossModule.cs b/BossMod/BossModule/BossModule.cs index 00cdf0a633..b35c5f7088 100644 --- a/BossMod/BossModule/BossModule.cs +++ b/BossMod/BossModule/BossModule.cs @@ -2,28 +2,6 @@ namespace BossMod; -// attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases -[AttributeUsage(AttributeTargets.Class, Inherited = false)] -public class ModuleInfoAttribute : Attribute -{ - public Type? StatesType; // default: ns.xxxStates - public Type? ConfigType; // default: ns.xxxConfig - public Type? ObjectIDType; // default: ns.OID - public Type? ActionIDType; // default: ns.AID - public Type? StatusIDType; // default: ns.SID - public Type? TetherIDType; // default: ns.TetherID - public Type? IconIDType; // default: ns.IconID - public string? DisplayName; - public uint ExVersion; // default: 0 - public uint QuestID; // default: 0 - public uint DynamicEventID; // default: 0 - public uint FateID; // default: 0 - public uint NotoriousMonsterID; // default: 0 - public uint NameID; // default: 0 - public uint CFCID; // default: 0 - public uint PrimaryActorOID; // default: OID.Boss -} - // base for boss modules - provides all the common features, so that look is standardized // by default, module activates (transitions to phase 0) whenever "primary" actor becomes both targetable and in combat (this is how we detect 'pull') - though this can be overridden if needed public abstract class BossModule : IDisposable diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs new file mode 100644 index 0000000000..36cc6dbcb8 --- /dev/null +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -0,0 +1,41 @@ +using static BossMod.BossModuleInfo; + +namespace BossMod; + +public static class BossModuleInfo +{ + public enum Expansion : uint + { + RealmReborn, + Heavensward, + Stormblood, + Shadowbringers, + Endwalker, + + Count + } +} + + + +// attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases +[AttributeUsage(AttributeTargets.Class, Inherited = false)] +public class ModuleInfoAttribute : Attribute +{ + public Type? StatesType; // default: ns.xxxStates + public Type? ConfigType; // default: ns.xxxConfig + public Type? ObjectIDType; // default: ns.OID + public Type? ActionIDType; // default: ns.AID + public Type? StatusIDType; // default: ns.SID + public Type? TetherIDType; // default: ns.TetherID + public Type? IconIDType; // default: ns.IconID + public string? DisplayName; + public Expansion Expansion = Expansion.Count; + public uint QuestID; // default: 0 + public uint DynamicEventID; // default: 0 + public uint FateID; // default: 0 + public uint NotoriousMonsterID; // default: 0 + public uint NameID; // default: 0 + public uint CFCID; // default: 0 + public uint PrimaryActorOID; // default: OID.Boss +} diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index 491e2ae56d..2ccccaf764 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -12,75 +12,75 @@ namespace BossMod; public class ModuleViewer { private const int SpaceBetweenFilterWidgets = 3; - private const int IconSize = 30; - private readonly Dictionary ExpansionFilter; + + private BitMask _availableExpansions; + private BitMask _filterExpansions; private readonly Dictionary ContentFilter; - private readonly Lumina.Excel.ExcelSheet _exSheet = Service.LuminaGameData!.GetExcelSheet()!; - private Dictionary exversionToIconID = new() - { - {0, 61875}, - {1, 61876}, - {2, 61877}, - {3, 61878}, - {4, 61879}, - }; + private Vector2 _iconSize = new(30, 30); public ModuleViewer() { - ExpansionFilter = ModuleRegistry.AvailableExpansions.ToDictionary(e => e, e => true); + foreach (var m in ModuleRegistry.RegisteredModules.Values) + _availableExpansions.Set((int)m.Expansion); + _availableExpansions.Clear((int)BossModuleInfo.Expansion.Count); + ContentFilter = ModuleRegistry.AvailableContent.ToDictionary(c => c, c => true); } - public string GetExpansionName(uint id) => _exSheet.GetRow(id)!.Name; - - public static IDalamudTextureWrap? GetIcon(int iconId) => Service.Texture.GetIcon((uint)iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes); - public static IDalamudTextureWrap? GetIcon(uint iconId) => GetIcon((int)iconId); - public void Draw(UITree _tree) { using (var group = ImRaii.Group()) - { - using var table = ImRaii.Table("Filters", 1, ImGuiTableFlags.BordersOuter | ImGuiTableFlags.NoHostExtendX | ImGuiTableFlags.SizingFixedSame | ImGuiTableFlags.ScrollY); - if (!table) - return; - - ImGui.TableNextColumn(); - ImGui.TableHeader("Expansion"); - ImGui.TableNextRow(ImGuiTableRowFlags.None); - ImGui.TableNextColumn(); - DrawExpansionFilters(); - - ImGui.TableNextRow(); - - ImGui.TableNextColumn(); - ImGui.TableHeader("Content"); - ImGui.TableNextRow(ImGuiTableRowFlags.None); - ImGui.TableNextColumn(); - DrawContentTypeFilters(); - } + DrawFilters(); ImGui.SameLine(); using (var group = ImRaii.Group()) DrawModules(_tree); } - public void DrawExpansionFilters() + private void DrawFilters() + { + using var table = ImRaii.Table("Filters", 1, ImGuiTableFlags.BordersOuter | ImGuiTableFlags.NoHostExtendX | ImGuiTableFlags.SizingFixedSame | ImGuiTableFlags.ScrollY); + if (!table) + return; + + ImGui.TableNextColumn(); + ImGui.TableHeader("Expansion"); + ImGui.TableNextRow(ImGuiTableRowFlags.None); + ImGui.TableNextColumn(); + DrawExpansionFilters(); + + ImGui.TableNextRow(); + + ImGui.TableNextColumn(); + ImGui.TableHeader("Content"); + ImGui.TableNextRow(ImGuiTableRowFlags.None); + ImGui.TableNextColumn(); + DrawContentTypeFilters(); + } + + private void DrawExpansionFilters() { - foreach (var expac in ModuleRegistry.AvailableExpansions) + foreach (var e in _availableExpansions.SetBits()) { - UIMisc.ImageToggleButton(GetIcon(exversionToIconID[expac]), new Vector2(IconSize, IconSize), ExpansionFilter[expac], GetExpansionName(expac)); + var expansion = (BossModuleInfo.Expansion)e; + UIMisc.ImageToggleButton(GetExpansionIcon(expansion), _iconSize, !_filterExpansions[e], GetExpansionName(expansion)); if (ImGui.IsItemClicked()) - ExpansionFilter[expac] = !ExpansionFilter[expac]; + { + _filterExpansions.Toggle(e); + } if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) - ExpansionFilter.Keys.Except([expac]).ToList().ForEach(k => ExpansionFilter[k] = !ExpansionFilter[k]); + { + _filterExpansions ^= _availableExpansions; + _filterExpansions.Toggle(e); + } } } - public void DrawContentTypeFilters() + private void DrawContentTypeFilters() { foreach (var cont in ModuleRegistry.AvailableContentIcons) { - UIMisc.ImageToggleButton(GetIcon(cont.Value), new Vector2(IconSize, IconSize), ContentFilter[cont.Key], cont.Key); + UIMisc.ImageToggleButton(GetIcon(cont.Value), _iconSize, ContentFilter[cont.Key], cont.Key); if (ImGui.IsItemClicked()) ContentFilter[cont.Key] = !ContentFilter[cont.Key]; if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) @@ -88,7 +88,7 @@ public void DrawContentTypeFilters() } } - public void DrawModules(UITree _tree) + private void DrawModules(UITree _tree) { using var table = ImRaii.Table("ModulesTable", 2, ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.ScrollX | ImGuiTableFlags.NoHostExtendX); if (!table) @@ -102,14 +102,14 @@ private void DrawRows(IEnumerable enumerable, UITree _tree) { foreach (var mod in enumerable) { - if (!ContentFilter[mod.ContentType ?? new()] || !ExpansionFilter[mod.ExVersion]) + if (!ContentFilter[mod.ContentType ?? new()] || _filterExpansions[(int)mod.Expansion]) continue; ImGui.TableNextRow(); ImGui.TableNextColumn(); - ImGui.Image(GetIcon(exversionToIconID[mod.ExVersion])!.ImGuiHandle, new Vector2(36)); + UIMisc.Image(GetExpansionIcon(mod.Expansion), new(36)); ImGui.SameLine(); - ImGui.Image(GetIcon(mod.ContentIcon)!.ImGuiHandle, new Vector2(36)); + UIMisc.Image(GetIcon(mod.ContentIcon), new(36)); ImGui.TableNextColumn(); foreach (var _ in _tree.Node($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.DisplayName!)}##{mod.PrimaryActorOID}")) DrawBosses(ModuleRegistry.RegisteredModules.Values, mod.DisplayName ?? new()); @@ -122,4 +122,17 @@ private void DrawBosses(IEnumerable modules, SeString name) if (!mod.BossName!.RawString.IsNullOrEmpty()) ImGui.TextUnformatted($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.BossName)}"); } + + private string GetExpansionName(BossModuleInfo.Expansion expansion) => Service.LuminaRow((uint)expansion)?.Name ?? expansion.ToString(); + private IDalamudTextureWrap? GetExpansionIcon(BossModuleInfo.Expansion expansion) => GetIcon(expansion switch + { + BossModuleInfo.Expansion.RealmReborn => 61875, + BossModuleInfo.Expansion.Heavensward => 61876, + BossModuleInfo.Expansion.Stormblood => 61877, + BossModuleInfo.Expansion.Shadowbringers => 61878, + BossModuleInfo.Expansion.Endwalker => 61879, + _ => 0, + }); + + private static IDalamudTextureWrap? GetIcon(uint iconId) => iconId != 0 ? Service.Texture.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes) : null; } diff --git a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs index 1cc9b9edb8..22406a1dad 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs @@ -33,7 +33,7 @@ public Un1UltimaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 825, NameID = 3632, ExVersion = 4, DisplayName = "Ultima's Bane (Unreal)")] +[ModuleInfo(CFCID = 825, NameID = 3632, DisplayName = "Ultima's Bane (Unreal)")] public class Un1Ultima : BossModule { public Un1Ultima(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs index d1ac94363d..47b5677dff 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs @@ -56,7 +56,7 @@ class P3PillarOfSeverity : Components.CastCounter public P3PillarOfSeverity() : base(ActionID.MakeSpell(AID.PillarOfSeverityAOE)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 875, NameID = 4776, ExVersion = 4, DisplayName = "Containment Bay S1T7 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 875, NameID = 4776, DisplayName = "Containment Bay S1T7 (Unreal)")] public class Un2Sephirot : BossModule { public Actor? BossP1() => PrimaryActor.IsDestroyed ? null : PrimaryActor; diff --git a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs index dca6cd430f..9d38341bb8 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs @@ -72,7 +72,7 @@ public class Un3SophiaConfig : CooldownPlanningConfigNode public Un3SophiaConfig() : base(90) { } } -[ModuleInfo(CFCID = 926, NameID = 5199, ExVersion = 4, DisplayName = "Containment Bay P1T6 (Unreal)")] +[ModuleInfo(CFCID = 926, NameID = 5199, DisplayName = "Containment Bay P1T6 (Unreal)")] public class Un3Sophia : BossModule { public Un3Sophia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 0), 20, 15)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs index ca421f59b8..c09df1ec0d 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs @@ -66,7 +66,7 @@ public class Un4ZurvanConfig : CooldownPlanningConfigNode public Un4ZurvanConfig() : base(90) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 951, NameID = 5567, ExVersion = 4, DisplayName = "Containment Bay Z1T9 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 951, NameID = 5567, DisplayName = "Containment Bay Z1T9 (Unreal)")] public class Un4Zurvan : BossModule { private Actor? _bossP2; diff --git a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs index bcb5ee7a75..c0d2904606 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs @@ -72,7 +72,7 @@ public class Un5ThordanConfig : CooldownPlanningConfigNode public Un5ThordanConfig() : base(90) { } } -[ModuleInfo(CFCID = 963, NameID = 3632, ExVersion = 4)] +[ModuleInfo(CFCID = 963, NameID = 3632)] public class Un5Thordan : BossModule { public Un5Thordan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/Events/FF15Collab/MA-x.cs b/BossMod/Modules/Events/FF15Collab/MA-x.cs index 8ae0dc6da1..266bef2c16 100644 --- a/BossMod/Modules/Events/FF15Collab/MA-x.cs +++ b/BossMod/Modules/Events/FF15Collab/MA-x.cs @@ -8,6 +8,7 @@ public enum OID : uint Helper = 0x233C, Noctis = 0x2529, } + public enum AID : uint { AutoAttack = 14675, // 252A->player/Noctis, no cast, single-target @@ -46,10 +47,11 @@ public MAxStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1409, NameID = 7898, ExVersion = 0)] +[ModuleInfo(FateID = 1409, NameID = 7898, Expansion = BossModuleInfo.Expansion.RealmReborn)] public class MAx : BossModule { public MAx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(295, -22), 25)) { } + protected override void DrawEnemies(int pcSlot, Actor pc) { Arena.Actor(PrimaryActor, ArenaColor.Enemy); diff --git a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs b/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs index 7ea0c5ed34..c63300e6cd 100644 --- a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs +++ b/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs @@ -142,7 +142,7 @@ public TheSliceIsRightStates(BossModule module) : base(module) } } -[ModuleInfo(NameID = 9066)] //GoldSaucerTextData ID 181 +[ModuleInfo(NameID = 9066, Expansion = BossModuleInfo.Expansion.Shadowbringers)] //GoldSaucerTextData ID 181 public class TheSliceIsRight : BossModule { public TheSliceIsRight(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(70.5f, -36), 15)) { } diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index ae7f3121ec..0274443856 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -22,8 +22,8 @@ public class Info public Type? IconIDType; public uint PrimaryActorOID; + public BossModuleInfo.Expansion Expansion; public uint CFCID; - public uint ExVersion; public uint ContentIcon; public SeString? ContentType; public SeString? DisplayName; @@ -135,16 +135,15 @@ public bool IsRemovedContent() return null; } + var expansion = infoAttr?.Expansion ?? BossModuleInfo.Expansion.Count; uint nameID = infoAttr?.NameID ?? 0; uint nmID = infoAttr?.NotoriousMonsterID ?? 0; uint fateID = infoAttr?.FateID ?? 0; uint dynamicEventID = infoAttr?.DynamicEventID ?? 0; uint cfcID = infoAttr?.CFCID ?? 0; uint questID = infoAttr?.QuestID ?? 0; - uint exVersion = infoAttr?.ExVersion ?? 69; SeString displayName = new SeString(infoAttr?.DisplayName ?? string.Empty); - uint _exVersion = exVersion; SeString _displayName = displayName; bool uncatalogued = (cfcID == 0 && nameID == 0 && nmID == 0 && fateID == 0 && dynamicEventID == 0 && questID == 0) || (cfcID != 0 && _cfcSheet.GetRow(cfcID)!.ShortCode.RawString.IsNullOrEmpty()); @@ -163,7 +162,8 @@ public bool IsRemovedContent() { var cfcRow = _cfcSheet.GetRow(cfcID)!; contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); - exVersion = cfcRow.TerritoryType?.Value?.ExVersion.Value?.RowId ?? 0; + if (expansion == BossModuleInfo.Expansion.Count && cfcRow.TerritoryType.Value is var terr && terr != null) + expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; displayName = cfcRow.Name; if (cfcID is 735 or 760 or 761 or 778) // bozja et al @@ -194,9 +194,9 @@ public bool IsRemovedContent() //displayName = new SeString($"{displayName} ({huntRank} Rank)"); contentType = _playStyleSheet.GetRow(10)!.Name; contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; - foreach (var row in _nmtSheet) - if (row.Monster.Contains((ushort)nmID)) - exVersion = _territorySheet.FirstOrDefault(x => x.Unknown42 == row.RowId)?.ExVersion.Value?.RowId ?? 0; + + if (expansion == BossModuleInfo.Expansion.Count && _notoriousMonsterToTerritory.TryGetValue(nmID, out var terr)) + expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; } // ideally you could parse the location field to get the exversion in the fate sheet but that requires parsing lgb files @@ -214,14 +214,29 @@ public bool IsRemovedContent() displayName = forayName = _dynamicEventSheet.GetRow(dynamicEventID)!.Name; } - if (questID != 0) + if (_questSheet.GetRow(questID) is var quest && quest != null) { contentType = _contentTypeSheet.GetRow(7)!.Name; contentIcon = _contentTypeSheet.GetRow(7)!.Icon; - displayName = _questSheet.GetRow(questID)!.Name; - exVersion = _questSheet.GetRow(questID)!.Expansion.Value?.RowId ?? 0; + displayName = quest.Name; + if (expansion == BossModuleInfo.Expansion.Count) + expansion = (BossModuleInfo.Expansion)quest.Expansion.Row; } + if (expansion == BossModuleInfo.Expansion.Count && (module.Namespace?.StartsWith("BossMod.") ?? false)) + { + // try to determine expansion from module namespace + var exName = module.Namespace.Substring(8); + var exEnd = exName.IndexOf("."); + if (exEnd > 0) + exName = exName.Substring(0, exEnd); + if (Enum.TryParse(exName, out BossModuleInfo.Expansion guessedExpansion)) + expansion = guessedExpansion; + } + + if (expansion == BossModuleInfo.Expansion.Count) + Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; autodetection failed, consider specifying value manually"); + return new Info(module, statesType) { ConfigType = configType, @@ -232,11 +247,11 @@ public bool IsRemovedContent() IconIDType = iidType, PrimaryActorOID = primaryOID, + Expansion = expansion, CFCID = cfcID, ContentType = contentType, ContentIcon = contentIcon, DisplayName = infoAttr?.DisplayName != null ? _displayName : displayName, - ExVersion = exVersion, BossName = bossName, FateName = fateName, ForayName = forayName, @@ -257,7 +272,8 @@ private Info(Type moduleType, Type statesType) private static Dictionary _modules = new(); // [primary-actor-oid] = module type - private static readonly ExcelSheet _nmtSheet; + private static readonly Dictionary _notoriousMonsterToTerritory = new(); + private static readonly ExcelSheet _playStyleSheet; private static readonly ExcelSheet _cfcSheet; private static readonly ExcelSheet _dynamicEventSheet; @@ -268,7 +284,7 @@ private Info(Type moduleType, Type statesType) private static readonly ExcelSheet _questSheet; private static readonly ExcelSheet _fateSheet; - private static readonly List _expacs; + //private static readonly List _expacs; private static readonly List _catalogued; private static readonly List _uncatalogued; private static readonly List _contentTypes; @@ -276,12 +292,32 @@ private Info(Type moduleType, Type statesType) static ModuleRegistry() { - _nmtSheet = Service.LuminaGameData!.GetExcelSheet()!; + var territorySheet = Service.LuminaGameData?.GetExcelSheet(); + var nmtSheet = Service.LuminaGameData?.GetExcelSheet(); + if (territorySheet != null) + { + foreach (var terr in territorySheet.Where(terr => terr.Unknown42 != 0)) + { + var nmt = nmtSheet?.GetRowParser(terr.Unknown42); + if (nmt != null) + { + for (int i = 0; i < 10; ++i) + { + var nmId = nmt.ReadColumn(i); + if (nmId != 0) + { + _notoriousMonsterToTerritory.Add(nmId, terr); + } + } + } + } + } + _playStyleSheet = Service.LuminaGameData!.GetExcelSheet()!; _cfcSheet = Service.LuminaGameData!.GetExcelSheet()!; _dynamicEventSheet = Service.LuminaGameData!.GetExcelSheet()!; _contentTypeSheet = Service.LuminaGameData!.GetExcelSheet()!; - _territorySheet = Service.LuminaGameData!.GetExcelSheet()!; + _territorySheet = territorySheet!; _nmSheet = Service.LuminaGameData!.GetExcelSheet()!; _npcNamesSheet = Service.LuminaGameData!.GetExcelSheet()!; _questSheet = Service.LuminaGameData!.GetExcelSheet()!; @@ -300,12 +336,11 @@ static ModuleRegistry() _catalogued = _modules.Values .Where(x => !x.IsUncatalogued) - .GroupBy(x => new { x.ExVersion, ContentType = x.ContentType ?? new() }) - .OrderBy(g => g.Key.ExVersion) + .GroupBy(x => new { x.Expansion, ContentType = x.ContentType ?? new() }) + .OrderBy(g => g.Key.Expansion) .SelectMany(group => group.OrderBy(x => _cfcSheet.GetRow(x.CFCID)?.SortKey)) .ToList(); - _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.ExVersion == 69).Select(x => x).ToList(); - _expacs = _modules.Where(x => x.Value.ExVersion != 69).Select(x => x.Value.ExVersion).Distinct().OrderBy(x => x).ToList(); + _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.Expansion == BossModuleInfo.Expansion.Count).Select(x => x).ToList(); _contentTypes = _modules.Select(x => x.Value.ContentType ?? new()).Distinct().ToList(); _contentTypesIcons = _modules .Where(x => x.Value.ContentType != null && x.Value.ContentIcon != default) @@ -316,7 +351,6 @@ static ModuleRegistry() public static IReadOnlyDictionary RegisteredModules => _modules; public static IReadOnlyList CataloguedModules => _catalogued; public static IReadOnlyList UncataloguedModules => _uncatalogued; - public static IReadOnlyList AvailableExpansions => _expacs; public static IReadOnlyList AvailableContent => _contentTypes; public static IReadOnlyDictionary AvailableContentIcons => _contentTypesIcons; @@ -347,19 +381,19 @@ static ModuleRegistry() return CreateModule(FindByOID(oid)?.ModuleType, new(TimeSpan.TicksPerSecond, "fake"), new(0, oid, -1, "", ActorType.None, Class.None, 0, new())); } - [Sheet("NotoriousMonsterTerritory", columnHash: 0xf057da9c)] - public partial class NotoriousMonsterTerritory : ExcelRow - { - public const int Length = 10; - public ushort[] Monster { get; private set; } = new ushort[Length]; - - public override void PopulateData(RowParser parser, GameData gameData, Lumina.Data.Language language) - { - base.PopulateData(parser, gameData, language); - for (var i = 0; i < Length; ++i) - { - Monster[i] = parser.ReadOffset(2 * i); - } - } - } + //[Sheet("NotoriousMonsterTerritory", columnHash: 0xf057da9c)] + //public partial class NotoriousMonsterTerritory : ExcelRow + //{ + // public const int Length = 10; + // public ushort[] Monster { get; private set; } = new ushort[Length]; + + // public override void PopulateData(RowParser parser, GameData gameData, Lumina.Data.Language language) + // { + // base.PopulateData(parser, gameData, language); + // for (var i = 0; i < Length; ++i) + // { + // Monster[i] = parser.ReadOffset(2 * i); + // } + // } + //} } diff --git a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs index e459501d93..79938839b1 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs @@ -168,7 +168,7 @@ public ArchaeotaniaStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1432, ExVersion = 3, NameID = 8234)] +[ModuleInfo(FateID = 1432, NameID = 8234)] public class Archaeotania : BossModule { public Archaeotania(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(279, 249), 29)) { } diff --git a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs index 8c2a0a7b1a..3ce51285e8 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs @@ -271,5 +271,5 @@ public FormidableStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1464, ExVersion = 3, NameID = 8822)] -public class Formidable(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } \ No newline at end of file +[ModuleInfo(FateID = 1464, NameID = 8822)] +public class Formidable(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Util/UIMisc.cs b/BossMod/Util/UIMisc.cs index 27f9f218b3..16582d7b40 100644 --- a/BossMod/Util/UIMisc.cs +++ b/BossMod/Util/UIMisc.cs @@ -29,6 +29,14 @@ public static void TextUnderlined(Vector4 colour, string text) ImGui.TextColored(colour, text); } + public static void Image(IDalamudTextureWrap? icon, Vector2 size) + { + if (icon != null) + ImGui.Image(icon.ImGuiHandle, size); + else + ImGui.Dummy(size); + } + public static bool ImageToggleButton(IDalamudTextureWrap? icon, Vector2 size, bool state, string text) { var cursor = ImGui.GetCursorPos(); From 6d0c7191a8b554d53dc15373d1646081679b2f51 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 10:43:45 +0000 Subject: [PATCH 08/11] Module viewer refactoring WIP. - refactored categories --- BossMod/BossModule/BossModuleInfo.cs | 38 ++++-- BossMod/Config/ConfigUI.cs | 7 +- BossMod/Config/ModuleViewer.cs | 111 ++++++++++++----- .../{HuntA => Hunt/RankA}/Aegeiros.cs | 2 +- .../{HuntA => Hunt/RankA}/ArchEta.cs | 2 +- .../Endwalker/{HuntA => Hunt/RankA}/FanAil.cs | 2 +- .../{HuntA => Hunt/RankA}/Gurangatch.cs | 2 +- .../Endwalker/{HuntA => Hunt/RankA}/Hulder.cs | 2 +- .../{HuntA => Hunt/RankA}/LunatenderQueen.cs | 2 +- .../{HuntA => Hunt/RankA}/Minerva.cs | 2 +- .../{HuntA => Hunt/RankA}/MoussePrincess.cs | 2 +- .../{HuntA => Hunt/RankA}/Petalodus.cs | 2 +- .../{HuntA => Hunt/RankA}/Storsie.cs | 2 +- .../{HuntA => Hunt/RankA}/Sugriva.cs | 2 +- .../Endwalker/{HuntA => Hunt/RankA}/Yilan.cs | 2 +- .../{HuntS => Hunt/RankS}/Armstrong.cs | 2 +- .../{HuntS => Hunt/RankS}/Burfurlur.cs | 2 +- .../Endwalker/{HuntS => Hunt/RankS}/Ker.cs | 2 +- .../{HuntS => Hunt/RankS}/KerShroud.cs | 2 +- .../{HuntS => Hunt/RankS}/NarrowRift.cs | 2 +- .../{HuntS => Hunt/RankS}/Ophioneus.cs | 2 +- .../{HuntS => Hunt/RankS}/Ruminator.cs | 2 +- .../{HuntS => Hunt/RankS}/Sphatika.cs | 2 +- .../{Trials => Trial}/T02Hydaelyn/Echoes.cs | 2 +- .../{Trials => Trial}/T02Hydaelyn/Exodus.cs | 2 +- .../T02Hydaelyn/Lightwave.cs | 2 +- .../T02Hydaelyn/ParhelicCircle.cs | 2 +- .../T02Hydaelyn/T02Hydaelyn.cs | 2 +- .../T02Hydaelyn/T02HydaelynEnums.cs | 2 +- .../T02Hydaelyn/WeaponTracker.cs | 2 +- .../{Trials => Trial}/T08Asura/T08Asura.cs | 2 +- .../T08Asura/T08AsuriChakra.cs | 2 +- .../{Trials => Trial}/T08Asura/T08Enums.cs | 2 +- .../T08Asura/T08Laceration.cs | 2 +- .../T08Asura/T08ManyFaces.cs | 2 +- .../T08Asura/T08MyriadAspects.cs | 2 +- .../T08Asura/T08SixBladedKhadga.cs | 2 +- .../Event}/FF15Collab/Garuda.cs | 2 +- .../Event}/FF15Collab/Iseultalon.cs | 2 +- .../Event}/FF15Collab/MA-x.cs | 4 +- .../TheSliceIsRight/TheSliceIsRight.cs | 4 +- .../MaskedCarnivale/ObstacleLayouts.cs | 2 +- .../Stage01AllsWellThatStartsWell/Stage01.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act1.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act2.cs | 2 +- .../Stage03WaitingForGolem/Stage03.cs | 2 +- .../Stage04Act1.cs | 2 +- .../Stage04Act2.cs | 2 +- .../Stage05TheThreepennyTurtles/Stage05.cs | 2 +- .../Stage06EyeSociety/Stage06Act1.cs | 2 +- .../Stage06EyeSociety/Stage06Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act1.cs | 2 +- .../Stage07AChorusSlime/Stage07Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act3.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act1.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act2.cs | 2 +- .../Stage09ToKillAMockingslime}/Stage09.cs | 2 +- .../Stage10ALittleKnightMusic/Stage10.cs | 2 +- .../Stage11Act1.cs | 2 +- .../Stage11Act2.cs | 2 +- .../Stage12Act1.cs | 2 +- .../Stage12Act2.cs | 2 +- .../Stage13BeautyAndABeast}/Stage13Act1.cs | 2 +- .../Stage13BeautyAndABeast}/Stage13Act2.cs | 2 +- .../Stage14BlobsInTheWoods}/Stage14Act1.cs | 2 +- .../Stage14BlobsInTheWoods}/Stage14Act2.cs | 2 +- .../Stage15TheMeNobodyNodes/Stage15.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act1.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act2.cs | 2 +- .../Stage17TheSwordOfMusic}/Stage17Act1.cs | 2 +- .../Stage17TheSwordOfMusic}/Stage17Act2.cs | 2 +- .../Stage18Act1.cs | 2 +- .../Stage18Act2.cs | 2 +- .../Stage19Act1.cs | 2 +- .../Stage19Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act1.cs | 2 +- .../Stage20MissTyphon/Stage20Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act3.cs | 2 +- .../Stage21Act1.cs | 2 +- .../Stage21Act2.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act1.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act2.cs | 2 +- .../Stage23BehemothsAndBroomsticks/Stage23.cs | 2 +- .../Stage24Act1.cs | 2 +- .../Stage24Act2.cs | 2 +- .../Stage24Act3.cs | 2 +- .../Stage25Act1.cs | 2 +- .../Stage25Act2.cs | 2 +- .../Stage25Act3.cs | 2 +- .../Stage26PapaMia/Stage26Act1.cs | 2 +- .../Stage26PapaMia/Stage26Act2.cs | 2 +- .../Stage27LockUpYourSnorters/Stage27.cs | 2 +- .../PVP/HiddenGorge/GoblinMercenary.cs | 2 +- BossMod/Modules/ModuleRegistry.cs | 116 ++++++++---------- .../Trial/T09WhorleaterH/T09WhorleaterH.cs | 2 +- .../T09WhorleaterH/T09WhorleaterHBodyslam.cs | 2 +- .../T09WhorleaterH/T09WhorleaterHEnums.cs | 2 +- .../T09WhorleaterH/T09WhorleaterHHints.cs | 2 +- .../T09WhorleaterHSpinningDive.cs | 2 +- .../{HuntA => Hunt/RankA}/Baal.cs | 2 +- .../{HuntA => Hunt/RankA}/Grassman.cs | 2 +- .../{HuntA => Hunt/RankA}/Huracan.cs | 2 +- .../{HuntA => Hunt/RankA}/LilMurderer.cs | 2 +- .../{HuntA => Hunt/RankA}/Maliktender.cs | 2 +- .../{HuntA => Hunt/RankA}/Nariphon.cs | 2 +- .../{HuntA => Hunt/RankA}/Nuckelavee.cs | 2 +- .../{HuntA => Hunt/RankA}/OPoorestPauldia.cs | 2 +- .../{HuntA => Hunt/RankA}/Rusalka.cs | 2 +- .../{HuntA => Hunt/RankA}/Sugaar.cs | 2 +- .../{HuntA => Hunt/RankA}/Supay.cs | 2 +- .../{HuntA => Hunt/RankA}/TheMudman.cs | 2 +- .../{HuntS => Hunt/RankS}/Aglaope.cs | 2 +- .../{HuntS => Hunt/RankS}/ForgivenGossip.cs | 2 +- .../{HuntS => Hunt/RankS}/ForgivenPedantry.cs | 2 +- .../RankS}/ForgivenRebellion.cs | 2 +- .../{HuntS => Hunt/RankS}/Gunitt.cs | 2 +- .../{HuntS => Hunt/RankS}/Ixtab.cs | 2 +- .../{HuntS => Hunt/RankS}/Tarchia.cs | 2 +- .../{HuntS => Hunt/RankS}/Tyger.cs | 2 +- .../{HuntA => Hunt/RankA}/Angada.cs | 2 +- .../{HuntA => Hunt/RankA}/Gajasura.cs | 2 +- .../{HuntS => Hunt/RankS}/BoneCrawler.cs | 2 +- .../Stormblood/{HuntS => Hunt/RankS}/Gamma.cs | 2 +- .../Stormblood/{HuntS => Hunt/RankS}/Okina.cs | 2 +- .../{HuntS => Hunt/RankS}/Orghana.cs | 2 +- .../Visualization/ReplayDetailsWindow.cs | 1 + UIDev/ConfigTest.cs | 5 + 127 files changed, 292 insertions(+), 232 deletions(-) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Aegeiros.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/ArchEta.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/FanAil.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Gurangatch.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Hulder.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/LunatenderQueen.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Minerva.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/MoussePrincess.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Petalodus.cs (97%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Storsie.cs (98%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Sugriva.cs (99%) rename BossMod/Modules/Endwalker/{HuntA => Hunt/RankA}/Yilan.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Armstrong.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Burfurlur.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Ker.cs (99%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/KerShroud.cs (94%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/NarrowRift.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Ophioneus.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Ruminator.cs (98%) rename BossMod/Modules/Endwalker/{HuntS => Hunt/RankS}/Sphatika.cs (99%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/Echoes.cs (92%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/Exodus.cs (95%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/Lightwave.cs (93%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/ParhelicCircle.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/T02Hydaelyn.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/T02HydaelynEnums.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T02Hydaelyn/WeaponTracker.cs (96%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08Asura.cs (98%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08AsuriChakra.cs (94%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08Enums.cs (99%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08Laceration.cs (95%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08ManyFaces.cs (97%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08MyriadAspects.cs (97%) rename BossMod/Modules/Endwalker/{Trials => Trial}/T08Asura/T08SixBladedKhadga.cs (96%) rename BossMod/Modules/{Events => Global/Event}/FF15Collab/Garuda.cs (99%) rename BossMod/Modules/{Events => Global/Event}/FF15Collab/Iseultalon.cs (99%) rename BossMod/Modules/{Events => Global/Event}/FF15Collab/MA-x.cs (93%) rename BossMod/Modules/{ => Global}/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/ObstacleLayouts.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage09ToKillaMockingslime => Global/MaskedCarnivale/Stage09ToKillAMockingslime}/Stage09.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs (95%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage13BeautyandaBeast => Global/MaskedCarnivale/Stage13BeautyAndABeast}/Stage13Act1.cs (96%) rename BossMod/Modules/{MaskedCarnivale/Stage13BeautyandaBeast => Global/MaskedCarnivale/Stage13BeautyAndABeast}/Stage13Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage14BlobsintheWoods => Global/MaskedCarnivale/Stage14BlobsInTheWoods}/Stage14Act1.cs (97%) rename BossMod/Modules/{MaskedCarnivale/Stage14BlobsintheWoods => Global/MaskedCarnivale/Stage14BlobsInTheWoods}/Stage14Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs (96%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage17TheSwordofMusic => Global/MaskedCarnivale/Stage17TheSwordOfMusic}/Stage17Act1.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage17TheSwordofMusic => Global/MaskedCarnivale/Stage17TheSwordOfMusic}/Stage17Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever => Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever}/Stage19Act1.cs (98%) rename BossMod/Modules/{MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever => Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever}/Stage19Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs (97%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs (99%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs (98%) rename BossMod/Modules/{ => Global}/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs (99%) rename BossMod/Modules/{ => Global}/PVP/HiddenGorge/GoblinMercenary.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Baal.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Grassman.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Huracan.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/LilMurderer.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Maliktender.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Nariphon.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Nuckelavee.cs (96%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/OPoorestPauldia.cs (96%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Rusalka.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Sugaar.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/Supay.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntA => Hunt/RankA}/TheMudman.cs (97%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Aglaope.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/ForgivenGossip.cs (94%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/ForgivenPedantry.cs (99%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/ForgivenRebellion.cs (99%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Gunitt.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Ixtab.cs (99%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Tarchia.cs (98%) rename BossMod/Modules/Shadowbringers/{HuntS => Hunt/RankS}/Tyger.cs (98%) rename BossMod/Modules/Stormblood/{HuntA => Hunt/RankA}/Angada.cs (98%) rename BossMod/Modules/Stormblood/{HuntA => Hunt/RankA}/Gajasura.cs (96%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/BoneCrawler.cs (97%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/Gamma.cs (98%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/Okina.cs (98%) rename BossMod/Modules/Stormblood/{HuntS => Hunt/RankS}/Orghana.cs (96%) diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs index 36cc6dbcb8..bd0b43dcf4 100644 --- a/BossMod/BossModule/BossModuleInfo.cs +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -1,22 +1,45 @@ -using static BossMod.BossModuleInfo; - -namespace BossMod; +namespace BossMod; public static class BossModuleInfo { - public enum Expansion : uint + public enum Expansion { RealmReborn, Heavensward, Stormblood, Shadowbringers, Endwalker, + Global, Count } -} + public enum Category + { + Uncategorized, + Dungeon, + Trial, + Extreme, + Raid, + Savage, + Ultimate, + Unreal, + Alliance, + Foray, + Criterion, + DeepDungeon, + FATE, + Hunt, + Quest, + TreasureHunt, + PVP, + MaskedCarnivale, + GoldSaucer, + Event, + Count + } +} // attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases [AttributeUsage(AttributeTargets.Class, Inherited = false)] @@ -29,13 +52,14 @@ public class ModuleInfoAttribute : Attribute public Type? StatusIDType; // default: ns.SID public Type? TetherIDType; // default: ns.TetherID public Type? IconIDType; // default: ns.IconID + public uint PrimaryActorOID; // default: OID.Boss public string? DisplayName; - public Expansion Expansion = Expansion.Count; + public BossModuleInfo.Expansion Expansion = BossModuleInfo.Expansion.Count; // default: second namespace level + public BossModuleInfo.Category Category = BossModuleInfo.Category.Count; // default: third namespace level public uint QuestID; // default: 0 public uint DynamicEventID; // default: 0 public uint FateID; // default: 0 public uint NotoriousMonsterID; // default: 0 public uint NameID; // default: 0 public uint CFCID; // default: 0 - public uint PrimaryActorOID; // default: OID.Boss } diff --git a/BossMod/Config/ConfigUI.cs b/BossMod/Config/ConfigUI.cs index 8035c6d3e6..e38f7f7793 100644 --- a/BossMod/Config/ConfigUI.cs +++ b/BossMod/Config/ConfigUI.cs @@ -4,7 +4,7 @@ namespace BossMod; -public class ConfigUI +public class ConfigUI : IDisposable { private class UINode { @@ -54,6 +54,11 @@ public ConfigUI(ConfigRoot config, WorldState ws) SortByOrder(_roots); } + public void Dispose() + { + _mv.Dispose(); + } + public void Draw() { using var tabs = ImRaii.TabBar("Tabs"); diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index 2ccccaf764..d9c6653d49 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -9,23 +9,60 @@ namespace BossMod; -public class ModuleViewer +public class ModuleViewer : IDisposable { - private const int SpaceBetweenFilterWidgets = 3; - - private BitMask _availableExpansions; private BitMask _filterExpansions; - private readonly Dictionary ContentFilter; + private BitMask _filterCategories; + + private (string name, IDalamudTextureWrap? icon)[] _expansions; + private (string name, IDalamudTextureWrap? icon)[] _categories; private Vector2 _iconSize = new(30, 30); public ModuleViewer() { - foreach (var m in ModuleRegistry.RegisteredModules.Values) - _availableExpansions.Set((int)m.Expansion); - _availableExpansions.Clear((int)BossModuleInfo.Expansion.Count); + var defaultIcon = GetIcon(61762); + _expansions = Enum.GetNames().Take((int)BossModuleInfo.Expansion.Count).Select(n => (n, defaultIcon)).ToArray(); + _categories = Enum.GetNames().Take((int)BossModuleInfo.Category.Count).Select(n => (n, defaultIcon)).ToArray(); + + var exVersion = Service.LuminaGameData?.GetExcelSheet(); + Customize(BossModuleInfo.Expansion.RealmReborn, 61875, exVersion?.GetRow(0)?.Name); + Customize(BossModuleInfo.Expansion.Heavensward, 61876, exVersion?.GetRow(1)?.Name); + Customize(BossModuleInfo.Expansion.Stormblood, 61877, exVersion?.GetRow(2)?.Name); + Customize(BossModuleInfo.Expansion.Shadowbringers, 61878, exVersion?.GetRow(3)?.Name); + Customize(BossModuleInfo.Expansion.Endwalker, 61879, exVersion?.GetRow(4)?.Name); + + var contentType = Service.LuminaGameData?.GetExcelSheet(); + Customize(BossModuleInfo.Category.Dungeon, contentType?.GetRow(2)); + Customize(BossModuleInfo.Category.Trial, contentType?.GetRow(4)); + Customize(BossModuleInfo.Category.Raid, contentType?.GetRow(5)); + Customize(BossModuleInfo.Category.PVP, contentType?.GetRow(6)); + Customize(BossModuleInfo.Category.Quest, contentType?.GetRow(7)); + Customize(BossModuleInfo.Category.FATE, contentType?.GetRow(8)); + Customize(BossModuleInfo.Category.TreasureHunt, contentType?.GetRow(9)); + Customize(BossModuleInfo.Category.GoldSaucer, contentType?.GetRow(19)); + Customize(BossModuleInfo.Category.DeepDungeon, contentType?.GetRow(21)); + Customize(BossModuleInfo.Category.Ultimate, contentType?.GetRow(28)); + Customize(BossModuleInfo.Category.Criterion, contentType?.GetRow(30)); + + var playStyle = Service.LuminaGameData?.GetExcelSheet(); + Customize(BossModuleInfo.Category.Foray, playStyle?.GetRow(6)); + Customize(BossModuleInfo.Category.MaskedCarnivale, playStyle?.GetRow(8)); + Customize(BossModuleInfo.Category.Hunt, playStyle?.GetRow(10)); + + _categories[(int)BossModuleInfo.Category.Extreme].icon = _categories[(int)BossModuleInfo.Category.Trial].icon; + _categories[(int)BossModuleInfo.Category.Unreal].icon = _categories[(int)BossModuleInfo.Category.Trial].icon; + _categories[(int)BossModuleInfo.Category.Savage].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; + _categories[(int)BossModuleInfo.Category.Alliance].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; + _categories[(int)BossModuleInfo.Category.Event].icon = GetIcon(61757); + } - ContentFilter = ModuleRegistry.AvailableContent.ToDictionary(c => c, c => true); + public void Dispose() + { + foreach (var e in _expansions) + e.icon?.Dispose(); + foreach (var c in _categories) + c.icon?.Dispose(); } public void Draw(UITree _tree) @@ -60,31 +97,37 @@ private void DrawFilters() private void DrawExpansionFilters() { - foreach (var e in _availableExpansions.SetBits()) + for (var e = BossModuleInfo.Expansion.RealmReborn; e < BossModuleInfo.Expansion.Count; ++e) { - var expansion = (BossModuleInfo.Expansion)e; - UIMisc.ImageToggleButton(GetExpansionIcon(expansion), _iconSize, !_filterExpansions[e], GetExpansionName(expansion)); + ref var expansion = ref _expansions[(int)e]; + UIMisc.ImageToggleButton(expansion.icon, _iconSize, !_filterExpansions[(int)e], expansion.name); if (ImGui.IsItemClicked()) { - _filterExpansions.Toggle(e); + _filterExpansions.Toggle((int)e); } if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) { - _filterExpansions ^= _availableExpansions; - _filterExpansions.Toggle(e); + _filterExpansions = ~_filterExpansions; + _filterExpansions.Toggle((int)e); } } } private void DrawContentTypeFilters() { - foreach (var cont in ModuleRegistry.AvailableContentIcons) + for (var c = BossModuleInfo.Category.Uncategorized; c < BossModuleInfo.Category.Count; ++c) { - UIMisc.ImageToggleButton(GetIcon(cont.Value), _iconSize, ContentFilter[cont.Key], cont.Key); + ref var category = ref _categories[(int)c]; + UIMisc.ImageToggleButton(category.icon, _iconSize, !_filterCategories[(int)c], category.name); if (ImGui.IsItemClicked()) - ContentFilter[cont.Key] = !ContentFilter[cont.Key]; + { + _filterCategories.Toggle((int)c); + } if (ImGui.IsItemClicked(ImGuiMouseButton.Right)) - ContentFilter.Keys.Except([cont.Key]).ToList().ForEach(k => ContentFilter[k] = !ContentFilter[k]); + { + _filterCategories = ~_filterCategories; + _filterCategories.Toggle((int)c); + } } } @@ -102,14 +145,14 @@ private void DrawRows(IEnumerable enumerable, UITree _tree) { foreach (var mod in enumerable) { - if (!ContentFilter[mod.ContentType ?? new()] || _filterExpansions[(int)mod.Expansion]) + if (_filterExpansions[(int)mod.Expansion] || _filterCategories[(int)mod.Category]) continue; ImGui.TableNextRow(); ImGui.TableNextColumn(); - UIMisc.Image(GetExpansionIcon(mod.Expansion), new(36)); + UIMisc.Image(_expansions[(int)mod.Expansion].icon, new(36)); ImGui.SameLine(); - UIMisc.Image(GetIcon(mod.ContentIcon), new(36)); + UIMisc.Image(_categories[(int)mod.Category].icon, new(36)); ImGui.TableNextColumn(); foreach (var _ in _tree.Node($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.DisplayName!)}##{mod.PrimaryActorOID}")) DrawBosses(ModuleRegistry.RegisteredModules.Values, mod.DisplayName ?? new()); @@ -123,16 +166,18 @@ private void DrawBosses(IEnumerable modules, SeString name) ImGui.TextUnformatted($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.BossName)}"); } - private string GetExpansionName(BossModuleInfo.Expansion expansion) => Service.LuminaRow((uint)expansion)?.Name ?? expansion.ToString(); - private IDalamudTextureWrap? GetExpansionIcon(BossModuleInfo.Expansion expansion) => GetIcon(expansion switch + private void Customize((string name, IDalamudTextureWrap? icon)[] array, int element, uint iconId, SeString? name) { - BossModuleInfo.Expansion.RealmReborn => 61875, - BossModuleInfo.Expansion.Heavensward => 61876, - BossModuleInfo.Expansion.Stormblood => 61877, - BossModuleInfo.Expansion.Shadowbringers => 61878, - BossModuleInfo.Expansion.Endwalker => 61879, - _ => 0, - }); - - private static IDalamudTextureWrap? GetIcon(uint iconId) => iconId != 0 ? Service.Texture.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes) : null; + var icon = iconId != 0 ? GetIcon(iconId) : null; + if (icon != null) + array[element].icon = icon; + if (name != null) + array[element].name = name; + } + private void Customize(BossModuleInfo.Expansion expansion, uint iconId, SeString? name) => Customize(_expansions, (int)expansion, iconId, name); + private void Customize(BossModuleInfo.Category category, uint iconId, SeString? name) => Customize(_categories, (int)category, iconId, name); + private void Customize(BossModuleInfo.Category category, ContentType? ct) => Customize(category, ct?.Icon ?? 0, ct?.Name); + private void Customize(BossModuleInfo.Category category, CharaCardPlayStyle? ps) => Customize(category, (uint)(ps?.Icon ?? 0), ps?.Name); + + private static IDalamudTextureWrap? GetIcon(uint iconId) => Service.Texture?.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes); } diff --git a/BossMod/Modules/Endwalker/HuntA/Aegeiros.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Aegeiros.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs index 47c9dfc336..33242c712a 100644 --- a/BossMod/Modules/Endwalker/HuntA/Aegeiros.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Aegeiros; +namespace BossMod.Endwalker.Hunt.RankA.Aegeiros; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/ArchEta.cs b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/ArchEta.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs index 0f86f79ec7..6f31241e08 100644 --- a/BossMod/Modules/Endwalker/HuntA/ArchEta.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.ArchEta; +namespace BossMod.Endwalker.Hunt.RankA.ArchEta; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/FanAil.cs b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/FanAil.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs index 8d37173bc5..3bb1d70b0f 100644 --- a/BossMod/Modules/Endwalker/HuntA/FanAil.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.FanAil; +namespace BossMod.Endwalker.Hunt.RankA.FanAil; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Gurangatch.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Gurangatch.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs index d621a7784e..08b53f964a 100644 --- a/BossMod/Modules/Endwalker/HuntA/Gurangatch.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Gurangatch; +namespace BossMod.Endwalker.Hunt.RankA.Gurangatch; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Hulder.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/Hulder.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs index 3a334aeca1..0423d68fa4 100644 --- a/BossMod/Modules/Endwalker/HuntA/Hulder.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Hulder; +namespace BossMod.Endwalker.Hunt.RankA.Hulder; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/LunatenderQueen.cs b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/LunatenderQueen.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs index f5f332faf9..c4efdbaacb 100644 --- a/BossMod/Modules/Endwalker/HuntA/LunatenderQueen.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.LunatenderQueen; +namespace BossMod.Endwalker.Hunt.RankA.LunatenderQueen; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Minerva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Minerva.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs index ebfaa7d021..ecd739f743 100644 --- a/BossMod/Modules/Endwalker/HuntA/Minerva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Minerva; +namespace BossMod.Endwalker.Hunt.RankA.Minerva; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/MoussePrincess.cs b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/MoussePrincess.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs index ce0f2d4bae..243aecd93e 100644 --- a/BossMod/Modules/Endwalker/HuntA/MoussePrincess.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.MoussePrincess; +namespace BossMod.Endwalker.Hunt.RankA.MoussePrincess; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Petalodus.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs similarity index 97% rename from BossMod/Modules/Endwalker/HuntA/Petalodus.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs index a7b75afccb..7bf84f9d3a 100644 --- a/BossMod/Modules/Endwalker/HuntA/Petalodus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Petalodus; +namespace BossMod.Endwalker.Hunt.RankA.Petalodus; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Storsie.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Storsie.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs index db69833e22..a33536bc40 100644 --- a/BossMod/Modules/Endwalker/HuntA/Storsie.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Storsie; +namespace BossMod.Endwalker.Hunt.RankA.Storsie; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Sugriva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs similarity index 99% rename from BossMod/Modules/Endwalker/HuntA/Sugriva.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs index c7e92162c4..218d30da01 100644 --- a/BossMod/Modules/Endwalker/HuntA/Sugriva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Sugriva; +namespace BossMod.Endwalker.Hunt.RankA.Sugriva; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntA/Yilan.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntA/Yilan.cs rename to BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs index 6af85bbe7e..414f366ae4 100644 --- a/BossMod/Modules/Endwalker/HuntA/Yilan.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntA.Yilan; +namespace BossMod.Endwalker.Hunt.RankA.Yilan; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Armstrong.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Armstrong.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs index 7dbbbc3ef2..d9bcb68342 100644 --- a/BossMod/Modules/Endwalker/HuntS/Armstrong.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Armstrong; +namespace BossMod.Endwalker.Hunt.RankS.Armstrong; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Burfurlur.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Burfurlur.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs index 62ce20ad7d..caf87c80ed 100644 --- a/BossMod/Modules/Endwalker/HuntS/Burfurlur.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Burfurlur; +namespace BossMod.Endwalker.Hunt.RankS.Burfurlur; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Ker.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs similarity index 99% rename from BossMod/Modules/Endwalker/HuntS/Ker.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs index 7f37ddf4a0..9c85fa9a0d 100644 --- a/BossMod/Modules/Endwalker/HuntS/Ker.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs @@ -1,5 +1,5 @@ // CONTRIB: changes by malediktus, not checked -namespace BossMod.Endwalker.HuntS.Ker; +namespace BossMod.Endwalker.Hunt.RankS.Ker; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/KerShroud.cs b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs similarity index 94% rename from BossMod/Modules/Endwalker/HuntS/KerShroud.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs index a3cfeec381..9a942cf8e2 100644 --- a/BossMod/Modules/Endwalker/HuntS/KerShroud.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.KerShroud; +namespace BossMod.Endwalker.Hunt.RankS.KerShroud; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/NarrowRift.cs b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/NarrowRift.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs index 181bcdf145..b1382f9bc6 100644 --- a/BossMod/Modules/Endwalker/HuntS/NarrowRift.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.NarrowRift; +namespace BossMod.Endwalker.Hunt.RankS.NarrowRift; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Ophioneus.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Ophioneus.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs index daa0008aec..83a85b67e1 100644 --- a/BossMod/Modules/Endwalker/HuntS/Ophioneus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Ophioneus; +namespace BossMod.Endwalker.Hunt.RankS.Ophioneus; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Ruminator.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs similarity index 98% rename from BossMod/Modules/Endwalker/HuntS/Ruminator.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs index 4d90e3cce2..1b111016fd 100644 --- a/BossMod/Modules/Endwalker/HuntS/Ruminator.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Ruminator; +namespace BossMod.Endwalker.Hunt.RankS.Ruminator; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/HuntS/Sphatika.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs similarity index 99% rename from BossMod/Modules/Endwalker/HuntS/Sphatika.cs rename to BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs index 8a8062f0c2..c957329921 100644 --- a/BossMod/Modules/Endwalker/HuntS/Sphatika.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.HuntS.Sphatika; +namespace BossMod.Endwalker.Hunt.RankS.Sphatika; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Echoes.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Echoes.cs similarity index 92% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Echoes.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Echoes.cs index 3ecfcffc0f..d169810517 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Echoes.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Echoes.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class Echoes : Components.UniformStackSpread { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Exodus.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Exodus.cs similarity index 95% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Exodus.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Exodus.cs index 2bee1c750c..9055f0da4b 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Exodus.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Exodus.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class Exodus : BossComponent { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Lightwave.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Lightwave.cs similarity index 93% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Lightwave.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Lightwave.cs index 9b9c977fad..a59353fe35 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/Lightwave.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/Lightwave.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class Lightwave : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/ParhelicCircle.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/ParhelicCircle.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/ParhelicCircle.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/ParhelicCircle.cs index 39e7eaea8d..ff8e6068cf 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/ParhelicCircle.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/ParhelicCircle.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class ParhelicCircle : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02Hydaelyn.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02Hydaelyn.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs index 38da2db74a..13abb237fe 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02Hydaelyn.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class MousasScorn : Components.CastSharedTankbuster { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02HydaelynEnums.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02HydaelynEnums.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02HydaelynEnums.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02HydaelynEnums.cs index 99f97bdb12..c15b1bad36 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/T02HydaelynEnums.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02HydaelynEnums.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/WeaponTracker.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/WeaponTracker.cs similarity index 96% rename from BossMod/Modules/Endwalker/Trials/T02Hydaelyn/WeaponTracker.cs rename to BossMod/Modules/Endwalker/Trial/T02Hydaelyn/WeaponTracker.cs index 3e5755f553..efcca27b34 100644 --- a/BossMod/Modules/Endwalker/Trials/T02Hydaelyn/WeaponTracker.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/WeaponTracker.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T02Hydaelyn; +namespace BossMod.Endwalker.Trial.T02Hydaelyn; class WeaponTracker : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Asura.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs similarity index 98% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08Asura.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs index 735c27c4fc..27fb4032c6 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Asura.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class LowerRealm : Components.RaidwideCast { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08AsuriChakra.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08AsuriChakra.cs similarity index 94% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08AsuriChakra.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08AsuriChakra.cs index 76a67cb50f..a693d9b28e 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08AsuriChakra.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08AsuriChakra.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class AsuriChakra : Components.SelfTargetedAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Enums.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Enums.cs similarity index 99% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08Enums.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08Enums.cs index 123ee92015..b1e72554c9 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Enums.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Enums.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; public enum OID : uint { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Laceration.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Laceration.cs similarity index 95% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08Laceration.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08Laceration.cs index a255a637ef..c12049e844 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08Laceration.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Laceration.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class Laceration : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08ManyFaces.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08ManyFaces.cs similarity index 97% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08ManyFaces.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08ManyFaces.cs index 7b646d5979..d77c134fc4 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08ManyFaces.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08ManyFaces.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class ManyFaces : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08MyriadAspects.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08MyriadAspects.cs similarity index 97% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08MyriadAspects.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08MyriadAspects.cs index 0b7488d5fb..a68dd7cf06 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08MyriadAspects.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08MyriadAspects.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class MyriadAspects : Components.GenericAOEs { diff --git a/BossMod/Modules/Endwalker/Trials/T08Asura/T08SixBladedKhadga.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08SixBladedKhadga.cs similarity index 96% rename from BossMod/Modules/Endwalker/Trials/T08Asura/T08SixBladedKhadga.cs rename to BossMod/Modules/Endwalker/Trial/T08Asura/T08SixBladedKhadga.cs index f532322e9f..238c84c5e7 100644 --- a/BossMod/Modules/Endwalker/Trials/T08Asura/T08SixBladedKhadga.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08SixBladedKhadga.cs @@ -1,4 +1,4 @@ -namespace BossMod.Endwalker.Trials.T08Asura; +namespace BossMod.Endwalker.Trial.T08Asura; class SixBladedKhadga : Components.GenericAOEs { diff --git a/BossMod/Modules/Events/FF15Collab/Garuda.cs b/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs similarity index 99% rename from BossMod/Modules/Events/FF15Collab/Garuda.cs rename to BossMod/Modules/Global/Event/FF15Collab/Garuda.cs index fbc57de332..84e7f19a34 100644 --- a/BossMod/Modules/Events/FF15Collab/Garuda.cs +++ b/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Events.FF15Collab.Garuda; +namespace BossMod.Global.Event.FF15Collab.Garuda; public enum OID : uint { diff --git a/BossMod/Modules/Events/FF15Collab/Iseultalon.cs b/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs similarity index 99% rename from BossMod/Modules/Events/FF15Collab/Iseultalon.cs rename to BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs index bcf90b1faa..47d0be139f 100644 --- a/BossMod/Modules/Events/FF15Collab/Iseultalon.cs +++ b/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Events.FF15Collab.Iseultalon; +namespace BossMod.Global.Event.FF15Collab.Iseultalon; public enum OID : uint { diff --git a/BossMod/Modules/Events/FF15Collab/MA-x.cs b/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs similarity index 93% rename from BossMod/Modules/Events/FF15Collab/MA-x.cs rename to BossMod/Modules/Global/Event/FF15Collab/MA-x.cs index 266bef2c16..47bd078d49 100644 --- a/BossMod/Modules/Events/FF15Collab/MA-x.cs +++ b/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Events.FF15Collab.MAx; +namespace BossMod.Global.Event.FF15Collab.MAx; public enum OID : uint { @@ -47,7 +47,7 @@ public MAxStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1409, NameID = 7898, Expansion = BossModuleInfo.Expansion.RealmReborn)] +[ModuleInfo(FateID = 1409, NameID = 7898)] public class MAx : BossModule { public MAx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(295, -22), 25)) { } diff --git a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs similarity index 97% rename from BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs rename to BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs index c63300e6cd..85f332b999 100644 --- a/BossMod/Modules/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs +++ b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.GoldSaucer.SliceIsRight; +namespace BossMod.Global.GoldSaucer.SliceIsRight; public enum OID : uint { @@ -142,7 +142,7 @@ public TheSliceIsRightStates(BossModule module) : base(module) } } -[ModuleInfo(NameID = 9066, Expansion = BossModuleInfo.Expansion.Shadowbringers)] //GoldSaucerTextData ID 181 +[ModuleInfo(NameID = 9066)] //GoldSaucerTextData ID 181 public class TheSliceIsRight : BossModule { public TheSliceIsRight(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(70.5f, -36), 15)) { } diff --git a/BossMod/Modules/MaskedCarnivale/ObstacleLayouts.cs b/BossMod/Modules/Global/MaskedCarnivale/ObstacleLayouts.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/ObstacleLayouts.cs rename to BossMod/Modules/Global/MaskedCarnivale/ObstacleLayouts.cs index 179b94277a..a4fbb34bc7 100644 --- a/BossMod/Modules/MaskedCarnivale/ObstacleLayouts.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/ObstacleLayouts.cs @@ -1,4 +1,4 @@ -namespace BossMod.MaskedCarnivale; +namespace BossMod.Global.MaskedCarnivale; public class Layout2Corners : BossComponent { diff --git a/BossMod/Modules/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs index a6332a81e7..5b4d156cca 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage01; +namespace BossMod.Global.MaskedCarnivale.Stage01; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs index 1d17e39939..b9a6fec117 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage02.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage02.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs index b62ced44b9..dafc8feded 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage02.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage02.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs index 9611d2a672..bf758b8b20 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage03; +namespace BossMod.Global.MaskedCarnivale.Stage03; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs index 85ebf21dd8..7069842b02 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage04.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage04.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs index 56213ad1a7..1ff0cef7ef 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage04.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage04.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs index 129885abd3..1c30238b34 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage05; +namespace BossMod.Global.MaskedCarnivale.Stage05; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs index d962302121..0fbbbbc632 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage06.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage06.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs index 2ee378bb28..fda1d46c0c 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage06.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage06.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs index b4be82a847..6c064e274b 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage07.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage07.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs index 911c6ff1a0..def5019d7b 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage07.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage07.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs index 184665d752..d4083bc666 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage07.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage07.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs index 741536b16d..6b37f26712 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage08.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage08.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs index 4533285465..e682721fe9 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage08.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage08.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage09ToKillaMockingslime/Stage09.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage09ToKillaMockingslime/Stage09.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs index 32061821a7..d58960d70a 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage09ToKillaMockingslime/Stage09.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage09; +namespace BossMod.Global.MaskedCarnivale.Stage09; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs index 59d9d409d0..9c8853aaf3 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage10; +namespace BossMod.Global.MaskedCarnivale.Stage10; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs index 9e0639ce69..132668b040 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage11.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage11.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs index b180b48e2f..10b77406a9 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage11.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage11.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs similarity index 95% rename from BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs index d9a7c992e9..46a9ba0155 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage12.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage12.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs index 54cae859cf..8b0438d3ba 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage12.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage12.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs similarity index 96% rename from BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs index ceddcc3bf2..a7a28edb40 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage13.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage13.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs index 2e4bd784c0..6ac1953ee4 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage13BeautyandaBeast/Stage13Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage13.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage13.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs index ffe8fede53..1998237dd3 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage14.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage14.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs index 634a1d106b..b467cf61f4 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage14BlobsintheWoods/Stage14Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage14.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage14.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs index a1180e30cf..2b40a458bc 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage15; +namespace BossMod.Global.MaskedCarnivale.Stage15; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs similarity index 96% rename from BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs index a06a2bc333..fd4ceac65f 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage16.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage16.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs index 0bdde5294f..60a1e4fab5 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage16.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage16.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs index efb9bfe990..da57544b38 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage17.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage17.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs index 439a8a2cd9..080c50416f 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage17TheSwordofMusic/Stage17Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage17.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage17.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs index 93b051eeab..ece756817f 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage18.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage18.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs index 101948fbb1..ef69290d82 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage18.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage18.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs index a62403eb70..bf2a11366a 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage19.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage19.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs index d754d8d494..226de6394a 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage19OnaClearDayYouCanSmellForever/Stage19Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage19.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage19.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs index 22f5288742..37babb7c47 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage20.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage20.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs index 08e3a39a45..e4e03b02cb 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage20.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage20.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs index 8ec08561b6..c52998d086 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage20.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage20.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs index 4d6f4d0b52..9ddd76cd40 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage21.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage21.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs index 759a5ac726..ae31fc9fae 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage21.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage21.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs index f492537724..9a34770f95 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage22.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage22.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs index 245a2b527a..dee8fd2053 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage22.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage22.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs similarity index 97% rename from BossMod/Modules/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs index 86ff1f1d64..b9183de13b 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage23; +namespace BossMod.Global.MaskedCarnivale.Stage23; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs index d914c30ee6..9e6f6d82a4 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage24.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage24.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs index 5a96b8b9ce..c6d2a12960 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage24.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage24.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs index 750f0f7895..bd416bdd8c 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage24.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage24.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs index 3fe9575733..c93e15ed52 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage25.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage25.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs index fac8df5881..22fce921f1 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage25.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage25.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs index 6b472b14f9..35db9d54fb 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage25.Act3; +namespace BossMod.Global.MaskedCarnivale.Stage25.Act3; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs index 7e1cc9623d..09b3045e48 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage26.Act1; +namespace BossMod.Global.MaskedCarnivale.Stage26.Act1; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs similarity index 98% rename from BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs index 934d3ad2ac..a58ac3e9ee 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage26.Act2; +namespace BossMod.Global.MaskedCarnivale.Stage26.Act2; public enum OID : uint { diff --git a/BossMod/Modules/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs similarity index 99% rename from BossMod/Modules/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs rename to BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs index 5c3bad7096..51a8690089 100644 --- a/BossMod/Modules/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.MaskedCarnivale.Stage27; +namespace BossMod.Global.MaskedCarnivale.Stage27; public enum OID : uint { diff --git a/BossMod/Modules/PVP/HiddenGorge/GoblinMercenary.cs b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs similarity index 98% rename from BossMod/Modules/PVP/HiddenGorge/GoblinMercenary.cs rename to BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs index 65bfb56b28..3e7532349b 100644 --- a/BossMod/Modules/PVP/HiddenGorge/GoblinMercenary.cs +++ b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.PVP.HiddenGorge.GoblinMercenary; +namespace BossMod.Global.PVP.HiddenGorge.GoblinMercenary; public enum OID : uint { diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index 0274443856..efb1b85484 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -23,9 +23,8 @@ public class Info public uint PrimaryActorOID; public BossModuleInfo.Expansion Expansion; + public BossModuleInfo.Category Category; public uint CFCID; - public uint ContentIcon; - public SeString? ContentType; public SeString? DisplayName; public SeString? ForayName; public SeString? FateName; @@ -135,7 +134,31 @@ public bool IsRemovedContent() return null; } + var splitNamespace = module.Namespace?.Split('.') ?? []; // expected to be 'BossMod.expansion.category.rest' + var expansion = infoAttr?.Expansion ?? BossModuleInfo.Expansion.Count; + if (expansion == BossModuleInfo.Expansion.Count && splitNamespace.Length > 1 && Enum.TryParse(splitNamespace[1], out BossModuleInfo.Expansion parsedExpansion)) + { + expansion = parsedExpansion; + } + if (expansion == BossModuleInfo.Expansion.Count) + { + Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; consider fixing namespace or specifying value manually"); + expansion = BossModuleInfo.Expansion.Global; + } + + var category = infoAttr?.Category ?? BossModuleInfo.Category.Count; + if (category == BossModuleInfo.Category.Count && splitNamespace.Length > 2 && Enum.TryParse(splitNamespace[2], out BossModuleInfo.Category parsedCategory)) + { + category = parsedCategory; + } + if (category == BossModuleInfo.Category.Count) + { + Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid category assigned; consider fixing namespace or specifying value manually"); + category = BossModuleInfo.Category.Uncategorized; + } + + uint nameID = infoAttr?.NameID ?? 0; uint nmID = infoAttr?.NotoriousMonsterID ?? 0; uint fateID = infoAttr?.FateID ?? 0; @@ -150,8 +173,6 @@ public bool IsRemovedContent() if (uncatalogued) Service.Log($"[{nameof(ModuleRegistry)}] Module {module.Name} is uncatalogued. It does not provide sufficient {nameof(Info)} tags."); - SeString contentType = new(); - uint contentIcon = default; string huntRank = ""; int carnivaleStage = 0; SeString fateName = new(); @@ -161,25 +182,27 @@ public bool IsRemovedContent() if (cfcID != 0) { var cfcRow = _cfcSheet.GetRow(cfcID)!; - contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); - if (expansion == BossModuleInfo.Expansion.Count && cfcRow.TerritoryType.Value is var terr && terr != null) - expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; + //contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); + if ((uint)expansion != cfcRow.TerritoryType.Value?.ExVersion.Row) + Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {cfcRow.TerritoryType.Value?.ExVersion.Row}"); displayName = cfcRow.Name; if (cfcID is 735 or 760 or 761 or 778) // bozja et al { - contentType = _playStyleSheet!.GetRow(6)!.Name; - contentIcon = (uint)_playStyleSheet!.GetRow(6)!.Icon; + //contentType = _playStyleSheet!.GetRow(6)!.Name; + //contentIcon = (uint)_playStyleSheet!.GetRow(6)!.Icon; } else if (cfcRow.ShortCode.RawString.StartsWith("aoz")) // masked carnivale { - contentType = _playStyleSheet!.GetRow(8)!.Name; - contentIcon = (uint)_playStyleSheet!.GetRow(8)!.Icon; + //contentType = _playStyleSheet!.GetRow(8)!.Name; + //contentIcon = (uint)_playStyleSheet!.GetRow(8)!.Icon; carnivaleStage = int.Parse(Regex.Replace(cfcRow.ShortCode.RawString, @"\D", "").TrimStart('0')); //displayName = new SeString($"{displayName} (Stage {carnivaleStage})"); } else - contentIcon = cfcRow.ContentType?.Value?.Icon ?? 0; + { + //contentIcon = cfcRow.ContentType?.Value?.Icon ?? 0; + } } if (nameID != 0) @@ -192,51 +215,34 @@ public bool IsRemovedContent() displayName = bossName = _nmSheet.GetRow(nmID)!.BNpcName.Value?.Singular ?? new SeString(); huntRank = Enum.Parse(_nmSheet.GetRow(nmID)!.Rank.ToString()).ToString(); //displayName = new SeString($"{displayName} ({huntRank} Rank)"); - contentType = _playStyleSheet.GetRow(10)!.Name; - contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; - - if (expansion == BossModuleInfo.Expansion.Count && _notoriousMonsterToTerritory.TryGetValue(nmID, out var terr)) - expansion = (BossModuleInfo.Expansion)terr.ExVersion.Row; + //contentType = _playStyleSheet.GetRow(10)!.Name; + //contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; } // ideally you could parse the location field to get the exversion in the fate sheet but that requires parsing lgb files if (fateID != 0) // needs exversion { - contentType = _contentTypeSheet.GetRow(8)!.Name; - contentIcon = _contentTypeSheet.GetRow(8)!.Icon; + //contentType = _contentTypeSheet.GetRow(8)!.Name; + //contentIcon = _contentTypeSheet.GetRow(8)!.Icon; displayName = _fateSheet.GetRow(fateID)!.Name; } if (dynamicEventID != 0) // needs exversion? { - contentType = _playStyleSheet.GetRow(6)!.Name; - contentIcon = (uint)_playStyleSheet.GetRow(6)!.Icon; + //contentType = _playStyleSheet.GetRow(6)!.Name; + //contentIcon = (uint)_playStyleSheet.GetRow(6)!.Icon; displayName = forayName = _dynamicEventSheet.GetRow(dynamicEventID)!.Name; } if (_questSheet.GetRow(questID) is var quest && quest != null) { - contentType = _contentTypeSheet.GetRow(7)!.Name; - contentIcon = _contentTypeSheet.GetRow(7)!.Icon; + //contentType = _contentTypeSheet.GetRow(7)!.Name; + //contentIcon = _contentTypeSheet.GetRow(7)!.Icon; displayName = quest.Name; - if (expansion == BossModuleInfo.Expansion.Count) - expansion = (BossModuleInfo.Expansion)quest.Expansion.Row; + if ((uint)expansion != quest.Expansion.Row) + Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {quest.Expansion.Row}"); } - if (expansion == BossModuleInfo.Expansion.Count && (module.Namespace?.StartsWith("BossMod.") ?? false)) - { - // try to determine expansion from module namespace - var exName = module.Namespace.Substring(8); - var exEnd = exName.IndexOf("."); - if (exEnd > 0) - exName = exName.Substring(0, exEnd); - if (Enum.TryParse(exName, out BossModuleInfo.Expansion guessedExpansion)) - expansion = guessedExpansion; - } - - if (expansion == BossModuleInfo.Expansion.Count) - Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; autodetection failed, consider specifying value manually"); - return new Info(module, statesType) { ConfigType = configType, @@ -248,9 +254,8 @@ public bool IsRemovedContent() PrimaryActorOID = primaryOID, Expansion = expansion, + Category = category, CFCID = cfcID, - ContentType = contentType, - ContentIcon = contentIcon, DisplayName = infoAttr?.DisplayName != null ? _displayName : displayName, BossName = bossName, FateName = fateName, @@ -284,11 +289,8 @@ private Info(Type moduleType, Type statesType) private static readonly ExcelSheet _questSheet; private static readonly ExcelSheet _fateSheet; - //private static readonly List _expacs; private static readonly List _catalogued; private static readonly List _uncatalogued; - private static readonly List _contentTypes; - private static readonly Dictionary _contentTypesIcons; static ModuleRegistry() { @@ -336,23 +338,17 @@ static ModuleRegistry() _catalogued = _modules.Values .Where(x => !x.IsUncatalogued) - .GroupBy(x => new { x.Expansion, ContentType = x.ContentType ?? new() }) + .GroupBy(x => new { x.Expansion, x.Category }) .OrderBy(g => g.Key.Expansion) .SelectMany(group => group.OrderBy(x => _cfcSheet.GetRow(x.CFCID)?.SortKey)) .ToList(); _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.Expansion == BossModuleInfo.Expansion.Count).Select(x => x).ToList(); - _contentTypes = _modules.Select(x => x.Value.ContentType ?? new()).Distinct().ToList(); - _contentTypesIcons = _modules - .Where(x => x.Value.ContentType != null && x.Value.ContentIcon != default) - .Select(x => (x.Value.ContentType!, x.Value.ContentIcon)) - .Distinct().OrderBy(x => x.ContentIcon).ToDictionary(x => x.Item1, x => x.ContentIcon); } public static IReadOnlyDictionary RegisteredModules => _modules; public static IReadOnlyList CataloguedModules => _catalogued; public static IReadOnlyList UncataloguedModules => _uncatalogued; - public static IReadOnlyList AvailableContent => _contentTypes; - public static IReadOnlyDictionary AvailableContentIcons => _contentTypesIcons; + public static Info? FindByOID(uint oid) => _modules.GetValueOrDefault(oid); @@ -380,20 +376,4 @@ static ModuleRegistry() { return CreateModule(FindByOID(oid)?.ModuleType, new(TimeSpan.TicksPerSecond, "fake"), new(0, oid, -1, "", ActorType.None, Class.None, 0, new())); } - - //[Sheet("NotoriousMonsterTerritory", columnHash: 0xf057da9c)] - //public partial class NotoriousMonsterTerritory : ExcelRow - //{ - // public const int Length = 10; - // public ushort[] Monster { get; private set; } = new ushort[Length]; - - // public override void PopulateData(RowParser parser, GameData gameData, Lumina.Data.Language language) - // { - // base.PopulateData(parser, gameData, language); - // for (var i = 0; i < Length; ++i) - // { - // Monster[i] = parser.ReadOffset(2 * i); - // } - // } - //} } diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs index 0594cd5c44..43fd3caa10 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs @@ -1,5 +1,5 @@ // CONTRIB: made by taurenkey, changed by malediktus, not checked -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class GrandFall : Components.LocationTargetedAOEs { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs index 50b4114f72..a61a4a3361 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHBodyslam.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class BodySlamKB : Components.Knockback { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs index 13a1148b84..726d0ccf65 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHEnums.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; public enum OID : uint { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs index 3267ceccd1..64a1a2c149 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHHints.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class Hints : BossComponent { diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs index d510abc6b4..bf66b0de8c 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterHSpinningDive.cs @@ -1,4 +1,4 @@ -namespace BossMod.Modules.RealmReborn.Trial.T09WhorleaterH; +namespace BossMod.RealmReborn.Trial.T09WhorleaterH; class SpinningDive : Components.GenericAOEs //TODO: Find out how to detect spinning dives earlier eg. the water column telegraph { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Baal.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Baal.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs index 1fc260eb2f..b01123f1da 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Baal.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Baal; +namespace BossMod.Shadowbringers.Hunt.RankA.Baal; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Grassman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Grassman.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs index 902af5437a..079984a08b 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Grassman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Grassman; +namespace BossMod.Shadowbringers.Hunt.RankA.Grassman; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Huracan.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Huracan.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs index f5ddf9d768..215638f346 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Huracan.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Huracan; +namespace BossMod.Shadowbringers.Hunt.RankA.Huracan; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/LilMurderer.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/LilMurderer.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs index ed458bdbaf..47278eb73e 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/LilMurderer.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.LilMurderer; +namespace BossMod.Shadowbringers.Hunt.RankA.LilMurderer; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Maliktender.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/Maliktender.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs index 0196a05fcd..9d74fa4d6e 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Maliktender.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Maliktender; +namespace BossMod.Shadowbringers.Hunt.RankA.Maliktender; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Nariphon.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Nariphon.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs index 5c189da3b2..5916928a43 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Nariphon.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Nariphon; +namespace BossMod.Shadowbringers.Hunt.RankA.Nariphon; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Nuckelavee.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs similarity index 96% rename from BossMod/Modules/Shadowbringers/HuntA/Nuckelavee.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs index 75302f5561..467f74dfe8 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Nuckelavee.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Nuckelavee; +namespace BossMod.Shadowbringers.Hunt.RankA.Nuckelavee; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/OPoorestPauldia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs similarity index 96% rename from BossMod/Modules/Shadowbringers/HuntA/OPoorestPauldia.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs index abe3ce3259..5d4ff9c306 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/OPoorestPauldia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.OPoorestPauldia; +namespace BossMod.Shadowbringers.Hunt.RankA.OPoorestPauldia; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Rusalka.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/Rusalka.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs index ebaca6e192..20e287c89f 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Rusalka.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Rusalka; +namespace BossMod.Shadowbringers.Hunt.RankA.Rusalka; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Sugaar.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntA/Sugaar.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs index ff15d64ff7..2a07bfc401 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Sugaar.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, verified -namespace BossMod.Shadowbringers.HuntA.Sugaar; +namespace BossMod.Shadowbringers.Hunt.RankA.Sugaar; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/Supay.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/Supay.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs index 7cfd39ce6f..afc8c070c6 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/Supay.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.Supay; +namespace BossMod.Shadowbringers.Hunt.RankA.Supay; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntA/TheMudman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs similarity index 97% rename from BossMod/Modules/Shadowbringers/HuntA/TheMudman.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs index ae60b08be7..51c5fb6d87 100644 --- a/BossMod/Modules/Shadowbringers/HuntA/TheMudman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntA.TheMudman; +namespace BossMod.Shadowbringers.Hunt.RankA.TheMudman; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Aglaope.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Aglaope.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs index c9473c3794..4bbe8e832e 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Aglaope.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Aglaope; +namespace BossMod.Shadowbringers.Hunt.RankS.Aglaope; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/ForgivenGossip.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs similarity index 94% rename from BossMod/Modules/Shadowbringers/HuntS/ForgivenGossip.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs index dffb8d3750..79002dcf6f 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/ForgivenGossip.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.ForgivenGossip; +namespace BossMod.Shadowbringers.Hunt.RankS.ForgivenGossip; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/ForgivenPedantry.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs similarity index 99% rename from BossMod/Modules/Shadowbringers/HuntS/ForgivenPedantry.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs index 04a3496d17..ecd7afb23a 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/ForgivenPedantry.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.ForgivenPedantry; +namespace BossMod.Shadowbringers.Hunt.RankS.ForgivenPedantry; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/ForgivenRebellion.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs similarity index 99% rename from BossMod/Modules/Shadowbringers/HuntS/ForgivenRebellion.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs index 289504b9d7..2a5263118f 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/ForgivenRebellion.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.ForgivenRebellion; +namespace BossMod.Shadowbringers.Hunt.RankS.ForgivenRebellion; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Gunitt.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Gunitt.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs index 5dbedefc8b..f787ff839a 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Gunitt.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Gunitt; +namespace BossMod.Shadowbringers.Hunt.RankS.Gunitt; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Ixtab.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs similarity index 99% rename from BossMod/Modules/Shadowbringers/HuntS/Ixtab.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs index d8518f608d..19a7e8e64d 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Ixtab.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Ixtab; +namespace BossMod.Shadowbringers.Hunt.RankS.Ixtab; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Tarchia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Tarchia.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs index d6f0086e38..67db1f711a 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Tarchia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Tarchia; +namespace BossMod.Shadowbringers.Hunt.RankS.Tarchia; public enum OID : uint { diff --git a/BossMod/Modules/Shadowbringers/HuntS/Tyger.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs similarity index 98% rename from BossMod/Modules/Shadowbringers/HuntS/Tyger.cs rename to BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs index e337a4b596..d1340798c9 100644 --- a/BossMod/Modules/Shadowbringers/HuntS/Tyger.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Shadowbringers.HuntS.Tyger; +namespace BossMod.Shadowbringers.Hunt.RankS.Tyger; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntA/Angada.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs similarity index 98% rename from BossMod/Modules/Stormblood/HuntA/Angada.cs rename to BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs index e15db5dbce..4b9427d4a8 100644 --- a/BossMod/Modules/Stormblood/HuntA/Angada.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntA.Angada; +namespace BossMod.Stormblood.Hunt.RankA.Angada; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntA/Gajasura.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs similarity index 96% rename from BossMod/Modules/Stormblood/HuntA/Gajasura.cs rename to BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs index 1b5194af35..3ca4ff98a8 100644 --- a/BossMod/Modules/Stormblood/HuntA/Gajasura.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntA.Gajasura; +namespace BossMod.Stormblood.Hunt.RankA.Gajasura; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/BoneCrawler.cs b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs similarity index 97% rename from BossMod/Modules/Stormblood/HuntS/BoneCrawler.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs index 41a8aab51d..6243a48947 100644 --- a/BossMod/Modules/Stormblood/HuntS/BoneCrawler.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.BoneCrawler; +namespace BossMod.Stormblood.Hunt.RankS.BoneCrawler; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/Gamma.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs similarity index 98% rename from BossMod/Modules/Stormblood/HuntS/Gamma.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs index 91e32df6b3..3423e3500f 100644 --- a/BossMod/Modules/Stormblood/HuntS/Gamma.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.Gamma; +namespace BossMod.Stormblood.Hunt.RankS.Gamma; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/Okina.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs similarity index 98% rename from BossMod/Modules/Stormblood/HuntS/Okina.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs index bdeb35f774..7277120f19 100644 --- a/BossMod/Modules/Stormblood/HuntS/Okina.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.Okina; +namespace BossMod.Stormblood.Hunt.RankS.Okina; public enum OID : uint { diff --git a/BossMod/Modules/Stormblood/HuntS/Orghana.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs similarity index 96% rename from BossMod/Modules/Stormblood/HuntS/Orghana.cs rename to BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs index a620dde0e9..78c789316c 100644 --- a/BossMod/Modules/Stormblood/HuntS/Orghana.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Stormblood.HuntS.Orghana; +namespace BossMod.Stormblood.Hunt.RankS.Orghana; public enum OID : uint { diff --git a/BossMod/Replay/Visualization/ReplayDetailsWindow.cs b/BossMod/Replay/Visualization/ReplayDetailsWindow.cs index 7d307abc3a..26a89eb81e 100644 --- a/BossMod/Replay/Visualization/ReplayDetailsWindow.cs +++ b/BossMod/Replay/Visualization/ReplayDetailsWindow.cs @@ -40,6 +40,7 @@ class ReplayDetailsWindow : UIWindow protected override void Dispose(bool disposing) { _mgr.Dispose(); + _config.Dispose(); } public override void Draw() diff --git a/UIDev/ConfigTest.cs b/UIDev/ConfigTest.cs index b67089591d..2f25e716b5 100644 --- a/UIDev/ConfigTest.cs +++ b/UIDev/ConfigTest.cs @@ -13,6 +13,11 @@ class ConfigTest : TestWindow _ui = new(Service.Config, new(TimeSpan.TicksPerSecond, "fake")); } + protected override void Dispose(bool disposing) + { + _ui.Dispose(); + } + public override void Draw() { ImGui.InputText("##console", ref _command, 1024); From 85bcfab02ec965cdd704a0c669ed81f5796ac913 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 20:09:16 +0000 Subject: [PATCH 09/11] Module viewer refactoring WIP. --- BossMod/BossModule/BossModuleInfo.cs | 38 +++- BossMod/Config/ModuleViewer.cs | 139 +++++++++--- .../Endwalker/Alliance/A10Lions/A10Lions.cs | 2 +- .../A10RhalgrEmissary/A10RhalgrEmissary.cs | 2 +- .../Alliance/A11Byregot/A11Byregot.cs | 2 +- .../Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs | 2 +- .../Endwalker/Alliance/A13Azeyma/A13Azeyma.cs | 2 +- .../Alliance/A14Naldthal/A14Naldthal.cs | 2 +- .../Alliance/A21Nophica/A21Nophica.cs | 2 +- .../A22AlthykNymeia/A22AlthykNymeia.cs | 2 +- .../Endwalker/Alliance/A23Halone/A23Halone.cs | 2 +- .../Alliance/A24Menphina/A24Menphina.cs | 2 +- .../Criterion/C01ASS/C010Trash/C010Armor.cs | 4 +- .../C01ASS/C010Trash/C010Belladonna.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Dryad.cs | 4 +- .../C01ASS/C010Trash/C010Dullahan.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Kaluk.cs | 4 +- .../C01ASS/C010Trash/C010Udumbara.cs | 4 +- .../Criterion/C01ASS/C011Silkie/C011Silkie.cs | 4 +- .../C01ASS/C012Gladiator/C012Gladiator.cs | 4 +- .../C013Shadowcaster/C013Shadowcaster.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Fuko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Kotengu.cs | 4 +- .../C02AMR/C020Trash/C020Onmitsugashira.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Raiko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Yuki.cs | 4 +- .../C02AMR/C021Shishio/C021Shishio.cs | 4 +- .../Criterion/C02AMR/C022Gorai/C022Gorai.cs | 4 +- .../Criterion/C02AMR/C023Moko/C023Moko.cs | 4 +- .../C03AAI/C030Trash/C030Islekeeper.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Kiwakin.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Monk.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Ray.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Snipper.cs | 4 +- .../C03AAI/C030Trash/C030WoodGolem.cs | 4 +- .../C03AAI/C031Ketuduke/C031Ketuduke.cs | 4 +- .../Criterion/C03AAI/C032Lala/C032Lala.cs | 4 +- .../C03AAI/C033Statice/C033Statice.cs | 4 +- .../EurekaOrthos/DD30TiamatsClone.cs | 2 +- .../DeepDungeon/EurekaOrthos/DD70Aeturna.cs | 2 +- .../Dungeon/D01TowerOfZot/D011Minduruva.cs | 2 +- .../Dungeon/D01TowerOfZot/D012Sanduruva.cs | 2 +- .../Dungeon/D01TowerOfZot/D013MagusSisters.cs | 2 +- .../D11LapisManalis/D110AlbusGriffin.cs | 2 +- .../D11LapisManalis/D110CaladriusMaturus.cs | 2 +- .../Dungeon/D11LapisManalis/D111Albion.cs | 2 +- .../D11LapisManalis/D112GalateaMagna.cs | 2 +- .../Dungeon/D11LapisManalis/D113Cagnazzo.cs | 2 +- .../Dungeon/D12Aetherfont/D121Lyngbakr.cs | 2 +- .../Dungeon/D12Aetherfont/D122Arkas.cs | 2 +- .../Dungeon/D12Aetherfont/D123Octomammoth.cs | 2 +- .../Dungeon/D13LunarSubterrane/D131DarkElf.cs | 2 +- .../D13LunarSubterrane/D132DamcyanAntilon.cs | 2 +- .../Dungeon/D13LunarSubterrane/D133Durante.cs | 2 +- .../Extreme/Ex1Zodiark/Ex1Zodiark.cs | 2 +- .../Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs | 2 +- .../Extreme/Ex3Endsinger/Ex3Endsinger.cs | 2 +- .../Extreme/Ex4Barbariccia/Ex4Barbariccia.cs | 2 +- .../Extreme/Ex5Rubicante/Ex5Rubicante.cs | 2 +- .../Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs | 2 +- .../Extreme/Ex7Zeromus/Ex7Zeromus.cs | 2 +- BossMod/Modules/Endwalker/FATE/Chi.cs | 2 +- BossMod/Modules/Endwalker/FATE/Daivadipa.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Aegeiros.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/ArchEta.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/FanAil.cs | 2 +- .../Endwalker/Hunt/RankA/Gurangatch.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Hulder.cs | 2 +- .../Endwalker/Hunt/RankA/LunatenderQueen.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Minerva.cs | 2 +- .../Endwalker/Hunt/RankA/MoussePrincess.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Petalodus.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Storsie.cs | 2 +- .../Modules/Endwalker/Hunt/RankA/Sugriva.cs | 2 +- BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Armstrong.cs | 3 +- .../Modules/Endwalker/Hunt/RankS/Burfurlur.cs | 2 +- BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/KerShroud.cs | 2 +- .../Endwalker/Hunt/RankS/NarrowRift.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Ophioneus.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Ruminator.cs | 2 +- .../Modules/Endwalker/Hunt/RankS/Sphatika.cs | 2 +- .../Endwalker/Quest/Endwalker/Endwalker.cs | 2 +- .../P10SPandaemonium/P10SPandaemonium.cs | 2 +- .../Endwalker/Savage/P11SThemis/P11SThemis.cs | 2 +- .../Savage/P12S1Athena/P12S1Athena.cs | 2 +- .../P12S2PallasAthena/P12S2PallasAthena.cs | 2 +- .../Endwalker/Savage/P1SErichthonios/P1S.cs | 2 +- .../Endwalker/Savage/P2SHippokampos/P2S.cs | 2 +- .../Endwalker/Savage/P3SPhoinix/P3S.cs | 2 +- .../Endwalker/Savage/P4S1Hesperos/P4S1.cs | 2 +- .../Endwalker/Savage/P4S2Hesperos/P4S2.cs | 2 +- .../Endwalker/Savage/P5SProtoCarbuncle/P5S.cs | 2 +- .../Endwalker/Savage/P6SHegemone/P6S.cs | 2 +- .../Endwalker/Savage/P7SAgdistis/P7S.cs | 2 +- .../Endwalker/Savage/P8S1Hephaistos/P8S1.cs | 2 +- .../Endwalker/Savage/P8S2Hephaistos/P8S2.cs | 2 +- .../Endwalker/Savage/P9SKokytos/P9SKokytos.cs | 2 +- .../TheExcitatron6000/LuckyFace.cs | 2 +- .../GymnasiouAcheloios.cs | 2 +- .../GymnasiouLeon.cs | 2 +- .../GymnasiouMandragoras.cs | 2 +- .../GymnasiouMegakantha.cs | 2 +- .../GymnasiouMeganereis.cs | 2 +- .../GymnasiouPithekos.cs | 2 +- .../GymnasiouSatyros.cs | 2 +- .../GymnasiouSphinx.cs | 2 +- .../GymnasiouStyphnolobion.cs | 2 +- .../GymnasiouTigris.cs | 2 +- .../GymnasiouTriton.cs | 2 +- .../LampasChrysine.cs | 2 +- .../LyssaChrysine.cs | 2 +- .../TheShiftingGymnasionAgonon/Narkissos.cs | 2 +- .../Trial/T02Hydaelyn/T02Hydaelyn.cs | 2 +- .../Endwalker/Trial/T08Asura/T08Asura.cs | 2 +- .../Modules/Endwalker/Ultimate/DSW1/DSW1.cs | 2 +- .../Modules/Endwalker/Ultimate/DSW2/DSW2.cs | 2 +- BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs | 2 +- .../Endwalker/Unreal/Un1Ultima/Un1Ultima.cs | 2 +- .../Unreal/Un2Sephirot/Un2Sephirot.cs | 2 +- .../Endwalker/Unreal/Un3Sophia/Un3Sophia.cs | 2 +- .../Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs | 2 +- .../Endwalker/Unreal/Un5Thordan/Un5Thordan.cs | 2 +- .../TheSliceIsRight/TheSliceIsRight.cs | 2 +- .../Stage01AllsWellThatStartsWell/Stage01.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act1.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act2.cs | 2 +- .../Stage03WaitingForGolem/Stage03.cs | 2 +- .../Stage04Act1.cs | 2 +- .../Stage04Act2.cs | 2 +- .../Stage05TheThreepennyTurtles/Stage05.cs | 2 +- .../Stage06EyeSociety/Stage06Act1.cs | 2 +- .../Stage06EyeSociety/Stage06Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act1.cs | 2 +- .../Stage07AChorusSlime/Stage07Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act3.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act1.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act2.cs | 2 +- .../Stage09ToKillAMockingslime/Stage09.cs | 2 +- .../Stage10ALittleKnightMusic/Stage10.cs | 2 +- .../Stage11Act1.cs | 2 +- .../Stage11Act2.cs | 2 +- .../Stage12Act1.cs | 2 +- .../Stage12Act2.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act1.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act2.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act1.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act2.cs | 2 +- .../Stage15TheMeNobodyNodes/Stage15.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act1.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act2.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act1.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act2.cs | 2 +- .../Stage18Act1.cs | 2 +- .../Stage18Act2.cs | 2 +- .../Stage19Act1.cs | 2 +- .../Stage19Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act1.cs | 2 +- .../Stage20MissTyphon/Stage20Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act3.cs | 2 +- .../Stage21Act1.cs | 2 +- .../Stage21Act2.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act1.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act2.cs | 2 +- .../Stage23BehemothsAndBroomsticks/Stage23.cs | 2 +- .../Stage24Act1.cs | 2 +- .../Stage24Act2.cs | 2 +- .../Stage24Act3.cs | 2 +- .../Stage25Act1.cs | 2 +- .../Stage25Act2.cs | 2 +- .../Stage25Act3.cs | 2 +- .../Stage26PapaMia/Stage26Act1.cs | 2 +- .../Stage26PapaMia/Stage26Act2.cs | 2 +- .../Stage27LockUpYourSnorters/Stage27.cs | 2 +- .../Global/PVP/HiddenGorge/GoblinMercenary.cs | 2 +- .../{Event => Quest}/FF15Collab/Garuda.cs | 4 +- .../{Event => Quest}/FF15Collab/Iseultalon.cs | 4 +- .../{Event => Quest}/FF15Collab/MA-x.cs | 4 +- BossMod/Modules/ModuleRegistry.cs | 204 ++---------------- .../Dungeon/D01Sastasha/D010Switch.cs | 2 +- .../Dungeon/D03Copperbell/D031Kottos.cs | 2 +- .../Dungeon/D03Copperbell/D032IchorousIre.cs | 2 +- .../Dungeon/D03Copperbell/D033Gyges.cs | 2 +- .../Dungeon/D05Totorak/D053Graffias.cs | 2 +- .../Dungeon/D06Haukke/D061ManorClaviger.cs | 2 +- .../Dungeon/D06Haukke/D063LadyAmandine.cs | 2 +- .../Dungeon/D07Brayflox/D074Aiatar.cs | 2 +- .../Dungeon/D08Qarn/D081Teratotaur.cs | 2 +- .../Dungeon/D08Qarn/D082TempleGuardian.cs | 2 +- .../Dungeon/D08Qarn/D083Adjudicator.cs | 2 +- .../Dungeon/D09Cutter/D092GiantTunnelWorm.cs | 2 +- .../Dungeon/D09Cutter/D093Chimera.cs | 2 +- .../Dungeon/D10StoneVigil/D101ChudoYudo.cs | 2 +- .../Dungeon/D10StoneVigil/D102Koshchei.cs | 2 +- .../Dungeon/D10StoneVigil/D103Isgebind.cs | 2 +- .../D11DzemaelDarkhold/D111AllSeeingEye.cs | 2 +- .../Dungeon/D11DzemaelDarkhold/D113Batraal.cs | 2 +- .../Dungeon/D12AurumVale/D121Locksmith.cs | 2 +- .../Dungeon/D12AurumVale/D122Coincounter.cs | 2 +- .../D12AurumVale/D123MisersMistress.cs | 2 +- .../D13CastrumMeridianum/D131BlackEft.cs | 2 +- .../D132MagitekVanguardF1.cs | 2 +- .../Dungeon/D13CastrumMeridianum/D133Livia.cs | 2 +- .../Dungeon/D14Praetorium/D141Colossus.cs | 2 +- .../Dungeon/D14Praetorium/D142Nero.cs | 2 +- .../Dungeon/D14Praetorium/D143Gaius.cs | 2 +- .../D15WanderersPalace/D151KeeperOfHalidom.cs | 2 +- .../D15WanderersPalace/D152GiantBavarois.cs | 2 +- .../D15WanderersPalace/D153TonberryKing.cs | 2 +- .../Dungeon/D16Amdapor/D161Psycheflayer.cs | 2 +- .../Dungeon/D16Amdapor/D162DemonWall.cs | 2 +- .../Dungeon/D16Amdapor/D163Anantaboga.cs | 2 +- .../Extreme/Ex1Ultima/Ex1Ultima.cs | 2 +- .../Extreme/Ex2Garuda/Ex2Garuda.cs | 2 +- .../RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs | 2 +- .../RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs | 2 +- .../RealmReborn/Raid/T01Caduceus/T01ADS.cs | 2 +- .../Raid/T01Caduceus/T01Caduceus.cs | 2 +- .../Raid/T02MultiADS/T02MultiADS.cs | 14 +- .../Raid/T04Gauntlet/T04Gauntlet.cs | 2 +- .../Raid/T05Twintania/T05Twintania.cs | 2 +- .../RealmReborn/Trial/T01IfritN/T01IfritN.cs | 2 +- .../RealmReborn/Trial/T02TitanN/T02TitanN.cs | 2 +- .../Trial/T03GarudaN/T03GarudaN.cs | 2 +- .../T04PortaDecumana/T04PortaDecumana1.cs | 2 +- .../T04PortaDecumana/T04PortaDecumana2.cs | 2 +- .../RealmReborn/Trial/T05IfritH/T05IfritH.cs | 2 +- .../Trial/T06GarudaH/T06GarudaH.cs | 2 +- .../RealmReborn/Trial/T07TitanH/T07TitanH.cs | 2 +- .../Trial/T08ThornmarchH/T08ThornmarchH.cs | 2 +- .../Trial/T09WhorleaterH/T09WhorleaterH.cs | 2 +- .../D01Holminster/D011ForgivenDissonance.cs | 2 +- .../D01Holminster/D012TesleentheForgiven.cs | 2 +- .../Dungeon/D01Holminster/D013Philia.cs | 2 +- .../D03QitanaRavel/D030RonkanDreamer.cs | 2 +- .../Dungeon/D03QitanaRavel/D031Lozatl.cs | 2 +- .../Dungeon/D03QitanaRavel/D032Batsquatch.cs | 2 +- .../Dungeon/D03QitanaRavel/D033Eros.cs | 2 +- .../D05MtGulg/D050ForgivenPrejudice.cs | 2 +- .../Dungeon/D05MtGulg/D051ForgivenCruelty.cs | 2 +- .../Dungeon/D05MtGulg/D052ForgivenApathy.cs | 2 +- .../Dungeon/D05MtGulg/D053ForgivenWhimsy.cs | 2 +- .../Dungeon/D05MtGulg/D054ForgivenRevelry.cs | 2 +- .../D05MtGulg/D055ForgivenObscenity.cs | 2 +- .../Shadowbringers/FATE/Archaeotania.cs | 2 +- .../Modules/Shadowbringers/FATE/Formidable.cs | 2 +- .../CE11ShadowOfDeathHand.cs | 2 +- .../CriticalEngagement/CE12BayingOfHounds.cs | 2 +- .../CriticalEngagement/CE13KillItWithFire.cs | 2 +- .../CriticalEngagement/CE14VigilForLost.cs | 2 +- .../CriticalEngagement/CE21FinalFurlong.cs | 2 +- .../CriticalEngagement/CE31MetalFoxChaos.cs | 2 +- .../CE41WithDiremiteAndMain.cs | 2 +- .../CE42FromBeyondTheGrave.cs | 2 +- .../CriticalEngagement/CE44FamiliarFace.cs | 2 +- .../CE51ThereWouldBeBlood.cs | 2 +- .../CriticalEngagement/CE52TimeToBurn.cs | 2 +- .../CE53HereComesTheCavalry.cs | 2 +- .../CriticalEngagement/CE54NeverCryWolf.cs | 2 +- .../CriticalEngagement/CE62LooksToDieFor.cs | 2 +- .../CriticalEngagement/CE63WornToShadow.cs | 2 +- .../CriticalEngagement/CE64FeelingTheBurn.cs | 2 +- .../DelubrumReginae/DRS1TrinitySeeker/DRS1.cs | 2 +- .../Foray/DelubrumReginae/DRS2Dahu/DRS2.cs | 2 +- .../DelubrumReginae/DRS3QueensGuard/DRS3.cs | 2 +- .../Foray/DelubrumReginae/DRS4Phantom/DRS4.cs | 2 +- .../DelubrumReginae/DRS5TrinityAvowed/DRS5.cs | 2 +- .../DRS6StygimolochLord/DRS6.cs | 2 +- .../Foray/DelubrumReginae/DRS7Queen/DRS7.cs | 2 +- .../Foray/Duel/Duel2Lyon/Duel2Lyon.cs | 2 +- .../Foray/Duel/Duel4Dabog/Duel4Dabog.cs | 2 +- .../Modules/Shadowbringers/Hunt/RankA/Baal.cs | 2 +- .../Shadowbringers/Hunt/RankA/Grassman.cs | 2 +- .../Shadowbringers/Hunt/RankA/Huracan.cs | 2 +- .../Shadowbringers/Hunt/RankA/LilMurderer.cs | 2 +- .../Shadowbringers/Hunt/RankA/Maliktender.cs | 2 +- .../Shadowbringers/Hunt/RankA/Nariphon.cs | 2 +- .../Shadowbringers/Hunt/RankA/Nuckelavee.cs | 2 +- .../Hunt/RankA/OPoorestPauldia.cs | 2 +- .../Shadowbringers/Hunt/RankA/Rusalka.cs | 2 +- .../Shadowbringers/Hunt/RankA/Sugaar.cs | 2 +- .../Shadowbringers/Hunt/RankA/Supay.cs | 2 +- .../Shadowbringers/Hunt/RankA/TheMudman.cs | 2 +- .../Shadowbringers/Hunt/RankS/Aglaope.cs | 2 +- .../Hunt/RankS/ForgivenGossip.cs | 2 +- .../Hunt/RankS/ForgivenPedantry.cs | 2 +- .../Hunt/RankS/ForgivenRebellion.cs | 2 +- .../Shadowbringers/Hunt/RankS/Gunitt.cs | 2 +- .../Shadowbringers/Hunt/RankS/Ixtab.cs | 2 +- .../Shadowbringers/Hunt/RankS/Tarchia.cs | 2 +- .../Shadowbringers/Hunt/RankS/Tyger.cs | 2 +- .../TheDungeonsOfLyheGhiah/Goliath.cs | 2 +- .../FuathTroublemaker.cs | 2 +- .../GreedyPixie.cs | 2 +- .../SecretBasket.cs | 2 +- .../SecretCladoselache.cs | 2 +- .../SecretDjinn.cs | 2 +- .../SecretKeeper.cs | 2 +- .../SecretKorrigan.cs | 2 +- .../SecretPegasus.cs | 2 +- .../SecretPorxie.cs | 2 +- .../SecretSerpent.cs | 2 +- .../SecretSwallow.cs | 2 +- .../SecretUndine.cs | 2 +- .../SecretWorm.cs | 2 +- .../Shadowbringers/Ultimate/TEA/TEA.cs | 2 +- .../Modules/Stormblood/Hunt/RankA/Angada.cs | 2 +- .../Modules/Stormblood/Hunt/RankA/Gajasura.cs | 2 +- .../Stormblood/Hunt/RankS/BoneCrawler.cs | 2 +- .../Modules/Stormblood/Hunt/RankS/Gamma.cs | 2 +- .../Modules/Stormblood/Hunt/RankS/Okina.cs | 2 +- .../Modules/Stormblood/Hunt/RankS/Orghana.cs | 2 +- .../TheLostCanalsOfUznair/CanalIcebeast.cs | 2 +- .../AltarAiravata.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarArachne.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarBeast.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarChimera.cs | 2 +- .../AltarDiresaur.cs | 2 +- .../AltarDullahan.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarKelpie.cs | 2 +- .../AltarMandragora.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarSkatene.cs | 2 +- .../TheShiftingAltarsOfUznair/AltarTotem.cs | 2 +- .../TheShiftingAltarsOfUznair/Hati.cs | 2 +- .../TheGreatGoldWhisker.cs | 2 +- .../TheShiftingAltarsOfUznair/TheOlderOne.cs | 2 +- .../TheShiftingAltarsOfUznair/TheWinged.cs | 2 +- .../Modules/Stormblood/Ultimate/UCOB/UCOB.cs | 2 +- .../Modules/Stormblood/Ultimate/UWU/UWU.cs | 2 +- 330 files changed, 516 insertions(+), 590 deletions(-) rename BossMod/Modules/Global/{Event => Quest}/FF15Collab/Garuda.cs (98%) rename BossMod/Modules/Global/{Event => Quest}/FF15Collab/Iseultalon.cs (97%) rename BossMod/Modules/Global/{Event => Quest}/FF15Collab/MA-x.cs (92%) diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs index bd0b43dcf4..972cfeffcc 100644 --- a/BossMod/BossModule/BossModuleInfo.cs +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -35,10 +35,36 @@ public enum Category PVP, MaskedCarnivale, GoldSaucer, - Event, Count } + + public enum GroupType + { + None, + CFC, // group id is ContentFinderCondition row + MaskedCarnivale, // group id is ContentFinderCondition row + RemovedUnreal, // group id is ContentFinderCondition row + Quest, // group id is Quest row + Fate, // group id is Fate row + Hunt, // group id is HuntRank + BozjaCE, // group id is ContentFinderCondition row, name id is DynamicEvent row + BozjaDuel, // group id is ContentFinderCondition row, name id is DynamicEvent row + GoldSaucer, // group id is GoldSaucerTextData row + } + + public enum HuntRank : uint { B, A, S, SS } + + // shorthand expansion names + public static string ShortName(this Expansion e) => e switch + { + Expansion.RealmReborn => "ARR", + Expansion.Heavensward => "HW", + Expansion.Stormblood => "SB", + Expansion.Shadowbringers => "ShB", + Expansion.Endwalker => "EW", + _ => e.ToString() + }; } // attribute that allows customizing boss module's metadata; it is optional, each field has some defaults that are fine in most cases @@ -53,13 +79,9 @@ public class ModuleInfoAttribute : Attribute public Type? TetherIDType; // default: ns.TetherID public Type? IconIDType; // default: ns.IconID public uint PrimaryActorOID; // default: OID.Boss - public string? DisplayName; public BossModuleInfo.Expansion Expansion = BossModuleInfo.Expansion.Count; // default: second namespace level public BossModuleInfo.Category Category = BossModuleInfo.Category.Count; // default: third namespace level - public uint QuestID; // default: 0 - public uint DynamicEventID; // default: 0 - public uint FateID; // default: 0 - public uint NotoriousMonsterID; // default: 0 - public uint NameID; // default: 0 - public uint CFCID; // default: 0 + public BossModuleInfo.GroupType GroupType = BossModuleInfo.GroupType.None; + public uint GroupID; + public uint NameID; // usually BNpcName row, unless GroupType uses it differently } diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index d9c6653d49..ed1acf8d5c 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -1,6 +1,5 @@ using Dalamud.Interface.Internal; using Dalamud.Interface.Utility.Raii; -using Dalamud.Utility; using ImGuiNET; using Lumina.Excel.GeneratedSheets; using Lumina.Text; @@ -11,12 +10,18 @@ namespace BossMod; public class ModuleViewer : IDisposable { + private record struct ModuleInfo(Type Type, string Name, uint SortOrder); + private record struct ModuleGroupInfo(string Name, uint Id, uint SortOrder, IDalamudTextureWrap? Icon = null); + private record struct ModuleGroup(ModuleGroupInfo Info, List Modules); + private BitMask _filterExpansions; private BitMask _filterCategories; private (string name, IDalamudTextureWrap? icon)[] _expansions; private (string name, IDalamudTextureWrap? icon)[] _categories; - + private IDalamudTextureWrap? _iconFATE; + private IDalamudTextureWrap? _iconHunt; + private List[,] _groups; private Vector2 _iconSize = new(30, 30); public ModuleViewer() @@ -54,7 +59,39 @@ public ModuleViewer() _categories[(int)BossModuleInfo.Category.Unreal].icon = _categories[(int)BossModuleInfo.Category.Trial].icon; _categories[(int)BossModuleInfo.Category.Savage].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; _categories[(int)BossModuleInfo.Category.Alliance].icon = _categories[(int)BossModuleInfo.Category.Raid].icon; - _categories[(int)BossModuleInfo.Category.Event].icon = GetIcon(61757); + //_categories[(int)BossModuleInfo.Category.Event].icon = GetIcon(61757); + + _iconFATE = GetIcon(contentType?.GetRow(8)?.Icon ?? 0); + _iconHunt = GetIcon((uint)(playStyle?.GetRow(10)?.Icon ?? 0)); + + _groups = new List[(int)BossModuleInfo.Expansion.Count, (int)BossModuleInfo.Category.Count]; + for (int i = 0; i < (int)BossModuleInfo.Expansion.Count; ++i) + for (int j = 0; j < (int)BossModuleInfo.Category.Count; ++j) + _groups[i, j] = new(); + + foreach (var info in ModuleRegistry.RegisteredModules.Values) + { + var groups = _groups[(int)info.Expansion, (int)info.Category]; + var (groupInfo, moduleInfo) = Classify(info); + var groupIndex = groups.FindIndex(g => g.Info.Id == groupInfo.Id); + if (groupIndex < 0) + { + groupIndex = groups.Count; + groups.Add(new(groupInfo, new())); + } + else if (groups[groupIndex].Info != groupInfo) + { + Service.Log($"[ModuleViewer] Group properties mismatch between {groupInfo} and {groups[groupIndex].Info}"); + } + groups[groupIndex].Modules.Add(moduleInfo); + } + + foreach (var groups in _groups) + { + groups.SortBy(g => g.Info.SortOrder); + foreach (var g in groups) + g.Modules.SortBy(m => m.SortOrder); + } } public void Dispose() @@ -63,6 +100,8 @@ public void Dispose() e.icon?.Dispose(); foreach (var c in _categories) c.icon?.Dispose(); + _iconFATE?.Dispose(); + _iconHunt?.Dispose(); } public void Draw(UITree _tree) @@ -137,38 +176,35 @@ private void DrawModules(UITree _tree) if (!table) return; - DrawRows(ModuleRegistry.CataloguedModules.DistinctBy(x => x.DisplayName), _tree); - DrawRows(ModuleRegistry.UncataloguedModules, _tree); - } - - private void DrawRows(IEnumerable enumerable, UITree _tree) - { - foreach (var mod in enumerable) + for (int i = 0; i < (int)BossModuleInfo.Expansion.Count; ++i) { - if (_filterExpansions[(int)mod.Expansion] || _filterCategories[(int)mod.Category]) + if (_filterExpansions[i]) continue; + for (int j = 0; j < (int)BossModuleInfo.Category.Count; ++j) + { + if (_filterCategories[j]) + continue; - ImGui.TableNextRow(); - ImGui.TableNextColumn(); - UIMisc.Image(_expansions[(int)mod.Expansion].icon, new(36)); - ImGui.SameLine(); - UIMisc.Image(_categories[(int)mod.Category].icon, new(36)); - ImGui.TableNextColumn(); - foreach (var _ in _tree.Node($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.DisplayName!)}##{mod.PrimaryActorOID}")) - DrawBosses(ModuleRegistry.RegisteredModules.Values, mod.DisplayName ?? new()); - } - } + foreach (var group in _groups[i, j]) + { + ImGui.TableNextRow(); + ImGui.TableNextColumn(); + UIMisc.Image(_expansions[i].icon, new(36)); + ImGui.SameLine(); + UIMisc.Image(group.Info.Icon ?? _categories[j].icon, new(36)); + ImGui.TableNextColumn(); - private void DrawBosses(IEnumerable modules, SeString name) - { - foreach (var mod in modules.Where(x => x.DisplayName == name)) - if (!mod.BossName!.RawString.IsNullOrEmpty()) - ImGui.TextUnformatted($"{CultureInfo.InvariantCulture.TextInfo.ToTitleCase(mod.BossName)}"); + foreach (var _ in _tree.Node($"{group.Info.Name}###{i}/{j}/{group.Info.Id}")) + foreach (var mod in group.Modules) + ImGui.TextUnformatted($"{mod.Name} [{mod.Type.Name}]"); + } + } + } } private void Customize((string name, IDalamudTextureWrap? icon)[] array, int element, uint iconId, SeString? name) { - var icon = iconId != 0 ? GetIcon(iconId) : null; + var icon = GetIcon(iconId); if (icon != null) array[element].icon = icon; if (name != null) @@ -179,5 +215,52 @@ private void Customize((string name, IDalamudTextureWrap? icon)[] array, int ele private void Customize(BossModuleInfo.Category category, ContentType? ct) => Customize(category, ct?.Icon ?? 0, ct?.Name); private void Customize(BossModuleInfo.Category category, CharaCardPlayStyle? ps) => Customize(category, (uint)(ps?.Icon ?? 0), ps?.Name); - private static IDalamudTextureWrap? GetIcon(uint iconId) => Service.Texture?.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes); + private static IDalamudTextureWrap? GetIcon(uint iconId) => iconId != 0 ? Service.Texture?.GetIcon(iconId, Dalamud.Plugin.Services.ITextureProvider.IconFlags.HiRes) : null; + private static string FixCase(SeString? str) => CultureInfo.InvariantCulture.TextInfo.ToTitleCase(str ?? ""); + private static string BNpcName(uint id) => FixCase(Service.LuminaRow(id)?.Singular); + + private (ModuleGroupInfo, ModuleInfo) Classify(ModuleRegistry.Info module) + { + var groupId = (uint)module.GroupType << 24; + switch (module.GroupType) + { + case BossModuleInfo.GroupType.CFC: + groupId |= module.GroupID; + var cfcRow = Service.LuminaRow(module.GroupID); + var cfcSort = cfcRow?.SortKey ?? 0u; + var cfcName = FixCase(cfcRow?.Name); + return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.MaskedCarnivale: + groupId |= module.GroupID; + var mcRow = Service.LuminaRow(module.GroupID); + var mcSort = uint.Parse((mcRow?.ShortCode ?? "").Substring(3)); // 'aozNNN' + var mcName = $"Stage {mcSort}: {FixCase(mcRow?.Name)}"; + return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.RemovedUnreal: + return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.Quest: + var questRow = Service.LuminaRow(module.GroupID); + groupId |= questRow?.JournalGenre.Row ?? 0; + var questCategoryName = questRow?.JournalGenre.Value?.Name ?? ""; + return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + case BossModuleInfo.GroupType.Fate: + var fateRow = Service.LuminaRow(module.GroupID); + return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + case BossModuleInfo.GroupType.Hunt: + groupId |= module.GroupID; + return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + case BossModuleInfo.GroupType.BozjaCE: + groupId |= module.GroupID; + var ceName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} CE"; + return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.BozjaDuel: + groupId |= module.GroupID; + var duelName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} Duel"; + return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + case BossModuleInfo.GroupType.GoldSaucer: + return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.GroupID)); + default: + return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + } + } } diff --git a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs index 6164505eb3..2039dff58e 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs @@ -19,7 +19,7 @@ public A10LionsStates(A10Lions module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, CFCID = 866, NameID = 11294)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11294)] public class A10Lions : BossModule { private Actor? _lioness; diff --git a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs index adbcc20a96..fc6dbf8075 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs @@ -20,7 +20,7 @@ class DestructiveStrike : Components.BaitAwayCast public DestructiveStrike() : base(ActionID.MakeSpell(AID.DestructiveStrike), new AOEShapeCone(13, 60.Degrees())) { } // TODO: verify angle } -[ModuleInfo(CFCID = 866, NameID = 11274)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11274)] public class A10RhalgrEmissary : BossModule { public A10RhalgrEmissary(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(74, 516), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs index de0c7d7e41..dd390ab8b3 100644 --- a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs +++ b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs @@ -5,7 +5,7 @@ class ByregotWard : Components.BaitAwayCast public ByregotWard() : base(ActionID.MakeSpell(AID.ByregotWard), new AOEShapeCone(10, 45.Degrees())) { } } -[ModuleInfo(CFCID = 866, NameID = 11281)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11281)] public class A11Byregot : BossModule { public A11Byregot(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 700), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs index a0236d1d2c..27deb30011 100644 --- a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs +++ b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs @@ -15,7 +15,7 @@ class BronzeLightning : Components.SelfTargetedAOEs public BronzeLightning() : base(ActionID.MakeSpell(AID.BronzeLightning), new AOEShapeCone(50, 22.5f.Degrees()), 4) { } } -[ModuleInfo(CFCID = 866, NameID = 11273)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11273)] public class A12Rhalgr : BossModule { public A12Rhalgr(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-15, 275), 30)) // note: arena has a really complex shape... diff --git a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs index bb1c55d6f0..7630095fdf 100644 --- a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs +++ b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs @@ -25,7 +25,7 @@ class SublimeSunset : Components.LocationTargetedAOEs public SublimeSunset() : base(ActionID.MakeSpell(AID.SublimeSunsetAOE), 40) { } // TODO: check falloff } -[ModuleInfo(CFCID = 866, NameID = 11277)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11277)] public class A13Azeyma : BossModule { public A13Azeyma(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs index c0864b8b80..8df0db0c31 100644 --- a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs +++ b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs @@ -46,7 +46,7 @@ public TippedScales() : base(ActionID.MakeSpell(AID.TippedScalesAOE)) { } } // TODO: balancing counter -[ModuleInfo(CFCID = 866, NameID = 11286)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11286)] public class A14Naldthal : BossModule { public A14Naldthal(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs b/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs index 79f85f80aa..b623d663d6 100644 --- a/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs +++ b/BossMod/Modules/Endwalker/Alliance/A21Nophica/A21Nophica.cs @@ -30,7 +30,7 @@ class HeavensEarth : Components.BaitAwayCast public HeavensEarth() : base(ActionID.MakeSpell(AID.HeavensEarthAOE), new AOEShapeCircle(5), true) { } } -[ModuleInfo(CFCID = 911, NameID = 12065)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12065)] public class A21Nophica : BossModule { public A21Nophica(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -238), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs b/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs index da53f74842..325d5ef9cd 100644 --- a/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs +++ b/BossMod/Modules/Endwalker/Alliance/A22AlthykNymeia/A22AlthykNymeia.cs @@ -10,7 +10,7 @@ class Hydroptosis : Components.SpreadFromCastTargets public Hydroptosis() : base(ActionID.MakeSpell(AID.HydroptosisAOE), 6) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Althyk, CFCID = 911, NameID = 12244)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Althyk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12244)] public class A22AlthykNymeia : BossModule { private Actor? _nymeia; diff --git a/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs b/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs index ae9be18ff5..bd78819a20 100644 --- a/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs +++ b/BossMod/Modules/Endwalker/Alliance/A23Halone/A23Halone.cs @@ -45,7 +45,7 @@ class Niphas : Components.SelfTargetedAOEs public Niphas() : base(ActionID.MakeSpell(AID.Niphas), new AOEShapeCircle(9)) { } } -[ModuleInfo(CFCID = 911, NameID = 12064)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12064)] public class A23Halone : BossModule { public A23Halone(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-700, 600), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs b/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs index 413ba7214e..aadb05102c 100644 --- a/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs +++ b/BossMod/Modules/Endwalker/Alliance/A24Menphina/A24Menphina.cs @@ -60,7 +60,7 @@ class MoonsetRays : Components.StackWithCastTargets public MoonsetRays() : base(ActionID.MakeSpell(AID.MoonsetRaysAOE), 6, 4) { } } -[ModuleInfo(CFCID = 911, NameID = 12063)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 911, NameID = 12063)] public class A24Menphina : BossModule { public A24Menphina(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(800, 750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs index c115c21232..791f539633 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs @@ -54,8 +54,8 @@ public C010ArmorStates(BossModule module, bool savage) : base(module) class C010NArmorStates : C010ArmorStates { public C010NArmorStates(BossModule module) : base(module, false) { } } class C010SArmorStates : C010ArmorStates { public C010SArmorStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11515)] public class C010NArmor : SimpleBossModule { public C010NArmor(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11515)] public class C010SArmor : SimpleBossModule { public C010SArmor(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs index ecea71c546..ff381dfe72 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs @@ -54,8 +54,8 @@ public C010BelladonnaStates(BossModule module, bool savage) : base(module) class C010NBelladonnaStates : C010BelladonnaStates { public C010NBelladonnaStates(BossModule module) : base(module, false) { } } class C010SBelladonnaStates : C010BelladonnaStates { public C010SBelladonnaStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11514)] public class C010NBelladonna : SimpleBossModule { public C010NBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11514)] public class C010SBelladonna : SimpleBossModule { public C010SBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs index 168e353f51..416deb3d5f 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs @@ -68,7 +68,7 @@ public C010DryadStates(BossModule module, bool savage) : base(module) class C010NDryadStates : C010DryadStates { public C010NDryadStates(BossModule module) : base(module, false) { } } class C010SDryadStates : C010DryadStates { public C010SDryadStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11513)] public class C010NDryad : SimpleBossModule { public C010NDryad(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11513)] public class C010SDryad : SimpleBossModule { public C010SDryad(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs index fd71a2051c..50f6f2bab0 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs @@ -54,8 +54,8 @@ public C010DullahanStates(BossModule module, bool savage) : base(module) class C010NDullahanStates : C010DullahanStates { public C010NDullahanStates(BossModule module) : base(module, false) { } } class C010SDullahanStates : C010DullahanStates { public C010SDullahanStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11506)] public class C010NDullahan : SimpleBossModule { public C010NDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11506)] public class C010SDullahan : SimpleBossModule { public C010SDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs index a77822b061..0eec6496d5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs @@ -54,8 +54,8 @@ public C010KalukStates(BossModule module, bool savage) : base(module) class C010NKalukStates : C010KalukStates { public C010NKalukStates(BossModule module) : base(module, false) { } } class C010SKalukStates : C010KalukStates { public C010SKalukStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11510)] public class C010NKaluk : SimpleBossModule { public C010NKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11510)] public class C010SKaluk : SimpleBossModule { public C010SKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs index a2a57b5983..aa142e8b4a 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs @@ -68,7 +68,7 @@ public C010UdumbaraStates(BossModule module, bool savage) : base(module) class C010NUdumbaraStates : C010UdumbaraStates { public C010NUdumbaraStates(BossModule module) : base(module, false) { } } class C010SUdumbaraStates : C010UdumbaraStates { public C010SUdumbaraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11511)] public class C010NUdumbara : SimpleBossModule { public C010NUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11511)] public class C010SUdumbara : SimpleBossModule { public C010SUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs index cab6ea8e00..3b6d162279 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs @@ -58,8 +58,8 @@ public abstract class C011Silkie : BossModule public C011Silkie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-335, -155), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11369)] public class C011NSilkie : C011Silkie { public C011NSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11369)] public class C011SSilkie : C011Silkie { public C011SSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs index 2483e9ffb6..d31745d85d 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs @@ -19,8 +19,8 @@ public abstract class C012Gladiator : BossModule public C012Gladiator(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-35, -271), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11387)] public class C012NGladiator : C012Gladiator { public C012NGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11387)] public class C012SGladiator : C012Gladiator { public C012SGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs index ac9c238926..b2a5aca840 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs @@ -27,8 +27,8 @@ public abstract class C013Shadowcaster : BossModule public C013Shadowcaster(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(289, -105), 15, 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 878, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11393)] public class C013NShadowcaster : C013Shadowcaster { public C013NShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 879, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11393)] public class C013SShadowcaster : C013Shadowcaster { public C013SShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs index dcade21310..f6747a6df4 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs @@ -82,7 +82,7 @@ private void Crosswind(uint id, float delay) class C020NFukoStates : C020FukoStates { public C020NFukoStates(BossModule module) : base(module, false) { } } class C020SFukoStates : C020FukoStates { public C020SFukoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, CFCID = 946, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12399)] public class C020NFuko : C020Trash1 { public C020NFuko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -95,7 +95,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, CFCID = 947, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12399)] public class C020SFuko : C020Trash1 { public C020SFuko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs index cfd675bb95..58df10f580 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs @@ -71,8 +71,8 @@ public C020KotenguStates(BossModule module, bool savage) : base(module) class C020NKotenguStates : C020KotenguStates { public C020NKotenguStates(BossModule module) : base(module, false) { } } class C020SKotenguStates : C020KotenguStates { public C020SKotenguStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, CFCID = 946, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12410)] public class C020NKotengu : C020Trash2 { public C020NKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, CFCID = 947, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12410)] public class C020SKotengu : C020Trash2 { public C020SKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs index a259601dd6..b3a30240f5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs @@ -52,8 +52,8 @@ public C020OnmitsugashiraStates(BossModule module, bool savage) : base(module) class C020NOnmitsugashiraStates : C020OnmitsugashiraStates { public C020NOnmitsugashiraStates(BossModule module) : base(module, false) { } } class C020SOnmitsugashiraStates : C020OnmitsugashiraStates { public C020SOnmitsugashiraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, CFCID = 946, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12424)] public class C020NOnmitsugashira : C020Trash2 { public C020NOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, CFCID = 947, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12424)] public class C020SOnmitsugashira : C020Trash2 { public C020SOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs index 262c832e26..0d85b9d9a0 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs @@ -89,7 +89,7 @@ private void MasterOfLevin(uint id, float delay) class C020NRaikoStates : C020RaikoStates { public C020NRaikoStates(BossModule module) : base(module, false) { } } class C020SRaikoStates : C020RaikoStates { public C020SRaikoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, CFCID = 946, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12422)] public class C020NRaiko : C020Trash1 { public C020NRaiko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -102,7 +102,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, CFCID = 947, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12422)] public class C020SRaiko : C020Trash1 { public C020SRaiko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs index d70f793f07..29644a5c07 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs @@ -28,8 +28,8 @@ public C020YukiStates(BossModule module, bool savage) : base(module) class C020NYukiStates : C020YukiStates { public C020NYukiStates(BossModule module) : base(module, false) { } } class C020SYukiStates : C020YukiStates { public C020SYukiStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, CFCID = 946, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12425)] public class C020NYuki : C020Trash1 { public C020NYuki(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, CFCID = 947, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12425)] public class C020SYuki : C020Trash1 { public C020SYuki(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs index a475a82c86..3a0166acc6 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs @@ -19,8 +19,8 @@ public abstract class C021Shishio : BossModule public C021Shishio(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, -100), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 946, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12428)] public class C021NShishio : C021Shishio { public C021NShishio(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 947, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12428)] public class C021SShishio : C021Shishio { public C021SShishio(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs index 5f318ca29e..2f3f083c91 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs @@ -12,8 +12,8 @@ public abstract class C022Gorai : BossModule public C022Gorai(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(300, -120), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 946, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12373)] public class C022NGorai : C022Gorai { public C022NGorai(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 947, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12373)] public class C022SGorai : C022Gorai { public C022SGorai(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs index 6c69cf2772..0183285172 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs @@ -12,8 +12,8 @@ public abstract class C023Moko : BossModule public C023Moko(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 946, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12357)] public class C023NMoko : C023Moko { public C023NMoko(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 947, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12357)] public class C023SMoko : C023Moko { public C023SMoko(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs index ef56149c78..3add92ecc8 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs @@ -58,13 +58,13 @@ private void IsleDrop(uint id, float delay) class C030NIslekeeperStates : C030IslekeeperStates { public C030NIslekeeperStates(BossModule module) : base(module, false) { } } class C030SIslekeeperStates : C030IslekeeperStates { public C030SIslekeeperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, CFCID = 979, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12561)] public class C030NIslekeeper : C030Trash2 { public C030NIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, CFCID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] public class C030SIslekeeper : C030Trash2 { public C030SIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs index 81006fc6e3..68f1fc3209 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs @@ -70,13 +70,13 @@ private void TailScrew(uint id, float delay) class C030NKiwakinStates : C030KiwakinStates { public C030NKiwakinStates(BossModule module) : base(module, false) { } } class C030SKiwakinStates : C030KiwakinStates { public C030SKiwakinStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, CFCID = 979, NameID = 12632)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12632)] public class C030NKiwakin : C030Trash1 { public C030NKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, CFCID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] public class C030SKiwakin : C030Trash1 { public C030SKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs index 3dfacb7f07..d8fb80798e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs @@ -58,13 +58,13 @@ private void CrossAttack(uint id, float delay) class C030NMonkStates : C030MonkStates { public C030NMonkStates(BossModule module) : base(module, false) { } } class C030SMonkStates : C030MonkStates { public C030SMonkStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, CFCID = 979, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12631)] public class C030NMonk : C030Trash1 { public C030NMonk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, CFCID = 980, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12631)] public class C030SMonk : C030Trash1 { public C030SMonk(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs index 1954645c63..7547ec9185 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs @@ -59,7 +59,7 @@ private void ExpulsionElectricWhorl(uint id, float delay) class C030NRayStates : C030RayStates { public C030NRayStates(BossModule module) : base(module, false) { } } class C030SRayStates : C030RayStates { public C030SRayStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, CFCID = 979, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12541)] public class C030NRay : C030Trash1 { public C030NRay(WorldState ws, Actor primary) : base(ws, primary) { } @@ -71,7 +71,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, CFCID = 980, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12541)] public class C030SRay : C030Trash1 { public C030SRay(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs index e226ec8228..31c20cab89 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs @@ -74,7 +74,7 @@ private void BubbleShowerCrabDribble(uint id, float delay) class C030NSnipperStates : C030SnipperStates { public C030NSnipperStates(BossModule module) : base(module, false) { } } class C030SSnipperStates : C030SnipperStates { public C030SSnipperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, CFCID = 979, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12537)] public class C030NSnipper : C030Trash1 { public C030NSnipper(WorldState ws, Actor primary) : base(ws, primary) { } @@ -86,7 +86,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, CFCID = 980, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12537)] public class C030SSnipper : C030Trash1 { public C030SSnipper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs index 81e2dba16e..7ba9ebbc3e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs @@ -60,13 +60,13 @@ private void Ovation(uint id, float delay) class C030NWoodGolemStates : C030WoodGolemStates { public C030NWoodGolemStates(BossModule module) : base(module, false) { } } class C030SWoodGolemStates : C030WoodGolemStates { public C030SWoodGolemStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, CFCID = 979, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12560)] public class C030NWoodGolem : C030Trash2 { public C030NWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, CFCID = 980, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12560)] public class C030SWoodGolem : C030Trash2 { public C030SWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs index bf3210dd73..343547a980 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs @@ -28,8 +28,8 @@ public abstract class C031Ketuduke : BossModule public C031Ketuduke(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 979, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12605)] public class C031NKetuduke : C031Ketuduke { public C031NKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 980, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12605)] public class C031SKetuduke : C031Ketuduke { public C031SKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs index 93a58712cd..61ea0215b5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs @@ -12,8 +12,8 @@ public abstract class C032Lala : BossModule public C032Lala(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 979, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12639)] public class C032NLala : C032Lala { public C032NLala(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 980, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12639)] public class C032SLala : C032Lala { public C032SLala(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs index 747b728af8..c4fdbe64b7 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs @@ -24,8 +24,8 @@ public abstract class C033Statice : BossModule public C033Statice(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, CFCID = 979, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12506)] public class C033NStatice : C033Statice { public C033NStatice(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, CFCID = 980, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12506)] public class C033SStatice : C033Statice { public C033SStatice(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs index abccdd8c8a..c9cee76bb5 100644 --- a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs +++ b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD30TiamatsClone.cs @@ -88,7 +88,7 @@ public DD30TiamatsCloneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 899, NameID = 12242)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 899, NameID = 12242)] public class DD30TiamatsClone : BossModule { public DD30TiamatsClone(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-300, -300), 20)) { } diff --git a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs index 6aa99e935f..798bc8c9d8 100644 --- a/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs +++ b/BossMod/Modules/Endwalker/DeepDungeon/EurekaOrthos/DD70Aeturna.cs @@ -206,7 +206,7 @@ public DD70AeturnaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 903, NameID = 12246)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 903, NameID = 12246)] public class DD70Aeturna : BossModule { public DD70Aeturna(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-300, -300), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs index 93b7293253..7f897245d3 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D011Minduruva.cs @@ -152,7 +152,7 @@ public D011MinduruvaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 783, NameID = 10256)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 783, NameID = 10256)] public class D011Minduruva : BossModule { public D011Minduruva(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(68, -124), 19.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs index 3534a336a5..ddc9e84a44 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D012Sanduruva.cs @@ -105,7 +105,7 @@ public D012SanduruvaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 783, NameID = 10257)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 783, NameID = 10257)] public class D012Sanduruva : BossModule { public D012Sanduruva(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-258, -26), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs index f396c573a8..69b3f849e0 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D01TowerOfZot/D013MagusSisters.cs @@ -269,7 +269,7 @@ public D013MagusSistersStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 783, NameID = 10265)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 783, NameID = 10265)] class D013MagusSisters : BossModule { public D013MagusSisters(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-27.5f, -49.5f), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs index fff1818813..0fb8331f6d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110AlbusGriffin.cs @@ -41,7 +41,7 @@ public D110AlbusGriffinStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 12245)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 12245)] public class D110AlbusGriffin : BossModule { public D110AlbusGriffin(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(47, -570.5f), 8.5f, 11.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs index 38612f9162..b876a1aa1d 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D110CaladriusMaturus.cs @@ -28,7 +28,7 @@ public D110CaladriusMaturusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 12078)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 12078)] public class D110CaladriusMaturus : BossModule { public D110CaladriusMaturus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(47, -570.5f), 8.5f, 11.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs index 64de41fffc..53c1753251 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D111Albion.cs @@ -273,7 +273,7 @@ public D111AlbionStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 11992)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 11992)] public class D111Albion : BossModule { public D111Albion(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(24, -744), 19.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs index f3c4395a7c..c3266dd001 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D112GalateaMagna.cs @@ -272,7 +272,7 @@ public D112GalateaMagnaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 10308)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 10308)] public class D112GalateaMagna : BossModule { public D112GalateaMagna(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(350, -394), 19.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs index d29b5625c1..1806922999 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D11LapisManalis/D113Cagnazzo.cs @@ -234,7 +234,7 @@ public D113CagnazzoStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 896, NameID = 11995)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 896, NameID = 11995)] public class D113Cagnazzo : BossModule { public D113Cagnazzo(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-250, 130), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs index 79e598db08..8e99d66375 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D121Lyngbakr.cs @@ -111,7 +111,7 @@ public D121LyngbakrStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 822, NameID = 12336)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 822, NameID = 12336)] public class D121Lyngbakr : BossModule { public D121Lyngbakr(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-322, 120), 20)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs index bdd8170101..34222bb296 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D122Arkas.cs @@ -197,7 +197,7 @@ public D122ArkasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 822, NameID = 12337)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 822, NameID = 12337)] public class D122Arkas : BossModule { public D122Arkas(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(425, -440), 14.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs index 2219905121..0a575a4eda 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D12Aetherfont/D123Octomammoth.cs @@ -141,7 +141,7 @@ public D123OctomammothStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 822, NameID = 12334)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 822, NameID = 12334)] class D123Octomammoth : BossModule { public D123Octomammoth(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-370, -368), 33.3f)) diff --git a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs index 081392a02f..f13452333a 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D131DarkElf.cs @@ -145,7 +145,7 @@ public D131DarkElfStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 823, NameID = 12500)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 823, NameID = 12500)] public class D131DarkElf : BossModule { public D131DarkElf(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-401, -231), 15.5f)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs index a01ce2ff6b..b5d1e022e4 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D132DamcyanAntilon.cs @@ -184,7 +184,7 @@ public D132DamcyanAntilonStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 823, NameID = 12484)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 823, NameID = 12484)] public class D132DamcyanAntilon : BossModule { public D132DamcyanAntilon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 60), 19.5f, 25)) { } diff --git a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs index 68e5a63c8c..2424bfb502 100644 --- a/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs +++ b/BossMod/Modules/Endwalker/Dungeon/D13LunarSubterrane/D133Durante.cs @@ -194,7 +194,7 @@ public D133DuranteStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 823, NameID = 12584)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 823, NameID = 12584)] class D133Durante : BossModule { public D133Durante(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -422), 23)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs b/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs index 53896733ff..546f1b93a0 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex1Zodiark/Ex1Zodiark.cs @@ -17,7 +17,7 @@ public class Ex1ZodiarkConfig : CooldownPlanningConfigNode public Ex1ZodiarkConfig() : base(90) { } } -[ModuleInfo(CFCID = 803, NameID = 10456)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 803, NameID = 10456)] public class Ex1Zodiark : BossModule { public Ex1Zodiark(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs b/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs index 6f00284d02..f14db18249 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex2Hydaelyn/Ex2Hydaelyn.cs @@ -24,7 +24,7 @@ public class Ex2HydaelynConfig : CooldownPlanningConfigNode public Ex2HydaelynConfig() : base(90) { } } -[ModuleInfo(CFCID = 791, NameID = 10453)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 791, NameID = 10453)] public class Ex2Hydaelyn : BossModule { public Ex2Hydaelyn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs b/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs index c143608289..80f75fec34 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex3Endsinger/Ex3Endsinger.cs @@ -34,7 +34,7 @@ public class Ex3EndsingerConfig : CooldownPlanningConfigNode public Ex3EndsingerConfig() : base(90) { } } -[ModuleInfo(CFCID = 846, NameID = 10448)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 846, NameID = 10448)] public class Ex3Endsinger : BossModule { public Ex3Endsinger(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs b/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs index ab979ba902..eb4a86745c 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex4Barbariccia/Ex4Barbariccia.cs @@ -120,7 +120,7 @@ class IronOut : Components.CastCounter public IronOut() : base(ActionID.MakeSpell(AID.IronOutAOE)) { } } -[ModuleInfo(CFCID = 871, NameID = 11398)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 871, NameID = 11398)] public class Ex4Barbariccia : BossModule { public Ex4Barbariccia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs b/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs index 6c2ef898ac..0b27b19d96 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex5Rubicante/Ex5Rubicante.cs @@ -21,7 +21,7 @@ public class Ex5RubicanteConfig : CooldownPlanningConfigNode public Ex5RubicanteConfig() : base(90) { } } -[ModuleInfo(CFCID = 924, NameID = 12057)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 924, NameID = 12057)] public class Ex5Rubicante : BossModule { public Ex5Rubicante(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs b/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs index f54bf47f46..974b82ea14 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex6Golbez/Ex6Golbez.cs @@ -76,7 +76,7 @@ public class Ex6GolbezConfig : CooldownPlanningConfigNode public Ex6GolbezConfig() : base(90) { } } -[ModuleInfo(CFCID = 950, NameID = 12365)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 950, NameID = 12365)] public class Ex6Golbez : BossModule { public Ex6Golbez(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 15)) { } diff --git a/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs b/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs index b1121fe1ad..26aa935bb0 100644 --- a/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs +++ b/BossMod/Modules/Endwalker/Extreme/Ex7Zeromus/Ex7Zeromus.cs @@ -31,7 +31,7 @@ public class Ex7ZeromusConfig : CooldownPlanningConfigNode public Ex7ZeromusConfig() : base(90) { } } -[ModuleInfo(CFCID = 965, NameID = 12586)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 965, NameID = 12586)] public class Ex7Zeromus : BossModule { public Ex7Zeromus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/FATE/Chi.cs b/BossMod/Modules/Endwalker/FATE/Chi.cs index 52061c1b37..ab984dee9d 100644 --- a/BossMod/Modules/Endwalker/FATE/Chi.cs +++ b/BossMod/Modules/Endwalker/FATE/Chi.cs @@ -340,7 +340,7 @@ public ChiStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1855)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1855, NameID = 10400)] public class Chi : BossModule { public Chi(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(650, 0), 30)) { } diff --git a/BossMod/Modules/Endwalker/FATE/Daivadipa.cs b/BossMod/Modules/Endwalker/FATE/Daivadipa.cs index 92d0aa4fba..a602834932 100644 --- a/BossMod/Modules/Endwalker/FATE/Daivadipa.cs +++ b/BossMod/Modules/Endwalker/FATE/Daivadipa.cs @@ -307,7 +307,7 @@ public DaivadipaStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1763)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1763, NameID = 10269)] public class Daivadipa : BossModule { public Daivadipa(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-608, 811), 24.5f)) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs index 33242c712a..0ab8acac05 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Aegeiros.cs @@ -72,7 +72,7 @@ public AegeirosStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 195)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10628)] public class Aegeiros : SimpleBossModule { public Aegeiros(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs index 6f31241e08..90019bbea9 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/ArchEta.cs @@ -54,7 +54,7 @@ public ArchEtaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 224)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10634)] public class ArchEta : SimpleBossModule { public ArchEta(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs index 3bb1d70b0f..c100875474 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/FanAil.cs @@ -56,7 +56,7 @@ public FanAilStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 225)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10633)] public class FanAil : SimpleBossModule { public FanAil(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs index 08b53f964a..9c7f9b55d4 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Gurangatch.cs @@ -73,7 +73,7 @@ public GurangatchStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 215)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10631)] public class Gurangatch : SimpleBossModule { public Gurangatch(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs index 0423d68fa4..718f8b97be 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Hulder.cs @@ -53,7 +53,7 @@ public HulderStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 174)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10624)] public class Hulder : SimpleBossModule { public Hulder(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs index c4efdbaacb..58c600c2e0 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/LunatenderQueen.cs @@ -74,7 +74,7 @@ public LunatenderQueenStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 205)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10629)] public class LunatenderQueen : SimpleBossModule { public LunatenderQueen(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs index ecd739f743..75cad0a739 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Minerva.cs @@ -114,7 +114,7 @@ public MinervaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 194)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10627)] public class Minerva : SimpleBossModule { public Minerva(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs index 243aecd93e..4d8ebee212 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/MoussePrincess.cs @@ -103,7 +103,7 @@ public MoussePrincessStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 204)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10630)] public class MoussePrincess : SimpleBossModule { public MoussePrincess(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs index 7bf84f9d3a..535ce61be6 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Petalodus.cs @@ -48,7 +48,7 @@ public PetalodusStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 214)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10632)] public class Petalodus : SimpleBossModule { public Petalodus(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs index a33536bc40..2430dc6179 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Storsie.cs @@ -71,7 +71,7 @@ public StorsieStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 175)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10623)] public class Storsie : SimpleBossModule { public Storsie(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs index 218d30da01..e9adb78db6 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Sugriva.cs @@ -140,7 +140,7 @@ public SugrivaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10626)] public class Sugriva : SimpleBossModule { public Sugriva(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs index 414f366ae4..0807b66abd 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankA/Yilan.cs @@ -96,7 +96,7 @@ public YilanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 184)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 10625)] public class Yilan : SimpleBossModule { public Yilan(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs index d9bcb68342..b823904e09 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Armstrong.cs @@ -94,7 +94,8 @@ public ArmstrongStates(BossModule module) : base(module) .ActivateOnEnter(); } } -[ModuleInfo(NotoriousMonsterID = 196)] + +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10619)] public class Armstrong : SimpleBossModule { public Armstrong(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs index caf87c80ed..017e726efe 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Burfurlur.cs @@ -90,7 +90,7 @@ public BurfurlurStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 176)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10617)] public class Burfurlur : SimpleBossModule { public Burfurlur(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs index 9c85fa9a0d..79384a078d 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ker.cs @@ -280,7 +280,7 @@ public KerStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 181)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 10615)] public class Ker : SimpleBossModule { public Ker(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs index 9a942cf8e2..6bab258984 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/KerShroud.cs @@ -32,7 +32,7 @@ public KerShroudStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 177)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 10616)] public class KerShroud : SimpleBossModule { public KerShroud(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs index b1382f9bc6..87911cc0df 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/NarrowRift.cs @@ -125,7 +125,7 @@ public NarrowRiftStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 226)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10622)] public class NarrowRift : SimpleBossModule { public NarrowRift(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs index 83a85b67e1..51d4d6f57a 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ophioneus.cs @@ -83,7 +83,7 @@ public OphioneusStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 216)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10621)] public class Ophioneus : SimpleBossModule { public Ophioneus(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs index 1b111016fd..e6c73a733f 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Ruminator.cs @@ -85,7 +85,7 @@ public RuminatorStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 206)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10620)] public class Ruminator : SimpleBossModule { public Ruminator(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs index c957329921..d2d6156623 100644 --- a/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs +++ b/BossMod/Modules/Endwalker/Hunt/RankS/Sphatika.cs @@ -148,7 +148,7 @@ public SphatikaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 186)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 10618)] public class Sphatika : SimpleBossModule { public Sphatika(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs b/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs index bbdfc158c7..3c622c47a9 100644 --- a/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs +++ b/BossMod/Modules/Endwalker/Quest/Endwalker/Endwalker.cs @@ -138,7 +138,7 @@ public override IEnumerable ActiveAOEs(BossModule module, int slot, => ActiveCasters.Select((c, i) => new AOEInstance(Shape, c.Position, c.CastInfo!.Rotation, c.CastInfo.NPCFinishAt, i < 2 ? ArenaColor.Danger : ArenaColor.AOE)); } -[ModuleInfo(PrimaryActorOID = (uint)OID.ZenosP1, QuestID = 70000, NameID = 10393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.ZenosP1, GroupType = BossModuleInfo.GroupType.Quest, GroupID = 70000, NameID = 10393)] public class Endwalker : BossModule { private IReadOnlyList _zenosP2; diff --git a/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs b/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs index 0b5e5249c1..4c1aa90e18 100644 --- a/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs +++ b/BossMod/Modules/Endwalker/Savage/P10SPandaemonium/P10SPandaemonium.cs @@ -48,7 +48,7 @@ public class P10SPandaemoniumConfig : CooldownPlanningConfigNode public P10SPandaemoniumConfig() : base(90) { } } -[ModuleInfo(CFCID = 939, NameID = 12354)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 939, NameID = 12354)] public class P10SPandaemonium : BossModule { public P10SPandaemonium(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(100, 92.5f), 30, 22.5f)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs b/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs index 12971cd5c0..e39a9321fb 100644 --- a/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs +++ b/BossMod/Modules/Endwalker/Savage/P11SThemis/P11SThemis.cs @@ -6,7 +6,7 @@ public class P11SThemisConfig : CooldownPlanningConfigNode public P11SThemisConfig() : base(90) { } } -[ModuleInfo(CFCID = 941, NameID = 12388)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 941, NameID = 12388)] public class P11SThemis : BossModule { public P11SThemis(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs index 70acdb3495..1edaf644f8 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs @@ -15,7 +15,7 @@ class Parthenos : Components.SelfTargetedAOEs public Parthenos() : base(ActionID.MakeSpell(AID.Parthenos), new AOEShapeRect(60, 8, 60)) { } } -[ModuleInfo(CFCID = 943, NameID = 12377)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12377)] public class P12S1Athena : BossModule { public P12S1Athena(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs index f626d084e4..db4ec10854 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Savage.P12S2PallasAthena; -[ModuleInfo(CFCID = 943, NameID = 12382)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12382)] public class P12S2PallasAthena : BossModule { public static ArenaBoundsRect DefaultBounds = new ArenaBoundsRect(new(100, 95), 20, 15); diff --git a/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs b/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs index 014c34b0da..40ba4bdf98 100644 --- a/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs +++ b/BossMod/Modules/Endwalker/Savage/P1SErichthonios/P1S.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Savage.P1SErichthonios; -[ModuleInfo(CFCID = 809, NameID = 10576)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 809, NameID = 10576)] public class P1S : BossModule { public static readonly float InnerCircleRadius = 12; // this determines in/out flails and cells boundary diff --git a/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs b/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs index 7cf595c297..f465c35d69 100644 --- a/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs +++ b/BossMod/Modules/Endwalker/Savage/P2SHippokampos/P2S.cs @@ -16,7 +16,7 @@ public class P2SConfig : CooldownPlanningConfigNode public P2SConfig() : base(90) { } } -[ModuleInfo(CFCID = 811, NameID = 10348)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 811, NameID = 10348)] public class P2S : BossModule { public P2S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs b/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs index f29c62c1ae..2ec472d83f 100644 --- a/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs +++ b/BossMod/Modules/Endwalker/Savage/P3SPhoinix/P3S.cs @@ -11,7 +11,7 @@ class HeatOfCondemnation : Components.TankbusterTether public HeatOfCondemnation() : base(ActionID.MakeSpell(AID.HeatOfCondemnationAOE), (uint)TetherID.HeatOfCondemnation, 6) { } } -[ModuleInfo(CFCID = 807, NameID = 10720)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 807, NameID = 10720)] public class P3S : BossModule { public P3S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs index e4f02033f1..82362724ac 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs @@ -13,7 +13,7 @@ public class P4S1Config : CooldownPlanningConfigNode public P4S1Config() : base(90) { } } -[ModuleInfo(CFCID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] public class P4S1 : BossModule { public P4S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs index 500f49543a..ddeec62abd 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs @@ -13,7 +13,7 @@ class HeartStake : Components.CastCounter public HeartStake() : base(ActionID.MakeSpell(AID.HeartStakeSecond)) { } } -[ModuleInfo(CFCID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] public class P4S2 : BossModule { // common wreath of thorns constants diff --git a/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs b/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs index b3afe953f0..df01624c9e 100644 --- a/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs +++ b/BossMod/Modules/Endwalker/Savage/P5SProtoCarbuncle/P5S.cs @@ -33,7 +33,7 @@ public class P5SConfig : CooldownPlanningConfigNode public P5SConfig() : base(90) { } } -[ModuleInfo(CFCID = 873, NameID = 11440)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 873, NameID = 11440)] public class P5S : BossModule { public P5S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 15)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs b/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs index ef8dc8cb2f..61190e9df0 100644 --- a/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs +++ b/BossMod/Modules/Endwalker/Savage/P6SHegemone/P6S.cs @@ -26,7 +26,7 @@ public class P6SConfig : CooldownPlanningConfigNode public P6SConfig() : base(90) { } } -[ModuleInfo(CFCID = 881, NameID = 11381)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 881, NameID = 11381)] public class P6S : BossModule { public P6S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs b/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs index 30d48f7c53..45ac1329e4 100644 --- a/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs +++ b/BossMod/Modules/Endwalker/Savage/P7SAgdistis/P7S.cs @@ -51,7 +51,7 @@ public class P7SConfig : CooldownPlanningConfigNode public P7SConfig() : base(90) { } } -[ModuleInfo(CFCID = 877, NameID = 11374)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 877, NameID = 11374)] public class P7S : BossModule { public P7S(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 27)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs index 7700061d42..521f9ce2d8 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs @@ -10,7 +10,7 @@ class AbyssalFires : Components.LocationTargetedAOEs public AbyssalFires() : base(ActionID.MakeSpell(AID.AbyssalFires), 15) { } // TODO: verify falloff } -[ModuleInfo(CFCID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] public class P8S1 : BossModule { public P8S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs index 6a36196264..2737e9828d 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs @@ -7,7 +7,7 @@ public TyrantsFlare() : base(ActionID.MakeSpell(AID.TyrantsFlareAOE), 6) { } // TODO: autoattack component // TODO: HC components -[ModuleInfo(CFCID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] public class P8S2 : BossModule { public P8S2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs b/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs index 594b8f0b33..87d433cce2 100644 --- a/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs +++ b/BossMod/Modules/Endwalker/Savage/P9SKokytos/P9SKokytos.cs @@ -21,7 +21,7 @@ public class P9SKokytosConfig : CooldownPlanningConfigNode public P9SKokytosConfig() : base(90) { } } -[ModuleInfo(CFCID = 937, NameID = 12369)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 937, NameID = 12369)] public class P9SKokytos : BossModule { public P9SKokytos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs index da66406273..55a098504d 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheExcitatron6000/LuckyFace.cs @@ -180,7 +180,7 @@ public LuckyFaceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 819, NameID = 10831)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 819, NameID = 10831)] public class LuckyFace : BossModule { public LuckyFace(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -460), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs index ca67047566..a0fe5f2db9 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouAcheloios.cs @@ -182,7 +182,7 @@ public AcheloiosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12019)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12019)] public class Acheloios : BossModule { public Acheloios(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs index 9538e44c0a..a50b15551f 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouLeon.cs @@ -74,7 +74,7 @@ public LeonStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 11997)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 11997)] public class Leon : BossModule { public Leon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs index 160cdfb7fc..fbc35ad912 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMandragoras.cs @@ -84,7 +84,7 @@ public MandragorasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12022)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12022)] public class Mandragoras : BossModule { public Mandragoras(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs index ecbd04234a..cc37fe1dfd 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMegakantha.cs @@ -107,7 +107,7 @@ public MegakanthaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12009)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12009)] public class Megakantha : BossModule { public Megakantha(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs index 8d39af84fd..6a29df3051 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouMeganereis.cs @@ -139,7 +139,7 @@ public MeganereisStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12014)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12014)] public class Meganereis : BossModule { public Meganereis(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs index ff984392dd..1f057ca788 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouPithekos.cs @@ -120,7 +120,7 @@ public PithekosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12001)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12001)] public class Pithekos : BossModule { public Pithekos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs index 1da52fc432..44a7bbf2d7 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSatyros.cs @@ -75,7 +75,7 @@ public SatyrosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12003)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12003)] public class Satyros : BossModule { public Satyros(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs index 6c114f4ed8..0b8e944953 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouSphinx.cs @@ -133,7 +133,7 @@ public SphinxStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12016)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12016)] public class Sphinx : BossModule { public Sphinx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs index aa87df7880..c477020324 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouStyphnolobion.cs @@ -139,7 +139,7 @@ public StyphnolobionStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12012)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12012)] public class Styphnolobion : BossModule { public Styphnolobion(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs index 4c734b554d..dab238a3a5 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTigris.cs @@ -107,7 +107,7 @@ public TigrisStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 11999)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 11999)] public class Tigris : BossModule { public Tigris(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs index 9cf4cb5368..684a094414 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/GymnasiouTriton.cs @@ -54,7 +54,7 @@ public TritonStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12006)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12006)] public class Triton : BossModule { public Triton(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs index c6f894e921..3fb03fbf6a 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LampasChrysine.cs @@ -66,7 +66,7 @@ public LampasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12021)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12021)] public class Lampas : BossModule { public Lampas(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs index 88c7933c96..c2bb93c59f 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/LyssaChrysine.cs @@ -149,7 +149,7 @@ public LyssaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12024)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12024)] public class Lyssa : BossModule { public Lyssa(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs index 4c2d898c9a..771a981d2f 100644 --- a/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs +++ b/BossMod/Modules/Endwalker/TreasureHunt/TheShiftingGymnasionAgonon/Narkissos.cs @@ -143,7 +143,7 @@ public NarkissosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 909, NameID = 12029)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 909, NameID = 12029)] public class Narkissos : BossModule { public Narkissos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs index 13abb237fe..e0c63e1c75 100644 --- a/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs +++ b/BossMod/Modules/Endwalker/Trial/T02Hydaelyn/T02Hydaelyn.cs @@ -86,7 +86,7 @@ public T02HydaelynStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 790, NameID = 10453)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 790, NameID = 10453)] public class T02Hydaelyn : BossModule { public T02Hydaelyn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs index 27fb4032c6..b44d2ed5ba 100644 --- a/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs +++ b/BossMod/Modules/Endwalker/Trial/T08Asura/T08Asura.cs @@ -97,7 +97,7 @@ public T08AsuraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 944, NameID = 12351)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 944, NameID = 12351)] public class T08Asura : BossModule { public T08Asura(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs b/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs index 1df106f6ae..21f7da2a15 100644 --- a/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs +++ b/BossMod/Modules/Endwalker/Ultimate/DSW1/DSW1.cs @@ -15,7 +15,7 @@ class HoliestHallowing : Components.CastHint public HoliestHallowing() : base(ActionID.MakeSpell(AID.HoliestHallowing), "Interrupt!") { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SerAdelphel, CFCID = 788)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SerAdelphel, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 788)] public class DSW1 : BossModule { private Actor? _grinnaux; diff --git a/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs b/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs index 0fcac4f89d..968877cc64 100644 --- a/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs +++ b/BossMod/Modules/Endwalker/Ultimate/DSW2/DSW2.cs @@ -75,7 +75,7 @@ class P7AlternativeEnd : Components.CastCounter public P7AlternativeEnd() : base(ActionID.MakeSpell(AID.AlternativeEnd)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP2, CFCID = 788)] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP2, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 788)] public class DSW2 : BossModule { public static ArenaBoundsCircle BoundsCircle = new ArenaBoundsCircle(new (100, 100), 21); // p2, intermission diff --git a/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs b/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs index 77019c6b9f..513078e4fc 100644 --- a/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs +++ b/BossMod/Modules/Endwalker/Ultimate/TOP/TOP.cs @@ -20,7 +20,7 @@ class P5BlindFaith : Components.CastHint public P5BlindFaith() : base(ActionID.MakeSpell(AID.BlindFaithSuccess), "Intermission") { } } -[ModuleInfo(CFCID = 908)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 908)] public class TOP : BossModule { private Actor? _opticalUnit; diff --git a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs index 22406a1dad..189f150de5 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un1Ultima/Un1Ultima.cs @@ -33,7 +33,7 @@ public Un1UltimaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 825, NameID = 3632, DisplayName = "Ultima's Bane (Unreal)")] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 825, NameID = 2137)] public class Un1Ultima : BossModule { public Un1Ultima(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs index 47b5677dff..337a923633 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un2Sephirot/Un2Sephirot.cs @@ -56,7 +56,7 @@ class P3PillarOfSeverity : Components.CastCounter public P3PillarOfSeverity() : base(ActionID.MakeSpell(AID.PillarOfSeverityAOE)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 875, NameID = 4776, DisplayName = "Containment Bay S1T7 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 875, NameID = 4776)] public class Un2Sephirot : BossModule { public Actor? BossP1() => PrimaryActor.IsDestroyed ? null : PrimaryActor; diff --git a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs index 9d38341bb8..360dd64ded 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un3Sophia/Un3Sophia.cs @@ -72,7 +72,7 @@ public class Un3SophiaConfig : CooldownPlanningConfigNode public Un3SophiaConfig() : base(90) { } } -[ModuleInfo(CFCID = 926, NameID = 5199, DisplayName = "Containment Bay P1T6 (Unreal)")] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 926, NameID = 5199)] public class Un3Sophia : BossModule { public Un3Sophia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 0), 20, 15)) { } diff --git a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs index c09df1ec0d..85f4c18ed2 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un4Zurvan/Un4Zurvan.cs @@ -66,7 +66,7 @@ public class Un4ZurvanConfig : CooldownPlanningConfigNode public Un4ZurvanConfig() : base(90) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 951, NameID = 5567, DisplayName = "Containment Bay Z1T9 (Unreal)")] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.RemovedUnreal, GroupID = 951, NameID = 5567)] public class Un4Zurvan : BossModule { private Actor? _bossP2; diff --git a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs index c0d2904606..961d916c0c 100644 --- a/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs +++ b/BossMod/Modules/Endwalker/Unreal/Un5Thordan/Un5Thordan.cs @@ -72,7 +72,7 @@ public class Un5ThordanConfig : CooldownPlanningConfigNode public Un5ThordanConfig() : base(90) { } } -[ModuleInfo(CFCID = 963, NameID = 3632)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 963, NameID = 3632)] public class Un5Thordan : BossModule { public Un5Thordan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs index 85f332b999..e45019d2fc 100644 --- a/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs +++ b/BossMod/Modules/Global/GoldSaucer/TheSliceIsRight/TheSliceIsRight.cs @@ -142,7 +142,7 @@ public TheSliceIsRightStates(BossModule module) : base(module) } } -[ModuleInfo(NameID = 9066)] //GoldSaucerTextData ID 181 +[ModuleInfo(GroupType = BossModuleInfo.GroupType.GoldSaucer, GroupID = 181, NameID = 9066)] public class TheSliceIsRight : BossModule { public TheSliceIsRight(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(70.5f, -36), 15)) { } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs index 5b4d156cca..7af89472b2 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage01AllsWellThatStartsWell/Stage01.cs @@ -39,7 +39,7 @@ public Stage01States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 610, NameID = 8077)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 610, NameID = 8077)] public class Stage01 : BossModule { public Stage01(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs index b9a6fec117..104a146cbf 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs @@ -49,7 +49,7 @@ public Stage02Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 612, NameID = 8078)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8078)] public class Stage02Act1 : BossModule { public Stage02Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs index dafc8feded..cd4cf8a546 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs @@ -41,7 +41,7 @@ public Stage02Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 612, NameID = 8079)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8079)] public class Stage02Act2(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { protected override bool CheckPull() { return PrimaryActor.IsTargetable && PrimaryActor.InCombat || Enemies(OID.Flan).Any(e => e.InCombat) || Enemies(OID.Licorice).Any(e => e.InCombat); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs index bf758b8b20..587cba2f04 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage03WaitingForGolem/Stage03.cs @@ -59,7 +59,7 @@ public Stage03States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 613, NameID = 8084)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 613, NameID = 8084)] public class Stage03 : BossModule { public Stage03(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs index 7069842b02..72b73861d7 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs @@ -42,7 +42,7 @@ public Stage04Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 614, NameID = 8086)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8086)] public class Stage04Act1 : BossModule { public Stage04Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs index 1ff0cef7ef..4b49ea254e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs @@ -61,7 +61,7 @@ public Stage04Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 614, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8087)] public class Stage04Act2 : BossModule { public Stage04Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs index 1c30238b34..edab82b43e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage05TheThreepennyTurtles/Stage05.cs @@ -23,7 +23,7 @@ public Stage05States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 615, NameID = 8089)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 615, NameID = 8089)] public class Stage05 : BossModule { public Stage05(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs index 0fbbbbc632..93918597f4 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs @@ -114,7 +114,7 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 616, NameID = 8090)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8090)] public class Stage06Act2 : BossModule { public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs index fda1d46c0c..10b074cce1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs @@ -141,7 +141,7 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 616, NameID = 8092)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8092)] public class Stage06Act2 : BossModule { public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs index 6c064e274b..425a75bc66 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs @@ -59,7 +59,7 @@ public Stage07Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] public class Stage07Act1 : BossModule { public Stage07Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs index def5019d7b..2de0ecd6e5 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs @@ -52,7 +52,7 @@ public Stage07Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] public class Stage07Act2 : BossModule { public Stage07Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs index d4083bc666..8a39071158 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs @@ -57,7 +57,7 @@ public Stage07Act3States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 617, NameID = 8095)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8095)] public class Stage07Act3 : BossModule { public Stage07Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs index 6b37f26712..4a3b573752 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs @@ -80,7 +80,7 @@ public Stage08Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 618, NameID = 8140)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8140)] public class Stage08Act1 : BossModule { public Stage08Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs index e682721fe9..582dd3e375 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs @@ -76,7 +76,7 @@ public Stage08Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 618, NameID = 8098)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8098)] public class Stage08Act2 : BossModule { public Stage08Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs index d58960d70a..1948dd2759 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage09ToKillAMockingslime/Stage09.cs @@ -61,7 +61,7 @@ public Stage09States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 619, NameID = 8099)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 619, NameID = 8099)] public class Stage09 : BossModule { public Stage09(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs index 9c8853aaf3..14f0efd905 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage10ALittleKnightMusic/Stage10.cs @@ -97,7 +97,7 @@ public Stage10States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 620, NameID = 8100)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 620, NameID = 8100)] public class Stage10 : BossModule { public Stage10(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs index 132668b040..cb5a2ef2be 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs @@ -29,7 +29,7 @@ public Stage11Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] public class Stage11Act1 : BossModule { public Stage11Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs index 10b77406a9..c8711582d3 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs @@ -29,7 +29,7 @@ public Stage11Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] public class Stage11Act2 : BossModule { public Stage11Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs index 46a9ba0155..f87c29fbd3 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs @@ -28,7 +28,7 @@ public Stage12Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 622, NameID = 8103)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8103)] public class Stage12Act1 : BossModule { public Stage12Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs index 8b0438d3ba..4c193e075b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs @@ -57,7 +57,7 @@ public Stage12Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 622, NameID = 8102)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8102)] public class Stage12Act2 : BossModule { public Stage12Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs index a7a28edb40..6cb3476835 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs @@ -37,7 +37,7 @@ public Stage13Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 623, NameID = 8104)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8104)] public class Stage13Act1 : BossModule { public Stage13Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs index 6ac1953ee4..79d1e7ff55 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs @@ -96,7 +96,7 @@ public Stage13Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 623, NameID = 8107)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8107)] public class Stage13Act2 : BossModule { public Stage13Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs index 1998237dd3..e9f975ab1e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs @@ -59,7 +59,7 @@ public Stage14Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] public class Stage14Act1 : BossModule { public Stage14Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs index b467cf61f4..0bd5b91f64 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs @@ -59,7 +59,7 @@ public Stage14Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] public class Stage14Act2 : BossModule { public Stage14Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs index 2b40a458bc..5a815875a8 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage15TheMeNobodyNodes/Stage15.cs @@ -187,7 +187,7 @@ public Stage15States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 625, NameID = 8109)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 625, NameID = 8109)] public class Stage15 : BossModule { public Stage15(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs index fd4ceac65f..d1e00459d9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs @@ -29,7 +29,7 @@ public Stage16Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 626, NameID = 8112)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8112)] public class Stage16Act1 : BossModule { public Stage16Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs index 60a1e4fab5..705842bfc1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs @@ -112,7 +112,7 @@ public Stage16Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 626, NameID = 8113)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8113)] public class Stage16Act2 : BossModule { public Stage16Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs index da57544b38..6d4090cb8e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs @@ -62,7 +62,7 @@ public Stage17Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 627, NameID = 8115)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8115)] public class Stage17Act1 : BossModule { public Stage17Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs index 080c50416f..5f9fbb76dc 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs @@ -85,7 +85,7 @@ public Stage17Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 627, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8087)] public class Stage17Act2 : BossModule { public Stage17Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs index ece756817f..11ca6d9395 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs @@ -100,7 +100,7 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 628, NameID = 8116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] public class Stage18Act2 : BossModule { public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs index ef69290d82..68ea10947d 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs @@ -100,7 +100,7 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 628, NameID = 8116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] public class Stage18Act2 : BossModule { public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs index bf2a11366a..5127a100cd 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs @@ -96,7 +96,7 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 629, NameID = 8117)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] public class Stage19Act1 : BossModule { public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs index 226de6394a..173a1ef95e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs @@ -143,7 +143,7 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 629, NameID = 8117)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] public class Stage19Act1 : BossModule { public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs index 37babb7c47..db12244152 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs @@ -57,7 +57,7 @@ public Stage20Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] public class Stage20Act1 : BossModule { public Stage20Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs index e4e03b02cb..f49c60bcc1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs @@ -64,7 +64,7 @@ public Stage20Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 630, NameID = 7111)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 7111)] public class Stage20Act2 : BossModule { public Stage20Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs index c52998d086..0f2eced428 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs @@ -97,7 +97,7 @@ public Stage20Act3States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] public class Stage20Act3 : BossModule { public Stage20Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs index 9ddd76cd40..9ba90d53ee 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs @@ -52,7 +52,7 @@ public Stage21Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 631, NameID = 8120)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8120)] public class Stage21Act1 : BossModule { public Stage21Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs index ae31fc9fae..7bc9bfeaf6 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs @@ -83,7 +83,7 @@ public Stage21Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 631, NameID = 8121)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8121)] public class Stage21Act2 : BossModule { public Stage21Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs index 9a34770f95..4bfe570e36 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs @@ -39,7 +39,7 @@ public Stage22Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 632, NameID = 8122)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8122)] public class Stage22Act1 : BossModule { public Stage22Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs index dee8fd2053..d11c973042 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs @@ -81,7 +81,7 @@ public Stage22Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 632, NameID = 8123)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8123)] public class Stage22Act2 : BossModule { public Stage22Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs index b9183de13b..b34caa799d 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage23BehemothsAndBroomsticks/Stage23.cs @@ -67,7 +67,7 @@ public Stage23States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 633, NameID = 8124)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 633, NameID = 8124)] public class Stage23 : BossModule { public Stage23(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs index 9e6f6d82a4..c37f23bc92 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs @@ -64,7 +64,7 @@ public Stage24Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 634, NameID = 8127)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8127)] public class Stage24Act1 : BossModule { public Stage24Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs index c6d2a12960..98a1d9a434 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs @@ -85,7 +85,7 @@ public Stage24Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 634, NameID = 8128)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8128)] public class Stage24Act2 : BossModule { public Stage24Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs index bd416bdd8c..62e5743ac1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs @@ -116,7 +116,7 @@ public Stage24Act3States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 634, NameID = 8125)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8125)] public class Stage24Act3 : BossModule { public Stage24Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs index c93e15ed52..96367b3c02 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs @@ -107,7 +107,7 @@ public Stage25Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] public class Stage25Act1 : BossModule { public Stage25Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs index 22fce921f1..1db7625b51 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs @@ -86,7 +86,7 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] public class Stage25Act2 : BossModule { public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs index 35db9d54fb..31a0b1cf15 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs @@ -161,7 +161,7 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] public class Stage25Act2 : BossModule { public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs index 09b3045e48..8f43ba8e66 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs @@ -77,7 +77,7 @@ public Stage26Act1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 695, NameID = 9230)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9230)] public class Stage26Act1 : BossModule { public Stage26Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs index a58ac3e9ee..1c7a908609 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs @@ -129,7 +129,7 @@ public Stage26Act2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 695, NameID = 9231)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9231)] public class Stage26Act2 : BossModule { public Stage26Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs index 51a8690089..a33f7dcf8b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage27LockUpYourSnorters/Stage27.cs @@ -179,7 +179,7 @@ public Stage27States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 696, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 696, NameID = 3046)] public class Stage27 : BossModule { public Stage27(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs index 3e7532349b..e5f9feb630 100644 --- a/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs +++ b/BossMod/Modules/Global/PVP/HiddenGorge/GoblinMercenary.cs @@ -137,7 +137,7 @@ public GoblinMercenaryStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 599, NameID = 7906)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 599, NameID = 7906)] public class GoblinMercenary : BossModule { public GoblinMercenary(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 0)) { } diff --git a/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs b/BossMod/Modules/Global/Quest/FF15Collab/Garuda.cs similarity index 98% rename from BossMod/Modules/Global/Event/FF15Collab/Garuda.cs rename to BossMod/Modules/Global/Quest/FF15Collab/Garuda.cs index 84e7f19a34..469b8ff72a 100644 --- a/BossMod/Modules/Global/Event/FF15Collab/Garuda.cs +++ b/BossMod/Modules/Global/Quest/FF15Collab/Garuda.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Global.Event.FF15Collab.Garuda; +namespace BossMod.Global.Quest.FF15Collab.Garuda; public enum OID : uint { @@ -209,7 +209,7 @@ public GarudaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 646, NameID = 7893)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Quest, GroupID = 68696, NameID = 7893)] // also: CFC 646 public class Garuda : BossModule { public Garuda(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 22)) { } diff --git a/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs b/BossMod/Modules/Global/Quest/FF15Collab/Iseultalon.cs similarity index 97% rename from BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs rename to BossMod/Modules/Global/Quest/FF15Collab/Iseultalon.cs index 47d0be139f..05f1e05e29 100644 --- a/BossMod/Modules/Global/Event/FF15Collab/Iseultalon.cs +++ b/BossMod/Modules/Global/Quest/FF15Collab/Iseultalon.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Global.Event.FF15Collab.Iseultalon; +namespace BossMod.Global.Quest.FF15Collab.Iseultalon; public enum OID : uint { @@ -154,7 +154,7 @@ public IseultalonStates(BossModule module) : base(module) } } -[ModuleInfo(QuestID = 68695, NameID = 7895)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Quest, GroupID = 68695, NameID = 7895)] public class Iseultalon : BossModule { public Iseultalon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-289, -30), 25)) { } //note the arena is actually a 6 sided polygon diff --git a/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs b/BossMod/Modules/Global/Quest/FF15Collab/MA-x.cs similarity index 92% rename from BossMod/Modules/Global/Event/FF15Collab/MA-x.cs rename to BossMod/Modules/Global/Quest/FF15Collab/MA-x.cs index 47bd078d49..5d922736ee 100644 --- a/BossMod/Modules/Global/Event/FF15Collab/MA-x.cs +++ b/BossMod/Modules/Global/Quest/FF15Collab/MA-x.cs @@ -1,5 +1,5 @@ // CONTRIB: made by malediktus, not checked -namespace BossMod.Global.Event.FF15Collab.MAx; +namespace BossMod.Global.Quest.FF15Collab.MAx; public enum OID : uint { @@ -47,7 +47,7 @@ public MAxStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1409, NameID = 7898)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Quest, GroupID = 68694, NameID = 7898)] // also: fate 1409 public class MAx : BossModule { public MAx(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(295, -22), 25)) { } diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index efb1b85484..67efa92b57 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -1,10 +1,9 @@ using Dalamud.Utility; using Lumina.Excel; -using Lumina; using Lumina.Excel.GeneratedSheets; using Lumina.Text; +using System.Globalization; using System.Reflection; -using System.Text.RegularExpressions; namespace BossMod; @@ -24,50 +23,12 @@ public class Info public BossModuleInfo.Expansion Expansion; public BossModuleInfo.Category Category; - public uint CFCID; - public SeString? DisplayName; - public SeString? ForayName; - public SeString? FateName; - public SeString? BossName; - public string HuntRank = ""; - public int CarnivaleStage; - public uint QuestID; - - public bool IsUncatalogued; - - public enum HuntRanks : byte - { - None = 0, - B = 1, - A = 2, - S = 3, - } + public BossModuleInfo.GroupType GroupType; + public uint GroupID; + public uint NameID; public bool CooldownPlanningSupported => ConfigType?.IsSubclassOf(typeof(CooldownPlanningConfigNode)) ?? false; - public bool IsFate() => !FateName!.RawString.IsNullOrEmpty(); - public bool IsHunt() => !HuntRank.IsNullOrEmpty(); - public bool IsCarnivale() => CarnivaleStage != 0; - public bool IsCriticalEngagement() => !ForayName!.RawString.IsNullOrEmpty(); - - // AFAIK, unreals are the only piece of content that regularly get removed. Their CFCID stays but the properties are all reverted to default. - public bool IsRemovedContent() - { - var cfcRow = _cfcSheet.GetRow(CFCID); - - if (cfcRow == null) - return true; - - foreach (var prop in cfcRow.GetType().GetProperties()) - { - var propValue = prop.GetValue(cfcRow); - if (propValue != null && !propValue.Equals(default(PropertyInfo))) - return false; // Property has a non-default value, module is not removed content - } - - return true; // All properties have default values, module is considered removed content - } - public static Info? Build(Type module) { var infoAttr = module.GetCustomAttribute(); @@ -158,89 +119,12 @@ public bool IsRemovedContent() category = BossModuleInfo.Category.Uncategorized; } - - uint nameID = infoAttr?.NameID ?? 0; - uint nmID = infoAttr?.NotoriousMonsterID ?? 0; - uint fateID = infoAttr?.FateID ?? 0; - uint dynamicEventID = infoAttr?.DynamicEventID ?? 0; - uint cfcID = infoAttr?.CFCID ?? 0; - uint questID = infoAttr?.QuestID ?? 0; - SeString displayName = new SeString(infoAttr?.DisplayName ?? string.Empty); - - SeString _displayName = displayName; - - bool uncatalogued = (cfcID == 0 && nameID == 0 && nmID == 0 && fateID == 0 && dynamicEventID == 0 && questID == 0) || (cfcID != 0 && _cfcSheet.GetRow(cfcID)!.ShortCode.RawString.IsNullOrEmpty()); - if (uncatalogued) - Service.Log($"[{nameof(ModuleRegistry)}] Module {module.Name} is uncatalogued. It does not provide sufficient {nameof(Info)} tags."); - - string huntRank = ""; - int carnivaleStage = 0; - SeString fateName = new(); - SeString forayName = new(); - SeString bossName = new(); - - if (cfcID != 0) - { - var cfcRow = _cfcSheet.GetRow(cfcID)!; - //contentType = cfcRow.ContentType?.Value?.Name ?? new SeString(); - if ((uint)expansion != cfcRow.TerritoryType.Value?.ExVersion.Row) - Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {cfcRow.TerritoryType.Value?.ExVersion.Row}"); - displayName = cfcRow.Name; - - if (cfcID is 735 or 760 or 761 or 778) // bozja et al - { - //contentType = _playStyleSheet!.GetRow(6)!.Name; - //contentIcon = (uint)_playStyleSheet!.GetRow(6)!.Icon; - } - else if (cfcRow.ShortCode.RawString.StartsWith("aoz")) // masked carnivale - { - //contentType = _playStyleSheet!.GetRow(8)!.Name; - //contentIcon = (uint)_playStyleSheet!.GetRow(8)!.Icon; - carnivaleStage = int.Parse(Regex.Replace(cfcRow.ShortCode.RawString, @"\D", "").TrimStart('0')); - //displayName = new SeString($"{displayName} (Stage {carnivaleStage})"); - } - else - { - //contentIcon = cfcRow.ContentType?.Value?.Icon ?? 0; - } - } - - if (nameID != 0) - { - bossName = _npcNamesSheet.GetRow(nameID)!.Singular; - } - - if (nmID != 0) - { - displayName = bossName = _nmSheet.GetRow(nmID)!.BNpcName.Value?.Singular ?? new SeString(); - huntRank = Enum.Parse(_nmSheet.GetRow(nmID)!.Rank.ToString()).ToString(); - //displayName = new SeString($"{displayName} ({huntRank} Rank)"); - //contentType = _playStyleSheet.GetRow(10)!.Name; - //contentIcon = (uint)_playStyleSheet.GetRow(10)!.Icon; - } - - // ideally you could parse the location field to get the exversion in the fate sheet but that requires parsing lgb files - if (fateID != 0) // needs exversion - { - //contentType = _contentTypeSheet.GetRow(8)!.Name; - //contentIcon = _contentTypeSheet.GetRow(8)!.Icon; - displayName = _fateSheet.GetRow(fateID)!.Name; - } - - if (dynamicEventID != 0) // needs exversion? - { - //contentType = _playStyleSheet.GetRow(6)!.Name; - //contentIcon = (uint)_playStyleSheet.GetRow(6)!.Icon; - displayName = forayName = _dynamicEventSheet.GetRow(dynamicEventID)!.Name; - } - - if (_questSheet.GetRow(questID) is var quest && quest != null) + var groupType = infoAttr?.GroupType ?? BossModuleInfo.GroupType.None; + var groupID = infoAttr?.GroupID ?? 0; + var nameID = infoAttr?.NameID ?? 0; + if (groupType == BossModuleInfo.GroupType.None && groupID == 0) { - //contentType = _contentTypeSheet.GetRow(7)!.Name; - //contentIcon = _contentTypeSheet.GetRow(7)!.Icon; - displayName = quest.Name; - if ((uint)expansion != quest.Expansion.Row) - Service.Log($"[ModuleRegistry] Module {module.Name} potentially has wrong expansion assignment: {expansion} instead of {quest.Expansion.Row}"); + Service.Log($"[ModuleRegistry] Module {module.Name} does not have group type/id assignments."); } return new Info(module, statesType) @@ -255,16 +139,9 @@ public bool IsRemovedContent() Expansion = expansion, Category = category, - CFCID = cfcID, - DisplayName = infoAttr?.DisplayName != null ? _displayName : displayName, - BossName = bossName, - FateName = fateName, - ForayName = forayName, - HuntRank = huntRank, - CarnivaleStage = carnivaleStage, - QuestID = questID, - - IsUncatalogued = uncatalogued, + GroupType = groupType, + GroupID = groupID, + NameID = nameID, }; } @@ -277,54 +154,8 @@ private Info(Type moduleType, Type statesType) private static Dictionary _modules = new(); // [primary-actor-oid] = module type - private static readonly Dictionary _notoriousMonsterToTerritory = new(); - - private static readonly ExcelSheet _playStyleSheet; - private static readonly ExcelSheet _cfcSheet; - private static readonly ExcelSheet _dynamicEventSheet; - private static readonly ExcelSheet _contentTypeSheet; - private static readonly ExcelSheet _territorySheet; - private static readonly ExcelSheet _nmSheet; - private static readonly ExcelSheet _npcNamesSheet; - private static readonly ExcelSheet _questSheet; - private static readonly ExcelSheet _fateSheet; - - private static readonly List _catalogued; - private static readonly List _uncatalogued; - static ModuleRegistry() { - var territorySheet = Service.LuminaGameData?.GetExcelSheet(); - var nmtSheet = Service.LuminaGameData?.GetExcelSheet(); - if (territorySheet != null) - { - foreach (var terr in territorySheet.Where(terr => terr.Unknown42 != 0)) - { - var nmt = nmtSheet?.GetRowParser(terr.Unknown42); - if (nmt != null) - { - for (int i = 0; i < 10; ++i) - { - var nmId = nmt.ReadColumn(i); - if (nmId != 0) - { - _notoriousMonsterToTerritory.Add(nmId, terr); - } - } - } - } - } - - _playStyleSheet = Service.LuminaGameData!.GetExcelSheet()!; - _cfcSheet = Service.LuminaGameData!.GetExcelSheet()!; - _dynamicEventSheet = Service.LuminaGameData!.GetExcelSheet()!; - _contentTypeSheet = Service.LuminaGameData!.GetExcelSheet()!; - _territorySheet = territorySheet!; - _nmSheet = Service.LuminaGameData!.GetExcelSheet()!; - _npcNamesSheet = Service.LuminaGameData!.GetExcelSheet()!; - _questSheet = Service.LuminaGameData!.GetExcelSheet()!; - _fateSheet = Service.LuminaGameData!.GetExcelSheet()!; - foreach (var t in Utils.GetDerivedTypes(Assembly.GetExecutingAssembly()).Where(t => !t.IsAbstract && t != typeof(DemoModule))) { var info = Info.Build(t); @@ -335,20 +166,9 @@ static ModuleRegistry() throw new Exception($"Two boss modules have same primary actor OID: {t.Name} and {_modules[info.PrimaryActorOID].ModuleType.Name}"); _modules[info.PrimaryActorOID] = info; } - - _catalogued = _modules.Values - .Where(x => !x.IsUncatalogued) - .GroupBy(x => new { x.Expansion, x.Category }) - .OrderBy(g => g.Key.Expansion) - .SelectMany(group => group.OrderBy(x => _cfcSheet.GetRow(x.CFCID)?.SortKey)) - .ToList(); - _uncatalogued = _modules.Values.Where(x => x.IsUncatalogued || x.Expansion == BossModuleInfo.Expansion.Count).Select(x => x).ToList(); } public static IReadOnlyDictionary RegisteredModules => _modules; - public static IReadOnlyList CataloguedModules => _catalogued; - public static IReadOnlyList UncataloguedModules => _uncatalogued; - public static Info? FindByOID(uint oid) => _modules.GetValueOrDefault(oid); diff --git a/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs b/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs index a4543745a2..496a6a3c88 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D01Sastasha/D010Switch.cs @@ -32,7 +32,7 @@ public D010SwitchStates(BossModule module) : base(module) } // the switch spawns chopper, so maybe we can use that as a nameID -[ModuleInfo(PrimaryActorOID = (uint)OID.Blue, CFCID = 4, NameID = 1204)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Blue, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 4, NameID = 1204)] public class D010Switch : BossModule { public D010Switch(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(primary.Position, 20)) diff --git a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs index 3a740e3f78..83a8f6ae43 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D031Kottos.cs @@ -49,7 +49,7 @@ public D031KottosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 3, NameID = 548)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 3, NameID = 548)] public class D031Kottos : BossModule { public D031Kottos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(43, -89.56f), 15)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs index 8c139f68fd..a8fae4ed84 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D032IchorousIre.cs @@ -42,7 +42,7 @@ public D032IchorousIreStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 3, NameID = 554)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 3, NameID = 554)] public class D032IchorousIre : BossModule { public D032IchorousIre(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(26.97f, 113.97f), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs index 3957cfef7e..6ebaa88775 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D03Copperbell/D033Gyges.cs @@ -54,7 +54,7 @@ public D033GygesStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 3, NameID = 101)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 3, NameID = 101)] public class D033Gyges : BossModule { public D033Gyges(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-100.42f, 6.67f), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs b/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs index 3b72d1c9c1..df96bbc86c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D05Totorak/D053Graffias.cs @@ -58,7 +58,7 @@ public D053GraffiasStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 1, NameID = 444)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 1, NameID = 444)] public class D053Graffias : BossModule { public D053Graffias(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(215, -145), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs index 8e833a478e..9b3999904f 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D061ManorClaviger.cs @@ -39,7 +39,7 @@ public D061ManorClavigerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 6, NameID = 423)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 6, NameID = 423)] public class D061ManorClaviger : BossModule { public D061ManorClaviger(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(2.5f, 0), 16)) { } // TODO: really a rect, x=[-25, +20], y=[-16, +16] diff --git a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs index 50b5833212..91dde10eb9 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D06Haukke/D063LadyAmandine.cs @@ -56,7 +56,7 @@ public D063LadyAmandineStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 6, NameID = 422)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 6, NameID = 422)] public class D063LadyAmandine : BossModule { public D063LadyAmandine(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 4), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs b/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs index 22e8c9aa7a..1fe4fdd5cf 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D07Brayflox/D074Aiatar.cs @@ -48,7 +48,7 @@ public D074AiatarStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 8, NameID = 1279)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 8, NameID = 1279)] public class D074Aiatar : BossModule { public D074Aiatar(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-25, -235), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs index 6b11c75e45..96c3ff35e2 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D081Teratotaur.cs @@ -106,7 +106,7 @@ public D081TeratotaurStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 9, NameID = 1567)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 9, NameID = 1567)] public class D081Teratotaur : BossModule { public D081Teratotaur(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-70, -60), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs index a34498cb65..be70143baa 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D082TempleGuardian.cs @@ -42,7 +42,7 @@ public D082TempleGuardianStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 9, NameID = 1569)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 9, NameID = 1569)] public class D082TempleGuardian : BossModule { public D082TempleGuardian(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(50, -10), 15)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs index c4082e4f64..fc6356ae6c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D08Qarn/D083Adjudicator.cs @@ -40,7 +40,7 @@ public D083AdjudicatorStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 9, NameID = 1570)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 9, NameID = 1570)] public class D083Adjudicator : BossModule { public D083Adjudicator(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(238, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs index daeed88ce8..51a281343f 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D092GiantTunnelWorm.cs @@ -47,7 +47,7 @@ public D092GiantTunnelWormStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 12, NameID = 1589)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 12, NameID = 1589)] public class D092GiantTunnelWorm : BossModule { public D092GiantTunnelWorm(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-140, 150), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs index 44e4b9a131..55ceef42e0 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D09Cutter/D093Chimera.cs @@ -84,7 +84,7 @@ public D093ChimeraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 12, NameID = 1590)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 12, NameID = 1590)] public class D093Chimera : BossModule { public D093Chimera(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-170, -200), 30)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs index bb9210dfb7..bf28e9d373 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D101ChudoYudo.cs @@ -44,7 +44,7 @@ public D101ChudoYudoStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 11, NameID = 1677)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 11, NameID = 1677)] public class D101ChudoYudo : BossModule { public D101ChudoYudo(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 115), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs index ac3fb79757..06cb05bb5c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D102Koshchei.cs @@ -84,7 +84,7 @@ public D102KoshcheiStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 11, NameID = 1678)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 11, NameID = 1678)] public class D102Koshchei : BossModule { public D102Koshchei(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(40, -80), 10)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs index 27009629bc..be49c9c6b0 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D10StoneVigil/D103Isgebind.cs @@ -70,7 +70,7 @@ public D103IsgebindStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 11, NameID = 1680)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 11, NameID = 1680)] public class D103Isgebind : BossModule { public D103Isgebind(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, -248), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs index f53d2dbf48..58dd5dccf6 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D111AllSeeingEye.cs @@ -72,7 +72,7 @@ public D111AllSeeingEyeStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 13, NameID = 1397)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 13, NameID = 1397)] public class D111AllSeeingEye : BossModule { public D111AllSeeingEye(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(40, 70), 30)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs index 62903814ca..1b64c46d28 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D11DzemaelDarkhold/D113Batraal.cs @@ -59,7 +59,7 @@ public D113BatraalStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 13, NameID = 1396)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 13, NameID = 1396)] public class D113Batraal : BossModule { public D113Batraal(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(85, -180), 25)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs index e23cc05681..0a5ab1b226 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D121Locksmith.cs @@ -43,7 +43,7 @@ public D121LocksmithStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 5, NameID = 1534)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 5, NameID = 1534)] public class D121Locksmith : BossModule { public D121Locksmith(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(35, 0), 15, 25)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs index e291e679f1..dbb2a53a47 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D122Coincounter.cs @@ -54,7 +54,7 @@ public D122CoincounterStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 5, NameID = 1533)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 5, NameID = 1533)] public class D122Coincounter : BossModule { public D122Coincounter(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-150, -150), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs index 41468d1c91..d8544a4c66 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D12AurumVale/D123MisersMistress.cs @@ -47,7 +47,7 @@ public D123MisersMistressStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 5, NameID = 1532)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 5, NameID = 1532)] public class D123MisersMistress : BossModule { public D123MisersMistress(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-400, -130), 25)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs index dbd2479ddc..615bc87db0 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D131BlackEft.cs @@ -50,7 +50,7 @@ public D131BlackEftStates(BossModule module) : base(module) // first wave = 3x signifier + 3x laquearius // second wave = 2x colossus // third wave = 2x colossus + 2x signifier + 2x laquearius -[ModuleInfo(CFCID = 15, NameID = 557)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 15, NameID = 557)] public class D131BlackEft : BossModule { public D131BlackEft(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(10, -40), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs index 2239dd705f..e7ec26e9be 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D132MagitekVanguardF1.cs @@ -64,7 +64,7 @@ public D132MagitekVanguardF1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 15, NameID = 2116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 15, NameID = 2116)] public class D132MagitekVanguardF1 : BossModule { public D132MagitekVanguardF1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-13, 31), 20, 20, 20.Degrees())) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs index 99f99ea46b..65cea00737 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D13CastrumMeridianum/D133Livia.cs @@ -230,7 +230,7 @@ public D133LiviaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 15, NameID = 2118)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 15, NameID = 2118)] public class D133Livia : BossModule { public D133Livia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-98, -33), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs index 3f4741ee97..856ec11888 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D141Colossus.cs @@ -57,7 +57,7 @@ public D141ColossusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 16, NameID = 2134)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 16, NameID = 2134)] public class D141Colossus : BossModule { public D141Colossus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(192, 0), 15)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs index f57ad8e551..f158f77505 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D142Nero.cs @@ -71,7 +71,7 @@ public D142NeroStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 16, NameID = 2135)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 16, NameID = 2135)] public class D142Nero : BossModule { public D142Nero(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-164, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs index 51082ec72c..2658d7804e 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D14Praetorium/D143Gaius.cs @@ -110,7 +110,7 @@ public D143GaiusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 16, NameID = 2136)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 16, NameID = 2136)] public class D143Gaius : BossModule { public D143Gaius(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-562, 220), 15, 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs index 27d2b95f0d..251f45e311 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D151KeeperOfHalidom.cs @@ -81,7 +81,7 @@ public D151KeeperOfHalidomStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 10, NameID = 1548)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 10, NameID = 1548)] public class D151KeeperOfHalidom : BossModule { public D151KeeperOfHalidom(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(125, 108), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs index 0a5d961c57..efdd07d913 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D152GiantBavarois.cs @@ -64,7 +64,7 @@ public D152GiantBavaroisStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 10, NameID = 1549)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 10, NameID = 1549)] public class D152GiantBavarois : BossModule { public D152GiantBavarois(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(43, -232), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs index 2f104d3c02..4c03e10d30 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D15WanderersPalace/D153TonberryKing.cs @@ -32,7 +32,7 @@ public D153TonberryKingStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 10, NameID = 1547)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 10, NameID = 1547)] public class D153TonberryKing : BossModule { public D153TonberryKing(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(73, -435), 30)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs index 0403f14937..3850a2f305 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D161Psycheflayer.cs @@ -84,7 +84,7 @@ public D161PsycheflayerStates(D161Psycheflayer module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 14, NameID = 1689)] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 14, NameID = 1689)] public class D161Psycheflayer : BossModule { private Actor? _bossP2; diff --git a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs index d86013299e..ed85d5bb5c 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D162DemonWall.cs @@ -67,7 +67,7 @@ public D162DemonWallStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 14, NameID = 1694)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 14, NameID = 1694)] public class D162DemonWall : BossModule { public D162DemonWall(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(200, -131), 10, 21)) { } diff --git a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs index e1ee6a4da2..29ec4fba05 100644 --- a/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs +++ b/BossMod/Modules/RealmReborn/Dungeon/D16Amdapor/D163Anantaboga.cs @@ -121,7 +121,7 @@ public D163AnantabogaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 14, NameID = 1696)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 14, NameID = 1696)] public class D163Anantaboga : BossModule { public D163Anantaboga(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(10, 0), 25)) { } diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs b/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs index 315f3e9c89..d5ae75ab11 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex1Ultima/Ex1Ultima.cs @@ -66,7 +66,7 @@ public Ex1UltimaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 68, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 68, NameID = 2137)] public class Ex1Ultima : BossModule { public Ex1Ultima(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs b/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs index b7aad83941..bdd0d97cf5 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex2Garuda/Ex2Garuda.cs @@ -50,7 +50,7 @@ class GreatWhirlwind : Components.LocationTargetedAOEs public GreatWhirlwind() : base(ActionID.MakeSpell(AID.GreatWhirlwind), 8) { } } -[ModuleInfo(CFCID = 65, NameID = 1644)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 65, NameID = 1644)] public class Ex2Garuda : BossModule { public IReadOnlyList Monoliths; diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs b/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs index 673c9f91d1..418826c3cb 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex3Titan/Ex3Titan.cs @@ -16,7 +16,7 @@ public class Ex3TitanConfig : CooldownPlanningConfigNode public Ex3TitanConfig() : base(50) { } } -[ModuleInfo(CFCID = 64, NameID = 1801)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 64, NameID = 1801)] public class Ex3Titan : BossModule { private IReadOnlyList _heart; diff --git a/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs b/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs index 0b6dbc69ac..bd5b398693 100644 --- a/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs +++ b/BossMod/Modules/RealmReborn/Extreme/Ex4Ifrit/Ex4Ifrit.cs @@ -18,7 +18,7 @@ class CrimsonCyclone : Components.SelfTargetedAOEs public CrimsonCyclone() : base(ActionID.MakeSpell(AID.CrimsonCyclone), new AOEShapeRect(49, 9)) { } } -[ModuleInfo(CFCID = 63, NameID = 1185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 63, NameID = 1185)] public class Ex4Ifrit : BossModule { public IReadOnlyList SmallNails; diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs index b30786e759..0465adcedd 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs @@ -66,7 +66,7 @@ public T01ADSStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 93, NameID = 1459)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1459)] public class T01ADS : BossModule { public T01ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-3, 27), 7, 28)) { } diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs index 937ff4cf37..990bc044d4 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs @@ -119,7 +119,7 @@ public class T01CaduceusConfig : CooldownPlanningConfigNode public T01CaduceusConfig() : base(50) { } } -[ModuleInfo(CFCID = 93, NameID = 1466)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1466)] public class T01Caduceus : BossModule { public T01Caduceus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-26, -407), 35, 43)) diff --git a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs index eab57078a3..b9f260bcaf 100644 --- a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs @@ -158,7 +158,7 @@ public class T02ADSConfig : CooldownPlanningConfigNode public T02ADSConfig() : base(50) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, CFCID = 94, NameID = 1459)] +[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1459)] public class T02ADS : BossModule { public T02ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 77), 18, 13)) { } @@ -177,7 +177,7 @@ public T02QuarantineNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, CFCID = 94, NameID = 1468)] +[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1468)] public class T02QuarantineNode : BossModule { public T02QuarantineNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 112), 14, 13)) { } @@ -197,7 +197,7 @@ public T02AttackNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, CFCID = 94, NameID = 1469)] +[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1469)] public class T02AttackNode : BossModule { public T02AttackNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-44, 94), 17)) { } @@ -219,7 +219,7 @@ public T02SanitaryNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, CFCID = 94, NameID = 1470)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1470)] public class T02SanitaryNode : BossModule { public T02SanitaryNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-43, 52), 18, 15)) { } @@ -238,7 +238,7 @@ public T02MonitoringNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, CFCID = 94, NameID = 1471)] +[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1471)] public class T02MonitoringNode : BossModule { public T02MonitoringNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 39), 17, 15)) { } @@ -257,7 +257,7 @@ public T02DefenseNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, CFCID = 94, NameID = 1472)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1472)] public class T02DefenseNode : BossModule { public T02DefenseNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(46, 52), 17, 14)) { } @@ -277,7 +277,7 @@ public T02DisposalNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, CFCID = 94, NameID = 1473)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1473)] public class T02DisposalNode : BossModule { public T02DisposalNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(41, 94), 14, 20)) { } diff --git a/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs b/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs index cd047cef5e..7bf9f64ecb 100644 --- a/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs +++ b/BossMod/Modules/RealmReborn/Raid/T04Gauntlet/T04Gauntlet.cs @@ -75,7 +75,7 @@ private void SinglePhase(uint id) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.TerminalStart, CFCID = 96)] +[ModuleInfo(PrimaryActorOID = (uint)OID.TerminalStart, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 96)] public class T04Gauntlet : BossModule { public IReadOnlyList P1Bugs; diff --git a/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs b/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs index f60eb63276..e8ee6e316a 100644 --- a/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs +++ b/BossMod/Modules/RealmReborn/Raid/T05Twintania/T05Twintania.cs @@ -138,7 +138,7 @@ private void Divebomb(uint id, float delay, string name) } } -[ModuleInfo(CFCID = 97, NameID = 1482)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 97, NameID = 1482)] public class T05Twintania : BossModule { public const float NeurolinkRadius = 2; diff --git a/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs b/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs index 9b9e87f915..ea28b274a9 100644 --- a/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs +++ b/BossMod/Modules/RealmReborn/Trial/T01IfritN/T01IfritN.cs @@ -64,7 +64,7 @@ public T01IfritNStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 56, NameID = 1185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 56, NameID = 1185)] public class T01IfritN : BossModule { public T01IfritN(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-0, 0), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs b/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs index d9ef20c828..aaa684817b 100644 --- a/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs +++ b/BossMod/Modules/RealmReborn/Trial/T02TitanN/T02TitanN.cs @@ -73,7 +73,7 @@ public T02TitanNStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 57, NameID = 1801)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 57, NameID = 1801)] public class T02TitanN : BossModule { private IReadOnlyList _heart; diff --git a/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs b/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs index 01fd2d6eee..6b5efc7926 100644 --- a/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs +++ b/BossMod/Modules/RealmReborn/Trial/T03GarudaN/T03GarudaN.cs @@ -91,7 +91,7 @@ public T03GarudaNStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 58, NameID = 1644)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 58, NameID = 1644)] public class T03GarudaN : BossModule { public T03GarudaN(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs index a3bffbe812..e16054ae47 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs @@ -130,7 +130,7 @@ public T04PortaDecumana1States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] public class T04PortaDecumana1 : BossModule { public T04PortaDecumana1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-772, -600), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs index 3ef49f317c..01adfe1c58 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs @@ -181,7 +181,7 @@ public T04PortaDecumana2States(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] public class T04PortaDecumana2 : BossModule { public T04PortaDecumana2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-704, 480), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs b/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs index 4ba12b8f69..e03ed3b5b5 100644 --- a/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T05IfritH/T05IfritH.cs @@ -93,7 +93,7 @@ public T05IfritHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 59, NameID = 1185)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 59, NameID = 1185)] public class T05IfritH : BossModule { private IReadOnlyList _nails; diff --git a/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs b/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs index 320f50ab20..85e2b2f1b5 100644 --- a/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T06GarudaH/T06GarudaH.cs @@ -102,7 +102,7 @@ public T06GarudaHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 61, NameID = 1644)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 61, NameID = 1644)] public class T06GarudaH : BossModule { private IReadOnlyList _monoliths; diff --git a/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs b/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs index f56f884829..1d828ca2b2 100644 --- a/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T07TitanH/T07TitanH.cs @@ -134,7 +134,7 @@ public T07TitanHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 60, NameID = 1801)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 60, NameID = 1801)] public class T07TitanH : BossModule { private IReadOnlyList _heart; diff --git a/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs b/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs index 344fafb72a..adea2c7317 100644 --- a/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T08ThornmarchH/T08ThornmarchH.cs @@ -157,7 +157,7 @@ public T08ThornmarchHStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.WhiskerwallKupdiKoop, CFCID = 66, NameID = 725)] +[ModuleInfo(PrimaryActorOID = (uint)OID.WhiskerwallKupdiKoop, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 66, NameID = 725)] public class T08ThornmarchH : BossModule { public T08ThornmarchH(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 21)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs index 43fd3caa10..51683ac864 100644 --- a/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs +++ b/BossMod/Modules/RealmReborn/Trial/T09WhorleaterH/T09WhorleaterH.cs @@ -32,7 +32,7 @@ public T09WhorleaterHStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 72, NameID = 2505)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 72, NameID = 2505)] public class T09WhorleaterH(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsRect(new(-0, 0), 14.5f, 20)) { protected override void DrawEnemies(int pcSlot, Actor pc) diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs index f0fddeec2a..3a34de0356 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D011ForgivenDissonance.cs @@ -73,7 +73,7 @@ public D011ForgivenDissonanceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 676, NameID = 8299)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 676, NameID = 8299)] public class D011ForgivenDissonance : BossModule { public D011ForgivenDissonance(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-15, 240), 19.5f)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs index de76dc572b..23e7251118 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D012TesleentheForgiven.cs @@ -89,7 +89,7 @@ public D012TesleentheForgivenStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 676, NameID = 8300)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 676, NameID = 8300)] public class D012TesleentheForgiven : BossModule { public D012TesleentheForgiven(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(78, -82), 19.5f)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs index d9150166af..0d2a70a32d 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D01Holminster/D013Philia.cs @@ -388,7 +388,7 @@ public D013PhiliaStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 676, NameID = 8301)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 676, NameID = 8301)] public class D013Philia : BossModule { public D013Philia(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(134, -465), 19.5f)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs index e764acf1ed..b8bace207a 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D030RonkanDreamer.cs @@ -176,7 +176,7 @@ public D030RonkanDreamerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8639)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8639)] public class D030RonkanDreamer : BossModule { public D030RonkanDreamer(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 0)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs index ab241daa00..da727fad41 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D031Lozatl.cs @@ -85,7 +85,7 @@ public D031LozatlStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8231)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8231)] public class D031Lozatl : BossModule { public D031Lozatl(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 315), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs index 6a6a70abfc..335068335b 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D032Batsquatch.cs @@ -70,7 +70,7 @@ public D032BatsquatchStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8232)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8232)] public class D032Batsquatch : BossModule { public D032Batsquatch(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(62, -35), 15)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs index 7c4dc3c89b..a3f6121195 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D03QitanaRavel/D033Eros.cs @@ -240,7 +240,7 @@ public D033ErosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 651, NameID = 8233)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 651, NameID = 8233)] public class D033Eros : BossModule { public D033Eros(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(17, -538), 15, 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivenPrejudice.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivenPrejudice.cs index 650d090807..eec787c79e 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivenPrejudice.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D050ForgivenPrejudice.cs @@ -48,7 +48,7 @@ public D050ForgivenPrejudiceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8269)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8269)] public class D050ForgivenPrejudice : SimpleBossModule { public D050ForgivenPrejudice(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs index 5db053e7e3..add926caa6 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D051ForgivenCruelty.cs @@ -68,7 +68,7 @@ public D051ForgivenCrueltyStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8260)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8260)] public class D051ForgivenCruelty : BossModule { public D051ForgivenCruelty(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(188, -170), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs index 5ac421b20e..744f639da8 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D052ForgivenApathy.cs @@ -50,7 +50,7 @@ public D052ForgivenApathyStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8267)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8267)] public class D052ForgivenApathy : BossModule { public D052ForgivenApathy(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, 0), 0)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs index 2288852763..d06d9b4828 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D053ForgivenWhimsy.cs @@ -190,7 +190,7 @@ public D053ForgivenWhimsyStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8261)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8261)] public class D053ForgivenWhimsy : BossModule { public D053ForgivenWhimsy(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-240, -50), 15)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs index 0af3e05f0f..0ee3e77a05 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D054ForgivenRevelry.cs @@ -62,7 +62,7 @@ public D054ForgivenRevelryStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8270)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8270)] public class D054ForgivenRevelry : BossModule { public D054ForgivenRevelry(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-240, 176), 15)) { } diff --git a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs index a785cf1593..7c7838085c 100644 --- a/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs +++ b/BossMod/Modules/Shadowbringers/Dungeon/D05MtGulg/D055ForgivenObscenity.cs @@ -270,7 +270,7 @@ public D055ForgivenObscenityStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 659, NameID = 8262)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 659, NameID = 8262)] public class D055ForgivenObscenity : BossModule { public D055ForgivenObscenity(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-240, 237), 15, 20)) { } diff --git a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs index 79938839b1..b6a0c54bc8 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Archaeotania.cs @@ -168,7 +168,7 @@ public ArchaeotaniaStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1432, NameID = 8234)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1432, NameID = 8234)] public class Archaeotania : BossModule { public Archaeotania(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(279, 249), 29)) { } diff --git a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs index 3ce51285e8..e146cddc04 100644 --- a/BossMod/Modules/Shadowbringers/FATE/Formidable.cs +++ b/BossMod/Modules/Shadowbringers/FATE/Formidable.cs @@ -271,5 +271,5 @@ public FormidableStates(BossModule module) : base(module) } } -[ModuleInfo(FateID = 1464, NameID = 8822)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Fate, GroupID = 1464, NameID = 8822)] public class Formidable(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs index 20d4d2bd59..27e53ffcf8 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE11ShadowOfDeathHand.cs @@ -122,7 +122,7 @@ public CE11ShadowOfDeathHandStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 5)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 5)] public class CE11ShadowOfDeathHand : BossModule { public CE11ShadowOfDeathHand(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(825, 640), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs index acb4b000ed..2d7ed8d0a0 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE12BayingOfHounds.cs @@ -154,7 +154,7 @@ public CE12BayingOfHoundsStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 2)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 2)] public class CE12BayingOfHounds : BossModule { public CE12BayingOfHounds(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(154, 785), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs index f89e004ac7..31cdef8168 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE13KillItWithFire.cs @@ -147,7 +147,7 @@ public CE13KillItWithFireStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 1)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 1)] public class CE13KillItWithFire : BossModule { public CE13KillItWithFire(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-90, 700), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs index 6fa9921092..5e65c47af7 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE14VigilForLost.cs @@ -86,7 +86,7 @@ public CE14VigilForLostStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 3)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 3)] public class CE14VigilForLost : BossModule { public CE14VigilForLost(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(451, 830), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs index 266d706111..d0c6cd38be 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE21FinalFurlong.cs @@ -138,7 +138,7 @@ public CE21FinalFurlongStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 6)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 6)] public class CE21FinalFurlong : BossModule { public CE21FinalFurlong(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(644, 228), 27)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs index e02ccdbca5..d9d8cd1f14 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE31MetalFoxChaos.cs @@ -126,7 +126,7 @@ public CE31MetalFoxChaosStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 735, DynamicEventID = 13)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 735, NameID = 13)] public class CE31MetalFoxChaos : BossModule { public CE31MetalFoxChaos(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-234, 262), 30.2f)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs index 3c9ed7a46d..cf3e39e60b 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE41WithDiremiteAndMain.cs @@ -187,7 +187,7 @@ public CE41WithDiremiteAndMainStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 21)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 21)] public class CE41WithDiremiteAndMain : BossModule { private IReadOnlyList _dimCrystals; diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs index 6540717c93..ed41d50db9 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE42FromBeyondTheGrave.cs @@ -205,7 +205,7 @@ public CE42FromBeyondTheGraveStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 20)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 20)] public class CE42FromBeyondTheGrave : BossModule { public CE42FromBeyondTheGrave(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-60, 800), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs index b53c004fcc..e5281f9958 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE44FamiliarFace.cs @@ -173,7 +173,7 @@ public CE44FamiliarFaceStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 29)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 29)] public class CE44FamiliarFace : BossModule { public CE44FamiliarFace(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(330, 390), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs index 256ac271e1..e6e5513372 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE51ThereWouldBeBlood.cs @@ -99,7 +99,7 @@ public CE51ThereWouldBeBloodStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 24)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 24)] public class CE51ThereWouldBeBlood : BossModule { public CE51ThereWouldBeBlood(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-390, 230), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs index b385481f0b..bd4e79df79 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE52TimeToBurn.cs @@ -163,7 +163,7 @@ public CE52TimeToBurnStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 26)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 26)] public class CE52TimeToBurn : BossModule { public CE52TimeToBurn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-550, 0), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs index 987fd779bf..1dabad14a0 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE53HereComesTheCavalry.cs @@ -199,7 +199,7 @@ public CE53HereComesTheCavalryStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 22)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 22)] public class CE53HereComesTheCavalry : BossModule { public CE53HereComesTheCavalry(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-750, 790), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs index e73e402e45..e7759600d1 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE54NeverCryWolf.cs @@ -227,7 +227,7 @@ public CE54NeverCryWolfStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 25)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 25)] public class CE54NeverCryWolf : BossModule { private IReadOnlyList _adds; diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs index 83325ab10f..e695479d61 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE62LooksToDieFor.cs @@ -204,7 +204,7 @@ public CE62LooksToDieForStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 30)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 30)] public class CE62LooksToDieFor : BossModule { public CE62LooksToDieFor(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-200, -580), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs index 96b6a3c8a6..e99463578c 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE63WornToShadow.cs @@ -173,7 +173,7 @@ public CE63WornToShadowStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 28)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 28)] public class CE63WornToShadow : BossModule { public CE63WornToShadow(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-480, -690), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs index 551ac2081a..01640276ae 100644 --- a/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs +++ b/BossMod/Modules/Shadowbringers/Foray/CriticalEngagement/CE64FeelingTheBurn.cs @@ -181,7 +181,7 @@ public CE64FeelingTheBurnStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 778, DynamicEventID = 18)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaCE, GroupID = 778, NameID = 18)] public class CE64FeelingTheBurn : BossModule { public IReadOnlyList Escorts; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs index d853a0ece7..7d0e51ae37 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS1TrinitySeeker/DRS1.cs @@ -32,7 +32,7 @@ class IronRose : Components.SelfTargetedAOEs public IronRose() : base(ActionID.MakeSpell(AID.IronRose), new AOEShapeRect(50, 4)) { } } -[ModuleInfo(CFCID = 761, NameID = 9834)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9834)] public class DRS1 : BossModule { public static readonly float BarricadeRadius = 20; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs index 37d65de5ee..65b3769d3b 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS2Dahu/DRS2.cs @@ -25,7 +25,7 @@ class HuntersClaw : Components.SelfTargetedAOEs public HuntersClaw() : base(ActionID.MakeSpell(AID.HuntersClaw), new AOEShapeCircle(8)) { } } -[ModuleInfo(CFCID = 761, NameID = 9751)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9751)] public class DRS2 : BossModule { public DRS2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(82, 138), 30)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs index c0596145fb..e3600a799e 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS3QueensGuard/DRS3.cs @@ -42,7 +42,7 @@ class Fracture : Components.CastCounter public Fracture() : base(ActionID.MakeSpell(AID.Fracture)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Knight, CFCID = 761, NameID = 9838)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Knight, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9838)] public class DRS3 : BossModule { private IReadOnlyList _warrior; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs index 83e740a222..58dbc2b077 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS4Phantom/DRS4.cs @@ -5,7 +5,7 @@ class MaledictionOfAgony : Components.CastCounter public MaledictionOfAgony() : base(ActionID.MakeSpell(AID.MaledictionOfAgonyAOE)) { } } -[ModuleInfo(CFCID = 761, NameID = 9755)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9755)] public class DRS4 : BossModule { public DRS4(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(202, -370), 24)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs index 41ef2eb150..dd0903b4d5 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS5TrinityAvowed/DRS5.cs @@ -21,7 +21,7 @@ class GleamingArrow : Components.SelfTargetedAOEs public GleamingArrow() : base(ActionID.MakeSpell(AID.GleamingArrow), new AOEShapeRect(60, 5)) { } } -[ModuleInfo(CFCID = 761, NameID = 9853)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9853)] public class DRS5 : BossModule { public DRS5(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-272, -82), 25)) { } diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs index 6e8f8b1245..f29ded7f2a 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS6StygimolochLord/DRS6.cs @@ -31,7 +31,7 @@ public Electrocution() : base(ActionID.MakeSpell(AID.Electrocution), 3) { } } // TODO: ManaFlame component - show reflect hints -[ModuleInfo(CFCID = 761, NameID = 9759)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9759)] public class DRS6 : BossModule { private IReadOnlyList _monks; diff --git a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs index a6bf4a5fde..8a9577cb3e 100644 --- a/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs +++ b/BossMod/Modules/Shadowbringers/Foray/DelubrumReginae/DRS7Queen/DRS7.cs @@ -53,7 +53,7 @@ class OptimalPlayCone : Components.SelfTargetedAOEs public OptimalPlayCone() : base(ActionID.MakeSpell(AID.OptimalPlayCone), new AOEShapeCone(60, 135.Degrees())) { } } -[ModuleInfo(CFCID = 761, NameID = 9863)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 761, NameID = 9863)] public class DRS7 : BossModule { public DRS7(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-272, -415), 25)) { } // note: initially arena is square, but it quickly changes to circle diff --git a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs index 9aa16a12d4..d9927b4fc0 100644 --- a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs +++ b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel2Lyon/Duel2Lyon.cs @@ -23,7 +23,7 @@ public Duel2LyonStates(BossModule module) : base(module) .ActivateOnEnter(); } } -[ModuleInfo(CFCID = 735, DynamicEventID = 8)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaDuel, GroupID = 735, NameID = 8)] public class Duel2Lyon: BossModule { public Duel2Lyon(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(211, 380), 20)) {} diff --git a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs index 8d7933bab3..6a9da02eaf 100644 --- a/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs +++ b/BossMod/Modules/Shadowbringers/Foray/Duel/Duel4Dabog/Duel4Dabog.cs @@ -20,7 +20,7 @@ class LeftArmWave : Components.LocationTargetedAOEs public LeftArmWave() : base(ActionID.MakeSpell(AID.LeftArmWaveAOE), 24) { } } -[ModuleInfo(CFCID = 778, DynamicEventID = 19)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.BozjaDuel, GroupID = 778, NameID = 19)] public class Duel4Dabog : BossModule { public Duel4Dabog(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(250, 710), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs index b01123f1da..7fcfab1551 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Baal.cs @@ -83,5 +83,5 @@ public BaalStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 140)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8897)] public class Baal(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs index 079984a08b..8e93093be0 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Grassman.cs @@ -96,5 +96,5 @@ public GrassmanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 135)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8892)] public class Grassman(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs index 215638f346..b3f363e331 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Huracan.cs @@ -102,5 +102,5 @@ public HuracanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 120)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8912)] public class Huracan(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs index 47278eb73e..9b1adbe0cf 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/LilMurderer.cs @@ -74,5 +74,5 @@ public LilMurdererStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 119)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8911)] public class LilMurderer(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs index 9d74fa4d6e..da6821e2fa 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Maliktender.cs @@ -63,5 +63,5 @@ public MaliktenderStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 124)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8901)] public class Maliktender(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs index 5916928a43..0308514d40 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nariphon.cs @@ -102,5 +102,5 @@ public NariphonStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 115)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8907)] public class Nariphon(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs index 467f74dfe8..5be44bc41a 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Nuckelavee.cs @@ -55,5 +55,5 @@ public NuckelaveeStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 114)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8906)] public class Nuckelavee(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs index 5d4ff9c306..ff9fe5f5e8 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/OPoorestPauldia.cs @@ -47,5 +47,5 @@ public OPoorestPauldiaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 130)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8655)] public class OPoorestPauldia(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs index 20e287c89f..a1cb9cf1ed 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Rusalka.cs @@ -63,5 +63,5 @@ public RusalkaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 139)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8896)] public class Rusalka(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs index 2a07bfc401..b89f3f6a41 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Sugaar.cs @@ -103,5 +103,5 @@ public SugaarStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 125)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8902)] public class Sugaar(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs index afc8c070c6..05bbafec53 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/Supay.cs @@ -66,5 +66,5 @@ public SupayStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 134)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8891)] public class Supay(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs index 51c5fb6d87..3e8d0d71c2 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankA/TheMudman.cs @@ -85,5 +85,5 @@ public TheMudmanStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 8654)] public class TheMudman(WorldState ws, Actor primary) : SimpleBossModule(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs index 4bbe8e832e..b672177333 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Aglaope.cs @@ -110,7 +110,7 @@ public AglaopeStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 131)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8653)] public class Aglaope : SimpleBossModule { public Aglaope(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs index 79002dcf6f..2b90603489 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenGossip.cs @@ -33,7 +33,7 @@ public ForgivenGossipStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 142)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 8916)] public class ForgivenGossip : SimpleBossModule { public ForgivenGossip(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs index ecd7afb23a..1931ce4886 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenPedantry.cs @@ -159,7 +159,7 @@ public ForgivenPedantryStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 121)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8910)] public class ForgivenPedantry : SimpleBossModule { public ForgivenPedantry(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs index 2a5263118f..d1a0aa13b5 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/ForgivenRebellion.cs @@ -229,7 +229,7 @@ public ForgivenRebellionStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 146)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.SS, NameID = 8915)] public class ForgivenRebellion : SimpleBossModule { public ForgivenRebellion(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs index f787ff839a..e822090863 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Gunitt.cs @@ -114,7 +114,7 @@ public GunittStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 141)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8895)] public class Gunitt : SimpleBossModule { public Gunitt(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs index 19a7e8e64d..8b45d12660 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Ixtab.cs @@ -189,7 +189,7 @@ public IxtabStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 136)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8890)] public class Ixtab : SimpleBossModule { public Ixtab(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs index 67db1f711a..5a897ff6ef 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tarchia.cs @@ -96,7 +96,7 @@ public TarchiaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 126)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8900)] public class Tarchia : SimpleBossModule { public Tarchia(WorldState ws, Actor primary) : base(ws, primary) diff --git a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs index d1340798c9..26a04d1bdc 100644 --- a/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs +++ b/BossMod/Modules/Shadowbringers/Hunt/RankS/Tyger.cs @@ -105,7 +105,7 @@ public TygerStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 8905)] public class Tyger : SimpleBossModule { public Tyger(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs index 9422162fb0..31d2b6ca99 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheDungeonsOfLyheGhiah/Goliath.cs @@ -132,7 +132,7 @@ public GoliathStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 688, NameID = 8953)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 688, NameID = 8953)] public class Goliath : BossModule { public Goliath(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -390), 20)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs index 7ac791d2a4..913a859c5f 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/FuathTroublemaker.cs @@ -61,7 +61,7 @@ public FuathTroublemakerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9786)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9786)] public class FuathTroublemaker : BossModule { public FuathTroublemaker(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs index c20985678a..6c1f620443 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/GreedyPixie.cs @@ -140,7 +140,7 @@ public GreedyPixieStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9797)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9797)] public class GreedyPixie : BossModule { public GreedyPixie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs index 4ba40ea462..50e3505265 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretBasket.cs @@ -146,7 +146,7 @@ public BasketStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9784)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9784)] public class Basket : BossModule { public Basket(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs index e467f7b29c..723179c934 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretCladoselache.cs @@ -143,7 +143,7 @@ public CladoselacheStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9778)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9778)] public class Cladoselache : BossModule { public Cladoselache(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs index 0a03b82066..3714866725 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretDjinn.cs @@ -67,7 +67,7 @@ public DjinnStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9788)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9788)] public class Djinn : BossModule { public Djinn(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs index bd9ef36b6b..b114b1be8b 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKeeper.cs @@ -89,7 +89,7 @@ public KeeperStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9807)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9807)] public class Keeper : BossModule { public Keeper(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs index 3700d826fc..709b41aebe 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretKorrigan.cs @@ -92,7 +92,7 @@ public KorriganStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9806)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9806)] public class Korrigan : BossModule { public Korrigan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs index 9001d16cc7..4545a64806 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPegasus.cs @@ -76,7 +76,7 @@ public PegasusStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9793)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9793)] public class Pegasus : BossModule { public Pegasus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs index 3fe7987dc3..c485bf898a 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretPorxie.cs @@ -142,7 +142,7 @@ public PorxieStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9795)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9795)] public class Porxie : BossModule { public Porxie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs index 2a460bedae..a6fee715fc 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSerpent.cs @@ -101,7 +101,7 @@ public SerpentStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9776)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9776)] public class Serpent : BossModule { public Serpent(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs index d5bb999ef2..ed77f36803 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretSwallow.cs @@ -76,7 +76,7 @@ public SwallowStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9782)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9782)] public class Swallow : BossModule { public Swallow(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs index 1a74d2b08e..f0dca1be12 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretUndine.cs @@ -92,7 +92,7 @@ public UndineStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9790)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9790)] public class Undine : BossModule { public Undine(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs index 0d7daf6bb1..f2eaaceefa 100644 --- a/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs +++ b/BossMod/Modules/Shadowbringers/TreasureHunt/TheShiftingOubliettesOfLyheGhiah/SecretWorm.cs @@ -102,7 +102,7 @@ public WormStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 745, NameID = 9780)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 745, NameID = 9780)] public class Worm : BossModule { public Worm(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 19)) { } diff --git a/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs b/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs index 8c050a6056..5a62820b62 100644 --- a/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs +++ b/BossMod/Modules/Shadowbringers/Ultimate/TEA/TEA.cs @@ -81,7 +81,7 @@ class P3DivineJudgmentRaidwide : Components.CastCounter public P3DivineJudgmentRaidwide() : base(ActionID.MakeSpell(AID.DivineJudgmentRaidwide)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, CFCID = 694)] +[ModuleInfo(PrimaryActorOID = (uint)OID.BossP1, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 694)] public class TEA : BossModule { private IReadOnlyList _liquidHand; diff --git a/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs index 4b9427d4a8..d236a189e0 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Angada.cs @@ -67,7 +67,7 @@ public AngadaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 90)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 5999)] public class Angada : SimpleBossModule { public Angada(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs index 3ca4ff98a8..905900986a 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankA/Gajasura.cs @@ -40,7 +40,7 @@ public GajasuraStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 89)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.A, NameID = 5998)] public class Gajasura : SimpleBossModule { public Gajasura(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs index 6243a48947..35a94c57c6 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/BoneCrawler.cs @@ -70,7 +70,7 @@ public BoneCrawlerStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 106)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5988)] public class BoneCrawler : SimpleBossModule { public BoneCrawler(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs index 3423e3500f..8da5070aad 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Gamma.cs @@ -92,7 +92,7 @@ public GammaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 91)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5985)] public class Gamma : SimpleBossModule { public Gamma(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs index 7277120f19..10a4751791 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Okina.cs @@ -80,7 +80,7 @@ public OkinaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 86)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5984)] public class Okina : SimpleBossModule { public Okina(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs index 78c789316c..e50f28f8c2 100644 --- a/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs +++ b/BossMod/Modules/Stormblood/Hunt/RankS/Orghana.cs @@ -42,7 +42,7 @@ public OrghanaStates(BossModule module) : base(module) } } -[ModuleInfo(NotoriousMonsterID = 96)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.Hunt, GroupID = (uint)BossModuleInfo.HuntRank.S, NameID = 5986)] public class Orghana : SimpleBossModule { public Orghana(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs index ee3bf11784..91b6e925fd 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheLostCanalsOfUznair/CanalIcebeast.cs @@ -79,7 +79,7 @@ public IcebeastStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 268, NameID = 6650)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 268, NameID = 6650)] public class Icebeast : BossModule { public Icebeast(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(0, -420), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs index 1a36f13293..31272053fb 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarAiravata.cs @@ -161,7 +161,7 @@ public AiravataStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7601)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7601)] public class Airavata : BossModule { public Airavata(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs index 5ee5446f5a..37465dbec6 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarArachne.cs @@ -98,7 +98,7 @@ public ArachneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7623)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7623)] public class Arachne : BossModule { public Arachne(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs index 94eeb7895e..abe5359020 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarBeast.cs @@ -131,7 +131,7 @@ public BeastStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7588)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7588)] public class Beast : BossModule { public Beast(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs index 0bb90a93f2..e1dc6d0b2f 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarChimera.cs @@ -155,7 +155,7 @@ public ChimeraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7591)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7591)] public class Chimera : BossModule { public Chimera(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs index b7798a7f25..f7fb839cad 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDiresaur.cs @@ -153,7 +153,7 @@ public DiresaurStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7627)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7627)] public class Diresaur : BossModule { public Diresaur(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs index a3d0e62dd3..2b75d79612 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarDullahan.cs @@ -136,7 +136,7 @@ public DullahanStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7585)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7585)] public class Dullahan : BossModule { public Dullahan(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs index 7ea0aedc87..1d3cb608be 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarKelpie.cs @@ -167,7 +167,7 @@ public KelpieStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7589)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7589)] public class Kelpie : BossModule { public Kelpie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs index bd6ec3c519..fa9bd16260 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarMandragora.cs @@ -93,7 +93,7 @@ public MandragoraStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7600)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7600)] public class Mandragora : BossModule { public Mandragora(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs index 99ebfa5156..ddc2c9bfc9 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarSkatene.cs @@ -51,7 +51,7 @@ public SkateneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7587)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7587)] public class Skatene : BossModule { public Skatene(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs index 416e55f3c5..59938b354c 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/AltarTotem.cs @@ -138,7 +138,7 @@ public TotemStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7586)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7586)] public class Totem : BossModule { public Totem(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs index 617493d616..885cb8c404 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/Hati.cs @@ -59,7 +59,7 @@ public HatiStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7590)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7590)] public class Hati : BossModule { public Hati(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs index f9cd79e8f6..9f5679beaa 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheGreatGoldWhisker.cs @@ -44,7 +44,7 @@ public TheGreatGoldWhiskerStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7599)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7599)] public class TheGreatGoldWhisker : BossModule { public TheGreatGoldWhisker(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs index 0e3aff2dff..a0bf9a049e 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheOlderOne.cs @@ -136,7 +136,7 @@ public TheOlderOneStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7597)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7597)] public class TheOlderOne : BossModule { public TheOlderOne(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs index 923544ec56..24417f4714 100644 --- a/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs +++ b/BossMod/Modules/Stormblood/TreasureHunt/TheShiftingAltarsOfUznair/TheWinged.cs @@ -133,7 +133,7 @@ public TheWingedStates(BossModule module) : base(module) } } -[ModuleInfo(CFCID = 586, NameID = 7595)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 586, NameID = 7595)] public class TheWinged : BossModule { public TheWinged(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs b/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs index 9a58d4fb9c..ae0871f854 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UCOB/UCOB.cs @@ -25,7 +25,7 @@ class P5MornAfah : Components.StackWithCastTargets public P5MornAfah() : base(ActionID.MakeSpell(AID.MornAfah), 4, 8) { } // TODO: verify radius } -[ModuleInfo(PrimaryActorOID = (uint)OID.Twintania, CFCID = 280)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Twintania, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 280)] public class UCOB : BossModule { private Actor? _nael; diff --git a/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs b/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs index 016852038b..dc12c0bbf5 100644 --- a/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs +++ b/BossMod/Modules/Stormblood/Ultimate/UWU/UWU.cs @@ -119,7 +119,7 @@ public P5AethericBoom() : base(ActionID.MakeSpell(AID.AethericBoom), 10) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Garuda, CFCID = 539)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Garuda, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 539)] public class UWU : BossModule { private IReadOnlyList _ifrits; From e279cb383d61ac006a90412c3d3f005e9e940e9d Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 20:53:48 +0000 Subject: [PATCH 10/11] Module viewer refactoring WIP. - sort order --- BossMod/BossModule/BossModuleInfo.cs | 1 + BossMod/Config/ModuleViewer.cs | 31 +++++++++----- BossMod/Framework/Utils.cs | 16 ++++++++ .../Endwalker/Alliance/A10Lions/A10Lions.cs | 2 +- .../A10RhalgrEmissary/A10RhalgrEmissary.cs | 2 +- .../Alliance/A11Byregot/A11Byregot.cs | 2 +- .../Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs | 2 +- .../Endwalker/Alliance/A13Azeyma/A13Azeyma.cs | 2 +- .../Alliance/A14Naldthal/A14Naldthal.cs | 2 +- .../Criterion/C01ASS/C010Trash/C010Armor.cs | 4 +- .../C01ASS/C010Trash/C010Belladonna.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Dryad.cs | 4 +- .../C01ASS/C010Trash/C010Dullahan.cs | 4 +- .../Criterion/C01ASS/C010Trash/C010Kaluk.cs | 4 +- .../C01ASS/C010Trash/C010Udumbara.cs | 4 +- .../Criterion/C01ASS/C011Silkie/C011Silkie.cs | 4 +- .../C01ASS/C012Gladiator/C012Gladiator.cs | 4 +- .../C013Shadowcaster/C013Shadowcaster.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Fuko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Kotengu.cs | 4 +- .../C02AMR/C020Trash/C020Onmitsugashira.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Raiko.cs | 4 +- .../Criterion/C02AMR/C020Trash/C020Yuki.cs | 4 +- .../C02AMR/C021Shishio/C021Shishio.cs | 4 +- .../Criterion/C02AMR/C022Gorai/C022Gorai.cs | 4 +- .../Criterion/C02AMR/C023Moko/C023Moko.cs | 4 +- .../C03AAI/C030Trash/C030Islekeeper.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Kiwakin.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Monk.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Ray.cs | 4 +- .../Criterion/C03AAI/C030Trash/C030Snipper.cs | 4 +- .../C03AAI/C030Trash/C030WoodGolem.cs | 4 +- .../C03AAI/C031Ketuduke/C031Ketuduke.cs | 4 +- .../Criterion/C03AAI/C032Lala/C032Lala.cs | 4 +- .../C03AAI/C033Statice/C033Statice.cs | 4 +- .../Savage/P12S1Athena/P12S1Athena.cs | 2 +- .../P12S2PallasAthena/P12S2PallasAthena.cs | 2 +- .../Endwalker/Savage/P4S1Hesperos/P4S1.cs | 2 +- .../Endwalker/Savage/P4S2Hesperos/P4S2.cs | 2 +- .../Endwalker/Savage/P8S1Hephaistos/P8S1.cs | 2 +- .../Endwalker/Savage/P8S2Hephaistos/P8S2.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act1.cs | 2 +- .../Stage02MuchAdoAboutPudding/Stage02Act2.cs | 2 +- .../Stage04Act1.cs | 2 +- .../Stage04Act2.cs | 2 +- .../Stage06EyeSociety/Stage06Act1.cs | 10 ++--- .../Stage06EyeSociety/Stage06Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act1.cs | 2 +- .../Stage07AChorusSlime/Stage07Act2.cs | 2 +- .../Stage07AChorusSlime/Stage07Act3.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act1.cs | 2 +- .../Stage08BombedyOfErrors/Stage08Act2.cs | 2 +- .../Stage11Act1.cs | 2 +- .../Stage11Act2.cs | 2 +- .../Stage12Act1.cs | 2 +- .../Stage12Act2.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act1.cs | 2 +- .../Stage13BeautyAndABeast/Stage13Act2.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act1.cs | 2 +- .../Stage14BlobsInTheWoods/Stage14Act2.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act1.cs | 2 +- .../Stage16SunsetBullevard/Stage16Act2.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act1.cs | 2 +- .../Stage17TheSwordOfMusic/Stage17Act2.cs | 2 +- .../Stage18Act1.cs | 10 ++--- .../Stage18Act2.cs | 2 +- .../Stage19Act1.cs | 2 +- .../Stage19Act2.cs | 10 ++--- .../Stage20MissTyphon/Stage20Act1.cs | 2 +- .../Stage20MissTyphon/Stage20Act2.cs | 2 +- .../Stage20MissTyphon/Stage20Act3.cs | 2 +- .../Stage21Act1.cs | 2 +- .../Stage21Act2.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act1.cs | 2 +- .../Stage22HereComesTheBoom/Stage22Act2.cs | 2 +- .../Stage24Act1.cs | 2 +- .../Stage24Act2.cs | 2 +- .../Stage24Act3.cs | 2 +- .../Stage25Act1.cs | 2 +- .../Stage25Act2.cs | 2 +- .../Stage25Act3.cs | 10 ++--- .../Stage26PapaMia/Stage26Act1.cs | 2 +- .../Stage26PapaMia/Stage26Act2.cs | 2 +- BossMod/Modules/ModuleRegistry.cs | 41 +++++++++++-------- .../RealmReborn/Raid/T01Caduceus/T01ADS.cs | 2 +- .../Raid/T01Caduceus/T01Caduceus.cs | 2 +- .../Raid/T02MultiADS/T02MultiADS.cs | 14 +++---- .../T04PortaDecumana/T04PortaDecumana1.cs | 2 +- .../T04PortaDecumana/T04PortaDecumana2.cs | 2 +- 89 files changed, 194 insertions(+), 161 deletions(-) diff --git a/BossMod/BossModule/BossModuleInfo.cs b/BossMod/BossModule/BossModuleInfo.cs index 972cfeffcc..68214b6af6 100644 --- a/BossMod/BossModule/BossModuleInfo.cs +++ b/BossMod/BossModule/BossModuleInfo.cs @@ -84,4 +84,5 @@ public class ModuleInfoAttribute : Attribute public BossModuleInfo.GroupType GroupType = BossModuleInfo.GroupType.None; public uint GroupID; public uint NameID; // usually BNpcName row, unless GroupType uses it differently + public int SortOrder; // default: first number in type name } diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index ed1acf8d5c..2ead81c04c 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -10,7 +10,7 @@ namespace BossMod; public class ModuleViewer : IDisposable { - private record struct ModuleInfo(Type Type, string Name, uint SortOrder); + private record struct ModuleInfo(Type Type, string Name, int SortOrder); private record struct ModuleGroupInfo(string Name, uint Id, uint SortOrder, IDalamudTextureWrap? Icon = null); private record struct ModuleGroup(ModuleGroupInfo Info, List Modules); @@ -89,8 +89,17 @@ public ModuleViewer() foreach (var groups in _groups) { groups.SortBy(g => g.Info.SortOrder); + foreach (var (g1, g2) in groups.Pairwise()) + if (g1.Info.SortOrder == g2.Info.SortOrder) + Service.Log($"[ModuleViewer] Same sort order between groups {g1.Info} and {g2.Info}"); + foreach (var g in groups) + { g.Modules.SortBy(m => m.SortOrder); + foreach (var (m1, m2) in g.Modules.Pairwise()) + if (m1.SortOrder == m2.SortOrder) + Service.Log($"[ModuleViewer] Same sort order between modules {m1.Type.FullName} and {m2.Type.FullName}"); + } } } @@ -229,38 +238,38 @@ private void Customize((string name, IDalamudTextureWrap? icon)[] array, int ele var cfcRow = Service.LuminaRow(module.GroupID); var cfcSort = cfcRow?.SortKey ?? 0u; var cfcName = FixCase(cfcRow?.Name); - return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.MaskedCarnivale: groupId |= module.GroupID; var mcRow = Service.LuminaRow(module.GroupID); var mcSort = uint.Parse((mcRow?.ShortCode ?? "").Substring(3)); // 'aozNNN' var mcName = $"Stage {mcSort}: {FixCase(mcRow?.Name)}"; - return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.RemovedUnreal: - return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); // TODO: sort order... + return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.Quest: var questRow = Service.LuminaRow(module.GroupID); groupId |= questRow?.JournalGenre.Row ?? 0; var questCategoryName = questRow?.JournalGenre.Value?.Name ?? ""; - return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Fate: var fateRow = Service.LuminaRow(module.GroupID); - return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.GroupID)); + return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Hunt: groupId |= module.GroupID; - return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.BozjaCE: groupId |= module.GroupID; var ceName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} CE"; - return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.BozjaDuel: groupId |= module.GroupID; var duelName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} Duel"; - return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.GroupID)); // TODO: sort order... + return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.GoldSaucer: - return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.GroupID)); + return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.SortOrder)); default: - return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.GroupID)); + return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); } } } diff --git a/BossMod/Framework/Utils.cs b/BossMod/Framework/Utils.cs index 14a0c62ecf..9f582b138f 100644 --- a/BossMod/Framework/Utils.cs +++ b/BossMod/Framework/Utils.cs @@ -255,6 +255,22 @@ public static IEnumerable ZeroOrOne(T? value) where T : struct yield return value.Value; } + // enumerate pairs of neighbouring elements + public static IEnumerable<(T, T)> Pairwise(this IEnumerable source) + { + using var e = source.GetEnumerator(); + if (!e.MoveNext()) + yield break; + + var prev = e.Current; + while (e.MoveNext()) + { + var curr = e.Current; + yield return (prev, curr); + prev = curr; + } + } + // swap to values public static void Swap(ref T l, ref T r) { diff --git a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs index 2039dff58e..dbaee2010d 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10Lions/A10Lions.cs @@ -19,7 +19,7 @@ public A10LionsStates(A10Lions module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11294)] +[ModuleInfo(PrimaryActorOID = (uint)OID.Lion, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11294, SortOrder = 4)] public class A10Lions : BossModule { private Actor? _lioness; diff --git a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs index fc6dbf8075..baccaded80 100644 --- a/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs +++ b/BossMod/Modules/Endwalker/Alliance/A10RhalgrEmissary/A10RhalgrEmissary.cs @@ -20,7 +20,7 @@ class DestructiveStrike : Components.BaitAwayCast public DestructiveStrike() : base(ActionID.MakeSpell(AID.DestructiveStrike), new AOEShapeCone(13, 60.Degrees())) { } // TODO: verify angle } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11274)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11274, SortOrder = 2)] public class A10RhalgrEmissary : BossModule { public A10RhalgrEmissary(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(74, 516), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs index dd390ab8b3..19a3b75152 100644 --- a/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs +++ b/BossMod/Modules/Endwalker/Alliance/A11Byregot/A11Byregot.cs @@ -5,7 +5,7 @@ class ByregotWard : Components.BaitAwayCast public ByregotWard() : base(ActionID.MakeSpell(AID.ByregotWard), new AOEShapeCone(10, 45.Degrees())) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11281)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11281, SortOrder = 1)] public class A11Byregot : BossModule { public A11Byregot(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 700), 25)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs index 27deb30011..bde9542617 100644 --- a/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs +++ b/BossMod/Modules/Endwalker/Alliance/A12Rhalgr/A12Rhalgr.cs @@ -15,7 +15,7 @@ class BronzeLightning : Components.SelfTargetedAOEs public BronzeLightning() : base(ActionID.MakeSpell(AID.BronzeLightning), new AOEShapeCone(50, 22.5f.Degrees()), 4) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11273)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11273, SortOrder = 3)] public class A12Rhalgr : BossModule { public A12Rhalgr(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-15, 275), 30)) // note: arena has a really complex shape... diff --git a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs index 7630095fdf..84576e19a7 100644 --- a/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs +++ b/BossMod/Modules/Endwalker/Alliance/A13Azeyma/A13Azeyma.cs @@ -25,7 +25,7 @@ class SublimeSunset : Components.LocationTargetedAOEs public SublimeSunset() : base(ActionID.MakeSpell(AID.SublimeSunsetAOE), 40) { } // TODO: check falloff } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11277)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11277, SortOrder = 5)] public class A13Azeyma : BossModule { public A13Azeyma(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs index 8df0db0c31..bcab531727 100644 --- a/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs +++ b/BossMod/Modules/Endwalker/Alliance/A14Naldthal/A14Naldthal.cs @@ -46,7 +46,7 @@ public TippedScales() : base(ActionID.MakeSpell(AID.TippedScalesAOE)) { } } // TODO: balancing counter -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11286)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 866, NameID = 11286, SortOrder = 6)] public class A14Naldthal : BossModule { public A14Naldthal(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(750, -750), 30)) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs index 791f539633..51c23aea5b 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Armor.cs @@ -54,8 +54,8 @@ public C010ArmorStates(BossModule module, bool savage) : base(module) class C010NArmorStates : C010ArmorStates { public C010NArmorStates(BossModule module) : base(module, false) { } } class C010SArmorStates : C010ArmorStates { public C010SArmorStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11515, SortOrder = 6)] public class C010NArmor : SimpleBossModule { public C010NArmor(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11515)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11515, SortOrder = 6)] public class C010SArmor : SimpleBossModule { public C010SArmor(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs index ff381dfe72..a0658f2d9b 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Belladonna.cs @@ -54,8 +54,8 @@ public C010BelladonnaStates(BossModule module, bool savage) : base(module) class C010NBelladonnaStates : C010BelladonnaStates { public C010NBelladonnaStates(BossModule module) : base(module, false) { } } class C010SBelladonnaStates : C010BelladonnaStates { public C010SBelladonnaStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11514, SortOrder = 1)] public class C010NBelladonna : SimpleBossModule { public C010NBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11514)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11514, SortOrder = 1)] public class C010SBelladonna : SimpleBossModule { public C010SBelladonna(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs index 416deb3d5f..67e21b9b53 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dryad.cs @@ -68,7 +68,7 @@ public C010DryadStates(BossModule module, bool savage) : base(module) class C010NDryadStates : C010DryadStates { public C010NDryadStates(BossModule module) : base(module, false) { } } class C010SDryadStates : C010DryadStates { public C010SDryadStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11513, SortOrder = 4)] public class C010NDryad : SimpleBossModule { public C010NDryad(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11513)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11513, SortOrder = 4)] public class C010SDryad : SimpleBossModule { public C010SDryad(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs index 50f6f2bab0..dc68959f9c 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Dullahan.cs @@ -54,8 +54,8 @@ public C010DullahanStates(BossModule module, bool savage) : base(module) class C010NDullahanStates : C010DullahanStates { public C010NDullahanStates(BossModule module) : base(module, false) { } } class C010SDullahanStates : C010DullahanStates { public C010SDullahanStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11506, SortOrder = 7)] public class C010NDullahan : SimpleBossModule { public C010NDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11506, SortOrder = 7)] public class C010SDullahan : SimpleBossModule { public C010SDullahan(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs index 0eec6496d5..718eab2efc 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Kaluk.cs @@ -54,8 +54,8 @@ public C010KalukStates(BossModule module, bool savage) : base(module) class C010NKalukStates : C010KalukStates { public C010NKalukStates(BossModule module) : base(module, false) { } } class C010SKalukStates : C010KalukStates { public C010SKalukStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11510, SortOrder = 2)] public class C010NKaluk : SimpleBossModule { public C010NKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11510)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11510, SortOrder = 2)] public class C010SKaluk : SimpleBossModule { public C010SKaluk(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs index aa142e8b4a..d9c084c167 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C010Trash/C010Udumbara.cs @@ -68,7 +68,7 @@ public C010UdumbaraStates(BossModule module, bool savage) : base(module) class C010NUdumbaraStates : C010UdumbaraStates { public C010NUdumbaraStates(BossModule module) : base(module, false) { } } class C010SUdumbaraStates : C010UdumbaraStates { public C010SUdumbaraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11511, SortOrder = 3)] public class C010NUdumbara : SimpleBossModule { public C010NUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } @@ -80,7 +80,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11511)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11511, SortOrder = 3)] public class C010SUdumbara : SimpleBossModule { public C010SUdumbara(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs index 3b6d162279..55b3be63f1 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C011Silkie/C011Silkie.cs @@ -58,8 +58,8 @@ public abstract class C011Silkie : BossModule public C011Silkie(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-335, -155), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11369, SortOrder = 5)] public class C011NSilkie : C011Silkie { public C011NSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11369)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11369, SortOrder = 5)] public class C011SSilkie : C011Silkie { public C011SSilkie(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs index d31745d85d..18c6fc03c2 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C012Gladiator/C012Gladiator.cs @@ -19,8 +19,8 @@ public abstract class C012Gladiator : BossModule public C012Gladiator(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-35, -271), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11387, SortOrder = 8)] public class C012NGladiator : C012Gladiator { public C012NGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11387)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11387, SortOrder = 8)] public class C012SGladiator : C012Gladiator { public C012SGladiator(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs index b2a5aca840..793c0e5a20 100644 --- a/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs +++ b/BossMod/Modules/Endwalker/Criterion/C01ASS/C013Shadowcaster/C013Shadowcaster.cs @@ -27,8 +27,8 @@ public abstract class C013Shadowcaster : BossModule public C013Shadowcaster(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(289, -105), 15, 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 878, NameID = 11393, SortOrder = 9)] public class C013NShadowcaster : C013Shadowcaster { public C013NShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11393)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 879, NameID = 11393, SortOrder = 9)] public class C013SShadowcaster : C013Shadowcaster { public C013SShadowcaster(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs index f6747a6df4..0cbfcf8a93 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Fuko.cs @@ -82,7 +82,7 @@ private void Crosswind(uint id, float delay) class C020NFukoStates : C020FukoStates { public C020NFukoStates(BossModule module) : base(module, false) { } } class C020SFukoStates : C020FukoStates { public C020SFukoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12399, SortOrder = 2)] public class C020NFuko : C020Trash1 { public C020NFuko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -95,7 +95,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12399)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SFuko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12399, SortOrder = 2)] public class C020SFuko : C020Trash1 { public C020SFuko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs index 58df10f580..0cf50ab8a5 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Kotengu.cs @@ -71,8 +71,8 @@ public C020KotenguStates(BossModule module, bool savage) : base(module) class C020NKotenguStates : C020KotenguStates { public C020NKotenguStates(BossModule module) : base(module, false) { } } class C020SKotenguStates : C020KotenguStates { public C020SKotenguStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12410, SortOrder = 6)] public class C020NKotengu : C020Trash2 { public C020NKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12410)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKotengu, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12410, SortOrder = 6)] public class C020SKotengu : C020Trash2 { public C020SKotengu(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs index b3a30240f5..684aba79e9 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Onmitsugashira.cs @@ -52,8 +52,8 @@ public C020OnmitsugashiraStates(BossModule module, bool savage) : base(module) class C020NOnmitsugashiraStates : C020OnmitsugashiraStates { public C020NOnmitsugashiraStates(BossModule module) : base(module, false) { } } class C020SOnmitsugashiraStates : C020OnmitsugashiraStates { public C020SOnmitsugashiraStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12424, SortOrder = 5)] public class C020NOnmitsugashira : C020Trash2 { public C020NOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12424)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SOnmitsugashira, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12424, SortOrder = 5)] public class C020SOnmitsugashira : C020Trash2 { public C020SOnmitsugashira(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs index 0d85b9d9a0..8f23f3f4b4 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Raiko.cs @@ -89,7 +89,7 @@ private void MasterOfLevin(uint id, float delay) class C020NRaikoStates : C020RaikoStates { public C020NRaikoStates(BossModule module) : base(module, false) { } } class C020SRaikoStates : C020RaikoStates { public C020SRaikoStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12422, SortOrder = 1)] public class C020NRaiko : C020Trash1 { public C020NRaiko(WorldState ws, Actor primary) : base(ws, primary) { } @@ -102,7 +102,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12422)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRaiko, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12422, SortOrder = 1)] public class C020SRaiko : C020Trash1 { public C020SRaiko(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs index 29644a5c07..1cd12b78e3 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C020Trash/C020Yuki.cs @@ -28,8 +28,8 @@ public C020YukiStates(BossModule module, bool savage) : base(module) class C020NYukiStates : C020YukiStates { public C020NYukiStates(BossModule module) : base(module, false) { } } class C020SYukiStates : C020YukiStates { public C020SYukiStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12425, SortOrder = 3)] public class C020NYuki : C020Trash1 { public C020NYuki(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12425)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SYuki, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12425, SortOrder = 3)] public class C020SYuki : C020Trash1 { public C020SYuki(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs index 3a0166acc6..b46a4e5c85 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C021Shishio/C021Shishio.cs @@ -19,8 +19,8 @@ public abstract class C021Shishio : BossModule public C021Shishio(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, -100), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12428, SortOrder = 4)] public class C021NShishio : C021Shishio { public C021NShishio(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12428)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12428, SortOrder = 4)] public class C021SShishio : C021Shishio { public C021SShishio(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs index 2f3f083c91..bf6e3036b3 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C022Gorai/C022Gorai.cs @@ -12,8 +12,8 @@ public abstract class C022Gorai : BossModule public C022Gorai(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(300, -120), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12373, SortOrder = 7)] public class C022NGorai : C022Gorai { public C022NGorai(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12373)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12373, SortOrder = 7)] public class C022SGorai : C022Gorai { public C022SGorai(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs index 0183285172..a9a289e3bf 100644 --- a/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs +++ b/BossMod/Modules/Endwalker/Criterion/C02AMR/C023Moko/C023Moko.cs @@ -12,8 +12,8 @@ public abstract class C023Moko : BossModule public C023Moko(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 946, NameID = 12357, SortOrder = 8)] public class C023NMoko : C023Moko { public C023NMoko(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12357)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 947, NameID = 12357, SortOrder = 8)] public class C023SMoko : C023Moko { public C023SMoko(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs index 3add92ecc8..28222e212e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Islekeeper.cs @@ -58,13 +58,13 @@ private void IsleDrop(uint id, float delay) class C030NIslekeeperStates : C030IslekeeperStates { public C030NIslekeeperStates(BossModule module) : base(module, false) { } } class C030SIslekeeperStates : C030IslekeeperStates { public C030SIslekeeperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12561, SortOrder = 7)] public class C030NIslekeeper : C030Trash2 { public C030NIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SIslekeeper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561, SortOrder = 7)] public class C030SIslekeeper : C030Trash2 { public C030SIslekeeper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs index 68f1fc3209..6421c599be 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Kiwakin.cs @@ -70,13 +70,13 @@ private void TailScrew(uint id, float delay) class C030NKiwakinStates : C030KiwakinStates { public C030NKiwakinStates(BossModule module) : base(module, false) { } } class C030SKiwakinStates : C030KiwakinStates { public C030SKiwakinStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12632)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12632, SortOrder = 1)] public class C030NKiwakin : C030Trash1 { public C030NKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12561)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SKiwakin, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12632, SortOrder = 1)] public class C030SKiwakin : C030Trash1 { public C030SKiwakin(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs index d8fb80798e..12554a11dc 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Monk.cs @@ -58,13 +58,13 @@ private void CrossAttack(uint id, float delay) class C030NMonkStates : C030MonkStates { public C030NMonkStates(BossModule module) : base(module, false) { } } class C030SMonkStates : C030MonkStates { public C030SMonkStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12631, SortOrder = 4)] public class C030NMonk : C030Trash1 { public C030NMonk(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12631)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SMonk, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12631, SortOrder = 4)] public class C030SMonk : C030Trash1 { public C030SMonk(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs index 7547ec9185..0f4a1ca248 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Ray.cs @@ -59,7 +59,7 @@ private void ExpulsionElectricWhorl(uint id, float delay) class C030NRayStates : C030RayStates { public C030NRayStates(BossModule module) : base(module, false) { } } class C030SRayStates : C030RayStates { public C030SRayStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12541, SortOrder = 3)] public class C030NRay : C030Trash1 { public C030NRay(WorldState ws, Actor primary) : base(ws, primary) { } @@ -71,7 +71,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12541)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SRay, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12541, SortOrder = 3)] public class C030SRay : C030Trash1 { public C030SRay(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs index 31c20cab89..1e5a8ff912 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030Snipper.cs @@ -74,7 +74,7 @@ private void BubbleShowerCrabDribble(uint id, float delay) class C030NSnipperStates : C030SnipperStates { public C030NSnipperStates(BossModule module) : base(module, false) { } } class C030SSnipperStates : C030SnipperStates { public C030SSnipperStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12537, SortOrder = 2)] public class C030NSnipper : C030Trash1 { public C030NSnipper(WorldState ws, Actor primary) : base(ws, primary) { } @@ -86,7 +86,7 @@ protected override void DrawEnemies(int pcSlot, Actor pc) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12537)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SSnipper, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12537, SortOrder = 2)] public class C030SSnipper : C030Trash1 { public C030SSnipper(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs index 7ba9ebbc3e..a1c4c0cd39 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C030Trash/C030WoodGolem.cs @@ -60,13 +60,13 @@ private void Ovation(uint id, float delay) class C030NWoodGolemStates : C030WoodGolemStates { public C030NWoodGolemStates(BossModule module) : base(module, false) { } } class C030SWoodGolemStates : C030WoodGolemStates { public C030SWoodGolemStates(BossModule module) : base(module, true) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12560, SortOrder = 6)] public class C030NWoodGolem : C030Trash2 { public C030NWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12560)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SWoodGolem, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12560, SortOrder = 6)] public class C030SWoodGolem : C030Trash2 { public C030SWoodGolem(WorldState ws, Actor primary) : base(ws, primary) { } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs index 343547a980..999df708e2 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C031Ketuduke/C031Ketuduke.cs @@ -28,8 +28,8 @@ public abstract class C031Ketuduke : BossModule public C031Ketuduke(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(0, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12605, SortOrder = 5)] public class C031NKetuduke : C031Ketuduke { public C031NKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12605)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12605, SortOrder = 5)] public class C031SKetuduke : C031Ketuduke { public C031SKetuduke(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs index 61ea0215b5..a4597a480e 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C032Lala/C032Lala.cs @@ -12,8 +12,8 @@ public abstract class C032Lala : BossModule public C032Lala(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12639, SortOrder = 8)] public class C032NLala : C032Lala { public C032NLala(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12639)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12639, SortOrder = 8)] public class C032SLala : C032Lala { public C032SLala(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs index c4fdbe64b7..2d27032bbf 100644 --- a/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs +++ b/BossMod/Modules/Endwalker/Criterion/C03AAI/C033Statice/C033Statice.cs @@ -24,8 +24,8 @@ public abstract class C033Statice : BossModule public C033Statice(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-200, 0), 20)) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.NBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 979, NameID = 12506, SortOrder = 9)] public class C033NStatice : C033Statice { public C033NStatice(WorldState ws, Actor primary) : base(ws, primary) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12506)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SBoss, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 980, NameID = 12506, SortOrder = 9)] public class C033SStatice : C033Statice { public C033SStatice(WorldState ws, Actor primary) : base(ws, primary) { } } diff --git a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs index 1edaf644f8..06541a533c 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S1Athena/P12S1Athena.cs @@ -15,7 +15,7 @@ class Parthenos : Components.SelfTargetedAOEs public Parthenos() : base(ActionID.MakeSpell(AID.Parthenos), new AOEShapeRect(60, 8, 60)) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12377)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12377, SortOrder = 1)] public class P12S1Athena : BossModule { public P12S1Athena(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs index db4ec10854..921414a2bc 100644 --- a/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs +++ b/BossMod/Modules/Endwalker/Savage/P12S2PallasAthena/P12S2PallasAthena.cs @@ -1,6 +1,6 @@ namespace BossMod.Endwalker.Savage.P12S2PallasAthena; -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12382)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 943, NameID = 12382, SortOrder = 2)] public class P12S2PallasAthena : BossModule { public static ArenaBoundsRect DefaultBounds = new ArenaBoundsRect(new(100, 95), 20, 15); diff --git a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs index 82362724ac..5be43f1449 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S1Hesperos/P4S1.cs @@ -13,7 +13,7 @@ public class P4S1Config : CooldownPlanningConfigNode public P4S1Config() : base(90) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744, SortOrder = 1)] public class P4S1 : BossModule { public P4S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs index ddeec62abd..065a2c7e43 100644 --- a/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P4S2Hesperos/P4S2.cs @@ -13,7 +13,7 @@ class HeartStake : Components.CastCounter public HeartStake() : base(ActionID.MakeSpell(AID.HeartStakeSecond)) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 801, NameID = 10744, SortOrder = 2)] public class P4S2 : BossModule { // common wreath of thorns constants diff --git a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs index 521f9ce2d8..4edce4e46f 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S1Hephaistos/P8S1.cs @@ -10,7 +10,7 @@ class AbyssalFires : Components.LocationTargetedAOEs public AbyssalFires() : base(ActionID.MakeSpell(AID.AbyssalFires), 15) { } // TODO: verify falloff } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399, SortOrder = 1)] public class P8S1 : BossModule { public P8S1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs index 2737e9828d..4224f99a0c 100644 --- a/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs +++ b/BossMod/Modules/Endwalker/Savage/P8S2Hephaistos/P8S2.cs @@ -7,7 +7,7 @@ public TyrantsFlare() : base(ActionID.MakeSpell(AID.TyrantsFlareAOE), 6) { } // TODO: autoattack component // TODO: HC components -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 884, NameID = 11399, SortOrder = 2)] public class P8S2 : BossModule { public P8S2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(100, 100), 20)) { } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs index 104a146cbf..225c3c8c3f 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act1.cs @@ -49,7 +49,7 @@ public Stage02Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8078)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8078, SortOrder = 1)] public class Stage02Act1 : BossModule { public Stage02Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs index cd4cf8a546..5d36515b0c 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage02MuchAdoAboutPudding/Stage02Act2.cs @@ -41,7 +41,7 @@ public Stage02Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8079)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 612, NameID = 8079, SortOrder = 2)] public class Stage02Act2(WorldState ws, Actor primary) : BossModule(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { protected override bool CheckPull() { return PrimaryActor.IsTargetable && PrimaryActor.InCombat || Enemies(OID.Flan).Any(e => e.InCombat) || Enemies(OID.Licorice).Any(e => e.InCombat); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs index 72b73861d7..fb531839d1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act1.cs @@ -42,7 +42,7 @@ public Stage04Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8086)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8086, SortOrder = 1)] public class Stage04Act1 : BossModule { public Stage04Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs index 4b49ea254e..55c6504762 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage04GentlemanPreferSwords/Stage04Act2.cs @@ -61,7 +61,7 @@ public Stage04Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 614, NameID = 8087, SortOrder = 2)] public class Stage04Act2 : BossModule { public Stage04Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs index 93918597f4..1df0a8385c 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act1.cs @@ -103,9 +103,9 @@ public override void AddGlobalHints(BossModule module, GlobalHints hints) } } -class Stage06Act2States : StateMachineBuilder +class Stage06Act1States : StateMachineBuilder { - public Stage06Act2States(BossModule module) : base(module) + public Stage06Act1States(BossModule module) : base(module) { TrivialPhase() .DeactivateOnEnter() @@ -114,10 +114,10 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8090)] -public class Stage06Act2 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8090, SortOrder = 1)] +public class Stage06Act1 : BossModule { - public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) + public Stage06Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { ActivateComponent(); ActivateComponent(); diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs index 10b074cce1..6427c4fb11 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage06EyeSociety/Stage06Act2.cs @@ -141,7 +141,7 @@ public Stage06Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8092)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 616, NameID = 8092, SortOrder = 2)] public class Stage06Act2 : BossModule { public Stage06Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs index 425a75bc66..9cca76ebcd 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act1.cs @@ -59,7 +59,7 @@ public Stage07Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094, SortOrder = 1)] public class Stage07Act1 : BossModule { public Stage07Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs index 2de0ecd6e5..a8ef17365a 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act2.cs @@ -52,7 +52,7 @@ public Stage07Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8094, SortOrder = 2)] public class Stage07Act2 : BossModule { public Stage07Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs index 8a39071158..49fcfe2f77 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage07AChorusSlime/Stage07Act3.cs @@ -57,7 +57,7 @@ public Stage07Act3States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8095)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 617, NameID = 8095, SortOrder = 3)] public class Stage07Act3 : BossModule { public Stage07Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs index 4a3b573752..0c4a8c05c7 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act1.cs @@ -80,7 +80,7 @@ public Stage08Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8140)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8140, SortOrder = 1)] public class Stage08Act1 : BossModule { public Stage08Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs index 582dd3e375..91d0ce78fb 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage08BombedyOfErrors/Stage08Act2.cs @@ -76,7 +76,7 @@ public Stage08Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8098)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 618, NameID = 8098, SortOrder = 2)] public class Stage08Act2 : BossModule { public Stage08Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs index cb5a2ef2be..35c9451257 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act1.cs @@ -29,7 +29,7 @@ public Stage11Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280, SortOrder = 1)] public class Stage11Act1 : BossModule { public Stage11Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs index c8711582d3..00e92c823e 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage11SomeLikeItExcruciatinglyHot/Stage11Act2.cs @@ -29,7 +29,7 @@ public Stage11Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 621, NameID = 2280, SortOrder = 2)] public class Stage11Act2 : BossModule { public Stage11Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs index f87c29fbd3..3d9c02aa06 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act1.cs @@ -28,7 +28,7 @@ public Stage12Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8103)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8103, SortOrder = 1)] public class Stage12Act1 : BossModule { public Stage12Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs index 4c193e075b..93aeac69d1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage12ThePlantomOfTheOpera/Stage12Act2.cs @@ -57,7 +57,7 @@ public Stage12Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8102)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 622, NameID = 8102, SortOrder = 2)] public class Stage12Act2 : BossModule { public Stage12Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs index 6cb3476835..6d748cf133 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act1.cs @@ -37,7 +37,7 @@ public Stage13Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8104)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8104, SortOrder = 1)] public class Stage13Act1 : BossModule { public Stage13Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs index 79d1e7ff55..96558a5eb0 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage13BeautyAndABeast/Stage13Act2.cs @@ -96,7 +96,7 @@ public Stage13Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8107)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 623, NameID = 8107, SortOrder = 2)] public class Stage13Act2 : BossModule { public Stage13Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs index e9f975ab1e..3563c5793b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act1.cs @@ -59,7 +59,7 @@ public Stage14Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108, SortOrder = 1)] public class Stage14Act1 : BossModule { public Stage14Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs index 0bd5b91f64..6227a59546 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage14BlobsInTheWoods/Stage14Act2.cs @@ -59,7 +59,7 @@ public Stage14Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 624, NameID = 8108, SortOrder = 2)] public class Stage14Act2 : BossModule { public Stage14Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs index d1e00459d9..fdb64b2faf 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act1.cs @@ -29,7 +29,7 @@ public Stage16Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8112)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8112, SortOrder = 1)] public class Stage16Act1 : BossModule { public Stage16Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs index 705842bfc1..34237fa2c4 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage16SunsetBullevard/Stage16Act2.cs @@ -112,7 +112,7 @@ public Stage16Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8113)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 626, NameID = 8113, SortOrder = 2)] public class Stage16Act2 : BossModule { public Stage16Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs index 6d4090cb8e..6bf8171a29 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act1.cs @@ -62,7 +62,7 @@ public Stage17Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8115)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8115, SortOrder = 1)] public class Stage17Act1 : BossModule { public Stage17Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs index 5f9fbb76dc..5496102340 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage17TheSwordOfMusic/Stage17Act2.cs @@ -85,7 +85,7 @@ public Stage17Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8087)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 627, NameID = 8087, SortOrder = 2)] public class Stage17Act2 : BossModule { public Stage17Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs index 11ca6d9395..f03bf6a10c 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act1.cs @@ -84,9 +84,9 @@ public override void AddGlobalHints(BossModule module, GlobalHints hints) } } -class Stage18Act2States : StateMachineBuilder +class Stage18Act1States : StateMachineBuilder { - public Stage18Act2States(BossModule module) : base(module) + public Stage18Act1States(BossModule module) : base(module) { TrivialPhase() .DeactivateOnEnter() @@ -100,10 +100,10 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] -public class Stage18Act2 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116, SortOrder = 1)] +public class Stage18Act1 : BossModule { - public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) + public Stage18Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) { ActivateComponent(); ActivateComponent(); diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs index 68ea10947d..7955ae6a50 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage18MidsummerNightsExplosion/Stage18Act2.cs @@ -100,7 +100,7 @@ public Stage18Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 628, NameID = 8116, SortOrder = 2)] public class Stage18Act2 : BossModule { public Stage18Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs index 5127a100cd..9133d3f8fe 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act1.cs @@ -96,7 +96,7 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117, SortOrder = 1)] public class Stage19Act1 : BossModule { public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs index 173a1ef95e..a2fc746300 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage19OnAClearDayYouCanSmellForever/Stage19Act2.cs @@ -129,9 +129,9 @@ public override void AddGlobalHints(BossModule module, GlobalHints hints) } } -class Stage19Act1States : StateMachineBuilder +class Stage19Act2States : StateMachineBuilder { - public Stage19Act1States(BossModule module) : base(module) + public Stage19Act2States(BossModule module) : base(module) { TrivialPhase() .DeactivateOnEnter() @@ -143,10 +143,10 @@ public Stage19Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117)] -public class Stage19Act1 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 629, NameID = 8117, SortOrder = 2)] +public class Stage19Act2 : BossModule { - public Stage19Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) + public Stage19Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) { ActivateComponent(); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs index db12244152..d99738f6e9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act1.cs @@ -57,7 +57,7 @@ public Stage20Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046, SortOrder = 1)] public class Stage20Act1 : BossModule { public Stage20Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs index f49c60bcc1..b4e0304508 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act2.cs @@ -64,7 +64,7 @@ public Stage20Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 7111)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 7111, SortOrder = 2)] public class Stage20Act2 : BossModule { public Stage20Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs index 0f2eced428..9ca1a1e7c6 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage20MissTyphon/Stage20Act3.cs @@ -97,7 +97,7 @@ public Stage20Act3States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 630, NameID = 3046, SortOrder = 3)] public class Stage20Act3 : BossModule { public Stage20Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs index 9ba90d53ee..25ed3cad9b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act1.cs @@ -52,7 +52,7 @@ public Stage21Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8120)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8120, SortOrder = 1)] public class Stage21Act1 : BossModule { public Stage21Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs index 7bc9bfeaf6..12faccfa17 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage21ChimeraOnAHotTinRoof/Stage21Act2.cs @@ -83,7 +83,7 @@ public Stage21Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8121)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 631, NameID = 8121, SortOrder = 2)] public class Stage21Act2 : BossModule { public Stage21Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs index 4bfe570e36..e09d96cdef 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act1.cs @@ -39,7 +39,7 @@ public Stage22Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8122)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8122, SortOrder = 1)] public class Stage22Act1 : BossModule { public Stage22Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs index d11c973042..5b8ebcdfc9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage22HereComesTheBoom/Stage22Act2.cs @@ -81,7 +81,7 @@ public Stage22Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8123)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 632, NameID = 8123, SortOrder = 2)] public class Stage22Act2 : BossModule { public Stage22Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs index c37f23bc92..98d1b0158b 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act1.cs @@ -64,7 +64,7 @@ public Stage24Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8127)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8127, SortOrder = 1)] public class Stage24Act1 : BossModule { public Stage24Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs index 98a1d9a434..29e16ec5d5 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act2.cs @@ -85,7 +85,7 @@ public Stage24Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8128)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8128, SortOrder = 2)] public class Stage24Act2 : BossModule { public Stage24Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs index 62e5743ac1..55a45cbfa8 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage24AmazingTechnicolorPitFiends/Stage24Act3.cs @@ -116,7 +116,7 @@ public Stage24Act3States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8125)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 634, NameID = 8125, SortOrder = 3)] public class Stage24Act3 : BossModule { public Stage24Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs index 96367b3c02..b02ae782ea 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act1.cs @@ -107,7 +107,7 @@ public Stage25Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129, SortOrder = 1)] public class Stage25Act1 : BossModule { public Stage25Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs index 1db7625b51..c7b4625c56 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act2.cs @@ -86,7 +86,7 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129, SortOrder = 2)] public class Stage25Act2 : BossModule { public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs index 31a0b1cf15..b703811eb9 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage25DirtyRottenAzulmagia/Stage25Act3.cs @@ -139,9 +139,9 @@ public override void AddHints(BossModule module, int slot, Actor actor, TextHint } } -class Stage25Act2States : StateMachineBuilder +class Stage25Act3States : StateMachineBuilder { - public Stage25Act2States(BossModule module) : base(module) + public Stage25Act3States(BossModule module) : base(module) { TrivialPhase() .ActivateOnEnter() @@ -161,10 +161,10 @@ public Stage25Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129)] -public class Stage25Act2 : BossModule +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 635, NameID = 8129, SortOrder = 3)] +public class Stage25Act3 : BossModule { - public Stage25Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) + public Stage25Act3(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) { ActivateComponent(); } diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs index 8f43ba8e66..d27592480a 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act1.cs @@ -77,7 +77,7 @@ public Stage26Act1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9230)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9230, SortOrder = 1)] public class Stage26Act1 : BossModule { public Stage26Act1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 25)) diff --git a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs index 1c7a908609..2f0f1e01f1 100644 --- a/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs +++ b/BossMod/Modules/Global/MaskedCarnivale/Stage26PapaMia/Stage26Act2.cs @@ -129,7 +129,7 @@ public Stage26Act2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9231)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.MaskedCarnivale, GroupID = 695, NameID = 9231, SortOrder = 2)] public class Stage26Act2 : BossModule { public Stage26Act2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(100, 100), 16)) diff --git a/BossMod/Modules/ModuleRegistry.cs b/BossMod/Modules/ModuleRegistry.cs index 67efa92b57..25d0af0750 100644 --- a/BossMod/Modules/ModuleRegistry.cs +++ b/BossMod/Modules/ModuleRegistry.cs @@ -1,9 +1,4 @@ -using Dalamud.Utility; -using Lumina.Excel; -using Lumina.Excel.GeneratedSheets; -using Lumina.Text; -using System.Globalization; -using System.Reflection; +using System.Reflection; namespace BossMod; @@ -26,6 +21,7 @@ public class Info public BossModuleInfo.GroupType GroupType; public uint GroupID; public uint NameID; + public int SortOrder; public bool CooldownPlanningSupported => ConfigType?.IsSubclassOf(typeof(CooldownPlanningConfigNode)) ?? false; @@ -42,43 +38,43 @@ public class Info if (statesType == null || !statesType.IsSubclassOf(typeof(StateMachineBuilder)) || statesType.GetConstructor(new[] { module }) == null) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated states type: it should be derived from StateMachineBuilder and have a constructor accepting module"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated states type: it should be derived from StateMachineBuilder and have a constructor accepting module"); return null; } if (configType != null && !configType.IsSubclassOf(typeof(ConfigNode))) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated config type: it should be derived from ConfigNode"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated config type: it should be derived from ConfigNode"); configType = null; } if (oidType != null && !oidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated object ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated object ID type: it should be an enum"); oidType = null; } if (aidType != null && !aidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated action ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated action ID type: it should be an enum"); aidType = null; } if (sidType != null && !sidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated status ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated status ID type: it should be an enum"); sidType = null; } if (tidType != null && !tidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated tether ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated tether ID type: it should be an enum"); tidType = null; } if (iidType != null && !iidType.IsEnum) { - Service.Log($"[ModuleRegistry] Module {module.Name} has incorrect associated icon ID type: it should be an enum"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has incorrect associated icon ID type: it should be an enum"); iidType = null; } @@ -91,7 +87,7 @@ public class Info } if (primaryOID == 0) { - Service.Log($"[ModuleRegistry] Module {module.Name} has no associated primary actor OID: either specify one explicitly or ensure OID enum has Boss entry"); + Service.Log($"[ModuleRegistry] Module {module.FullName} has no associated primary actor OID: either specify one explicitly or ensure OID enum has Boss entry"); return null; } @@ -104,7 +100,7 @@ public class Info } if (expansion == BossModuleInfo.Expansion.Count) { - Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid expansion assigned; consider fixing namespace or specifying value manually"); + Service.Log($"[ModuleRegistry] Module {module.FullName} does not have valid expansion assigned; consider fixing namespace or specifying value manually"); expansion = BossModuleInfo.Expansion.Global; } @@ -115,7 +111,7 @@ public class Info } if (category == BossModuleInfo.Category.Count) { - Service.Log($"[ModuleRegistry] Module {module.Name} does not have valid category assigned; consider fixing namespace or specifying value manually"); + Service.Log($"[ModuleRegistry] Module {module.FullName} does not have valid category assigned; consider fixing namespace or specifying value manually"); category = BossModuleInfo.Category.Uncategorized; } @@ -124,7 +120,17 @@ public class Info var nameID = infoAttr?.NameID ?? 0; if (groupType == BossModuleInfo.GroupType.None && groupID == 0) { - Service.Log($"[ModuleRegistry] Module {module.Name} does not have group type/id assignments."); + Service.Log($"[ModuleRegistry] Module {module.FullName} does not have group type/id assignments."); + } + + var sortOrder = infoAttr?.SortOrder ?? 0; + if (sortOrder == 0 && int.TryParse(module.Name.SkipWhile(c => !char.IsAsciiDigit(c)).TakeWhile(char.IsAsciiDigit).ToArray(), out var inferredSortOrder)) + { + sortOrder = inferredSortOrder; + } + if (sortOrder == 0) + { + sortOrder = (int)primaryOID; } return new Info(module, statesType) @@ -142,6 +148,7 @@ public class Info GroupType = groupType, GroupID = groupID, NameID = nameID, + SortOrder = sortOrder, }; } diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs index 0465adcedd..efd8309c7c 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01ADS.cs @@ -66,7 +66,7 @@ public T01ADSStates(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1459)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1459, SortOrder = 1)] public class T01ADS : BossModule { public T01ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-3, 27), 7, 28)) { } diff --git a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs index 990bc044d4..c8a827f8a9 100644 --- a/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs +++ b/BossMod/Modules/RealmReborn/Raid/T01Caduceus/T01Caduceus.cs @@ -119,7 +119,7 @@ public class T01CaduceusConfig : CooldownPlanningConfigNode public T01CaduceusConfig() : base(50) { } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1466)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 93, NameID = 1466, SortOrder = 2)] public class T01Caduceus : BossModule { public T01Caduceus(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-26, -407), 35, 43)) diff --git a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs index b9f260bcaf..3038b97305 100644 --- a/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs +++ b/BossMod/Modules/RealmReborn/Raid/T02MultiADS/T02MultiADS.cs @@ -158,7 +158,7 @@ public class T02ADSConfig : CooldownPlanningConfigNode public T02ADSConfig() : base(50) { } } -[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1459)] +[ModuleInfo(PrimaryActorOID = (uint)OID.ADS, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1459, SortOrder = 1)] public class T02ADS : BossModule { public T02ADS(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 77), 18, 13)) { } @@ -177,7 +177,7 @@ public T02QuarantineNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1468)] +[ModuleInfo(PrimaryActorOID = (uint)OID.QuarantineNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1468, SortOrder = 2)] public class T02QuarantineNode : BossModule { public T02QuarantineNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 112), 14, 13)) { } @@ -197,7 +197,7 @@ public T02AttackNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1469)] +[ModuleInfo(PrimaryActorOID = (uint)OID.AttackNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1469, SortOrder = 3)] public class T02AttackNode : BossModule { public T02AttackNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsSquare(new(-44, 94), 17)) { } @@ -219,7 +219,7 @@ public T02SanitaryNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1470)] +[ModuleInfo(PrimaryActorOID = (uint)OID.SanitaryNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1470, SortOrder = 4)] public class T02SanitaryNode : BossModule { public T02SanitaryNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(-43, 52), 18, 15)) { } @@ -238,7 +238,7 @@ public T02MonitoringNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1471)] +[ModuleInfo(PrimaryActorOID = (uint)OID.MonitoringNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1471, SortOrder = 5)] public class T02MonitoringNode : BossModule { public T02MonitoringNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(0, 39), 17, 15)) { } @@ -257,7 +257,7 @@ public T02DefenseNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1472)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DefenseNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1472, SortOrder = 6)] public class T02DefenseNode : BossModule { public T02DefenseNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(46, 52), 17, 14)) { } @@ -277,7 +277,7 @@ public T02DisposalNodeStates(BossModule module) : base(module) } } -[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1473)] +[ModuleInfo(PrimaryActorOID = (uint)OID.DisposalNode, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 94, NameID = 1473, SortOrder = 7)] public class T02DisposalNode : BossModule { public T02DisposalNode(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsRect(new(41, 94), 14, 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs index e16054ae47..34e7a02788 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana1.cs @@ -130,7 +130,7 @@ public T04PortaDecumana1States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137, SortOrder = 1)] public class T04PortaDecumana1 : BossModule { public T04PortaDecumana1(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-772, -600), 20)) { } diff --git a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs index 01adfe1c58..24372ab23a 100644 --- a/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs +++ b/BossMod/Modules/RealmReborn/Trial/T04PortaDecumana/T04PortaDecumana2.cs @@ -181,7 +181,7 @@ public T04PortaDecumana2States(BossModule module) : base(module) } } -[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137)] +[ModuleInfo(GroupType = BossModuleInfo.GroupType.CFC, GroupID = 830, NameID = 2137, SortOrder = 2)] public class T04PortaDecumana2 : BossModule { public T04PortaDecumana2(WorldState ws, Actor primary) : base(ws, primary, new ArenaBoundsCircle(new(-704, 480), 20)) { } From 8ab7d4e3eae6a8f205d482a3ec229cb4546e22e5 Mon Sep 17 00:00:00 2001 From: Andrew Gilewsky Date: Sat, 30 Mar 2024 22:31:05 +0000 Subject: [PATCH 11/11] More accessible config. --- BossMod/BossModule/BossModuleConfigWindow.cs | 34 +++++++++++ BossMod/BossModule/BossModuleMainWindow.cs | 10 +++- BossMod/Config/ConfigUI.cs | 61 ++++++++++---------- BossMod/Config/ModuleViewer.cs | 37 +++++++----- BossMod/Util/UIMisc.cs | 13 ++++- TODO | 2 +- 6 files changed, 111 insertions(+), 46 deletions(-) create mode 100644 BossMod/BossModule/BossModuleConfigWindow.cs diff --git a/BossMod/BossModule/BossModuleConfigWindow.cs b/BossMod/BossModule/BossModuleConfigWindow.cs new file mode 100644 index 0000000000..04bc75bf77 --- /dev/null +++ b/BossMod/BossModule/BossModuleConfigWindow.cs @@ -0,0 +1,34 @@ +using Dalamud.Interface.Utility.Raii; + +namespace BossMod; + +public class BossModuleConfigWindow : UIWindow +{ + private ModuleRegistry.Info _info; + private WorldState _ws; + private UITree _tree = new(); + + public BossModuleConfigWindow(ModuleRegistry.Info info, WorldState ws) : base($"{info.ModuleType.Name} config", true, new(1200, 800)) + { + _info = info; + _ws = ws; + } + + public override void Draw() + { + if (_info.ConfigType == null) + return; // nothing to do... + + using var tabs = ImRaii.TabBar("Tabs"); + if (tabs) + { + using (var tab = ImRaii.TabItem("Encounter-specific config")) + if (tab) + ConfigUI.DrawNode(Service.Config.Get(_info.ConfigType), Service.Config, _tree, _ws); + if (_ws.Party.Player() != null) + using (var tab = ImRaii.TabItem("Party roles assignment")) + if (tab) + ConfigUI.DrawNode(Service.Config.Get(), Service.Config, _tree, _ws); + } + } +} diff --git a/BossMod/BossModule/BossModuleMainWindow.cs b/BossMod/BossModule/BossModuleMainWindow.cs index 2fe90422d2..f6cd46cc0b 100644 --- a/BossMod/BossModule/BossModuleMainWindow.cs +++ b/BossMod/BossModule/BossModuleMainWindow.cs @@ -1,4 +1,5 @@ -using ImGuiNET; +using Dalamud.Interface; +using ImGuiNET; namespace BossMod; @@ -12,6 +13,7 @@ public class BossModuleMainWindow : UIWindow { _mgr = mgr; RespectCloseHotkey = false; + TitleBarButtons.Add(new() { Icon = FontAwesomeIcon.Cog, IconOffset = new(1), Click = _ => OpenModuleConfig() }); } public override void PreOpenCheck() @@ -94,4 +96,10 @@ private void DrawMovementHints(BossComponent.MovementHints? arrows, float y) Camera.Instance.DrawWorldLine(arrowStart - offset, end3, color); } } + + private void OpenModuleConfig() + { + if (_mgr.ActiveModule?.Info?.ConfigType != null) + new BossModuleConfigWindow(_mgr.ActiveModule.Info, _mgr.WorldState); + } } diff --git a/BossMod/Config/ConfigUI.cs b/BossMod/Config/ConfigUI.cs index e38f7f7793..ac2bb2fdc6 100644 --- a/BossMod/Config/ConfigUI.cs +++ b/BossMod/Config/ConfigUI.cs @@ -73,6 +73,29 @@ public void Draw() } } + public static void DrawNode(ConfigNode node, ConfigRoot root, UITree tree, WorldState ws) + { + // draw standard properties + foreach (var field in node.GetType().GetFields()) + { + var props = field.GetCustomAttribute(); + if (props == null) + continue; + + _ = field.GetValue(node) switch + { + bool v => DrawProperty(props, node, field, v), + Enum v => DrawProperty(props, node, field, v), + float v => DrawProperty(props, node, field, v), + GroupAssignment v => DrawProperty(props, node, field, v, root, tree, ws), + _ => false + }; + } + + // draw custom stuff + node.DrawCustom(tree, ws); + } + private static string GenerateNodeName(Type t) => t.Name.EndsWith("Config") ? t.Name.Remove(t.Name.Length - "Config".Length) : t.Name; private void SortByOrder(List nodes) @@ -86,32 +109,12 @@ private void DrawNodes(List nodes) { foreach (var n in _tree.Nodes(nodes, n => new(n.Name))) { - // draw standard properties - foreach (var field in n.Node.GetType().GetFields()) - { - var props = field.GetCustomAttribute(); - if (props == null) - continue; - - _ = field.GetValue(n.Node) switch - { - bool v => DrawProperty(props, n.Node, field, v), - Enum v => DrawProperty(props, n.Node, field, v), - float v => DrawProperty(props, n.Node, field, v), - GroupAssignment v => DrawProperty(props, n.Node, field, v), - _ => false - }; - } - - // draw custom stuff - n.Node.DrawCustom(_tree, _ws); - - // draw subnodes + DrawNode(n.Node, _root, _tree, _ws); DrawNodes(n.Children); } } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, bool v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, bool v) { var combo = member.GetCustomAttribute(); if (combo != null) @@ -133,7 +136,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, Enum v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, Enum v) { if (UICombo.Enum(props.Label, ref v)) { @@ -143,7 +146,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, float v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, float v) { var slider = member.GetCustomAttribute(); if (slider != null) @@ -168,15 +171,15 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, GroupAssignment v) + private static bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, FieldInfo member, GroupAssignment v, ConfigRoot root, UITree tree, WorldState ws) { var group = member.GetCustomAttribute(); if (group == null) return false; - foreach (var tn in _tree.Node(props.Label, false, v.Validate() ? 0xffffffff : 0xff00ffff, () => DrawPropertyContextMenu(node, member, v))) + foreach (var tn in tree.Node(props.Label, false, v.Validate() ? 0xffffffff : 0xff00ffff, () => DrawPropertyContextMenu(node, member, v))) { - var assignments = _root.Get().SlotsPerAssignment(_ws.Party); + var assignments = root.Get().SlotsPerAssignment(ws.Party); if (ImGui.BeginTable("table", group.Names.Length + 2, ImGuiTableFlags.SizingFixedFit)) { foreach (var n in group.Names) @@ -206,7 +209,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field string name = r.ToString(); if (assignments.Length > 0) - name += $" ({_ws.Party[assignments[i]]?.Name})"; + name += $" ({ws.Party[assignments[i]]?.Name})"; ImGui.TableNextColumn(); ImGui.TextUnformatted(name); } @@ -216,7 +219,7 @@ private bool DrawProperty(PropertyDisplayAttribute props, ConfigNode node, Field return true; } - private void DrawPropertyContextMenu(ConfigNode node, FieldInfo member, GroupAssignment v) + private static void DrawPropertyContextMenu(ConfigNode node, FieldInfo member, GroupAssignment v) { foreach (var preset in member.GetCustomAttributes()) { diff --git a/BossMod/Config/ModuleViewer.cs b/BossMod/Config/ModuleViewer.cs index 2ead81c04c..be5a27e4e4 100644 --- a/BossMod/Config/ModuleViewer.cs +++ b/BossMod/Config/ModuleViewer.cs @@ -1,4 +1,5 @@ -using Dalamud.Interface.Internal; +using Dalamud.Interface; +using Dalamud.Interface.Internal; using Dalamud.Interface.Utility.Raii; using ImGuiNET; using Lumina.Excel.GeneratedSheets; @@ -10,7 +11,7 @@ namespace BossMod; public class ModuleViewer : IDisposable { - private record struct ModuleInfo(Type Type, string Name, int SortOrder); + private record struct ModuleInfo(ModuleRegistry.Info Info, string Name, int SortOrder); private record struct ModuleGroupInfo(string Name, uint Id, uint SortOrder, IDalamudTextureWrap? Icon = null); private record struct ModuleGroup(ModuleGroupInfo Info, List Modules); @@ -98,7 +99,7 @@ public ModuleViewer() g.Modules.SortBy(m => m.SortOrder); foreach (var (m1, m2) in g.Modules.Pairwise()) if (m1.SortOrder == m2.SortOrder) - Service.Log($"[ModuleViewer] Same sort order between modules {m1.Type.FullName} and {m2.Type.FullName}"); + Service.Log($"[ModuleViewer] Same sort order between modules {m1.Info.ModuleType.FullName} and {m2.Info.ModuleType.FullName}"); } } } @@ -204,8 +205,16 @@ private void DrawModules(UITree _tree) ImGui.TableNextColumn(); foreach (var _ in _tree.Node($"{group.Info.Name}###{i}/{j}/{group.Info.Id}")) + { foreach (var mod in group.Modules) - ImGui.TextUnformatted($"{mod.Name} [{mod.Type.Name}]"); + { + using (ImRaii.Disabled(mod.Info.ConfigType == null)) + if (UIMisc.IconButton(FontAwesomeIcon.Cog, "cfg", $"###{mod.Info.ModuleType.FullName}")) + new BossModuleConfigWindow(mod.Info, new(TimeSpan.TicksPerSecond, "fake")); + ImGui.SameLine(); + ImGui.TextUnformatted($"{mod.Name} [{mod.Info.ModuleType.Name}]"); + } + } } } } @@ -238,38 +247,38 @@ private void Customize((string name, IDalamudTextureWrap? icon)[] array, int ele var cfcRow = Service.LuminaRow(module.GroupID); var cfcSort = cfcRow?.SortKey ?? 0u; var cfcName = FixCase(cfcRow?.Name); - return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new(cfcName, groupId, cfcSort != 0 ? cfcSort : groupId), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.MaskedCarnivale: groupId |= module.GroupID; var mcRow = Service.LuminaRow(module.GroupID); var mcSort = uint.Parse((mcRow?.ShortCode ?? "").Substring(3)); // 'aozNNN' var mcName = $"Stage {mcSort}: {FixCase(mcRow?.Name)}"; - return (new(mcName, groupId, mcSort), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new(mcName, groupId, mcSort), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.RemovedUnreal: - return (new("Removed Content", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new("Removed Content", groupId, groupId), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.Quest: var questRow = Service.LuminaRow(module.GroupID); groupId |= questRow?.JournalGenre.Row ?? 0; var questCategoryName = questRow?.JournalGenre.Value?.Name ?? ""; - return (new(questCategoryName, groupId, groupId), new(module.ModuleType, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); + return (new(questCategoryName, groupId, groupId), new(module, $"{questRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Fate: var fateRow = Service.LuminaRow(module.GroupID); - return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module.ModuleType, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); + return (new($"{module.Expansion.ShortName()} FATE", groupId, groupId, _iconFATE), new(module, $"{fateRow?.Name}: {BNpcName(module.NameID)}", module.SortOrder)); case BossModuleInfo.GroupType.Hunt: groupId |= module.GroupID; - return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new($"{module.Expansion.ShortName()} Hunt {(BossModuleInfo.HuntRank)module.GroupID}", groupId, groupId, _iconHunt), new(module, BNpcName(module.NameID), module.SortOrder)); case BossModuleInfo.GroupType.BozjaCE: groupId |= module.GroupID; var ceName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} CE"; - return (new(ceName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); + return (new(ceName, groupId, groupId), new(module, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.BozjaDuel: groupId |= module.GroupID; var duelName = $"{FixCase(Service.LuminaRow(module.GroupID)?.Name)} Duel"; - return (new(duelName, groupId, groupId), new(module.ModuleType, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); + return (new(duelName, groupId, groupId), new(module, Service.LuminaRow(module.NameID)?.Name ?? "", module.SortOrder)); case BossModuleInfo.GroupType.GoldSaucer: - return (new("Gold saucer", groupId, groupId), new(module.ModuleType, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.SortOrder)); + return (new("Gold saucer", groupId, groupId), new(module, $"{Service.LuminaRow(module.GroupID)?.Text}: {BNpcName(module.NameID)}", module.SortOrder)); default: - return (new("Ungrouped", groupId, groupId), new(module.ModuleType, BNpcName(module.NameID), module.SortOrder)); + return (new("Ungrouped", groupId, groupId), new(module, BNpcName(module.NameID), module.SortOrder)); } } } diff --git a/BossMod/Util/UIMisc.cs b/BossMod/Util/UIMisc.cs index 16582d7b40..2a45505c5a 100644 --- a/BossMod/Util/UIMisc.cs +++ b/BossMod/Util/UIMisc.cs @@ -1,4 +1,6 @@ -using Dalamud.Interface.Internal; +using Dalamud.Interface; +using Dalamud.Interface.Internal; +using Dalamud.Interface.Utility.Raii; using ImGuiNET; namespace BossMod; @@ -55,4 +57,13 @@ public static bool ImageToggleButton(IDalamudTextureWrap? icon, Vector2 size, bo return ImGui.Button("", size); } } + + // works around issues with fonts in uidev + public static unsafe bool IconButton(FontAwesomeIcon icon, string fallback, string text) + { + if (Service.PluginInterface == null) + return ImGui.Button(fallback + text); + using var scope = ImRaii.PushFont(UiBuilder.IconFont); + return ImGui.Button(icon.ToIconString() + text); + } } diff --git a/TODO b/TODO index 8a52a9a756..3b8f3dc762 100644 --- a/TODO +++ b/TODO @@ -24,7 +24,7 @@ general: -- button to 'keep' last (add as temp to replay manager) or to 'save' last (save into replay file) - better timing tracking for: statuses, gauges, cooldowns, cast times, anim lock, ... - constrain bossmodules to zone id (e.g. for T04) -- module registry improvements +- revise module categories - consider merging fates/hunts/quests/gold saucer?/pvp? into outdoor?/casual? - refactor pendingeffects boss modules: