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