Example #1
0
    public void StartPlayerTurn()
    {
        foreach (Unit unit in this.PlayerSetHolder.Set.Units)
        {
            if (unit.HP > 0)
            {
                unit.CanAct = true;
            }
        }
        SetStartingPlayerUnit();
        Player startingPlayer = ActingUnit.Value as Player;

        foreach (Unit p in Players)
        {
            p.CanAct = true;
        }
        RotatorMenu.DynamicallyLoadedActions = startingPlayer.MenuActions;
        RotatorMenu.ShowDialogue();
        startingPlayer.BeginTurn();
    }
Example #2
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        TurnManager turnManagerRef = animator.GetComponentInParent <StageDirector>().TurnManagerRef;

        //check if the unit turns are still remaining
        //End turn if no more units left to act
        if (!turnManagerRef.Players.Any(p => p.CanAct))
        {
            turnManagerRef.StartEnemyTurn();
        }
        else
        {
            RotatorMenu  rotatorMenu     = turnManagerRef.RotatorMenu;
            Stack <Menu> openedMenuStack = rotatorMenu.MenuRouter.OpenedMenus;
            if (openedMenuStack.Count == 0 || openedMenuStack.Peek() != rotatorMenu)
            {
                rotatorMenu.ShowDialogue();
            }
            else
            {
                rotatorMenu.Show();
            }
        }
    }