Exemplo n.º 1
0
        private void RunGame()
        {
            while (!_runner.GameEnded)
            {
                var clientEvent = QueueEvents.Instance.Take();
                ProcessClientEvent(clientEvent);
            }

            _eventBus.Unregister(this);
        }
Exemplo n.º 2
0
        public override void Process(Entity entity)
        {
            ArmyAi armyAi = entity.GetComponent <ArmyAi>();
            Army   army   = entity.GetComponent <Army>();

            _eventBus.Register(armyAi.DefaultDecisionThinker);
            armyAi.DefaultDecisionThinker.Think(entity, _eventBus);

            float lastMovementPoints = 0; //protection against standing in place

            while (army.MovementPoints > 0 && army.MovementPoints != lastMovementPoints)
            {
                lastMovementPoints = army.MovementPoints;
                IDecisionThinker decisionThinker = armyAi.DecisionThinkers[armyAi.ArmyStateMachine.State];
                decisionThinker.Think(entity, _eventBus);
            }


            _eventBus.Unregister(armyAi.DefaultDecisionThinker);
            // Debug.WriteLine("Update AI");
        }
Exemplo n.º 3
0
 public override void UnloadContent()
 {
     _eventBus.Unregister(this);
 }