[DMU] Implemented Tori D'Avenant, Fury Rider

This commit is contained in:
Daniel Bomar 2022-08-22 17:16:38 -05:00
parent c42098272b
commit 7f439e23ab
No known key found for this signature in database
GPG key ID: C86C8658F4023918
3 changed files with 77 additions and 2 deletions

View file

@ -0,0 +1,73 @@
package mage.cards.t;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.effects.common.UntapAllControllerEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ColorPredicate;
import mage.filter.predicate.permanent.AttackingPredicate;
/**
*
* @author weirddan455
*/
public final class ToriDAvenantFuryRider extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("all other attacking creatures");
private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("red attacking creatures");
private static final FilterCreaturePermanent filter3 = new FilterCreaturePermanent("each other white attacking creature");
static {
filter.add(AttackingPredicate.instance);
filter2.add(new ColorPredicate(ObjectColor.RED));
filter2.add(AttackingPredicate.instance);
filter3.add(new ColorPredicate(ObjectColor.WHITE));
filter3.add(AttackingPredicate.instance);
}
public ToriDAvenantFuryRider(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}{W}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.KNIGHT);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Trample
this.addAbility(TrampleAbility.getInstance());
// Whenever Tori D'Avenant, Fury Rider attacks, all other attacking creatures you control get +1/+1 until end of turn.
// Other red attacking creatures you control gain trample until end of turn.
// Untap each other white attacking creature you control.
Ability ability = new AttacksTriggeredAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn, filter, true));
ability.addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter2, true));
ability.addEffect(new UntapAllControllerEffect(filter3, "untap each other white attacking creature you control", false));
this.addAbility(ability);
}
private ToriDAvenantFuryRider(final ToriDAvenantFuryRider card) {
super(card);
}
@Override
public ToriDAvenantFuryRider copy() {
return new ToriDAvenantFuryRider(this);
}
}

View file

@ -96,6 +96,7 @@ public final class DominariaUnited extends ExpansionSet {
cards.add(new SetCardInfo("Threats Undetected", 185, Rarity.RARE, mage.cards.t.ThreatsUndetected.class));
cards.add(new SetCardInfo("Tolarian Geyser", 71, Rarity.COMMON, mage.cards.t.TolarianGeyser.class));
cards.add(new SetCardInfo("Tolarian Terror", 72, Rarity.COMMON, mage.cards.t.TolarianTerror.class));
cards.add(new SetCardInfo("Tori D'Avenant, Fury Rider", 223, Rarity.UNCOMMON, mage.cards.t.ToriDAvenantFuryRider.class));
cards.add(new SetCardInfo("Toxic Abomination", 112, Rarity.COMMON, mage.cards.t.ToxicAbomination.class));
cards.add(new SetCardInfo("Viashino Branchrider", 150, Rarity.COMMON, mage.cards.v.ViashinoBranchrider.class));
cards.add(new SetCardInfo("Vineshaper Prodigy", 187, Rarity.COMMON, mage.cards.v.VineshaperProdigy.class));

View file

@ -130,8 +130,9 @@ public class BoostControlledEffect extends ContinuousEffectImpl {
private void setText() {
StringBuilder sb = new StringBuilder();
boolean each = filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("each");
if (excludeSource && !each) {
String message = filter.getMessage().toLowerCase(Locale.ENGLISH);
boolean each = message.startsWith("each");
if (excludeSource && !each && !message.startsWith("all")) {
sb.append("other ");
}
sb.append(filter.getMessage()).append(" you control ");