mirror of
https://github.com/correl/mage.git
synced 2025-04-07 13:01:06 -09:00
Implemented Apex Altisaur
This commit is contained in:
parent
b2bc60efcb
commit
1e8b6ea3b4
41 changed files with 103 additions and 78 deletions
Mage.Sets/src/mage
cards
a
b
c
d
f
g
h
i
j
m
n
o
p
r
s
SaberAnts.javaShinkaGatekeeper.javaSiegehornCeratops.javaSilvercladFerocidons.javaSnappingSailback.javaSpitefulSliver.javaSproutingPhytohydra.javaSunCrownedHunters.java
t
sets
Mage/src/main/java/mage/abilities/common
61
Mage.Sets/src/mage/cards/a/ApexAltisaur.java
Normal file
61
Mage.Sets/src/mage/cards/a/ApexAltisaur.java
Normal 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);
|
||||
}
|
||||
}
|
|
@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
|
@ -38,7 +37,7 @@ public final class BellowingAegisaur extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class BorosReckoner extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// 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());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.InsectToken;
|
||||
import mage.players.Player;
|
||||
|
@ -32,7 +31,7 @@ public final class BroodhatchNantuko extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// 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}
|
||||
this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}{G}")));
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
/**
|
||||
|
@ -27,7 +26,7 @@ public final class Cacophodon extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// <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());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -30,7 +29,7 @@ public final class CoalhaulerSwine extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// 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) {
|
||||
|
|
|
@ -36,7 +36,7 @@ public final class DeepSlumberTitan extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
|
||||
|
||||
// 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));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -25,7 +24,7 @@ public final class DromadPurebred extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// 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) {
|
||||
|
|
|
@ -36,7 +36,7 @@ public final class FiredrinkerSatyr extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// 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.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}"));
|
||||
Effect effect = new DamageControllerEffect(1);
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
/**
|
||||
|
@ -28,7 +27,7 @@ public final class FrilledDeathspitter extends CardImpl {
|
|||
|
||||
// <i>Enrage</i> — Whenever Frilled Deathspitter is dealt damage, it deals 2 damage to target opponent.
|
||||
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());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -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."
|
||||
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,
|
||||
filter,
|
||||
"All Sliver creatures have \"Whenever this creature is dealt damage, put a +1/+1 counter on it.\"")));
|
||||
|
|
|
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
/**
|
||||
|
@ -27,7 +26,7 @@ public final class Fungusaur extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// 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) {
|
||||
|
|
|
@ -10,9 +10,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
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.
|
||||
this.addAbility(new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new EachOpponentGainsLifeEffect(), false, false, true));
|
||||
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.HornetNestInsectToken;
|
||||
import mage.players.Player;
|
||||
|
@ -34,7 +33,7 @@ public final class HornetNest extends CardImpl {
|
|||
// Defender
|
||||
this.addAbility(DefenderAbility.getInstance());
|
||||
// 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) {
|
||||
|
|
|
@ -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.
|
||||
this.addAbility(new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new HungeringHydraEffect(),
|
||||
new HungeringHydraEffect(),
|
||||
false, false, true
|
||||
));
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -33,7 +32,7 @@ public final class IllusoryAmbusher extends CardImpl {
|
|||
this.addAbility(FlashAbility.getInstance());
|
||||
|
||||
// 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) {
|
||||
|
|
|
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -24,7 +23,7 @@ public final class ImperialCeratops extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// <i>Enrage</i> — 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) {
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -30,7 +29,7 @@ public final class JackalPup extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// 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));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ import mage.constants.AbilityWord;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -34,7 +33,7 @@ public final class JaggedPoppet extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// 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.
|
||||
Ability hellbentAbility = new ConditionalInterveningIfTriggeredAbility(
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
|
@ -28,7 +27,7 @@ public final class MoggManiac extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// 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());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -35,7 +34,7 @@ public final class NeedletoothRaptor extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// <i>Enrage</i> — 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));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
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.
|
||||
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new CreateTokenEffect(new SaprolingToken()),
|
||||
false,
|
||||
true);
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
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.
|
||||
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new CreateTokenCopySourceEffect(),
|
||||
false,
|
||||
true);
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
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.
|
||||
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
|
||||
true,
|
||||
true);
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.DinosaurToken;
|
||||
|
||||
/**
|
||||
|
@ -27,7 +26,7 @@ public final class RaptorHatchling extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// 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); }
|
||||
|
||||
public RaptorHatchling(final RaptorHatchling card) {
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -26,7 +25,7 @@ public final class RavenousDaggertooth extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -26,7 +25,7 @@ public final class RipjawRaptor extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// <i>Enrage</i> — 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);
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.InsectToken;
|
||||
import mage.players.Player;
|
||||
|
@ -31,7 +30,7 @@ public final class SaberAnts extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// 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) {
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -30,7 +29,7 @@ public final class ShinkaGatekeeper extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// 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) {
|
||||
|
|
|
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
/**
|
||||
|
@ -26,7 +25,7 @@ public final class SiegehornCeratops extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// <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))
|
||||
.setText("put two +1/+1 counter on it"), false, true));
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
|
||||
/**
|
||||
|
@ -25,7 +24,7 @@ public final class SilvercladFerocidons extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// <i>Enrage</i> — 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) {
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
/**
|
||||
|
@ -30,7 +29,7 @@ public final class SnappingSailback extends CardImpl {
|
|||
this.addAbility(FlashAbility.getInstance());
|
||||
|
||||
// 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))
|
||||
.setText("put a +1/+1 counter on it"), false, true));
|
||||
}
|
||||
|
|
|
@ -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."
|
||||
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new SpitefulSliverEffect(),
|
||||
new SpitefulSliverEffect(),
|
||||
false, false, true
|
||||
);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
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.
|
||||
Effect effect = new CreateTokenCopySourceEffect();
|
||||
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) {
|
||||
|
|
|
@ -10,7 +10,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetOpponentOrPlaneswalker;
|
||||
|
||||
/**
|
||||
|
@ -28,7 +27,7 @@ public final class SunCrownedHunters extends CardImpl {
|
|||
|
||||
// <i>Enrage</i> — Whenever Sun-Crowned Hunters is dealt damage, it deals 3 damage to target opponent.
|
||||
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());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class TheFallenApart extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldAbility(new TheFallenApartEntersEffect()));
|
||||
|
||||
// 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 can’t attack if it has no legs and can’t block if it has no arms.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TheFallenApartRestrictionEffect()));
|
||||
|
|
|
@ -13,7 +13,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -31,7 +30,7 @@ public final class ThrashingMudspawn extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// 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);
|
||||
|
||||
// Morph {1}{B}{B}
|
||||
|
|
|
@ -13,7 +13,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -38,7 +37,7 @@ public final class TrapjawTyrant extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// 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.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -12,7 +12,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
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.
|
||||
Ability ability = new DealtDamageToSourceTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new TruefireCaptainEffect(),
|
||||
new TruefireCaptainEffect(),
|
||||
false, false, true
|
||||
);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
|
|
|
@ -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'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("Chromeshell Crab", 81, Rarity.RARE, mage.cards.c.ChromeshellCrab.class));
|
||||
cards.add(new SetCardInfo("Deathmist Raptor", 160, Rarity.MYTHIC, mage.cards.d.DeathmistRaptor.class));
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
package mage.abilities.common;
|
||||
|
||||
import mage.constants.Zone;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.DamagedCreatureEvent;
|
||||
import mage.game.events.GameEvent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
@ -18,16 +17,16 @@ public class DealtDamageToSourceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
private final boolean useValue;
|
||||
private boolean usedForCombatDamageStep;
|
||||
|
||||
public DealtDamageToSourceTriggeredAbility(Zone zone, Effect effect, boolean optional) {
|
||||
this(zone, effect, optional, false);
|
||||
public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional) {
|
||||
this(effect, optional, false);
|
||||
}
|
||||
|
||||
public DealtDamageToSourceTriggeredAbility(Zone zone, Effect effect, boolean optional, boolean enrage) {
|
||||
this(zone, effect, optional, enrage, false);
|
||||
public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional, boolean enrage) {
|
||||
this(effect, optional, enrage, false);
|
||||
}
|
||||
|
||||
public DealtDamageToSourceTriggeredAbility(Zone zone, Effect effect, boolean optional, boolean enrage, boolean useValue) {
|
||||
super(zone, effect, optional);
|
||||
public DealtDamageToSourceTriggeredAbility(Effect effect, boolean optional, boolean enrage, boolean useValue) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
this.enrage = enrage;
|
||||
this.useValue = useValue;
|
||||
this.usedForCombatDamageStep = false;
|
||||
|
|
Loading…
Add table
Reference in a new issue