public override void ProcessResults(ChosenOptions results) { var color = ChoiceToColorMap.Single(x => x.Choice.Equals(results.Options[0])).Color; var cardsToDiscard = Target.Player().Hand.Where( x => x.HasColor(color)).ToList(); foreach (var card in cardsToDiscard) { Target.Player().DiscardCard(card); } }
public override ChosenOptions ChooseResult(List <IEffectChoice> candidates) { CardColor?color = null; if (!Stack.IsEmpty && !Stack.TopSpell.HasColor(CardColor.Colorless) && !Stack.TopSpell.HasColor(CardColor.None)) { color = Stack.TopSpell.Colors[0]; } color = color ?? Controller.Opponent.Battlefield.GetMostCommonColor(); return(new ChosenOptions(ChoiceToColorMap.Single(x => x.Color == color).Choice)); }
public override void ProcessResults(ChosenOptions results) { var color = ChoiceToColorMap.Single(x => x.Choice.Equals(results.Options[0])).Color; var modifier = new AddProtectionFromColors(color) { UntilEot = true }; var parameters = new ModifierParameters { SourceEffect = this, SourceCard = Source.OwningCard }; Target.Card().AddModifier(modifier, parameters); }
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); } }
public override ChosenOptions ChooseResult(List <IEffectChoice> operations) { var color = Target.Player().Battlefield.GetMostCommonColor(); return(new ChosenOptions(ChoiceToColorMap.Single(x => x.Color == color).Choice)); }