Changed call of KickerAbility and replaced KickerAbility by new MultikickerAbility.

This commit is contained in:
LevelX2 2012-12-15 18:42:25 +01:00
parent 66ebfb6aa3
commit 6039429127
46 changed files with 80 additions and 144 deletions

View file

@ -38,7 +38,6 @@ import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.KickedCostCondition; import mage.abilities.condition.common.KickedCostCondition;
import mage.abilities.costs.common.PayLifeCost; import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.effects.EntersBattlefieldEffect; import mage.abilities.effects.EntersBattlefieldEffect;
import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
@ -62,23 +61,21 @@ public class Anavolver extends CardImpl<Anavolver> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Kicker {1}{U} and/or {B} (You may pay an additional {1}{U} and/or {B} as you cast this spell.) // Kicker {1}{U} and/or {B} (You may pay an additional {1}{U} and/or {B} as you cast this spell.)
KickerManaCost kicker1 = new KickerManaCost("{1}{U}"); KickerAbility kickerAbility = new KickerAbility("{1}{U}");
KickerManaCost kicker2 = new KickerManaCost("{B}"); kickerAbility.addKickerCost("{B}");
KickerAbility kickerAbility = new KickerAbility(kicker1);
kickerAbility.addKickerManaCost(kicker2);
this.addAbility(kickerAbility); this.addAbility(kickerAbility);
// If Anavolver was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying. // If Anavolver was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying.
EntersBattlefieldAbility ability1 = new EntersBattlefieldAbility( EntersBattlefieldAbility ability1 = new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2),false), new AddCountersSourceEffect(CounterType.P1P1.createInstance(2),false),
new KickedCostCondition(kicker1), true, "If {this} was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying.", new KickedCostCondition("{1}{U}"), true, "If {this} was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying.",
"{this} enters the battlefield with two +1/+1 counters on it and with flying"); "{this} enters the battlefield with two +1/+1 counters on it and with flying");
((EntersBattlefieldEffect)ability1.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield)); ((EntersBattlefieldEffect)ability1.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield));
this.addAbility(ability1); this.addAbility(ability1);
// If Anavolver was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with "Pay 3 life: Regenerate Anavolver." // If Anavolver was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with "Pay 3 life: Regenerate Anavolver."
EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility( EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition(kicker2), true, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition("{B}"), true,
"If {this} was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with \"Pay 3 life: Regenerate Anavolver.\"", "If {this} was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with \"Pay 3 life: Regenerate Anavolver.\"",
"{this} enters the battlefield with a +1/+1 counter on it and with \"Pay 3 life: Regenerate Anavolver.\""); "{this} enters the battlefield with a +1/+1 counter on it and with \"Pay 3 life: Regenerate Anavolver.\"");
((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new PayLifeCost(3)), Duration.WhileOnBattlefield)); ((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new PayLifeCost(3)), Duration.WhileOnBattlefield));

View file

@ -34,7 +34,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.KickedCostCondition; import mage.abilities.condition.common.KickedCostCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.effects.EntersBattlefieldEffect; import mage.abilities.effects.EntersBattlefieldEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@ -59,23 +58,21 @@ public class Cetavolver extends CardImpl<Cetavolver> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Kicker {1}{R} and/or {G} (You may pay an additional {1}{R} and/or {G} as you cast this spell.) // Kicker {1}{R} and/or {G} (You may pay an additional {1}{R} and/or {G} as you cast this spell.)
KickerManaCost kicker1 = new KickerManaCost("{1}{R}"); KickerAbility kickerAbility = new KickerAbility("{1}{R}");
KickerManaCost kicker2 = new KickerManaCost("{G}"); kickerAbility.addKickerCost("{G}");
KickerAbility kickerAbility = new KickerAbility(kicker1);
kickerAbility.addKickerManaCost(kicker2);
this.addAbility(kickerAbility); this.addAbility(kickerAbility);
// If Cetavolver was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike. // If Cetavolver was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike.
EntersBattlefieldAbility ability1 = new EntersBattlefieldAbility( EntersBattlefieldAbility ability1 = new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2),false), new AddCountersSourceEffect(CounterType.P1P1.createInstance(2),false),
new KickedCostCondition(kicker1), true, "If Cetavolver was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike.", new KickedCostCondition("{1}{R}"), true, "If Cetavolver was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike.",
"{this} enters the battlefield with two +1/+1 counters on it and with first strike"); "{this} enters the battlefield with two +1/+1 counters on it and with first strike");
((EntersBattlefieldEffect)ability1.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield)); ((EntersBattlefieldEffect)ability1.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield));
this.addAbility(ability1); this.addAbility(ability1);
// If Cetavolver was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample. // If Cetavolver was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample.
EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility( EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition(kicker2), true, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition("{G}"), true,
"If Cetavolver was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample.", "If Cetavolver was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample.",
"{this} enters the battlefield with a +1/+1 counter on it and with trample"); "{this} enters the battlefield with a +1/+1 counter on it and with trample");
((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield)); ((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield));

