protected virtual void CreateHeadQuaters(IEnumerable<IArtificialIntelligence> artificialIntelligences) { var startOffset = 30; var aiList = artificialIntelligences.ToList(); foreach (var artificialIntelligence in aiList) { Vector2 position = Vector2.Zero; var hq = new HeadQuater(); var indexOf = aiList.IndexOf(artificialIntelligence); if(indexOf == 0) position = new Vector2(startOffset, startOffset); if (indexOf == 1) position = new Vector2(GameBoard.GetBoundings().X - hq.Size.X - startOffset , startOffset); if (indexOf == 2) position = new Vector2(GameBoard.GetBoundings().X - hq.Size.X - startOffset, GameBoard.GetBoundings().Y - hq.Size.Y - startOffset); if (indexOf == 3) position = new Vector2(startOffset, GameBoard.GetBoundings().Y - hq.Size.Y - startOffset); var headQuaterEvent = new ProduceEvent<HeadQuater>(artificialIntelligence.Id, artificialIntelligence.Id, position.X,position.Y); Agent.Enqueue(headQuaterEvent); } }
private void InitializeHandlers(HeadQuater hq) { if (PositionHandler == null) PositionHandler = new PositionHandler(this, EventAgent, hq.Origin); if (ProductionHandler == null) ProductionHandler = new ProductionHandler(this, EventAgent, PositionHandler); HandlersInitialized = true; }
protected void EventHandler_HeadquarterCompleted(HeadQuater hq) { InitializeHandlers(hq); }
public void Generate() { map = new Map(Points.ToArray(), Routes); headQuater = new HeadQuater(map, DPs.ToArray(), SCs.ToArray()); }
public void ProduceNewHarvester(HeadQuater hq) { var pos = _positionHandler.GetNextUnitSpawnPosition<Harvester>(); hq.Produce(new ProduceEvent<Harvester>(_ai.Id, hq.Id, pos.X, pos.Y), _eventAgent); }
public void ProduceNewBarracks(HeadQuater hq) { var pos = _positionHandler.GetNextBuildingPosition<Barrack>(); hq.Produce(new ProduceEvent<Barrack>(_ai.Id, hq.Id, pos.X, pos.Y), _eventAgent); }