using Nexus.Core; using Nexus.Data; using Nexus.Pathfinding; namespace Nexus.Systems; public static class SystemFactory { public static List CreateSystems(BotConfig config, NavigationController nav, bool includeAreaProgression = false) { var systems = new List(); if (includeAreaProgression) systems.Add(new AreaProgressionSystem(config, nav, AreaGraph.Load())); systems.Add(new ThreatSystem { WorldToGrid = config.WorldToGrid }); systems.Add(new DodgeSystem { WorldToGrid = config.WorldToGrid }); systems.Add(new MovementSystem { SafeDistance = config.SafeDistance, RepulsionWeight = config.RepulsionWeight, WorldToGrid = config.WorldToGrid, }); systems.Add(new NavigationSystem { WorldToGrid = config.WorldToGrid, WaypointReachedDistance = config.WaypointReachedDistance, }); systems.Add(new CombatSystem(config)); systems.Add(new ResourceSystem(config)); systems.Add(new LootSystem()); return systems; } }