View file

@ -38,7 +38,6 @@ import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.KickedCostCondition; import mage.abilities.condition.common.KickedCostCondition;
import mage.abilities.costs.common.PayLifeCost; import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.effects.EntersBattlefieldEffect; import mage.abilities.effects.EntersBattlefieldEffect;
import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
@ -63,23 +62,21 @@ public class Degavolver extends CardImpl<Degavolver> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Kicker {1}{B} and/or {R} (You may pay an additional {1}{B} and/or {R} as you cast this spell.) // Kicker {1}{B} and/or {R} (You may pay an additional {1}{B} and/or {R} as you cast this spell.)
KickerManaCost kicker1 = new KickerManaCost("{1}{B}"); KickerAbility kickerAbility = new KickerAbility("{1}{B}");
KickerManaCost kicker2 = new KickerManaCost("{R}"); kickerAbility.addKickerCost("{R}");
KickerAbility kickerAbility = new KickerAbility(kicker1);
kickerAbility.addKickerManaCost(kicker2);
this.addAbility(kickerAbility); this.addAbility(kickerAbility);
// If Degavolver was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with "Pay 3 life: Regenerate Degavolver." // If Degavolver was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with "Pay 3 life: Regenerate Degavolver."
EntersBattlefieldAbility ability1 = new EntersBattlefieldAbility( EntersBattlefieldAbility ability1 = new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2),false), new AddCountersSourceEffect(CounterType.P1P1.createInstance(2),false),
new KickedCostCondition(kicker1), true, "If Degavolver was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with \"Pay 3 life: Regenerate Degavolver.\"", new KickedCostCondition("{1}{B}"), true, "If Degavolver was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with \"Pay 3 life: Regenerate Degavolver.\"",
"{this} enters the battlefield with two +1/+1 counters on it and with \"Pay 3 life: Regenerate Degavolver.\""); "{this} enters the battlefield with two +1/+1 counters on it and with \"Pay 3 life: Regenerate Degavolver.\"");
((EntersBattlefieldEffect)ability1.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new PayLifeCost(3)), Constants.Duration.WhileOnBattlefield)); ((EntersBattlefieldEffect)ability1.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new PayLifeCost(3)), Constants.Duration.WhileOnBattlefield));
this.addAbility(ability1); this.addAbility(ability1);
// If Degavolver was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike. // If Degavolver was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike.
EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility( EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition(kicker2), true, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition("{R}"), true,
"If Degavolver was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike.", "If Degavolver was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike.",
"{this} enters the battlefield with a +1/+1 counter on it and with first strike"); "{this} enters the battlefield with a +1/+1 counter on it and with first strike");
((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield)); ((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield));

View file

@ -35,12 +35,13 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.KickerManaCost; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
import mage.cards.Card; import mage.cards.Card;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterLandPermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
@ -58,7 +59,7 @@ public class DesolationAngel extends CardImpl<DesolationAngel> {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Kicker (You may pay an additional as you cast this spell.) // Kicker (You may pay an additional as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{W}{W}"))); this.addAbility(new KickerAbility("{W}{W}"));
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
@ -90,26 +91,13 @@ class DesolationAngelEntersBattlefieldEffect extends OneShotEffect<DesolationAng
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Card p = game.getCard(source.getSourceId()); Card p = game.getCard(source.getSourceId());
boolean kicked = KickedCondition.getInstance().apply(game, source);
boolean kicked = false; for (Permanent permanent : game.getBattlefield().getAllActivePermanents(new FilterLandPermanent(),game)) {
if (p != null) { if ((!kicked && permanent.getControllerId() == source.getControllerId())
for (Object cost : p.getSpellAbility().getOptionalCosts()) { || kicked) {
if (cost instanceof KickerManaCost) { permanent.destroy(source.getSourceId(), game, false);
if (((KickerManaCost) cost).isPaid()) {
kicked = true;
}
}
} }
} }
for (Permanent permanent : game.getBattlefield().getAllActivePermanents()) {
if (permanent.getCardType().contains(CardType.LAND)) {
if ((!kicked && permanent.getControllerId() == source.getControllerId()) || kicked) {
permanent.destroy(source.getSourceId(), game, false);
}
}
}
return true; return true;
} }

View file

