1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-04-13 01:01:11 -09:00

Implemented Apex Altisaur

This commit is contained in:
Evan Kranzler 2019-08-05 17:03:30 -04:00
parent b2bc60efcb
commit 1e8b6ea3b4
41 changed files with 103 additions and 78 deletions

View file

@ -0,0 +1,61 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.FightTargetSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ApexAltisaur extends CardImpl {
private static final FilterPermanent filter = new FilterCreaturePermanent("creature you don't control");
static {
filter.add(new ControllerPredicate(TargetController.NOT_YOU));
}
public ApexAltisaur(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{7}{G}{G}");
this.subtype.add(SubType.DINOSAUR);
this.power = new MageInt(10);
this.toughness = new MageInt(10);
Effect effect = new FightTargetSourceEffect();
effect.setText("it fights up to one target creature you don't control");
// When Apex Altisaur enters the battlefield, it fights up to one target creature you don't control.
Ability ability = new EntersBattlefieldTriggeredAbility(effect);
ability.addTarget(new TargetPermanent(0, 1, filter, false));
this.addAbility(ability);
// Enrage Whenever Apex Altisaur is dealt damage, it fights up to one target creature you don't control.
ability = new DealtDamageToSourceTriggeredAbility(effect, false, true);
ability.addTarget(new TargetPermanent(0, 1, filter, false));
this.addAbility(ability);
}
private ApexAltisaur(final ApexAltisaur card) {
super(card);
}
@Override
public ApexAltisaur copy() {
return new ApexAltisaur(this);
}
}

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.AnotherPredicate;
@ -38,7 +37,7 @@ public final class BellowingAegisaur extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Enrage - Whenever Bellowing Aegisaur is dealt damage, put a +1/+1 counter on each other creature you control. // Enrage - Whenever Bellowing Aegisaur is dealt damage, put a +1/+1 counter on each other creature you control.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), false, true);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -32,7 +32,7 @@ public final class BorosReckoner extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Whenever Boros Reckoner is dealt damage, it deals that much damage to any target. // Whenever Boros Reckoner is dealt damage, it deals that much damage to any target.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new BorosReckonerDealDamageEffect(), false, false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new BorosReckonerDealDamageEffect(), false, false, true);
ability.addTarget(new TargetAnyTarget()); ability.addTarget(new TargetAnyTarget());
this.addAbility(ability); this.addAbility(ability);

View file

