コード例 #1
0
 private void NewTurn()
 {
     _turnState = TurnBasedState.TurnEnded;
     SystemManager.TurnUpdate(true);
     TurnNumber++;
     SetupNewTurn();
 }
コード例 #2
0
 public void NewTurn()
 {
     _turnLengthCounter = 0;
     SystemManager.TurnUpdate(true);
     TurnCounter++;
     _turnState = TurnBasedState.TurnEnded;
 }
コード例 #3
0
 private void SetupNewTurn()
 {
     _turnTemplates.Run(_setupUnitTurns);
     _turnTemplates.Run(_findCurrentFastest);
     if (_current == null)
     {
         _turnState = TurnBasedState.NoUnits;
     }
     else
     {
         _turnState = TurnBasedState.Performing;
         StartTurn();
     }
 }
コード例 #4
0
 private void TurnUpdate()
 {
     if (TurnCancel())
     {
         return;
     }
     _active.Sort(_nodeSorter);
     //_active.BubbleSort((i, i1) => i.Priority < i1.Priority);
     for (int i = 0; i < _active.Count; i++)
     {
         if (TurnCancel())
         {
             return;
         }
         if (_active[i] == null || _active[i].Value == null)
         {
             continue;
         }
         _active[i].Value.TurnUpdate(TurnRecoverAmount);
         //need to check it is the first activation
         if (_active[i].Value.TryStartTurn())
         {
             EntityController.GetEntity(_active[i].Value.Owner).Post(EntitySignals.TurnReady);
             if (GameOptions.TurnBased)
             {
                 _current = _active[i].Value;
                 break;
             }
         }
     }
     _turnLengthCounter += TurnRecoverAmount;
     if (_turnLengthCounter >= TurnBased.RecoveryNeededToEndTurn)
     {
         NewTurn();
     }
     else
     {
         SystemManager.TurnUpdate(false);
         _turnState = TurnBasedState.Performing;
     }
 }
コード例 #5
0
 private bool TurnCancel()
 {
     if (_active.Count == 0)
     {
         _turnState = TurnBasedState.NoUnits;
         return(true);
     }
     if (_current != null)
     {
         if (_current.TryStartTurn())
         {
             _turnState = TurnBasedState.Performing;
             return(true);
         }
         _current = null;
     }
     if (!Game.GameActive || Game.Paused)
     {
         _turnState = Game.GameActive ? TurnBasedState.WaitingOnInput : TurnBasedState.Disabled;
         return(true);
     }
     return(false);
 }