@ -114,8 +114,8 @@ class CavernOfSoulsEffect extends OneShotEffect<CavernOfSoulsEffect> {
game.debugMessage("player canceled choosing type. retrying."); game.debugMessage("player canceled choosing type. retrying.");
} }
game.informPlayers(permanent.getName() + ": " + player.getName() + " has chosen " + typeChoice.getChoice()); game.informPlayers(permanent.getName() + ": " + player.getName() + " has chosen " + typeChoice.getChoice());
game.getState().setValue(permanent.getId() + "_type", typeChoice.getChoice()); game.getState().setValue(permanent.getId() + "_type", typeChoice.getChoice().toString());
permanent.addInfo("chosen type", "<i>Chosen type: " + typeChoice.getChoice() + "</i>"); permanent.addInfo("chosen type", "<i>Chosen type: " + typeChoice.getChoice().toString() + "</i>");
} }
return false; return false;
} }

View file

@ -33,7 +33,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.ConvokeAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -55,7 +54,7 @@ public class KavuPrimarch extends CardImpl<KavuPrimarch> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Kicker {4} (You may pay an additional {4} as you cast this spell.) // Kicker {4} (You may pay an additional {4} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{4}"))); this.addAbility(new KickerAbility("{4}"));
// Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.) // Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.)
this.addAbility(new ConvokeAbility()); this.addAbility(new ConvokeAbility());

View file

@ -36,7 +36,6 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@ -62,7 +61,7 @@ public class UrborgSkeleton extends CardImpl<UrborgSkeleton> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Kicker {3} (You may pay an additional {3} as you cast this spell.) // Kicker {3} (You may pay an additional {3} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{3}"))); this.addAbility(new KickerAbility("{3}"));
// {B}: Regenerate Urborg Skeleton. // {B}: Regenerate Urborg Skeleton.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}"))); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));

View file

@ -34,7 +34,6 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.ReplacementEffectImpl;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
@ -55,7 +54,7 @@ public class OrimsChant extends CardImpl<OrimsChant> {
this.color.setWhite(true); this.color.setWhite(true);
// Kicker {W} (You may pay an additional {W} as you cast this spell.) // Kicker {W} (You may pay an additional {W} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{W}"))); this.addAbility(new KickerAbility("{W}"));
// Target player can't cast spells this turn. // Target player can't cast spells this turn.
this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetPlayer());

View file

@ -32,11 +32,10 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -56,7 +55,7 @@ public class ApexHawks extends CardImpl<ApexHawks> {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Multikicker (You may pay an additional {1}{W} any number of times as you cast this spell.) // Multikicker (You may pay an additional {1}{W} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{W}"))); this.addAbility(new MultikickerAbility("{1}{W}"));
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());

View file

