public void StartBuyPhase(List <Stack <ICard> > cardsInPlay) { if (_player.Money == 0) { _playerView.EndBuyPhaseRender(null); return; } while (_player.Money > 0 && _player.Buys > 0) { Stack <ICard> chosenCardStack = _playerView.PromptBuyRender(_player.Money, cardsInPlay); if (chosenCardStack == null) { break; } if (chosenCardStack.Peek().Cost <= _player.Money) { _player.Buy(chosenCardStack.Pop()); _playerView.BuyCardRender(_player.LastBoughtThisTurn, _player.Money); } else { _playerView.MessageRender("Not enough money, please choose another card."); } } _playerView.EndBuyPhaseRender(_player.BoughThisTurn); }