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(); } } }
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(); } } } }