poe2-bot/src/Nexus.Systems/SystemFactory.cs
2026-04-04 16:44:32 -04:00

36 lines
1.1 KiB
C#

using Nexus.Core;
using Nexus.Data;
using Nexus.Pathfinding;
namespace Nexus.Systems;
public static class SystemFactory
{
public static List<ISystem> CreateSystems(BotConfig config, NavigationController nav,
bool includeAreaProgression = false)
{
var systems = new List<ISystem>();
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;
}
}