36 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|