Exemplo n.º 1
0
 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));
     }
 }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    /// <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());
    }