@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.token.InsectToken; import mage.game.permanent.token.InsectToken;
import mage.players.Player; import mage.players.Player;
@ -32,7 +31,7 @@ public final class BroodhatchNantuko extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Whenever Broodhatch Nantuko is dealt damage, you may create that many 1/1 green Insect creature tokens. // Whenever Broodhatch Nantuko is dealt damage, you may create that many 1/1 green Insect creature tokens.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new BroodhatchNantukoDealDamageEffect(), true, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new BroodhatchNantukoDealDamageEffect(), true, false, true));
// Morph {2}{G} // Morph {2}{G}
this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}{G}"))); this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}{G}")));
} }

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
/** /**
@ -27,7 +26,7 @@ public final class Cacophodon extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// <i>Enrage</i> Whenever Cacophodon is dealt damage, untap target permanent. // <i>Enrage</i> Whenever Cacophodon is dealt damage, untap target permanent.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new UntapTargetEffect(), false, true);
ability.addTarget(new TargetPermanent()); ability.addTarget(new TargetPermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -30,7 +29,7 @@ public final class CoalhaulerSwine extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Whenever Coalhauler Swine is dealt damage, it deals that much damage to each player. // Whenever Coalhauler Swine is dealt damage, it deals that much damage to each player.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new CoalhaulerSwineEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new CoalhaulerSwineEffect(), false, false, true));
} }
public CoalhaulerSwine(final CoalhaulerSwine card) { public CoalhaulerSwine(final CoalhaulerSwine card) {

View file

@ -36,7 +36,7 @@ public final class DeepSlumberTitan extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// Whenever Deep-Slumber Titan is dealt damage, untap it. // Whenever Deep-Slumber Titan is dealt damage, untap it.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), false)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new UntapSourceEffect(), false));
} }

View file

@ -9,7 +9,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* *
@ -25,7 +24,7 @@ public final class DromadPurebred extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Whenever Dromad Purebred is dealt damage, you gain 1 life. // Whenever Dromad Purebred is dealt damage, you gain 1 life.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), false)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new GainLifeEffect(1), false));
} }
public DromadPurebred(final DromadPurebred card) { public DromadPurebred(final DromadPurebred card) {

View file

@ -36,7 +36,7 @@ public final class FiredrinkerSatyr extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Whenever Firedrinker Satyr is dealt damage, it deals that much damage to you. // Whenever Firedrinker Satyr is dealt damage, it deals that much damage to you.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new FiredrinkerSatyrDealDamageEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new FiredrinkerSatyrDealDamageEffect(), false, false, true));
// {1}{R}: Firedrinker Satyr gets +1/+0 until end of turn and deals 1 damage to you. // {1}{R}: Firedrinker Satyr gets +1/+0 until end of turn and deals 1 damage to you.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}"));
Effect effect = new DamageControllerEffect(1); Effect effect = new DamageControllerEffect(1);

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.target.common.TargetOpponentOrPlaneswalker; import mage.target.common.TargetOpponentOrPlaneswalker;
/** /**
@ -28,7 +27,7 @@ public final class FrilledDeathspitter extends CardImpl {
// <i>Enrage</i> &mdash; Whenever Frilled Deathspitter is dealt damage, it deals 2 damage to target opponent. // <i>Enrage</i> &mdash; Whenever Frilled Deathspitter is dealt damage, it deals 2 damage to target opponent.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD, new DamageTargetEffect(2).setText("it deals 2 damage to target opponent or planeswalker"), false, true new DamageTargetEffect(2).setText("it deals 2 damage to target opponent or planeswalker"), false, true
); );
ability.addTarget(new TargetOpponentOrPlaneswalker()); ability.addTarget(new TargetOpponentOrPlaneswalker());
this.addAbility(ability); this.addAbility(ability);

View file

@ -37,7 +37,7 @@ public final class FungusSliver extends CardImpl {
// All Sliver creatures have "Whenever this creature is dealt damage, put a +1/+1 counter on it." // All Sliver creatures have "Whenever this creature is dealt damage, put a +1/+1 counter on it."
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect( this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false), new DealtDamageToSourceTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false),
Duration.WhileOnBattlefield, Duration.WhileOnBattlefield,
filter, filter,
"All Sliver creatures have \"Whenever this creature is dealt damage, put a +1/+1 counter on it.\""))); "All Sliver creatures have \"Whenever this creature is dealt damage, put a +1/+1 counter on it.\"")));

View file

@ -9,7 +9,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
/** /**
@ -27,7 +26,7 @@ public final class Fungusaur extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Whenever Fungusaur is dealt damage, put a +1/+1 counter on it. // Whenever Fungusaur is dealt damage, put a +1/+1 counter on it.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false));
} }
public Fungusaur(final Fungusaur card) { public Fungusaur(final Fungusaur card) {

View file

@ -10,9 +10,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player;
/** /**
* *
@ -29,7 +27,6 @@ public final class Grollub extends CardImpl {
// Whenever Grollub is dealt damage, each opponent gains that much life. // Whenever Grollub is dealt damage, each opponent gains that much life.
this.addAbility(new DealtDamageToSourceTriggeredAbility( this.addAbility(new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD,
new EachOpponentGainsLifeEffect(), false, false, true)); new EachOpponentGainsLifeEffect(), false, false, true));
} }

View file

@ -13,7 +13,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.token.HornetNestInsectToken; import mage.game.permanent.token.HornetNestInsectToken;
import mage.players.Player; import mage.players.Player;
@ -34,7 +33,7 @@ public final class HornetNest extends CardImpl {
// Defender // Defender
this.addAbility(DefenderAbility.getInstance()); this.addAbility(DefenderAbility.getInstance());
// Whenever Hornet Nest is dealt damage, create that many 1/1 green Insect creature tokens with flying and deathtouch. // Whenever Hornet Nest is dealt damage, create that many 1/1 green Insect creature tokens with flying and deathtouch.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new HornetNestDealDamageEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new HornetNestDealDamageEffect(), false, false, true));
} }
public HornetNest(final HornetNest card) { public HornetNest(final HornetNest card) {

View file

@ -45,7 +45,7 @@ public final class HungeringHydra extends CardImpl {
// Whenever damage is dealt to Hungering Hydra, put that many +1/+1 counters on it. // Whenever damage is dealt to Hungering Hydra, put that many +1/+1 counters on it.
this.addAbility(new DealtDamageToSourceTriggeredAbility( this.addAbility(new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD, new HungeringHydraEffect(), new HungeringHydraEffect(),
false, false, true false, false, true
)); ));
} }

View file

@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -33,7 +32,7 @@ public final class IllusoryAmbusher extends CardImpl {
this.addAbility(FlashAbility.getInstance()); this.addAbility(FlashAbility.getInstance());
// Whenever Illusory Ambusher is dealt damage, draw that many cards. // Whenever Illusory Ambusher is dealt damage, draw that many cards.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new IllusoryAmbusherDealtDamageEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new IllusoryAmbusherDealtDamageEffect(), false, false, true));
} }
public IllusoryAmbusher(final IllusoryAmbusher card) { public IllusoryAmbusher(final IllusoryAmbusher card) {

View file

@ -9,7 +9,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* *
@ -24,7 +23,7 @@ public final class ImperialCeratops extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// <i>Enrage</i> &mdash; Whenever Imperial Ceratops is dealt damage, you gain 2 life. // <i>Enrage</i> &mdash; Whenever Imperial Ceratops is dealt damage, you gain 2 life.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new GainLifeEffect(2), false, true));
} }
public ImperialCeratops(final ImperialCeratops card) { public ImperialCeratops(final ImperialCeratops card) {

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -30,7 +29,7 @@ public final class JackalPup extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Whenever Jackal Pup is dealt damage, it deals that much damage to you. // Whenever Jackal Pup is dealt damage, it deals that much damage to you.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new JackalPupEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new JackalPupEffect(), false, false, true));
} }

View file

@ -15,7 +15,6 @@ import mage.constants.AbilityWord;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -34,7 +33,7 @@ public final class JaggedPoppet extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Whenever Jagged Poppet is dealt damage, discard that many cards. // Whenever Jagged Poppet is dealt damage, discard that many cards.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new JaggedPoppetDealtDamageEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new JaggedPoppetDealtDamageEffect(), false, false, true));
// Hellbent - Whenever Jagged Poppet deals combat damage to a player, if you have no cards in hand, that player discards cards equal to the damage. // Hellbent - Whenever Jagged Poppet deals combat damage to a player, if you have no cards in hand, that player discards cards equal to the damage.
Ability hellbentAbility = new ConditionalInterveningIfTriggeredAbility( Ability hellbentAbility = new ConditionalInterveningIfTriggeredAbility(

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.target.common.TargetOpponentOrPlaneswalker; import mage.target.common.TargetOpponentOrPlaneswalker;
@ -28,7 +27,7 @@ public final class MoggManiac extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Whenever Mogg Maniac is dealt damage, it deals that much damage to target opponent. // Whenever Mogg Maniac is dealt damage, it deals that much damage to target opponent.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new MoggManiacDealDamageEffect(), false, false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new MoggManiacDealDamageEffect(), false, false, true);
ability.addTarget(new TargetOpponentOrPlaneswalker()); ability.addTarget(new TargetOpponentOrPlaneswalker());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
@ -35,7 +34,7 @@ public final class NeedletoothRaptor extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// <i>Enrage</i> &mdash; Whenever Needletooth Raptor is dealt damage, it deals 5 damage to target creature an opponent controls. // <i>Enrage</i> &mdash; Whenever Needletooth Raptor is dealt damage, it deals 5 damage to target creature an opponent controls.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(5).setText("it deals 5 damage to target creature an opponent controls"), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new DamageTargetEffect(5).setText("it deals 5 damage to target creature an opponent controls"), false, true);
ability.addTarget(new TargetCreaturePermanent(filter)); ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.permanent.token.SaprolingToken; import mage.game.permanent.token.SaprolingToken;
/** /**
@ -28,7 +27,6 @@ public final class OvergrownArmasaur extends CardImpl {
// Enrage - Whenever Overgrown Armasaur is dealt damage, create a 1/1 green Saproling creature token. // Enrage - Whenever Overgrown Armasaur is dealt damage, create a 1/1 green Saproling creature token.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD,
new CreateTokenEffect(new SaprolingToken()), new CreateTokenEffect(new SaprolingToken()),
false, false,
true); true);

View file

@ -11,7 +11,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* *
@ -28,7 +27,6 @@ public final class Polyraptor extends CardImpl {
// Enrage - Whenever Polyraptor is dealt damage, create a token that's a copy of Polyraptor. // Enrage - Whenever Polyraptor is dealt damage, create a token that's a copy of Polyraptor.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD,
new CreateTokenCopySourceEffect(), new CreateTokenCopySourceEffect(),
false, false,
true); true);

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInLibrary;
@ -29,7 +28,6 @@ public final class RangingRaptors extends CardImpl {
// Enrage - Whenever Ranging Raptors is dealt damage, you may search your library for a basic land card, put it onto the battlefield, then shuffle your library. // Enrage - Whenever Ranging Raptors is dealt damage, you may search your library for a basic land card, put it onto the battlefield, then shuffle your library.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD,
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
true, true,
true); true);

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.permanent.token.DinosaurToken; import mage.game.permanent.token.DinosaurToken;
/** /**
@ -27,7 +26,7 @@ public final class RaptorHatchling extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Enrage - Whenever Raptor Hatchling is dealt damage, create a 3/3 green Dinosaur creature token with trample. // Enrage - Whenever Raptor Hatchling is dealt damage, create a 3/3 green Dinosaur creature token with trample.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new DinosaurToken()), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new CreateTokenEffect(new DinosaurToken()), false, true);
this.addAbility(ability); } this.addAbility(ability); }
public RaptorHatchling(final RaptorHatchling card) { public RaptorHatchling(final RaptorHatchling card) {

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* *
@ -26,7 +25,7 @@ public final class RavenousDaggertooth extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Enrage - Whenever Ravenous Daggertooth is dealt damage, you gain 2 life. // Enrage - Whenever Ravenous Daggertooth is dealt damage, you gain 2 life.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new GainLifeEffect(2), false, true);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* *
@ -26,7 +25,7 @@ public final class RipjawRaptor extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// <i>Enrage</i> &mdash; Whenever Ripjaw Raptor is dealt damage, draw a card. // <i>Enrage</i> &mdash; Whenever Ripjaw Raptor is dealt damage, draw a card.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new DrawCardSourceControllerEffect(1), false, true);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.token.InsectToken; import mage.game.permanent.token.InsectToken;
import mage.players.Player; import mage.players.Player;
@ -31,7 +30,7 @@ public final class SaberAnts extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Whenever Saber Ants is dealt damage, you may create that many 1/1 green Insect creature tokens. // Whenever Saber Ants is dealt damage, you may create that many 1/1 green Insect creature tokens.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new SaberAntsEffect(), true, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new SaberAntsEffect(), true, false, true));
} }
public SaberAnts(final SaberAnts card) { public SaberAnts(final SaberAnts card) {

View file

@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -30,7 +29,7 @@ public final class ShinkaGatekeeper extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Whenever Shinka Gatekeeper is dealt damage, it deals that much damage to you. // Whenever Shinka Gatekeeper is dealt damage, it deals that much damage to you.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new ShinkaGatekeeperDealDamageEffect(), false, false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new ShinkaGatekeeperDealDamageEffect(), false, false, true));
} }
public ShinkaGatekeeper(final ShinkaGatekeeper card) { public ShinkaGatekeeper(final ShinkaGatekeeper card) {

View file

@ -9,7 +9,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
/** /**
@ -26,7 +25,7 @@ public final class SiegehornCeratops extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// <i>Enrage</i> Whenever Siegehorn Ceratops is dealt damage, put two +1/+1 counters on it. // <i>Enrage</i> Whenever Siegehorn Ceratops is dealt damage, put two +1/+1 counters on it.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, this.addAbility(new DealtDamageToSourceTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)) new AddCountersSourceEffect(CounterType.P1P1.createInstance(2))
.setText("put two +1/+1 counter on it"), false, true)); .setText("put two +1/+1 counter on it"), false, true));
} }

View file

@ -9,7 +9,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
/** /**
@ -25,7 +24,7 @@ public final class SilvercladFerocidons extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// <i>Enrage</i> &mdash; Whenever Silverclad Ferocidon is dealt damage, each opponent sacrifices a permanent. // <i>Enrage</i> &mdash; Whenever Silverclad Ferocidon is dealt damage, each opponent sacrifices a permanent.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new SacrificeOpponentsEffect(new FilterPermanent()), false, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new SacrificeOpponentsEffect(new FilterPermanent()), false, true));
} }
public SilvercladFerocidons(final SilvercladFerocidons card) { public SilvercladFerocidons(final SilvercladFerocidons card) {

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
/** /**
@ -30,7 +29,7 @@ public final class SnappingSailback extends CardImpl {
this.addAbility(FlashAbility.getInstance()); this.addAbility(FlashAbility.getInstance());
// Enrage Whenever Snapping Sailback is dealt damage, put a +1/+1 counter on it. // Enrage Whenever Snapping Sailback is dealt damage, put a +1/+1 counter on it.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, this.addAbility(new DealtDamageToSourceTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)) new AddCountersSourceEffect(CounterType.P1P1.createInstance(1))
.setText("put a +1/+1 counter on it"), false, true)); .setText("put a +1/+1 counter on it"), false, true));
} }

View file

@ -30,7 +30,7 @@ public final class SpitefulSliver extends CardImpl {
// Sliver creatures you control have "Whenever this creature is dealt damage, it deals that much damage to target player or planeswalker." // Sliver creatures you control have "Whenever this creature is dealt damage, it deals that much damage to target player or planeswalker."
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD, new SpitefulSliverEffect(), new SpitefulSliverEffect(),
false, false, true false, false, true
); );
ability.addTarget(new TargetPlayer()); ability.addTarget(new TargetPlayer());

View file

@ -11,7 +11,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* *
@ -31,7 +30,7 @@ public final class SproutingPhytohydra extends CardImpl {
// Whenever Sprouting Phytohydra is dealt damage, you may create a token that's a copy of Sprouting Phytohydra. // Whenever Sprouting Phytohydra is dealt damage, you may create a token that's a copy of Sprouting Phytohydra.
Effect effect = new CreateTokenCopySourceEffect(); Effect effect = new CreateTokenCopySourceEffect();
effect.setText("you may create a token that's a copy of {this}"); effect.setText("you may create a token that's a copy of {this}");
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, effect, true)); this.addAbility(new DealtDamageToSourceTriggeredAbility(effect, true));
} }
public SproutingPhytohydra(final SproutingPhytohydra card) { public SproutingPhytohydra(final SproutingPhytohydra card) {

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.target.common.TargetOpponentOrPlaneswalker; import mage.target.common.TargetOpponentOrPlaneswalker;
/** /**
@ -28,7 +27,7 @@ public final class SunCrownedHunters extends CardImpl {
// <i>Enrage</i> &mdash; Whenever Sun-Crowned Hunters is dealt damage, it deals 3 damage to target opponent. // <i>Enrage</i> &mdash; Whenever Sun-Crowned Hunters is dealt damage, it deals 3 damage to target opponent.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD, new DamageTargetEffect(3).setText("it deals 3 damage to target opponent"), false, true new DamageTargetEffect(3).setText("it deals 3 damage to target opponent"), false, true
); );
ability.addTarget(new TargetOpponentOrPlaneswalker()); ability.addTarget(new TargetOpponentOrPlaneswalker());
this.addAbility(ability); this.addAbility(ability);

View file

@ -34,7 +34,7 @@ public final class TheFallenApart extends CardImpl {
this.addAbility(new EntersBattlefieldAbility(new TheFallenApartEntersEffect())); this.addAbility(new EntersBattlefieldAbility(new TheFallenApartEntersEffect()));
// Whenever damage is dealt to The Fallen Apart, remove an arm or a leg from it. // Whenever damage is dealt to The Fallen Apart, remove an arm or a leg from it.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new TheFallenApartToggleEffect(), false)); this.addAbility(new DealtDamageToSourceTriggeredAbility(new TheFallenApartToggleEffect(), false));
// The Fallen Apart cant attack if it has no legs and cant block if it has no arms. // The Fallen Apart cant attack if it has no legs and cant block if it has no arms.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TheFallenApartRestrictionEffect())); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TheFallenApartRestrictionEffect()));

View file

@ -13,7 +13,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -31,7 +30,7 @@ public final class ThrashingMudspawn extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Whenever Thrashing Mudspawn is dealt damage, you lose that much life. // Whenever Thrashing Mudspawn is dealt damage, you lose that much life.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new ThrashingMudspawnEffect(), false); Ability ability = new DealtDamageToSourceTriggeredAbility(new ThrashingMudspawnEffect(), false);
this.addAbility(ability); this.addAbility(ability);
// Morph {1}{B}{B} // Morph {1}{B}{B}

View file

@ -13,7 +13,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
@ -38,7 +37,7 @@ public final class TrapjawTyrant extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Enrage Whenever Trapjaw Tyrant is dealt damage, exile target creature your opponent controls until Trapjaw Tyrant leaves the battlefield. // Enrage Whenever Trapjaw Tyrant is dealt damage, exile target creature your opponent controls until Trapjaw Tyrant leaves the battlefield.
Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new ExileUntilSourceLeavesEffect(filter.getMessage()), false, true); Ability ability = new DealtDamageToSourceTriggeredAbility(new ExileUntilSourceLeavesEffect(filter.getMessage()), false, true);
ability.addTarget(new TargetCreaturePermanent(filter)); ability.addTarget(new TargetCreaturePermanent(filter));
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility())); ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
this.addAbility(ability); this.addAbility(ability);

View file

@ -12,7 +12,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
@ -35,7 +34,7 @@ public final class TruefireCaptain extends CardImpl {
// Whenever Truefire Captain is dealt damage, it deals that much damage to target player. // Whenever Truefire Captain is dealt damage, it deals that much damage to target player.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD, new TruefireCaptainEffect(), new TruefireCaptainEffect(),
false, false, true false, false, true
); );
ability.addTarget(new TargetPlayer()); ability.addTarget(new TargetPlayer());

View file

@ -22,6 +22,7 @@ public final class Commander2019Edition extends ExpansionSet {
cards.add(new SetCardInfo("Anje Falkenrath", 37, Rarity.MYTHIC, mage.cards.a.AnjeFalkenrath.class)); cards.add(new SetCardInfo("Anje Falkenrath", 37, Rarity.MYTHIC, mage.cards.a.AnjeFalkenrath.class));
cards.add(new SetCardInfo("Anje's Ravager", 22, Rarity.RARE, mage.cards.a.AnjesRavager.class)); cards.add(new SetCardInfo("Anje's Ravager", 22, Rarity.RARE, mage.cards.a.AnjesRavager.class));
cards.add(new SetCardInfo("Apex Altisaur", 31, Rarity.RARE, mage.cards.a.ApexAltisaur.class));
cards.add(new SetCardInfo("Bane of the Living", 104, Rarity.RARE, mage.cards.b.BaneOfTheLiving.class)); cards.add(new SetCardInfo("Bane of the Living", 104, Rarity.RARE, mage.cards.b.BaneOfTheLiving.class));
cards.add(new SetCardInfo("Chromeshell Crab", 81, Rarity.RARE, mage.cards.c.ChromeshellCrab.class)); cards.add(new SetCardInfo("Chromeshell Crab", 81, Rarity.RARE, mage.cards.c.ChromeshellCrab.class));
cards.add(new SetCardInfo("Deathmist Raptor", 160, Rarity.MYTHIC, mage.cards.d.DeathmistRaptor.class)); cards.add(new SetCardInfo("Deathmist Raptor", 160, Rarity.MYTHIC, mage.cards.d.DeathmistRaptor.class));

View file

@ -1,15 +1,14 @@
package mage.abilities.common; package mage.abilities.common;
import mage.constants.Zone;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.game.events.DamagedCreatureEvent; import mage.game.events.DamagedCreatureEvent;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl { public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
@ -18,16 +17,16 @@ public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
private final boolean useValue; private final boolean useValue;
private boolean usedForCombatDamageStep; private boolean usedForCombatDamageStep;
public DealtDamageToSourceTriggeredAbility(Zone zone, Effect effect, boolean optional) { public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional) {
this(zone, effect, optional, false); this(effect, optional, false);
} }
public DealtDamageToSourceTriggeredAbility(Zone zone, Effect effect, boolean optional, boolean enrage) { public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional, boolean enrage) {
this(zone, effect, optional, enrage, false); this(effect, optional, enrage, false);
} }
public DealtDamageToSourceTriggeredAbility(Zone zone, Effect effect, boolean optional, boolean enrage, boolean useValue) { public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional, boolean enrage, boolean useValue) {
super(zone, effect, optional); super(Zone.BATTLEFIELD, effect, optional);
this.enrage = enrage; this.enrage = enrage;
this.useValue = useValue; this.useValue = useValue;
this.usedForCombatDamageStep = false; this.usedForCombatDamageStep = false;