private IEnumerator EndRound() { foreach (PlayerActions player in _players) { if (PlayerBusted(player)) { continue; } if (PlayerWins(player)) { int wonAmount = player.PlayerCash.WinRound(1.0f); TurnInfoEvent?.Invoke(player.PlayerName + " wins!\n" + "+$" + wonAmount); } else if (player.GetHandValue() == _dealer.GetHandValue()) { int returnedBet = player.PlayerCash.ReturnCurrentBet(); TurnInfoEvent?.Invoke(player.PlayerName + " and the dealer are tied.\n+0$ - Bet returned"); } else { int lostAmount = player.PlayerCash.LoseCurrentBet(); TurnInfoEvent?.Invoke(player.PlayerName + " has less than the dealer :(\n-$" + lostAmount); } yield return(new WaitForSeconds(RETROACTION_WAIT_TIME)); } }
private IEnumerator EndGame(bool won) { _gameIsRunning = false; if (won) { TurnInfoEvent?.Invoke("Your bank exceeds $" + _winThreshold + ", you win!\nNice job!"); } else { TurnInfoEvent?.Invoke("All players are out of money!\nGame over!"); } yield return(new WaitForSeconds(RETROACTION_WAIT_TIME)); SceneManager.LoadSceneAsync(_sceneToLoadOnEndGame); }
/// <summary> /// Each players (including the dealer) play their turns /// </summary> private IEnumerator PlayersPlayTurns() { foreach (PlayerActions currentPlayer in _players) { CurrentPlayer = currentPlayer; yield return(currentPlayer.PlayTurn()); if (PlayerBusted(currentPlayer)) { int lostAmount = currentPlayer.PlayerCash.LoseCurrentBet(); TurnInfoEvent?.Invoke(currentPlayer.PlayerName + " busted!\n-$" + lostAmount); yield return(new WaitForSeconds(RETROACTION_WAIT_TIME)); } } CurrentPlayer = _dealer; yield return(_dealer.PlayTurn()); }