private void CardHasBeenPlayed(Card cardPlayedAs, int count)
{
Card cardAfterPlay = this.cardsBeingPlayed.DrawCardFromTop();
if (cardAfterPlay != null)
{
if (cardAfterPlay.isDuration)
{
this.durationCards.AddCard(cardAfterPlay);
for (int i = 1; i < count; ++i)
{
this.actionsToExecuteAtBeginningOfNextTurn.Add(delegate(PlayerState currentPlayer, GameState gameState)
{
gameState.cardContextStack.PushCardContext(this, cardPlayedAs, CardContextReason.CardFinishingDuration);
cardPlayedAs.DoSpecializedDurationActionAtBeginningOfTurn(currentPlayer, gameState);
gameState.cardContextStack.Pop();
});
}
}
else
{
this.cardsPlayed.AddCard(cardAfterPlay);
}
if (cardPlayedAs != cardAfterPlay && cardPlayedAs != null)
{
if (cardPlayedAs.isDuration)
{
this.actionsToExecuteAtBeginningOfNextTurn.Add( delegate(PlayerState currentPlayer, GameState gameState)
{
gameState.cardContextStack.PushCardContext(this, cardPlayedAs, CardContextReason.CardFinishingDuration);
cardPlayedAs.DoSpecializedDurationActionAtBeginningOfTurn(currentPlayer, gameState);
gameState.cardContextStack.Pop();
});
}
}
}
}