Esempio n. 1
0
    /// <summary>
    /// Process next turn.
    /// </summary>
    public void NextUnitTurn()
    {
        if (UnitOnTurn != null)
        {
            UnitOnTurn.EndTurn();
        }

        // Remove first unit in queue and add it to the end.
        UnitOnTurn = UnitsOnBoard[0];
        UnitsOnBoard.RemoveAt(0);
        UnitsOnBoard.Add(UnitOnTurn);

        // Start its turn.
        UnitOnTurn.StartTurn();

        switch (UnitOnTurn.Allegiance)
        {
        case Allegiance.Enemy:
            turnPanel.SetContent("ENEMY");
            AI.Decide(UnitOnTurn);
            break;

        case Allegiance.Player:
            AudioManager.GetManager().PlayCombatSound(playerTurnSignal);
            turnPanel.SetContent("PLAYER");
            ChangePhase(Phase.Action);
            break;
        }
    }
Esempio n. 2
0
    /// <summary>
    /// On Unit death callback.
    /// </summary>
    /// <param name="unit">Dead unit.</param>
    private void OnUnitDeath(Unit unit)
    {
        // Remove unit from turn queue.
        UnitsOnBoard.Remove(unit);
        // Remove unit visually.
        unit.UnregisterDeathCallback(OnUnitDeath);
        unit.Tile.KillUnit();

        // Check for win/lose condition.
        CheckWinLoseCondition();
    }