private void BettingStateChange(GameState.Change change) { switch (change) { case GameState.Change.Loss: case GameState.Change.Bust: _inst.PlayerBalance -= _inst.CurrentBet; _inst.LastWin = 0; break; case GameState.Change.Win: _inst.PlayerBalance += _inst.CurrentBet * 2; _inst.LastWin = _inst.CurrentBet * 2; break; case GameState.Change.DoubleUp: _inst.CurrentBet *= 2; break; case GameState.Change.Push: _inst.LastWin = _inst.CurrentBet; _inst.PlayerBalance += _inst.CurrentBet; break; } }
private void State_OnStateChange(GameState.Change change) { var psum = _cardHandler.PlayerHand.Sum(); if (change == GameState.Change.Bet) { _cardHandler.Reset(); _cardHandler.State.GameEnabled = true; var next = _cardHandler.Draw(); var nxt = _cardHandler.Draw().AsHidden(); _cardHandler.DealerHand.AddCard(next); _cardHandler.DealerHand.AddCard(nxt); lblDealerSum.Content = $"Dealer: {_cardHandler.DealerHand.Sum() - nxt.Value}?"; _cardHandler.PlayerHand.AddCard(_cardHandler.Draw()); _cardHandler.PlayerHand.AddCard(_cardHandler.Draw()); btnDoubleUp.IsEnabled = btnHit.IsEnabled = btnStand.IsEnabled = true; btnBet.IsEnabled = false; lblStatus.Content = "OKAY"; } else if (change == GameState.Change.Hit) { var card = _cardHandler.Draw(); _cardHandler.PlayerHand.AddCard(card); } else if (change == GameState.Change.DoubleUp) { } else if (change == GameState.Change.Split) { } else if (change == GameState.Change.Stand) { _cardHandler.DealerHand.Show(); if (psum > 21) { _cardHandler.State.InvokeChange(GameState.Change.Bust); return; } while (_cardHandler.DealerHand.Sum() < 17) { _cardHandler.DealerHand.AddCard(_cardHandler.Draw()); } if (psum > _cardHandler.DealerHand.Sum() || _cardHandler.DealerHand.Sum() > 21) { _cardHandler.State.InvokeChange(GameState.Change.Win); lblStatus.Content = "WIN"; } else if (psum == _cardHandler.DealerHand.Sum()) { _cardHandler.State.InvokeChange(GameState.Change.Push); lblStatus.Content = "PUSH"; } else { _cardHandler.State.InvokeChange(GameState.Change.Loss); lblStatus.Content = "LOSE"; } btnDoubleUp.IsEnabled = btnHit.IsEnabled = btnStand.IsEnabled = false; btnBet.IsEnabled = true; } else if (change == GameState.Change.Bust) { _cardHandler.Bust(); _cardHandler.DealerHand.Show(); lblStatus.Content = "BUST"; btnDoubleUp.IsEnabled = btnHit.IsEnabled = btnStand.IsEnabled = false; btnBet.IsEnabled = true; } SetText(); }