void InitEnemyEntities() { { Entity lightTurret = new Entity(true, "LightTurret"); lightTurret.Tags.Add("Actor"); lightTurret.Components.Add(new Renderable(lightTurret, Renderables["TurretBase"])); lightTurret.Components.Add(new Weapon(lightTurret, Weapons["TurretBase"])); lightTurret.Components.Add(new AiController(lightTurret, AiControllers["TurretAi"])); lightTurret.Components.Add(new AABBCollider(lightTurret, AABBColliders["TurretCollider"])); EnemyEntities.Add("LightTurret", lightTurret); } }
private void ChooseBehavior() { if (EnemyEntities.Any() && MyEntities.Any(e => GetDistance(GetNearestEntity(e.Position, PlayerType.Enemy).Position, e.Position) < 6)) // || // EnemyUnits.Any(eu => GetDistance(eu.Position, Zero) <= 35)) { Behavior = BehaviorType.Aggressive; unitsRatio = aggressiveBehaviorUnitsRatio; } else { Behavior = BehaviorType.Passive; unitsRatio = passiveBehaviorUnitsRatio; } }
// Use this for initialization void Start() { systems = new List <ISystemInterface>(); entities = new PlayerEntities(); enemyEntities = new EnemyEntities(); entities.Init(entityCount); enemyEntities.Init(enemyEntityCount); // System addition order matters, they will run in the same order systems.Add(new GravitySystem()); systems.Add(new ForceSystem()); systems.Add(new InputSystem()); systems.Add(new MoveSystem()); systems.Add(new CollisionSystem()); systems.Add(new WorldBoundsSystem()); systems.Add(new RenderingSystem()); foreach (var system in systems) { system.Start(this); } }