private IEnumerator PlayerControl() { bool aITurn = false; int aIMove = 0; if (Parameters.AIPlaying) { aITurn = true; waitingForAI = true; yield return(new WaitForSeconds(aIWaitTime)); aIMove = aI.GetMove(playerScore[currentPlayer]); // Sometimes the diceController says there are no scoring dice, // so have it wait some time before deciding to hand over the turn. if (aIMove == 3) { yield return(new WaitForSeconds(aIWaitTime * 3)); aIMove = aI.GetMove(playerScore[currentPlayer]); } } if (userInterface.GetRollPressed() || (aITurn && aIMove == 1)) { diceController.Roll(); userInterface.ResetRollButton(); } else if (userInterface.GetBankPressed() || (aITurn && aIMove == 2)) { playerScore[currentPlayer] += diceController.GetHandScore(); userInterface.scoreBoard.AddPlayerScore(currentPlayer, playerScore[currentPlayer]); // Winning can only be achieved when banking, so here is a good place to check if we won: if (playerScore[currentPlayer] >= goalScore) { PlayerWon(currentPlayer); } diceController.TurnReset(); ShiftPlayer(); userInterface.ResetBankButton(); } else if (diceController.FailedThrow() && (Input.anyKeyDown || aIMove == 3)) { ShiftPlayer(); } waitingForAI = false; }
private RollCollection rollDice(DiceType diceType) { this.setLabelColor(Color.DarkGray); return(diceController.Roll(diceType)); }