private void NewTurn() { _turnState = TurnBasedState.TurnEnded; SystemManager.TurnUpdate(true); TurnNumber++; SetupNewTurn(); }
public void NewTurn() { _turnLengthCounter = 0; SystemManager.TurnUpdate(true); TurnCounter++; _turnState = TurnBasedState.TurnEnded; }
private void SetupNewTurn() { _turnTemplates.Run(_setupUnitTurns); _turnTemplates.Run(_findCurrentFastest); if (_current == null) { _turnState = TurnBasedState.NoUnits; } else { _turnState = TurnBasedState.Performing; StartTurn(); } }
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; } }
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); }