Dominion.PlayerState.IsAffectedByAttacks C# (CSharp) Method

IsAffectedByAttacks() private method

private IsAffectedByAttacks ( GameState gameState ) : bool
gameState GameState
return bool
        internal bool IsAffectedByAttacks(GameState gameState)
        {
            bool doesCancelAttack = false;

            bool didCardAffectAnything = true;

            while (didCardAffectAnything)
            {
                didCardAffectAnything = false;
                foreach (Card reactionCard in this.hand.AllTypes)
                {
                    gameState.cardContextStack.PushCardContext(this, reactionCard, CardContextReason.CardReacting);
                    bool didthisCardCancelAttack;
                    didCardAffectAnything = reactionCard.DoReactionToAttackWhileInHand(this, gameState, out didthisCardCancelAttack);
                    doesCancelAttack |= didthisCardCancelAttack;
                    gameState.cardContextStack.Pop();

                    if (didCardAffectAnything)
                        break;
                }
            }

            foreach (Card durationCard in this.CardsInPlay)
            {
                gameState.cardContextStack.PushCardContext(this, durationCard, CardContextReason.CardReacting);
                if (durationCard.DoReactionToAttackWhileInPlayAcrossTurns(this, gameState))
                {
                    doesCancelAttack = true;
                }
                gameState.cardContextStack.Pop();
            }

            return !doesCancelAttack;
        }
PlayerState