public virtual void DuringCheckForTrait(ICheckForTrait state)
        {
            if (state.Target.StateId != this.id)
            {
                return;
            }

            if (traits.Any(x => x == state.Trait))
            {
                state.HasTrait = true;
            }

            foreach (var effect in text.Effects.OfType <IDuringCheckForTrait>())
            {
                effect.DuringCheckForTrait(state);
            }
        }
            public void DuringCheckForTrait(ICheckForTrait check)
            {
                if (check.Trait != Trait.Gondor)
                {
                    return;
                }

                var attachment = check.Game.GetCardInPlay <IAttachmentInPlay>(source.Id);

                if (attachment == null || attachment.AttachedTo == null)
                {
                    return;
                }

                if (check.Target.StateId != attachment.AttachedTo.Card.Id)
                {
                    return;
                }

                check.HasTrait = true;
            }