mirror of
https://github.com/correl/mage.git
synced 2024-11-22 03:00:11 +00:00
[ONE] various text fixes
This commit is contained in:
parent
ed32ee554d
commit
ff115cad48
48 changed files with 203 additions and 185 deletions
|
@ -22,7 +22,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class AgainstAllOdds extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifact or creature card you control");
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifact or creature you control");
|
||||
private static final FilterCard filter2 = new FilterCard("artifact or creature card with mana value 3 or less from your graveyard");
|
||||
|
||||
static {
|
||||
|
|
|
@ -21,18 +21,17 @@ import mage.target.TargetPermanent;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author AhmadYProjects
|
||||
*/
|
||||
public final class AnnexSentry extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterPermanent("artifact or creature an opponent controls with cmc 3 or less");
|
||||
private static final FilterPermanent filter = new FilterPermanent("artifact or creature an opponent controls with mana value 3 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN,4));
|
||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 4));
|
||||
filter.add(Predicates.or
|
||||
(CardType.ARTIFACT.getPredicate(),
|
||||
CardType.CREATURE.getPredicate()));
|
||||
CardType.CREATURE.getPredicate()));
|
||||
filter.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
|
@ -16,18 +12,23 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.abilities.effects.common.LoseGameSourceControllerEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Controllable;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -64,7 +65,10 @@ public final class ArchfiendOfTheDross extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Whenever a creature an opponent controls dies, its controller loses 2 life.
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(new ArchfiendOfTheDrossEffect(), false));
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(
|
||||
new ArchfiendOfTheDrossEffect(), false,
|
||||
StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE
|
||||
));
|
||||
}
|
||||
|
||||
private ArchfiendOfTheDross(final ArchfiendOfTheDross card) {
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class BlazingCrescendo extends CardImpl {
|
|||
// Exile the top card of your library. Until the end of your next turn, you may play that card.
|
||||
this.getSpellAbility().addEffect(new ExileTopXMayPlayUntilEndOfTurnEffect(
|
||||
1, false, Duration.UntilEndOfYourNextTurn
|
||||
));
|
||||
).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private BlazingCrescendo(final BlazingCrescendo card) {
|
||||
|
|
|
@ -28,7 +28,8 @@ public final class BlueSunsTwilight extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{U}{U}");
|
||||
|
||||
// Gain control of target creature with mana value X or less. If X is 5 or more, create a token that's a copy of that creature.
|
||||
this.getSpellAbility().addEffect(new GainControlTargetEffect(Duration.Custom, true));
|
||||
this.getSpellAbility().addEffect(new GainControlTargetEffect(Duration.Custom, true)
|
||||
.setText("gain control of target creature with mana value X or less"));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new CreateTokenCopyTargetEffect(), BlueSunsTwilightCondition.instance,
|
||||
"If X is 5 or more, create a token that's a copy of that creature"
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
|
@ -12,12 +10,14 @@ import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount;
|
|||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.counter.ProliferateEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -40,7 +40,8 @@ public final class CacophonyScamp extends CardImpl {
|
|||
), false));
|
||||
|
||||
// When Cacophony Scamp dies, it deals damage equal to its power to any target.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(xValue, "it"));
|
||||
Ability ability = new DiesSourceTriggeredAbility(new DamageTargetEffect(xValue)
|
||||
.setText("it deals damage equal to its power to any target"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ public final class CephalopodSentry extends CardImpl {
|
|||
// Cephalopod Sentry's power is equal to the number of artifacts you control.
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
Zone.ALL, new SetBasePowerSourceEffect(ArtifactYouControlCount.instance)
|
||||
.setText("{this}'s power is equal to the number of artifacts you control")
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,8 @@ public final class ChargeOfTheMites extends CardImpl {
|
|||
|
||||
// Choose one--
|
||||
// * Charge of the Mites deals damage equal to the number of creatures you control to target creature or planeswalker.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance)
|
||||
.setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker"));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
||||
this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class CinderslashRavager extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("permanent you control with an oil counter on it");
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("permanent you control with oil counters on it");
|
||||
|
||||
static {
|
||||
filter.add(CounterType.OIL.getPredicate());
|
||||
|
@ -48,7 +48,7 @@ public final class CinderslashRavager extends CardImpl {
|
|||
|
||||
// When Cinderslash Ravager enters the battlefield, it deals 1 damage to each creature your opponents control.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new DamageAllEffect(
|
||||
1, "it", StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES
|
||||
1, "it", StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class CutthroatCenturion extends CardImpl {
|
|||
// Sacrifice another artifact or creature: Cutthroat Centurion gets +2/+2 until end of turn. Activate only once each turn.
|
||||
this.addAbility(new LimitedTimesPerTurnActivatedAbility(
|
||||
Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn),
|
||||
new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE)
|
||||
new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
package mage.cards.e;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentHasCounterCondition;
|
||||
import mage.abilities.condition.common.SourceHasCounterCondition;
|
||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
|
@ -18,13 +15,15 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
|||
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
|
||||
import mage.abilities.keyword.HexproofAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -51,8 +50,8 @@ public final class EvolvedSpinoderm extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(HexproofAbility.getInstance()),
|
||||
new GainAbilitySourceEffect(TrampleAbility.getInstance()),
|
||||
condition1, "{this} has trample as long as it was two " +
|
||||
"or fewer oil counters on it, Otherwise, it has hexproof"
|
||||
condition1, "{this} has trample as long as it has two " +
|
||||
"or fewer oil counters on it. Otherwise, it has hexproof"
|
||||
)));
|
||||
|
||||
// At the beginning of your upkeep, remove an oil counter from Evolved Spinoderm. Then if it has no oil counters on it, sacrifice it.
|
||||
|
|
|
@ -15,6 +15,7 @@ import mage.game.permanent.token.custom.CreatureToken;
|
|||
import java.util.UUID;
|
||||
|
||||
public class EyeOfMalcator extends CardImpl {
|
||||
|
||||
public EyeOfMalcator(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{U}");
|
||||
|
||||
|
@ -23,12 +24,14 @@ public class EyeOfMalcator extends CardImpl {
|
|||
|
||||
//Whenever another artifact enters the battlefield under your control, Eye of Malcator becomes a 4/4 Phyrexian
|
||||
//Eye artifact creature until end of turn.
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new BecomesCreatureSourceEffect(
|
||||
new CreatureToken(
|
||||
4, 4, "4/4 Phyrexian Eye artifact creature", SubType.PHYREXIAN, SubType.EYE
|
||||
).withType(CardType.ARTIFACT), "", Duration.EndOfTurn)
|
||||
.setText("{this} becomes a 4/4 Phyrexian Eye artifact creature until end of turn"),
|
||||
StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT));
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||
new BecomesCreatureSourceEffect(
|
||||
new CreatureToken(
|
||||
4, 4, "4/4 Phyrexian Eye artifact creature", SubType.PHYREXIAN, SubType.EYE
|
||||
).withType(CardType.ARTIFACT), "", Duration.EndOfTurn
|
||||
).setText("{this} becomes a 4/4 Phyrexian Eye artifact creature until end of turn"),
|
||||
StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT
|
||||
).setTriggerPhrase("Whenever another artifact enters the battlefield under your control, "));
|
||||
}
|
||||
|
||||
private EyeOfMalcator(final EyeOfMalcator card) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.e;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.ProliferatedControllerTriggeredAbility;
|
||||
|
@ -9,11 +7,13 @@ import mage.abilities.costs.mana.GenericManaCost;
|
|||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.counter.ProliferateEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
|
@ -15,6 +13,8 @@ import mage.counters.CounterType;
|
|||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -46,7 +46,7 @@ class FeedTheInfectionEffect extends OneShotEffect {
|
|||
FeedTheInfectionEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "<br>" + AbilityWord.CORRUPTED.formatWord() +
|
||||
"Each opponent with three or more poison counters loses 3 life";
|
||||
"Each opponent who has three or more poison counters loses 3 life";
|
||||
}
|
||||
|
||||
private FeedTheInfectionEffect(final FeedTheInfectionEffect effect) {
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class FleshlessGladiator extends CardImpl {
|
|||
|
||||
// Corrupted -- {2}{B}: Return Fleshless Gladiator from your graveyard to the battlefield tapped. You lose 1 life. Activate only if an opponent has three or more poison counters.
|
||||
Ability ability = new ConditionalActivatedAbility(
|
||||
Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true),
|
||||
Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false),
|
||||
new ManaCostsImpl<>("{2}{B}"), CorruptedCondition.instance
|
||||
);
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(1));
|
||||
|
|
|
@ -2,17 +2,12 @@ package mage.cards.f;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.DoWhenCostPaid;
|
||||
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -45,8 +40,9 @@ public class ForgehammerCenturion extends CardImpl {
|
|||
new CantBlockTargetEffect(Duration.EndOfTurn), false
|
||||
);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(new AttacksTriggeredAbility(new DoWhenCostPaid(ability,
|
||||
new RemoveCountersSourceCost(CounterType.OIL.createInstance(2)), "Remove 2 oil counters?"
|
||||
this.addAbility(new AttacksTriggeredAbility(new DoWhenCostPaid(
|
||||
ability, new RemoveCountersSourceCost(CounterType.OIL.createInstance(2))
|
||||
.setText("remove two oil counters from it"), "Remove 2 oil counters?"
|
||||
)));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
|
@ -9,16 +7,15 @@ import mage.abilities.costs.common.SacrificeSourceCost;
|
|||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
@ -41,7 +38,7 @@ public final class FurnaceSkullbomb extends CardImpl {
|
|||
);
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addEffect(new DrawCardSourceControllerEffect(1));
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_OR_CREATURE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,20 +17,16 @@ import mage.target.TargetPermanent;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author AhmadYProjects
|
||||
*/
|
||||
public final class GleefulDemolition extends CardImpl {
|
||||
|
||||
public GleefulDemolition(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}");
|
||||
|
||||
|
||||
// Destroy target artifact. If you controlled that artifact, creature three 1/1 red Phyrexian Goblin creature tokens.
|
||||
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT));
|
||||
this.getSpellAbility().addEffect(new GleefulDemolitionEffect());
|
||||
|
||||
|
||||
}
|
||||
|
||||
private GleefulDemolition(final GleefulDemolition card) {
|
||||
|
@ -44,10 +40,10 @@ public final class GleefulDemolition extends CardImpl {
|
|||
}
|
||||
|
||||
class GleefulDemolitionEffect extends OneShotEffect {
|
||||
GleefulDemolitionEffect(){
|
||||
GleefulDemolitionEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "destroy target artifact. " +
|
||||
"if you controlled that artifact, create three 1/1 red Phyrexian Goblin creature tokens";
|
||||
"If you controlled that artifact, create three 1/1 red Phyrexian Goblin creature tokens";
|
||||
}
|
||||
|
||||
private GleefulDemolitionEffect(final GleefulDemolitionEffect effect) {
|
||||
|
@ -55,26 +51,24 @@ class GleefulDemolitionEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
@Override
|
||||
public GleefulDemolitionEffect copy(){
|
||||
public GleefulDemolitionEffect copy() {
|
||||
return new GleefulDemolitionEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source){
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent permanent = game.getPermanent(targetPointer.getFirst(game,source));
|
||||
|
||||
if (
|
||||
permanent == null || player == null) {
|
||||
Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source));
|
||||
if (permanent == null || player == null) {
|
||||
return false;
|
||||
}
|
||||
boolean isMine = permanent.isControlledBy(source.getControllerId());
|
||||
permanent.destroy(source, game, false);
|
||||
if (isMine) {
|
||||
Token token = new PhyrexianGoblinToken();
|
||||
token.putOntoBattlefield(3,game,source);
|
||||
token.putOntoBattlefield(3, game, source);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
|
@ -12,6 +10,7 @@ import mage.abilities.effects.common.CreateTokenEffect;
|
|||
import mage.abilities.keyword.ToxicAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
|
@ -19,12 +18,13 @@ import mage.filter.StaticFilters;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.PhyrexianBeastToxicToken;
|
||||
import mage.game.permanent.token.PhyrexianGolemToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -42,8 +42,8 @@ public final class GoliathHatchery extends CardImpl {
|
|||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new BeginningOfUpkeepTriggeredAbility(
|
||||
new GoliathHatcheryEffect(), TargetController.YOU, false
|
||||
), CorruptedCondition.instance, null
|
||||
));
|
||||
).setAbilityWord(AbilityWord.CORRUPTED), CorruptedCondition.instance, null
|
||||
).addHint(CorruptedCondition.getHint()));
|
||||
}
|
||||
|
||||
private GoliathHatchery(final GoliathHatchery card) {
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class HazardousBlast extends CardImpl {
|
|||
|
||||
// Hazardous Blast deals 1 damage to each creature your opponents control. Creatures your opponents control can't block this turn.
|
||||
this.getSpellAbility().addEffect(new DamageAllEffect(
|
||||
1, StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE
|
||||
1, StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES
|
||||
));
|
||||
this.getSpellAbility().addEffect(new CantBlockAllEffect(
|
||||
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES, Duration.EndOfTurn
|
||||
|
|
|
@ -14,14 +14,12 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author AhmadYProjects
|
||||
*/
|
||||
public final class HexgoldSlash extends CardImpl {
|
||||
|
||||
public HexgoldSlash(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
|
||||
|
||||
|
||||
// Hexgold Slash deals 2 damage to target creature. If that creature has toxic, Hexgold Slash deals 4 damage to that creature instead.
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
@ -38,30 +36,30 @@ public final class HexgoldSlash extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
class HexgoldSlashEffect extends OneShotEffect{
|
||||
public HexgoldSlashEffect(){
|
||||
class HexgoldSlashEffect extends OneShotEffect {
|
||||
public HexgoldSlashEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{this} deals 2 damage to target creature. If that creature has toxic, {this} deals 4 damage instead";
|
||||
staticText = "{this} deals 2 damage to target creature. If that creature has toxic, " +
|
||||
"{this} deals 4 damage to that creature instead";
|
||||
}
|
||||
|
||||
public HexgoldSlashEffect(final HexgoldSlashEffect effect){
|
||||
public HexgoldSlashEffect(final HexgoldSlashEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HexgoldSlashEffect copy(){
|
||||
public HexgoldSlashEffect copy() {
|
||||
return new HexgoldSlashEffect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source){
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source));
|
||||
if (permanent != null){
|
||||
if (permanent != null) {
|
||||
if (permanent.getAbilities(game).containsClass(ToxicAbility.class)) {
|
||||
permanent.damage(4,source,game);
|
||||
}
|
||||
else{
|
||||
permanent.damage(2,source,game);
|
||||
permanent.damage(4, source, game);
|
||||
} else {
|
||||
permanent.damage(2, source, game);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ import mage.filter.predicate.permanent.EquippedPredicate;
|
|||
*/
|
||||
public final class JorKadeenFirstGoldwarden extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent();
|
||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("equipped creatures you control");
|
||||
private static final FilterPermanent filter2 = new FilterPermanent();
|
||||
|
||||
static {
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class KaitoDancingShadow extends CardImpl {
|
|||
|
||||
public KaitoDancingShadow(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{U}{B}");
|
||||
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.KAITO);
|
||||
this.setStartingLoyalty(3);
|
||||
|
@ -50,7 +50,7 @@ public final class KaitoDancingShadow extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// +1: Up to one target creature can't attack or block until your next turn.
|
||||
Ability KaitoCantAttackOrBlockAbility = new LoyaltyAbility(new CantAttackTargetEffect(Duration.UntilYourNextTurn).setText("Up to one target creature can't attack "), 1);
|
||||
Ability KaitoCantAttackOrBlockAbility = new LoyaltyAbility(new CantAttackTargetEffect(Duration.UntilYourNextTurn).setText("Up to one target creature can't attack"), 1);
|
||||
KaitoCantAttackOrBlockAbility.addEffect(new CantBlockTargetEffect(Duration.UntilYourNextTurn).setText("or block until your next turn"));
|
||||
KaitoCantAttackOrBlockAbility.addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_PERMANENT_CREATURE));
|
||||
this.addAbility(KaitoCantAttackOrBlockAbility);
|
||||
|
@ -128,7 +128,7 @@ class KaitoDancingShadowEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
public boolean apply(Game game, Ability source) {
|
||||
KaitoDancingShadowWatcher watcher = game.getState().getWatcher(KaitoDancingShadowWatcher.class);
|
||||
if (watcher == null) {
|
||||
return false;
|
||||
|
@ -221,7 +221,7 @@ class TargetCreatureThatDealtCombatDamage extends TargetObject {
|
|||
return super.chooseTarget(Outcome.Benefit, playerId, source, game);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public TargetCreatureThatDealtCombatDamage copy() {
|
||||
return new TargetCreatureThatDealtCombatDamage(this);
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldThisOrAnotherTriggeredAbility;
|
||||
|
@ -11,9 +9,9 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.constants.*;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -23,6 +21,8 @@ import mage.game.permanent.Permanent;
|
|||
import mage.game.permanent.token.CatToken;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -47,7 +47,7 @@ public final class KembaKhaEnduring extends CardImpl {
|
|||
|
||||
// Whenever Kemba, Kha Enduring or another Cat enters the battlefield under your control, attach up to one target Equipment you control to that creature.
|
||||
Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility(
|
||||
new KembaKhaEnduringEffect(), filter, true, true
|
||||
new KembaKhaEnduringEffect(), filter, false, true
|
||||
);
|
||||
ability.addTarget(new TargetPermanent(0, 1, filter2));
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -58,7 +58,7 @@ class KethekCrucibleGoliathEffect extends OneShotEffect {
|
|||
KethekCrucibleGoliathEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "you may sacrifice another creature. " +
|
||||
"If you do, reveal cards from the top of your library" +
|
||||
"If you do, reveal cards from the top of your library " +
|
||||
"until you reveal a nonlegendary creature card with lesser mana value" +
|
||||
", put it onto the battlefield, then put the rest on the bottom of your library in a random order.";
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ class KethekCrucibleGoliathEffect extends OneShotEffect {
|
|||
filterCreatureCard.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, xValue));
|
||||
//put it onto the battlefield, then put the rest on the bottom of your library in a random order.
|
||||
RevealCardsFromLibraryUntilEffect effect = new RevealCardsFromLibraryUntilEffect(filterCreatureCard, Zone.BATTLEFIELD, Zone.LIBRARY);
|
||||
effect.apply(game,source);
|
||||
effect.apply(game, source);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class LatticeBladeMantis extends CardImpl {
|
|||
// Whenever Lattice-Blade Mantis attacks, you may remove an oil counter from it. If you do, untap it and it gets +1/+1 until end of turn.
|
||||
this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(
|
||||
new UntapSourceEffect().setText("untap it"),
|
||||
new RemoveCountersSourceCost(CounterType.OIL.createInstance())
|
||||
new RemoveCountersSourceCost(CounterType.OIL.createInstance()).setText("remove an oil counter from it")
|
||||
).addEffect(new BoostSourceEffect(1, 1, Duration.EndOfTurn, "and it"))));
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,10 @@ import mage.abilities.effects.common.DamageMultiEffect;
|
|||
import mage.abilities.keyword.CompleatedAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.PhyrexianBeastToxicToken;
|
||||
import mage.players.Player;
|
||||
|
@ -39,19 +42,19 @@ public class LukkaBoundToRuin extends CardImpl {
|
|||
this.addAbility(CompleatedAbility.getInstance());
|
||||
|
||||
// +1: Add {R}{G}. Spend this mana only to cast creature spells or activate abilities of creatures.
|
||||
Ability ability = new LoyaltyAbility(new LukkaBoundToRuinManaEffect(),1);
|
||||
Ability ability = new LoyaltyAbility(new LukkaBoundToRuinManaEffect(), 1);
|
||||
this.addAbility(ability);
|
||||
|
||||
// −1: Create a 3/3 green Phyrexian Beast creature token with toxic 1.
|
||||
ability = new LoyaltyAbility(new CreateTokenEffect(new PhyrexianBeastToxicToken()),-1);
|
||||
ability = new LoyaltyAbility(new CreateTokenEffect(new PhyrexianBeastToxicToken()), -1);
|
||||
this.addAbility(ability);
|
||||
|
||||
// −4: Lukka deals X damage divided as you choose among any number of target creatures and/or planeswalkers,
|
||||
// where X is the greatest power among creatures you controlled as you activated this ability.
|
||||
DynamicValue xValue = GreatestPowerAmongControlledCreaturesValue.instance;
|
||||
DamageMultiEffect damageMultiEffect = new DamageMultiEffect(xValue);
|
||||
damageMultiEffect.setText("Lukka deals X damage divided as you choose" +
|
||||
" among any number of target creatures and/or planeswalkers," +
|
||||
damageMultiEffect.setText("Lukka deals X damage divided as you choose " +
|
||||
"among any number of target creatures and/or planeswalkers, " +
|
||||
"where X is the greatest power among creatures you controlled as you activated this ability.");
|
||||
ability = new LoyaltyAbility(damageMultiEffect, -4);
|
||||
ability.setTargetAdjuster(LukkaBoundToRuinAdjuster.instance);
|
||||
|
@ -99,7 +102,8 @@ class LukkaBoundToRuinManaEffect extends OneShotEffect {
|
|||
class LukkaBoundToRuinConditionalMana extends ConditionalMana {
|
||||
|
||||
// Add {R}{G}
|
||||
private static Mana mana = new Mana(0,0,0,1,1,0,0,0);
|
||||
private static Mana mana = new Mana(0, 0, 0, 1, 1, 0, 0, 0);
|
||||
|
||||
public LukkaBoundToRuinConditionalMana() {
|
||||
super(mana);
|
||||
addCondition(LukkaBoundToRuinManaCondition.instance);
|
||||
|
@ -130,11 +134,10 @@ enum LukkaBoundToRuinAdjuster implements TargetAdjuster {
|
|||
public void adjustTargets(Ability ability, Game game) {
|
||||
// Maximum targets is equal to the damage - as each target need to be assigned at least 1 damage
|
||||
ability.getTargets().clear();
|
||||
int xValue = GreatestPowerAmongControlledCreaturesValue.instance.calculate(game,ability,null);
|
||||
int xValue = GreatestPowerAmongControlledCreaturesValue.instance.calculate(game, ability, null);
|
||||
TargetCreatureOrPlaneswalkerAmount targetCreatureOrPlaneswalkerAmount = new TargetCreatureOrPlaneswalkerAmount(xValue);
|
||||
targetCreatureOrPlaneswalkerAmount.setMinNumberOfTargets(0);
|
||||
targetCreatureOrPlaneswalkerAmount.setMaxNumberOfTargets(xValue);
|
||||
ability.addTarget(targetCreatureOrPlaneswalkerAmount);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
|
@ -15,7 +13,9 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
@ -35,14 +35,14 @@ public final class MazeSkullbomb extends CardImpl {
|
|||
// {2}{G}, Sacrifice Maze Skullbomb: Target creature gets +3/+3 and gains trample until end of turn. Draw a card. Activate only as a sorcery.
|
||||
ability = new ActivateAsSorceryActivatedAbility(
|
||||
new BoostTargetEffect(3, 3)
|
||||
.setText("target creature gets +3/+3"),
|
||||
.setText("target creature you control gets +3/+3"),
|
||||
new ManaCostsImpl<>("{2}{G}")
|
||||
);
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance())
|
||||
.setText("and gains trample until end of turn"));
|
||||
ability.addEffect(new DrawCardSourceControllerEffect(1));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
|
@ -11,13 +9,15 @@ import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
|||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.CantBeBlockedSourceAbility;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -44,7 +44,7 @@ public final class MercurialSpelldancer extends CardImpl {
|
|||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||
new DoIfCostPaid(
|
||||
new CreateDelayedTriggeredAbilityEffect(new CopyNextSpellDelayedTriggeredAbility()),
|
||||
new RemoveCountersSourceCost(CounterType.OIL.createInstance(2))
|
||||
new RemoveCountersSourceCost(CounterType.OIL.createInstance(2)).setText("remove two oil counters from it")
|
||||
), false
|
||||
));
|
||||
}
|
||||
|
|
|
@ -2,7 +2,8 @@ package mage.cards.n;
|
|||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.effects.*;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.RestrictionEffect;
|
||||
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.combat.AttacksIfAbleTargetEffect;
|
||||
|
@ -31,6 +32,16 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class NahiriTheUnforgiving extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Equipment or creature with lesser manavalue than Nahiri's loyalty");
|
||||
|
||||
{
|
||||
filter.add(Predicates.or(
|
||||
CardType.CREATURE.getPredicate(),
|
||||
SubType.EQUIPMENT.getPredicate()
|
||||
));
|
||||
filter.add(NahiriLoyaltyPredicate.instance);
|
||||
}
|
||||
|
||||
public NahiriTheUnforgiving(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{1}{R}{R/W/P}{W}");
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
|
@ -45,7 +56,7 @@ public final class NahiriTheUnforgiving extends CardImpl {
|
|||
LoyaltyAbility ability1 = new LoyaltyAbility(new AttacksIfAbleTargetEffect(Duration.UntilYourNextTurn)
|
||||
.setText("Until your next turn, up to one target creature attacks"), 1);
|
||||
ability1.addEffect(new NahiriTheUnforgivingRestrictionEffect());
|
||||
ability1.addTarget(new TargetCreaturePermanent(0,1));
|
||||
ability1.addTarget(new TargetCreaturePermanent(0, 1));
|
||||
this.addAbility(ability1);
|
||||
|
||||
// +1: Discard a card, then draw a card.
|
||||
|
@ -56,9 +67,6 @@ public final class NahiriTheUnforgiving extends CardImpl {
|
|||
// 0: Exile target creature or Equipment card with mana value less than Nahiri's loyalty from your graveyard.
|
||||
// Create a token that's a copy of it. That token gains haste. Exile it at the beginning of the next end step.
|
||||
LoyaltyAbility ability3 = new LoyaltyAbility(new NahiriTheUnforgivingTokenEffect(), 0);
|
||||
FilterCard filter = new FilterCard("Equipment or Creature with lesser manavalue than Nahiri's loyalty");
|
||||
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), SubType.EQUIPMENT.getPredicate()));
|
||||
filter.add(NahiriLoyaltyPredicate.instance);
|
||||
ability3.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addAbility(ability3);
|
||||
}
|
||||
|
@ -80,7 +88,7 @@ enum NahiriLoyaltyPredicate implements ObjectSourcePlayerPredicate<Card> {
|
|||
public boolean apply(ObjectSourcePlayer<Card> input, Game game) {
|
||||
//mana value less than Nahiri's loyalty
|
||||
int manaValue = input.getObject().getManaValue();
|
||||
Card card = (Card) input.getSource().getSourceObject(game);
|
||||
Card card = (Card) input.getSource().getSourceObject(game);
|
||||
int loyalty = card.getCounters(game).getCount(CounterType.LOYALTY);
|
||||
return manaValue < loyalty;
|
||||
}
|
||||
|
@ -118,7 +126,7 @@ class NahiriTheUnforgivingTokenEffect extends OneShotEffect {
|
|||
|
||||
NahiriTheUnforgivingTokenEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Exile target creature or Equipment card with mana value less than Nahiri's loyalty from your graveyard." +
|
||||
this.staticText = "Exile target creature or Equipment card with mana value less than Nahiri's loyalty from your graveyard. " +
|
||||
"Create a token that's a copy of it. That token gains haste. Exile it at the beginning of the next end step.";
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class NahirisSacrifice extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(" an artifact or creature");
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("an artifact or creature");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(CardType.ARTIFACT.getPredicate(), CardType.CREATURE.getPredicate()));
|
||||
|
@ -68,7 +68,7 @@ class SacrificeXManaValueCost extends VariableCostImpl implements SacrificeCost
|
|||
public SacrificeXManaValueCost(FilterControlledPermanent filter, boolean useAsAdditionalCost) {
|
||||
super(useAsAdditionalCost ? VariableCostType.ADDITIONAL : VariableCostType.NORMAL,
|
||||
filter.getMessage() + " with manavalue X to sacrifice");
|
||||
this.text = (useAsAdditionalCost ? " sacrifice" : "Sacrifice ") + filter.getMessage() + " with mana value " +xText;
|
||||
this.text = (useAsAdditionalCost ? "sacrifice " : "Sacrifice ") + filter.getMessage() + " with mana value " +xText;
|
||||
this.filter = filter;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.common.DiesAttachedTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlAttachedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.keyword.ToxicAbility;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.abilities.keyword.ToxicAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -36,7 +36,7 @@ public final class NecrogenCommunion extends CardImpl {
|
|||
|
||||
// Enchanted creature has toxic 2.
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
new GainAbilityAttachedEffect(new ToxicAbility(2), AttachmentType.EQUIPMENT)
|
||||
new GainAbilityAttachedEffect(new ToxicAbility(2), AttachmentType.AURA)
|
||||
));
|
||||
|
||||
// When enchanted creature dies, return that card to the battlefield under your control.
|
||||
|
|
|
@ -1,28 +1,26 @@
|
|||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealCombatDamageControlledTriggeredAbility;
|
||||
import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddPoisonCounterTargetEffect;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.ToxicAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -56,7 +54,9 @@ public final class NecrogenRotpriest extends CardImpl {
|
|||
|
||||
// {1}{B}{G}: Target creature you control with toxic gains deathtouch until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new GainAbilityTargetEffect(DeathtouchAbility.getInstance()), new ManaCostsImpl<>("{1}{B}{G}")
|
||||
new GainAbilityTargetEffect(DeathtouchAbility.getInstance())
|
||||
.setText("target creature you control with toxic gains deathtouch until end of turn"),
|
||||
new ManaCostsImpl<>("{1}{B}{G}")
|
||||
);
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -44,7 +44,9 @@ public final class Necrosquito extends CardImpl {
|
|||
));
|
||||
|
||||
// Necrosquito gets +1/+1 for each oil counter on it.
|
||||
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(xValue, xValue, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(
|
||||
xValue, xValue, Duration.WhileOnBattlefield
|
||||
).setText("{this} gets +1/+1 for each oil counter on it")));
|
||||
|
||||
// Whenever another creature or artifact you control is put into a graveyard from the battlefield, put an oil counter on Necrosquito.
|
||||
this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
package mage.cards.n;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.ToxicAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class NimraiserPaladin extends CardImpl {
|
||||
|
||||
private static final FilterCard filter
|
||||
= new FilterCreatureCard("creature with mana value 3 or less from your graveyard");
|
||||
= new FilterCreatureCard("creature card with mana value 3 or less from your graveyard");
|
||||
|
||||
static {
|
||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 4));
|
||||
|
|
|
@ -50,7 +50,7 @@ public final class OilGorgerTroll extends CardImpl {
|
|||
Ability ability = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3));
|
||||
ability.addEffect(new ConditionalOneShotEffect(
|
||||
new DrawCardSourceControllerEffect(1), condition,
|
||||
"then if you control a permanent with an oil counter on it, draw a card"
|
||||
"Then if you control a permanent with an oil counter on it, draw a card"
|
||||
));
|
||||
this.addAbility(ability.addHint(hint));
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
|
@ -11,18 +9,21 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Loki
|
||||
*/
|
||||
public final class PhyrexianArena extends CardImpl {
|
||||
|
||||
public PhyrexianArena(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}{B}");
|
||||
|
||||
// At the beginning of your upkeep, you draw a card and you lose 1 life.
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(1), TargetController.YOU, false);
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(1));
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1, "you"), TargetController.YOU, false
|
||||
);
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ class PhyrexianAtlasEffect extends OneShotEffect {
|
|||
|
||||
PhyrexianAtlasEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "each opponent with three or more poison counters loses 1 life";
|
||||
staticText = "each opponent who has three or more poison counters loses 1 life";
|
||||
}
|
||||
|
||||
private PhyrexianAtlasEffect(final PhyrexianAtlasEffect effect) {
|
||||
|
|
|
@ -88,6 +88,6 @@ class PhyrexianObliteratorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a source deals damage to {this}, that source's controller sacrifices that many permanents";
|
||||
return "Whenever a source deals damage to {this}, that source's controller sacrifices that many permanents.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class RebelSalvo extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DamageTargetEffect(5));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
||||
this.getSpellAbility().addEffect(new LoseAbilityTargetEffect(IndestructibleAbility.getInstance())
|
||||
.setText("that permanent loses indestructible unil end of turn"));
|
||||
.setText("that permanent loses indestructible until end of turn"));
|
||||
}
|
||||
|
||||
private RebelSalvo(final RebelSalvo card) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
|
@ -11,14 +9,16 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -46,7 +46,7 @@ public final class SerumSovereign extends CardImpl {
|
|||
new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{U}")
|
||||
);
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.OIL.createInstance()));
|
||||
ability.addEffect(new ScryEffect(2));
|
||||
ability.addEffect(new ScryEffect(2).concatBy(", then"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,23 +1,18 @@
|
|||
package mage.cards.t;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.CompositeCost;
|
||||
import mage.abilities.costs.common.RemoveCounterCost;
|
||||
import mage.abilities.costs.common.RemoveVariableCountersTargetCost;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.DestroyAllEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.constants.SuperType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
|
@ -29,6 +24,10 @@ import mage.game.permanent.Permanent;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -61,7 +60,7 @@ public final class TheFiligreeSylex extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// {T}, Remove ten oil counters from among permanents you control and sacrifice The Filigree Sylex: It deals 10 damage to any target.
|
||||
ability = new SimpleActivatedAbility(new DamageTargetEffect(10), new TapSourceCost());
|
||||
ability = new SimpleActivatedAbility(new DamageTargetEffect(10, "it"), new TapSourceCost());
|
||||
ability.addCost(new CompositeCost(
|
||||
new RemoveCounterCost(new TargetPermanent(
|
||||
0, Integer.MAX_VALUE,
|
||||
|
|
|
@ -25,12 +25,11 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author AhmadYProjects
|
||||
*/
|
||||
public final class TheSeedcore extends CardImpl {
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("1/1 creature");
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("1/1 creature");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(ComparisonType.EQUAL_TO, 1));
|
||||
|
@ -51,8 +50,8 @@ public final class TheSeedcore extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new BoostTargetEffect(2, 1, Duration.EndOfTurn),
|
||||
new TapSourceCost(),
|
||||
CorruptedCondition.instance,
|
||||
"{T}: Target 1/1 creature gets +2/+1 until end of turn. Activate only if an opponent has three or more poison counters.").setAbilityWord(AbilityWord.CORRUPTED).addHint(CorruptedCondition.getHint());
|
||||
CorruptedCondition.instance
|
||||
).setAbilityWord(AbilityWord.CORRUPTED).addHint(CorruptedCondition.getHint());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
@ -66,6 +65,7 @@ public final class TheSeedcore extends CardImpl {
|
|||
return new TheSeedcore(this);
|
||||
}
|
||||
}
|
||||
|
||||
class TheSeedcoreManaBuilder extends ConditionalManaBuilder {
|
||||
|
||||
@Override
|
||||
|
@ -76,7 +76,7 @@ class TheSeedcoreManaBuilder extends ConditionalManaBuilder {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Spend this mana only to cast a Phyrexian creature spell.";
|
||||
return "Spend this mana only to cast Phyrexian creature spells.";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ class TheSeedcoreConditionalMana extends ConditionalMana {
|
|||
|
||||
TheSeedcoreConditionalMana(Mana mana) {
|
||||
super(mana);
|
||||
staticText = "Spend this mana only to cast a Phyrexian creature spell.";
|
||||
staticText = "Spend this mana only to cast Phyrexian creature spells.";
|
||||
addCondition(new mage.cards.t.TheSeedcoreManaCondition());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.abilities.dynamicvalue.common.ManacostVariableValue;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
|
@ -13,6 +11,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -24,7 +24,7 @@ public final class TyvarsStand extends CardImpl {
|
|||
// Target creature you control gets +X/+X and gains hexproof and indestructible until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(
|
||||
ManacostVariableValue.REGULAR, ManacostVariableValue.REGULAR, Duration.EndOfTurn
|
||||
));
|
||||
).setText("target creature you control gets +X/+X"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HexproofAbility.getInstance())
|
||||
.setText("and gains hexproof"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(IndestructibleAbility.getInstance())
|
||||
|
|
|
@ -48,13 +48,14 @@ public final class UnctusGrandMetatect extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
new BecomesTappedSourceTriggeredAbility(
|
||||
new DrawDiscardControllerEffect(1, 1)
|
||||
), Duration.WhileOnBattlefield, filter, true
|
||||
).setTriggerPhrase("Whenever this creature becomes tapped, "),
|
||||
Duration.WhileOnBattlefield, filter, true
|
||||
)));
|
||||
|
||||
// Other artifact creatures you control get +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
|
||||
1, 1, Duration.WhileOnBattlefield,
|
||||
StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE, true
|
||||
StaticFilters.FILTER_PERMANENTS_ARTIFACT_CREATURE, true
|
||||
)));
|
||||
|
||||
// {U/P}: Until end of turn, target creature you control becomes a blue artifact in addition to its other colors and types. Activate only as a sorcery.
|
||||
|
|
|
@ -5,7 +5,8 @@ import mage.abilities.effects.common.counter.ProliferateEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.target.common.TargetCardInGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -15,12 +16,14 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class VatEmergence extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCreatureCard("creature card from a graveyard");
|
||||
|
||||
public VatEmergence(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}");
|
||||
|
||||
// Put target creature card from a graveyard onto the battlefield under your control. Proliferate.
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_CREATURE));
|
||||
this.getSpellAbility().addTarget(new TargetCardInGraveyard(filter));
|
||||
this.getSpellAbility().addEffect(new ProliferateEffect());
|
||||
}
|
||||
|
||||
|
|
|
@ -58,8 +58,8 @@ public class VerifyCardDataTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ONE"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final boolean CHECK_ONLY_ABILITIES_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOC"; // check all abilities and output cards with wrong abilities texts;
|
||||
|
||||
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import mage.MageObject;
|
|||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.constants.AbilityType;
|
||||
import mage.constants.AbilityWord;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
@ -330,6 +331,12 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
|
|||
return optional;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TriggeredAbilityImpl setAbilityWord(AbilityWord abilityWord) {
|
||||
super.setAbilityWord(abilityWord);
|
||||
return this;
|
||||
}
|
||||
|
||||
public static boolean isInUseableZoneDiesTrigger(TriggeredAbility source, GameEvent event, Game game) {
|
||||
// Get the source permanent of the ability
|
||||
MageObject sourceObject = null;
|
||||
|
|
Loading…
Reference in a new issue