private void RunGame() { while (!_runner.GameEnded) { var clientEvent = QueueEvents.Instance.Take(); ProcessClientEvent(clientEvent); } _eventBus.Unregister(this); }
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"); }
public override void UnloadContent() { _eventBus.Unregister(this); }