Dominion.GameState.DoCleanupPhase C# (CSharp) Method

DoCleanupPhase() private method

private DoCleanupPhase ( PlayerState currentPlayer ) : void
currentPlayer PlayerState
return void
        private void DoCleanupPhase(PlayerState currentPlayer)
        {
            currentPlayer.EnterPhase(PlayPhase.Cleanup);

            if (currentPlayer.ownsCardThatHasSpecializedCleanupAtStartOfCleanup)
            {
                currentPlayer.cardsInPlayAtBeginningOfCleanupPhase.CopyFrom(currentPlayer.cardsPlayed);
                foreach (Card cardInPlay in currentPlayer.cardsInPlayAtBeginningOfCleanupPhase)
                {
                    this.cardContextStack.PushCardContext(currentPlayer, cardInPlay, CardContextReason.CardBeingCleanedUp);
                    cardInPlay.DoSpecializedCleanupAtStartOfCleanup(currentPlayer, this);
                    this.cardContextStack.Pop();
                }
                currentPlayer.cardsInPlayAtBeginningOfCleanupPhase.Clear();
            }

            currentPlayer.CleanupCardsToDiscard(this);
        }