public Turn GetNextTurn() { Turn nextTurn = TurnStack.Pop(); endRoundButton.interactable = !IsTurnStackEmpty; return(nextTurn); }
public void ChangePlayerTurnPosition(int newIndex) { List <Turn> turnList = TurnStack.ToList(); Turn playerTurn = GetPlayerTurn(); turnList.Remove(playerTurn); Stack <Turn> newTurnStack = new Stack <Turn>(); for (int i = 0; i < newIndex; i++) { Turn turn = turnList[i]; if (turn.IsPlayerTurn()) { continue; } newTurnStack.Push(turn); } newTurnStack.Push(playerTurn); for (int i = newIndex; i < turnList.Count; i++) { Turn turn = turnList[i]; if (turn.IsPlayerTurn()) { continue; } newTurnStack.Push(turn); } TurnStack = new Stack <Turn>(newTurnStack); energyManager.UpdateProjectedEnergyGain(newIndex); OnTurnStackUpdate(TurnStack.ToList <Turn>()); }
Turn GetEntityTurn(EntityData entity) { return(TurnStack.First(t => t.Entity == entity)); }
Turn GetPlayerTurn() { return(TurnStack.First(t => t.Entity.ID == scenarioStateManager.Player.ID)); }
public void AddNewTurn(Turn newTurn) { TurnStack.Push(newTurn); endRoundButton.interactable = IsPlayerTurnComplete(); }
public bool IsPlayerTurnComplete() { return(TurnStack.Any(turn => turn.IsCompletePlayerTurn())); }