Example #1
0
    public Turn GetNextTurn()
    {
        Turn nextTurn = TurnStack.Pop();

        endRoundButton.interactable = !IsTurnStackEmpty;

        return(nextTurn);
    }
Example #2
0
    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>());
    }
Example #3
0
 Turn GetEntityTurn(EntityData entity)
 {
     return(TurnStack.First(t => t.Entity == entity));
 }
Example #4
0
 Turn GetPlayerTurn()
 {
     return(TurnStack.First(t => t.Entity.ID == scenarioStateManager.Player.ID));
 }
Example #5
0
 public void AddNewTurn(Turn newTurn)
 {
     TurnStack.Push(newTurn);
     endRoundButton.interactable = IsPlayerTurnComplete();
 }
Example #6
0
 public bool IsPlayerTurnComplete()
 {
     return(TurnStack.Any(turn => turn.IsCompletePlayerTurn()));
 }