Esempio n. 1
0
    // Use this for initialization
    void Start()
    {
        this.players = new List <PlayerCharacter>(2);
        PlayerCharacter playerOne = new PlayerCharacter();
        PlayerCharacter playerTwo = new PlayerCharacter();

        playerOne.init(1, this);
        playerTwo.init(2, this);
        this.players.Add(playerOne);
        this.players.Add(playerTwo);
        this.currentPlayer   = 1;
        this.passTurnPressed = false;
        currentState         = COMBAT_STATES.SELECT_ATTACKER;
        //posar un text de victoria amb el nº del jugador guanyador
    }
Esempio n. 2
0
    void playTurn()
    {
        if (currentState == COMBAT_STATES.CHANGING_TURN)
        {
            currentPlayer = (currentPlayer % 2) + 1;
            resetUnitsMovement();
            currentState = COMBAT_STATES.SELECT_ATTACKER;
            if (gameIsOver())
            {
                currentState = COMBAT_STATES.GAME_OVER;
                if (tempPlayerOneLost)
                {
                    vitoryText.GetComponent <UnityEngine.UI.Text>().text = "RED PLAYER WINS!";
                }
                else
                {
                    vitoryText.GetComponent <UnityEngine.UI.Text>().text = "BLUE PLAYER WINS!";
                }
                vitoryText.SetActive(true);
                //canviar el text del guanyador
            }
        }

        if (currentState == COMBAT_STATES.SELECT_ATTACKER)
        {
            if (!passTurnPressed && movementsAvailable())
            {
                unitToMove = selectUnit();
                if (unitToMove != null && unitToMove.playerOwner == this.currentPlayer && !unitToMove.wasMoved)
                {
                    currentState = COMBAT_STATES.SELECT_DEFENDER;
                    Debug.Log("canviant a defender");
                }
            }
        }
        if (currentState == COMBAT_STATES.SELECT_DEFENDER)
        {
            unitToAttack = selectUnit();
            if (unitToAttack != null && unitToAttack.playerOwner != this.currentPlayer)
            {
                unitToAttack.getHitBy(unitToMove);
                unitToMove.move();
                unitToMove   = null;
                unitToAttack = null;
                if (!movementsAvailable())
                {
                    currentState = COMBAT_STATES.CHANGING_TURN;
                }
                else
                {
                    currentState = COMBAT_STATES.SELECT_ATTACKER;
                }
            }
        }

        //Debug.Log("Player " + currentPlayer + " 's turn.");
        //while (!passTurnPressed && movementsAvailable() && !gameIsOver()) {
        //    CombatUnit unitToMove = null;
        //    while (unitToMove==null) {
        //        unitToMove = selectUnit();
        //        if (unitToMove==null || unitToMove.playerOwner != this.currentPlayer) { unitToMove = null; }
        //    }
        //    CombatUnit unitToAttack = null;
        //    while (unitToAttack==null) {
        //        unitToAttack = selectUnit();
        //        if (unitToMove == null || unitToAttack.playerOwner == this.currentPlayer) { unitToAttack = null; }
        //    }
        //    unitToAttack.getHitBy(unitToMove);
        //}
        //currentPlayer = (currentPlayer % 2) + 1;
        //if (!gameIsOver()) { playTurn(); }
    }