Пример #1
0
        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);
            }
        }
Пример #2
0
        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;
        }
Пример #3
0
 protected void EventHandler_HeadquarterCompleted(HeadQuater hq)
 {
     InitializeHandlers(hq);
 }
Пример #4
0
 public void Generate()
 {
     map        = new Map(Points.ToArray(), Routes);
     headQuater = new HeadQuater(map, DPs.ToArray(), SCs.ToArray());
 }
Пример #5
0
 public void ProduceNewHarvester(HeadQuater hq)
 {
     var pos = _positionHandler.GetNextUnitSpawnPosition<Harvester>();
     hq.Produce(new ProduceEvent<Harvester>(_ai.Id, hq.Id, pos.X, pos.Y), _eventAgent);
 }
Пример #6
0
 public void ProduceNewBarracks(HeadQuater hq)
 {
     var pos = _positionHandler.GetNextBuildingPosition<Barrack>();
     hq.Produce(new ProduceEvent<Barrack>(_ai.Id, hq.Id, pos.X, pos.Y), _eventAgent);
 }