private void EvaluateRound() { var winner = MainPlayer.Status == HandStatus.Natural ? Winninghand.PlayerOnNatural21 : Regulations.EvaluateWinner(MainPlayer.Hand, Dealer.Hand); var results = GetRoundResults(MainPlayer, winner); UpdateBalancesAfterEvaluation(Dealer, MainPlayer as HumanPlayer, winner); RoundEvaluated?.Invoke(this, new RoundEvaluatedEventArgs(results)); RoundRunning = false; if (MainPlayer.Balance <= 0) { GameOver?.Invoke(this, new GameOverEventArgs(MainPlayer.Name + " ran out of money. You Lose!")); GameRunning = false; } if (Dealer.Balance < MainPlayer.Balance) { GameOver?.Invoke(this, new GameOverEventArgs("Dealer doesn't have enough money to continue. You Win!")); GameRunning = false; } }