@ -35,11 +35,10 @@ import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.DiscardTargetEffect; import mage.abilities.effects.common.DiscardTargetEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.target.common.TargetOpponent; import mage.target.common.TargetOpponent;
@ -59,7 +58,7 @@ public class BloodhuskRitualist extends CardImpl<BloodhuskRitualist> {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Multikicker (You may pay an additional {B} any number of times as you cast this spell.) // Multikicker (You may pay an additional {B} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{B}"))); this.addAbility(new MultikickerAbility("{B}"));
// When Bloodhusk Ritualist enters the battlefield, target opponent discards a card for each time it was kicked. // When Bloodhusk Ritualist enters the battlefield, target opponent discards a card for each time it was kicked.
Ability ability = new ConditionalTriggeredAbility( Ability ability = new ConditionalTriggeredAbility(

View file

@ -33,10 +33,9 @@ import mage.Constants.Outcome;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.SpellAbility; import mage.abilities.SpellAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
@ -56,7 +55,7 @@ public class CometStorm extends CardImpl<CometStorm> {
this.color.setRed(true); this.color.setRed(true);
// Multikicker {1} // Multikicker {1}
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}"))); this.addAbility(new MultikickerAbility("{1}"));
// Choose target creature or player, then choose another target creature or player for each time Comet Storm was kicked. Comet Storm deals X damage to each of them. // Choose target creature or player, then choose another target creature or player for each time Comet Storm was kicked. Comet Storm deals X damage to each of them.
this.getSpellAbility().addEffect(new CometStormEffect()); this.getSpellAbility().addEffect(new CometStormEffect());

View file

@ -34,11 +34,10 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
@ -61,7 +60,7 @@ public class DeathforgeShaman extends CardImpl<DeathforgeShaman> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Multikicker {R} // Multikicker {R}
this.addAbility(new KickerAbility(new MultikickerManaCost("{R}"))); this.addAbility(new MultikickerAbility("{R}"));
// When Deathforge Shaman enters the battlefield, it deals damage to target player equal to twice the number of times it was kicked. // When Deathforge Shaman enters the battlefield, it deals damage to target player equal to twice the number of times it was kicked.
Ability ability = new EntersBattlefieldTriggeredAbility(new DeathforgeShamanEffect()); Ability ability = new EntersBattlefieldTriggeredAbility(new DeathforgeShamanEffect());

View file

@ -32,11 +32,10 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.IslandwalkAbility; import mage.abilities.keyword.IslandwalkAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -57,7 +56,7 @@ public class EnclaveElite extends CardImpl<EnclaveElite> {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Multikicker (You may pay an additional any number of times as you cast this spell.) // Multikicker (You may pay an additional any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{U}"))); this.addAbility(new MultikickerAbility("{1}{U}"));
// Islandwalk // Islandwalk
this.addAbility(new IslandwalkAbility()); this.addAbility(new IslandwalkAbility());

View file

@ -33,11 +33,10 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.Mana; import mage.Mana;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.CountersCount; import mage.abilities.dynamicvalue.common.CountersCount;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.abilities.mana.DynamicManaAbility; import mage.abilities.mana.DynamicManaAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -57,7 +56,7 @@ public class EverflowingChalice extends CardImpl<EverflowingChalice> {
this.expansionSetCode = "WWK"; this.expansionSetCode = "WWK";
// Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.) // Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{2}"))); this.addAbility(new MultikickerAbility("{2}"));
// Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked. // Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.
this.addAbility(new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(

View file

@ -32,10 +32,9 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -55,7 +54,7 @@ public class GnarlidPack extends CardImpl<GnarlidPack> {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Multikicker (You may pay an additional any number of times as you cast this spell.) // Multikicker (You may pay an additional any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{G}"))); this.addAbility(new MultikickerAbility("{1}{G}"));
// Gnarlid Pack enters the battlefield with a +1/+1 counter on it for each time it was kicked. // Gnarlid Pack enters the battlefield with a +1/+1 counter on it for each time it was kicked.
this.addAbility(new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(

View file

@ -35,12 +35,11 @@ import mage.Constants.TargetController;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.CountersCount; import mage.abilities.dynamicvalue.common.CountersCount;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.continious.BoostAllEffect; import mage.abilities.effects.common.continious.BoostAllEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
@ -75,7 +74,7 @@ public class JoragaWarcaller extends CardImpl<JoragaWarcaller> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Multikicker {1}{G} // Multikicker {1}{G}
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{G}"))); this.addAbility(new MultikickerAbility("{1}{G}"));
// Joraga Warcaller enters the battlefield with a +1/+1 counter on it for each time it was kicked. // Joraga Warcaller enters the battlefield with a +1/+1 counter on it for each time it was kicked.
this.addAbility(new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(

View file

@ -32,11 +32,10 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
/** /**
@ -55,7 +54,7 @@ public class LightkeeperOfEmeria extends CardImpl<LightkeeperOfEmeria> {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Multikicker (You may pay an additional {W} any number of times as you cast this spell.) // Multikicker (You may pay an additional {W} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{W}"))); this.addAbility(new MultikickerAbility("{W}"));
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());

View file

@ -36,12 +36,11 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.effects.common.continious.BoostAllEffect; import mage.abilities.effects.common.continious.BoostAllEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.FilterCard; import mage.filter.FilterCard;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
@ -72,7 +71,7 @@ public class MarshalsAnthem extends CardImpl<MarshalsAnthem> {
this.color.setWhite(true); this.color.setWhite(true);
// Multikicker {1}{W} // Multikicker {1}{W}
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{W}"))); this.addAbility(new MultikickerAbility("{1}{W}"));
// Creatures you control get +1/+1. // Creatures you control get +1/+1.
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Constants.Duration.WhileOnBattlefield, filter, false))); this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Constants.Duration.WhileOnBattlefield, filter, false)));

View file

@ -32,10 +32,9 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.abilities.keyword.SwampwalkAbility; import mage.abilities.keyword.SwampwalkAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -57,7 +56,7 @@ public class QuagVampires extends CardImpl<QuagVampires> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Multikicker (You may pay an additional {1}{B} any number of times as you cast this spell.) // Multikicker (You may pay an additional {1}{B} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{B}"))); this.addAbility(new MultikickerAbility("{1}{B}"));
// Swampwalk // Swampwalk
this.addAbility(new SwampwalkAbility()); this.addAbility(new SwampwalkAbility());

View file

@ -32,11 +32,10 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -56,7 +55,7 @@ public class SkitterOfLizards extends CardImpl<SkitterOfLizards> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Multikicker (You may pay an additional {1}{R} any number of times as you cast this spell.) // Multikicker (You may pay an additional {1}{R} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}{R}"))); this.addAbility(new MultikickerAbility("{1}{R}"));
// Haste // Haste
this.addAbility(HasteAbility.getInstance()); this.addAbility(HasteAbility.getInstance());

View file

@ -33,11 +33,9 @@ import mage.Constants.Outcome;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.SpellAbility; import mage.abilities.SpellAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.MultikickerAbility;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.Counter; import mage.counters.Counter;
import mage.counters.CounterType; import mage.counters.CounterType;
@ -59,7 +57,7 @@ public class StrengthOfTheTajuru extends CardImpl<StrengthOfTheTajuru> {
// Multikicker (You may pay an additional {1} any number of times as you cast this spell.) // Multikicker (You may pay an additional {1} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{1}"))); this.addAbility(new MultikickerAbility("{1}"));
// Choose target creature, then choose another target creature for each time Strength of the Tajuru was kicked. Put X +1/+1 counters on each of them. // Choose target creature, then choose another target creature for each time Strength of the Tajuru was kicked. Put X +1/+1 counters on each of them.
this.getSpellAbility().addEffect(new StrengthOfTheTajuruAddCountersTargetEffect()); this.getSpellAbility().addEffect(new StrengthOfTheTajuruAddCountersTargetEffect());

View file

@ -35,12 +35,11 @@ import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.game.Game; import mage.game.Game;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
@ -61,7 +60,7 @@ public class VoyagerDrake extends CardImpl<VoyagerDrake> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Multikicker {U} // Multikicker {U}
this.addAbility(new KickerAbility(new MultikickerManaCost("{U}"))); this.addAbility(new MultikickerAbility("{U}"));
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());

View file

@ -33,10 +33,9 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.MultikickerManaCost;
import mage.abilities.dynamicvalue.common.MultikickerCount; import mage.abilities.dynamicvalue.common.MultikickerCount;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.MultikickerAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.game.permanent.token.WolfToken; import mage.game.permanent.token.WolfToken;
@ -55,7 +54,7 @@ public class WolfbriarElemental extends CardImpl<WolfbriarElemental> {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Multikicker (You may pay an additional {G} any number of times as you cast this spell.) // Multikicker (You may pay an additional {G} any number of times as you cast this spell.)
this.addAbility(new KickerAbility(new MultikickerManaCost("{G}"))); this.addAbility(new MultikickerAbility("{G}"));
// When Wolfbriar Elemental enters the battlefield, put a 2/2 green Wolf creature token onto the battlefield for each time it was kicked. // When Wolfbriar Elemental enters the battlefield, put a 2/2 green Wolf creature token onto the battlefield for each time it was kicked.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WolfToken(), new MultikickerCount()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WolfToken(), new MultikickerCount())));

View file

@ -28,21 +28,20 @@
package mage.sets.zendikar; package mage.sets.zendikar;
import java.util.UUID;
import mage.Constants.CardType; import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.KickerAbility;
import mage.abilities.keyword.UnblockableAbility; import mage.abilities.keyword.UnblockableAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.counters.CounterType; import mage.counters.CounterType;
import java.util.UUID;
import mage.abilities.keyword.KickerAbility;
/** /**
* @author nantuko, BetaSteward_at_googlemail.com * @author nantuko, BetaSteward_at_googlemail.com
@ -63,7 +62,7 @@ public class AetherFigment extends CardImpl<AetherFigment> {
this.addAbility(new UnblockableAbility()); this.addAbility(new UnblockableAbility());
// Kicker {3} // Kicker {3}
this.addAbility(new KickerAbility(new KickerManaCost("{3}"))); this.addAbility(new KickerAbility("{3}"));
// If AEther Figment was kicked, it enters the battlefield with two +1/+1 counters on it // If AEther Figment was kicked, it enters the battlefield with two +1/+1 counters on it
Ability ability = new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), KickedCondition.getInstance(), ""), staticText); Ability ability = new EntersBattlefieldAbility(new ConditionalOneShotEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), KickedCondition.getInstance(), ""), staticText);

View file

@ -33,7 +33,6 @@ import mage.Constants.Duration;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffect;
@ -58,7 +57,7 @@ public class BoldDefense extends CardImpl<BoldDefense> {
this.expansionSetCode = "ZEN"; this.expansionSetCode = "ZEN";
this.color.setWhite(true); this.color.setWhite(true);
this.addAbility(new KickerAbility(new KickerManaCost("{3}{W}"))); this.addAbility(new KickerAbility("{3}{W}"));
DynamicValue dn = new BoldDefensePTCount(); DynamicValue dn = new BoldDefensePTCount();
this.getSpellAbility().addEffect(new BoostControlledEffect(dn, dn, Duration.EndOfTurn)); this.getSpellAbility().addEffect(new BoostControlledEffect(dn, dn, Duration.EndOfTurn));

View file

@ -32,7 +32,6 @@ import java.util.UUID;
import mage.Constants.CardType; import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -50,7 +49,7 @@ public class BurstLightning extends CardImpl<BurstLightning> {
this.expansionSetCode = "ZEN"; this.expansionSetCode = "ZEN";
this.color.setRed(true); this.color.setRed(true);
this.addAbility(new KickerAbility(new KickerManaCost("{4}"))); this.addAbility(new KickerAbility("{4}"));
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4), this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),

View file

@ -33,7 +33,6 @@ import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -51,7 +50,7 @@ public class ConquerorsPledge extends CardImpl<ConquerorsPledge> {
this.expansionSetCode = "ZEN"; this.expansionSetCode = "ZEN";
this.color.setWhite(true); this.color.setWhite(true);
this.addAbility(new KickerAbility(new KickerManaCost("{6}"))); this.addAbility(new KickerAbility("{6}"));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenEffect(new KorSoldierToken(), 12), this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenEffect(new KorSoldierToken(), 12),
new CreateTokenEffect(new KorSoldierToken(), 6), KickedCondition.getInstance(), new CreateTokenEffect(new KorSoldierToken(), 6), KickedCondition.getInstance(),

View file

@ -36,7 +36,6 @@ import mage.abilities.Ability;
import mage.abilities.DelayedTriggeredAbility; import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.delayed.AtEndOfTurnDelayedTriggeredAbility; import mage.abilities.common.delayed.AtEndOfTurnDelayedTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileTargetEffect; import mage.abilities.effects.common.ExileTargetEffect;
@ -59,7 +58,7 @@ public class ElementalAppeal extends CardImpl<ElementalAppeal> {
this.color.setRed(true); this.color.setRed(true);
// Kicker {5} // Kicker {5}
this.addAbility(new KickerAbility(new KickerManaCost("{5}"))); this.addAbility(new KickerAbility("{5}"));
// Put a 7/1 red Elemental creature token with trample and haste onto the battlefield. Exile it at the beginning of the next end step. // Put a 7/1 red Elemental creature token with trample and haste onto the battlefield. Exile it at the beginning of the next end step.
this.getSpellAbility().addEffect(new ElementalAppealEffect()); this.getSpellAbility().addEffect(new ElementalAppealEffect());

View file

@ -33,7 +33,6 @@ import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.effects.common.SacrificeEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
@ -67,7 +66,7 @@ public class GatekeeperOfMalakir extends CardImpl<GatekeeperOfMalakir> {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
this.addAbility(new KickerAbility(new KickerManaCost("{B}"))); this.addAbility(new KickerAbility("{B}"));
EntersBattlefieldTriggeredAbility ability = EntersBattlefieldTriggeredAbility ability =

View file

@ -40,7 +40,6 @@ import mage.abilities.StaticAbility;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect;
@ -74,7 +73,7 @@ public class Gigantiform extends CardImpl<Gigantiform> {
this.color.setGreen(true); this.color.setGreen(true);
// Kicker {4} // Kicker {4}
this.addAbility(new KickerAbility(new KickerManaCost("{4}"))); this.addAbility(new KickerAbility("{4}"));
// Enchant creature // Enchant creature
TargetPermanent auraTarget = new TargetCreaturePermanent(); TargetPermanent auraTarget = new TargetCreaturePermanent();

View file

@ -34,7 +34,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.continious.BoostControlledEffect; import mage.abilities.effects.common.continious.BoostControlledEffect;
import mage.abilities.effects.common.continious.GainAbilityControlledEffect; import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
@ -59,7 +58,7 @@ public class GoblinBushwhacker extends CardImpl<GoblinBushwhacker> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Kicker {R} (You may pay an additional {R} as you cast this spell.) // Kicker {R} (You may pay an additional {R} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{R}"))); this.addAbility(new KickerAbility("{R}"));
// When Goblin Bushwhacker enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn. // When Goblin Bushwhacker enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn.

View file

@ -34,7 +34,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.HasteAbility;
@ -58,7 +57,7 @@ public class GoblinRuinblaster extends CardImpl<GoblinRuinblaster> {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Kicker {R} (You may pay an additional {R} as you cast this spell.) // Kicker {R} (You may pay an additional {R} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{R}"))); this.addAbility(new KickerAbility("{R}"));
// Haste // Haste

View file

@ -33,7 +33,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
@ -57,7 +56,7 @@ public class HeartstabberMosquito extends CardImpl<HeartstabberMosquito> {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.) // Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{2}{B}"))); this.addAbility(new KickerAbility("{2}{B}"));
// Flying // Flying

View file

@ -32,7 +32,6 @@ import java.util.UUID;
import mage.Constants.CardType; import mage.Constants.CardType;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DrawCardControllerEffect; import mage.abilities.effects.common.DrawCardControllerEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect;
@ -52,7 +51,7 @@ public class IntoTheRoil extends CardImpl<IntoTheRoil> {
this.color.setBlue(true); this.color.setBlue(true);
// Kicker {1}{U} (You may pay an additional {1}{U} as you cast this spell.) // Kicker {1}{U} (You may pay an additional {1}{U} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{1}{U}"))); this.addAbility(new KickerAbility("{1}{U}"));
// Return target nonland permanent to its owner's hand. If Into the Roil was kicked, draw a card. // Return target nonland permanent to its owner's hand. If Into the Roil was kicked, draw a card.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());

View file

@ -34,7 +34,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
@ -58,7 +57,7 @@ public class KorAeronaut extends CardImpl<KorAeronaut> {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
this.addAbility(new KickerAbility(new KickerManaCost("{1}{W}"))); this.addAbility(new KickerAbility("{1}{W}"));
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());

View file

@ -34,7 +34,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -67,7 +66,7 @@ public class KorSanctifiers extends CardImpl<KorSanctifiers> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Kicker {W} (You may pay an additional {W} as you cast this spell.) // Kicker {W} (You may pay an additional {W} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{W}"))); this.addAbility(new KickerAbility("{W}"));
// When Kor Sanctifiers enters the battlefield, if it was kicked, destroy target artifact or enchantment. // When Kor Sanctifiers enters the battlefield, if it was kicked, destroy target artifact or enchantment.

View file

@ -30,7 +30,6 @@ package mage.sets.zendikar;
import mage.Constants.*; import mage.Constants.*;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.ContinuousEffectImpl;
import mage.cards.CardImpl; import mage.cards.CardImpl;
@ -58,7 +57,7 @@ public class MarshCasualties extends CardImpl<MarshCasualties> {
this.color.setBlack(true); this.color.setBlack(true);
// Kicker {3} // Kicker {3}
this.addAbility(new KickerAbility(new KickerManaCost("{3}"))); this.addAbility(new KickerAbility("{3}"));
// Creatures target player controls get -1/-1 until end of turn. If Marsh Casualties was kicked, those creatures get -2/-2 until end of turn instead. // Creatures target player controls get -1/-1 until end of turn. If Marsh Casualties was kicked, those creatures get -2/-2 until end of turn instead.
this.getSpellAbility().addEffect(new ConditionalContinousEffect( this.getSpellAbility().addEffect(new ConditionalContinousEffect(

View file

@ -33,7 +33,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -66,7 +65,7 @@ public class MoldShambler extends CardImpl<MoldShambler> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Kicker {1}{G} (You may pay an additional {1}{G} as you cast this spell.) // Kicker {1}{G} (You may pay an additional {1}{G} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{1}{G}"))); this.addAbility(new KickerAbility("{1}{G}"));
// When Mold Shambler enters the battlefield, if it was kicked, destroy target noncreature permanent. // When Mold Shambler enters the battlefield, if it was kicked, destroy target noncreature permanent.
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);

View file

@ -33,7 +33,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
@ -66,7 +65,7 @@ public class OranRiefRecluse extends CardImpl<OranRiefRecluse> {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Kicker {2}{G} (You may pay an additional {2}{G} as you cast this spell.) // Kicker {2}{G} (You may pay an additional {2}{G} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{2}{G}"))); this.addAbility(new KickerAbility("{2}{G}"));
// Reach (This creature can block creatures with flying.) // Reach (This creature can block creatures with flying.)
this.addAbility(ReachAbility.getInstance()); this.addAbility(ReachAbility.getInstance());

View file

@ -33,7 +33,6 @@ import mage.Constants.Outcome;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -57,7 +56,7 @@ public class RiteOfReplication extends CardImpl<RiteOfReplication> {
this.color.setBlue(true); this.color.setBlue(true);
// Kicker {5} // Kicker {5}
this.addAbility(new KickerAbility(new KickerManaCost("{5}"))); this.addAbility(new KickerAbility("{5}"));
// Put a token that's a copy of target creature onto the battlefield. If Rite of Replication was kicked, put five of those tokens onto the battlefield instead. // Put a token that's a copy of target creature onto the battlefield. If Rite of Replication was kicked, put five of those tokens onto the battlefield instead.
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());

View file

@ -34,7 +34,6 @@ import mage.Constants.Outcome;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -61,7 +60,7 @@ public class SadisticSacrament extends CardImpl<SadisticSacrament> {
this.color.setBlack(true); this.color.setBlack(true);
// Kicker {7} // Kicker {7}
this.addAbility(new KickerAbility(new KickerManaCost("{7}"))); this.addAbility(new KickerAbility("{7}"));
// Search target player's library for up to three cards, exile them, then that player shuffles his or her library. // Search target player's library for up to three cards, exile them, then that player shuffles his or her library.
// If Sadistic Sacrament was kicked, instead search that player's library for up to fifteen cards, exile them, then that player shuffles his or her library. // If Sadistic Sacrament was kicked, instead search that player's library for up to fifteen cards, exile them, then that player shuffles his or her library.

View file

@ -33,7 +33,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
@ -61,7 +60,7 @@ public class TempestOwl extends CardImpl<TempestOwl> {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Kicker {4}{U} // Kicker {4}{U}
this.addAbility(new KickerAbility(new KickerManaCost("{4}{U}"))); this.addAbility(new KickerAbility("{4}{U}"));
// When Tempest Owl enters the battlefield, if it was kicked, tap up to three target permanents. // When Tempest Owl enters the battlefield, if it was kicked, tap up to three target permanents.
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), false); EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), false);

View file

@ -33,7 +33,6 @@ import mage.Constants.Rarity;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.KickerAbility;
@ -57,7 +56,7 @@ public class TorchSlinger extends CardImpl<TorchSlinger> {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Kicker {1}{R} (You may pay an additional {1}{R} as you cast this spell.) // Kicker {1}{R} (You may pay an additional {1}{R} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{1}{R}"))); this.addAbility(new KickerAbility("{1}{R}"));
// When Torch Slinger enters the battlefield, if it was kicked, it deals 2 damage to target creature. // When Torch Slinger enters the battlefield, if it was kicked, it deals 2 damage to target creature.

View file

@ -35,7 +35,6 @@ import mage.Constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.SpellAbility; import mage.abilities.SpellAbility;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.ReplacementEffectImpl;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
@ -58,7 +57,7 @@ public class UnstableFooting extends CardImpl<UnstableFooting> {
this.color.setRed(true); this.color.setRed(true);
// Kicker {3}{R} (You may pay an additional {3}{R} as you cast this spell.) // Kicker {3}{R} (You may pay an additional {3}{R} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{3}{R}"))); this.addAbility(new KickerAbility("{3}{R}"));
// Damage can't be prevented this turn. If Unstable Footing was kicked, it deals 5 damage to target player. // Damage can't be prevented this turn. If Unstable Footing was kicked, it deals 5 damage to target player.
this.getSpellAbility().addEffect(new UnstableFootingEffect()); this.getSpellAbility().addEffect(new UnstableFootingEffect());

View file

@ -32,7 +32,6 @@ import mage.Constants.CardType;
import mage.Constants.Duration; import mage.Constants.Duration;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.continious.BoostTargetEffect;
@ -55,7 +54,7 @@ public class VampiresBite extends CardImpl<VampiresBite> {
this.color.setBlack(true); this.color.setBlack(true);
// Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.) // Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{2}{B}"))); this.addAbility(new KickerAbility("{2}{B}"));
// Target creature gets +3/+0 until end of turn. If Vampire's Bite was kicked, that creature gains lifelink until end of turn. // Target creature gets +3/+0 until end of turn. If Vampire's Bite was kicked, that creature gains lifelink until end of turn.
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());

View file

@ -29,12 +29,10 @@
package mage.sets.zendikar; package mage.sets.zendikar;
import java.util.UUID; import java.util.UUID;
import mage.Constants.CardType; import mage.Constants.CardType;
import mage.Constants.Duration; import mage.Constants.Duration;
import mage.Constants.Rarity; import mage.Constants.Rarity;
import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.mana.KickerManaCost;
import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.decorator.ConditionalContinousEffect;
import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.continious.BoostTargetEffect;
import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
@ -56,7 +54,7 @@ public class VinesOfVastwood extends CardImpl<VinesOfVastwood> {
this.color.setGreen(true); this.color.setGreen(true);
// Kicker {G} (You may pay an additional {G} as you cast this spell.) // Kicker {G} (You may pay an additional {G} as you cast this spell.)
this.addAbility(new KickerAbility(new KickerManaCost("{G}"))); this.addAbility(new KickerAbility("{G}"));
// Target creature can't be the target of spells or abilities your opponents control this turn. // Target creature can't be the target of spells or abilities your opponents control this turn.
TargetCreaturePermanent target = new TargetCreaturePermanent(); TargetCreaturePermanent target = new TargetCreaturePermanent();