Dominion.PlayerState.ReturnCardFromHandToSupply C# (CSharp) Method

ReturnCardFromHandToSupply() private method

private ReturnCardFromHandToSupply ( Dominion.Card typeOfCard, GameState gameState ) : void
typeOfCard Dominion.Card
gameState GameState
return void
        internal void ReturnCardFromHandToSupply(Card typeOfCard, GameState gameState)
        {
            Card cardToReturn = this.hand.RemoveCard(typeOfCard);
            if (cardToReturn == null)
                throw new Exception("Could not return card as it is not in hand.");

            ReturnCardToSupply(cardToReturn, gameState);
        }

Usage Example

Beispiel #1
0
        public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState)
        {
            Card revealedCard = currentPlayer.RequestPlayerRevealCardFromHand(acceptableCard => true, gameState);
            if (revealedCard == null)
            {
                return;
            }

            currentPlayer.MoveRevealedCardToHand(revealedCard);

            int maxReturnCount = 1;
            if (currentPlayer.Hand.CountWhere(card => card.Equals(revealedCard)) > 1)
            {
                maxReturnCount++;
            }

            int returnCount = currentPlayer.actions.GetCountToReturnToSupply(revealedCard, gameState);
            returnCount = Math.Min(returnCount, maxReturnCount);
            returnCount = Math.Max(returnCount, 0);

            for (int i = 0; i < returnCount; ++i)
            {
                currentPlayer.ReturnCardFromHandToSupply(revealedCard, gameState);
            }

            foreach (PlayerState otherPlayer in gameState.players.OtherPlayers)
            {
                if (!otherPlayer.IsAffectedByAttacks(gameState))
                {
                    otherPlayer.GainCardFromSupply(gameState, revealedCard);
                }
            }
        }
All Usage Examples Of Dominion.PlayerState::ReturnCardFromHandToSupply
PlayerState