Beispiel #1
0
        /// <summary>
        /// Invokes the method that chooses the card.
        /// </summary>
        /// <returns>The card chosen.</returns>
        internal Card InvokeChooseCard()
        {
            if (!Board.Instance.IsPlayTime)
            {
                throw new WrongPhaseException("A player can play a card only during the playtime phase", "Playtime");
            }

            Card c = _controller.ChooseCard();

            if (c == null)
            {
                return(null);
            }

            if (c.initialPlayer != this || !c.IsPlayable)
            {
                throw new WrongCardException("This can't play this card", c);
            }

            return(c);
        }