protected override void ResolveEffect()
        {
            var mp = new ModifierParameters
            {
              SourceCard = Source.OwningCard,
              SourceEffect = this,
            };

              foreach (var target in ValidEffectTargets)
              {
            var prevention = new PreventDamageToTarget(target);
            var modifier = new AddDamagePrevention(prevention) {UntilEot = true};
            Game.AddModifier(modifier, mp);
              }
        }
        protected override void ResolveEffect()
        {
            var mp = new ModifierParameters
            {
                SourceCard   = Source.OwningCard,
                SourceEffect = this,
            };

            var prevention = new PreventDamageToTarget(
                target: Source.OwningCard.AttachedTo,
                amount: (creatureOrPlayer, ctx) => _amount((Card)(creatureOrPlayer)));

            var modifier = new AddDamagePrevention(prevention);

            Game.AddModifier(modifier, mp);
        }
        protected override void ResolveEffect()
        {
            var mp = new ModifierParameters
            {
                SourceCard   = Source.OwningCard,
                SourceEffect = this,
            };

            foreach (var target in ValidEffectTargets)
            {
                var prevention = new PreventDamageToTarget(target);
                var modifier   = new AddDamagePrevention(prevention)
                {
                    UntilEot = true
                };
                Game.AddModifier(modifier, mp);
            }
        }
        public override void ProcessResults(ChosenOptions results)
        {
            var color = ChoiceToColorMap.Single(x => x.Choice.Equals(results.Options[0])).Color;

            var mp = new ModifierParameters
            {
                SourceCard   = Source.OwningCard,
                SourceEffect = this,
            };

            foreach (var target in ValidEffectTargets)
            {
                var prevention = new PreventDamageToTarget(target, sourceSelector: (c, ctx) => c.HasColor(color));
                var modifier   = new AddDamagePrevention(prevention)
                {
                    UntilEot = true
                };
                Game.AddModifier(modifier, mp);
            }
        }