Exemplo n.º 1
0
        public void ColorPlayableAndMovableCards()
        {
            PlayerController playerController = this.enemyPlayerController;
            Owner            owner            = Owner.ENEMY;

            if (this.turnState.Id() == "PlayerTurnState")
            {
                playerController = this.playerPlayerController;
                owner            = Owner.PLAYER;
            }
            foreach (Transform card in playerController.handController.cards)
            {
                if (card.GetComponent <Card>().manaCost <= playerController.mana)
                {
                    UnitController unitController = card.GetComponent <UnitController>();
                    if (unitController == null || unitController.SquaresInMoveDistance().Count > 0)
                    {
                        card.GetComponent <CardController>().ColorGreen();
                    }
                }
            }
            foreach (Transform card in this.battlefield.cards)
            {
                CardController cardController = card.GetComponent <CardController>();
                UnitController unitController = card.GetComponent <UnitController>();
                if ((cardController.ownedBy == owner && unitController.canMove &&                           // Cards that can move; Cards owned by the player whose turn it is
                     !unitController.isExhausted && unitController.SquaresInMoveDistance().Count > 0) &&    // Cards that are not exhausted; Free squares to move
                    (unitController.unit.moveDistance > 0 || unitController.unit.diagonalMoveDistance > 0)) // Cards whose move distance is at least 1
                {
                    cardController.ColorGreen();
                }
            }
        }
Exemplo n.º 2
0
        public void ColorAttackableCards()
        {
            Owner owner  = Owner.ENEMY;
            int   rowNum = this.battlefield.height - 1;

            if (this.turnState.Id() == "PlayerTurnState")
            {
                owner  = Owner.PLAYER;
                rowNum = 0;
            }
            foreach (Transform card in this.battlefield.cards)
            {
                CardController cardController = card.GetComponent <CardController>();
                UnitController unitController = card.GetComponent <UnitController>();
                if (cardController.ownedBy == owner && unitController.canAttack && !unitController.isExhausted)
                {
                    if (unitController.SquaresInAttackDistance().Count > 0 ||
                        unitController.square.GetComponent <SquareController>().battlefieldLocation[1] == rowNum) // Can attack the other player
                    {
                        cardController.ColorGreen();
                    }
                }
            }
        }