mirror of
https://github.com/correl/mage.git
synced 2024-12-26 11:09:27 +00:00
Changed some cards with kicker and multikicker to be more accurate.
This commit is contained in:
parent
c8d9006740
commit
b7fe361ca4
31 changed files with 311 additions and 215 deletions
|
@ -29,21 +29,21 @@
|
|||
package mage.sets.apocalypse;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.Constants.Zone;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.KickedCostCondition;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.effects.EntersBattlefieldEffect;
|
||||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
|
@ -59,14 +59,28 @@ public class Anavolver extends CardImpl<Anavolver> {
|
|||
this.color.setGreen(true);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
Ability firstAbility = new KickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false);
|
||||
firstAbility.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Constants.Duration.WhileOnBattlefield));
|
||||
firstAbility.addCost(new ManaCostsImpl("{1}{U}"));
|
||||
this.addAbility(firstAbility);
|
||||
Ability secondAbility = new KickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
|
||||
secondAbility.addEffect(new GainAbilitySourceEffect(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new RegenerateSourceEffect(), new PayLifeCost(3)), Constants.Duration.WhileOnBattlefield));
|
||||
secondAbility.addCost(new ColoredManaCost(Constants.ColoredManaSymbol.B));
|
||||
this.addAbility(secondAbility);
|
||||
|
||||
// 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}");
|
||||
this.getSpellAbility().addOptionalCost(kicker1);
|
||||
KickerManaCost kicker2 = new KickerManaCost("{B}");
|
||||
this.getSpellAbility().addOptionalCost(kicker2);
|
||||
|
||||
// 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(
|
||||
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.",
|
||||
"{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));
|
||||
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."
|
||||
EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition(kicker2), 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.\"",
|
||||
"{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));
|
||||
this.addAbility(ability2);
|
||||
}
|
||||
|
||||
public Anavolver(final Anavolver card) {
|
||||
|
@ -77,5 +91,4 @@ public class Anavolver extends CardImpl<Anavolver> {
|
|||
public Anavolver copy() {
|
||||
return new Anavolver(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -28,18 +28,17 @@
|
|||
package mage.sets.apocalypse;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.condition.common.KickedCostCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.effects.EntersBattlefieldEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.counters.CounterType;
|
||||
|
@ -57,14 +56,28 @@ public class Cetavolver extends CardImpl<Cetavolver> {
|
|||
this.color.setBlue(true);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
Ability firstAbility = new KickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false);
|
||||
firstAbility.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Constants.Duration.WhileOnBattlefield));
|
||||
firstAbility.addCost(new ManaCostsImpl("{1}{R}"));
|
||||
this.addAbility(firstAbility);
|
||||
Ability secondAbility = new KickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
|
||||
secondAbility.addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Constants.Duration.WhileOnBattlefield));
|
||||
secondAbility.addCost(new ColoredManaCost(Constants.ColoredManaSymbol.G));
|
||||
this.addAbility(secondAbility);
|
||||
|
||||
// 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}");
|
||||
this.getSpellAbility().addOptionalCost(kicker1);
|
||||
KickerManaCost kicker2 = new KickerManaCost("{G}");
|
||||
this.getSpellAbility().addOptionalCost(kicker2);
|
||||
|
||||
// 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(
|
||||
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.",
|
||||
"{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));
|
||||
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.
|
||||
EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition(kicker2), true,
|
||||
"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");
|
||||
((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield));
|
||||
this.addAbility(ability2);
|
||||
}
|
||||
|
||||
public Cetavolver(final Cetavolver card) {
|
||||
|
|
|
@ -28,21 +28,22 @@
|
|||
package mage.sets.apocalypse;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.Constants.Zone;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.common.KickedCostCondition;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.effects.EntersBattlefieldEffect;
|
||||
import mage.abilities.effects.common.RegenerateSourceEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
|
@ -59,14 +60,28 @@ public class Degavolver extends CardImpl<Degavolver> {
|
|||
this.color.setWhite(true);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
Ability firstAbility = new KickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false);
|
||||
firstAbility.addEffect(new GainAbilitySourceEffect(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new RegenerateSourceEffect(), new PayLifeCost(3)), Constants.Duration.WhileOnBattlefield));
|
||||
firstAbility.addCost(new ManaCostsImpl("{1}{B}"));
|
||||
this.addAbility(firstAbility);
|
||||
Ability secondAbility = new KickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
|
||||
secondAbility.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Constants.Duration.WhileOnBattlefield));
|
||||
secondAbility.addCost(new ColoredManaCost(Constants.ColoredManaSymbol.R));
|
||||
this.addAbility(secondAbility);
|
||||
|
||||
// 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}");
|
||||
this.getSpellAbility().addOptionalCost(kicker1);
|
||||
KickerManaCost kicker2 = new KickerManaCost("{R}");
|
||||
this.getSpellAbility().addOptionalCost(kicker2);
|
||||
|
||||
// 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(
|
||||
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.\"",
|
||||
"{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));
|
||||
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.
|
||||
EntersBattlefieldAbility ability2 = new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1),false), new KickedCostCondition(kicker2), true,
|
||||
"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");
|
||||
((EntersBattlefieldEffect)ability2.getEffects().get(0)).addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield));
|
||||
this.addAbility(ability2);
|
||||
}
|
||||
|
||||
public Degavolver(final Degavolver card) {
|
||||
|
|
|
@ -31,7 +31,9 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
|
@ -53,10 +55,16 @@ public class ApexHawks extends CardImpl<ApexHawks> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Multikicker (You may pay an additional any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{1}{W}")));
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
MultikickerAbility ability = new MultikickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{W}"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Apex Hawks enters the battlefield with a +1/+1 counter on it for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new MultikickerCount(), true)
|
||||
,"with a +1/+1 counter on it for each time it was kicked"));
|
||||
}
|
||||
|
||||
public ApexHawks(final ApexHawks card) {
|
||||
|
|
|
@ -29,12 +29,13 @@
|
|||
package mage.sets.worldwake;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.DiscardTargetEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -55,9 +56,12 @@ public class BloodhuskRitualist extends CardImpl<BloodhuskRitualist> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
MultikickerAbility ability = new MultikickerAbility(new DiscardTargetEffect(1), false);
|
||||
// Multikicker (You may pay an additional {B} any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{B}")));
|
||||
|
||||
// When Bloodhusk Ritualist enters the battlefield, target opponent discards a card for each time it was kicked.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(new MultikickerCount()));
|
||||
ability.addTarget(new TargetOpponent());
|
||||
ability.addManaCost(new ColoredManaCost(Constants.ColoredManaSymbol.B));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -29,13 +29,13 @@ package mage.sets.worldwake;
|
|||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import mage.Constants;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Outcome;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EmptyEffect;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
@ -55,7 +55,7 @@ public class CometStorm extends CardImpl<CometStorm> {
|
|||
this.color.setRed(true);
|
||||
|
||||
// Multikicker {1}
|
||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new EmptyEffect("Multikicker {1}")));
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{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.
|
||||
this.getSpellAbility().addEffect(new CometStormEffect());
|
||||
|
@ -74,7 +74,7 @@ public class CometStorm extends CardImpl<CometStorm> {
|
|||
class CometStormEffect extends OneShotEffect<CometStormEffect> {
|
||||
|
||||
public CometStormEffect() {
|
||||
super(Constants.Outcome.Damage);
|
||||
super(Outcome.Damage);
|
||||
staticText = "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";
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ class CometStormEffect extends OneShotEffect<CometStormEffect> {
|
|||
Player you = game.getPlayer(source.getControllerId());
|
||||
TargetCreatureOrPlayer target = new TargetCreatureOrPlayer(amount);
|
||||
if (you != null) {
|
||||
if (target.canChoose(source.getControllerId(), game) && target.choose(Constants.Outcome.Damage, source.getControllerId(), source.getId(), game)) {
|
||||
if (target.canChoose(source.getControllerId(), game) && target.choose(Outcome.Damage, source.getControllerId(), source.getId(), game)) {
|
||||
if (!target.getTargets().isEmpty()) {
|
||||
List<UUID> targets = target.getTargets();
|
||||
for (UUID uuid : targets) {
|
||||
|
|
|
@ -31,7 +31,9 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.IslandwalkAbility;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
|
@ -54,10 +56,16 @@ public class EnclaveElite extends CardImpl<EnclaveElite> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Multikicker (You may pay an additional any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{1}{U}")));
|
||||
|
||||
// Islandwalk
|
||||
this.addAbility(new IslandwalkAbility());
|
||||
MultikickerAbility ability = new MultikickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{U}"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Enclave Elite enters the battlefield with a +1/+1 counter on it for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new MultikickerCount(), true),
|
||||
"with a +1/+1 counter on it for each time it was kicked"));
|
||||
}
|
||||
|
||||
public EnclaveElite(final EnclaveElite card) {
|
||||
|
|
|
@ -53,21 +53,21 @@ import java.util.UUID;
|
|||
*/
|
||||
public class EverflowingChalice extends CardImpl<EverflowingChalice> {
|
||||
|
||||
protected static final String rule = "Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked";
|
||||
protected static final String rule = "Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.";
|
||||
|
||||
public EverflowingChalice(UUID ownerId) {
|
||||
super(ownerId, 123, "Everflowing Chalice", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{0}");
|
||||
this.expansionSetCode = "WWK";
|
||||
|
||||
// Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.
|
||||
Ability ability1 = new EntersBattlefieldAbility(new EverflowingChaliceAddCountersEffect());
|
||||
this.addAbility(ability1);
|
||||
|
||||
// Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)
|
||||
MultikickerAbility ability = new MultikickerAbility(new EmptyEffect(rule), false);
|
||||
ability.addManaCost(new GenericManaCost(2));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.
|
||||
Ability ability1 = new EntersBattlefieldAbility(new EverflowingChaliceAddCountersEffect(), null, true, rule, null);
|
||||
this.addAbility(ability1);
|
||||
|
||||
this.addAbility(new DynamicManaAbility(Mana.ColorlessMana, new CountersCount(CounterType.CHARGE)));
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,6 @@ class EverflowingChaliceAddCountersEffect extends OneShotEffect<EverflowingChali
|
|||
|
||||
public EverflowingChaliceAddCountersEffect() {
|
||||
super(Constants.Outcome.Benefit);
|
||||
staticText = EverflowingChalice.rule;
|
||||
}
|
||||
|
||||
public EverflowingChaliceAddCountersEffect(final EverflowingChaliceAddCountersEffect effect) {
|
||||
|
|
|
@ -31,7 +31,9 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -52,9 +54,13 @@ public class GnarlidPack extends CardImpl<GnarlidPack> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
MultikickerAbility ability = new MultikickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{G}"));
|
||||
this.addAbility(ability);
|
||||
// Multikicker (You may pay an additional any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{1}{G}")));
|
||||
|
||||
// Gnarlid Pack enters the battlefield with a +1/+1 counter on it for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new MultikickerCount(), true),
|
||||
"with a +1/+1 counter on it for each time it was kicked"));
|
||||
}
|
||||
|
||||
public GnarlidPack(final GnarlidPack card) {
|
||||
|
|
|
@ -33,14 +33,14 @@ import mage.Constants.CardType;
|
|||
import mage.Constants.Rarity;
|
||||
import mage.Constants.TargetController;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EmptyEffect;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.CountersCount;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.continious.BoostAllEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.counters.CounterType;
|
||||
|
@ -48,8 +48,6 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -78,12 +76,13 @@ public class JoragaWarcaller extends CardImpl<JoragaWarcaller> {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Multikicker {1}{G}
|
||||
MultikickerAbility ability = new MultikickerAbility(new EmptyEffect(""), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{G}"));
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{1}{G}")));
|
||||
|
||||
// Joraga Warcaller enters the battlefield with a +1/+1 counter on it for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldAbility(new JoragaWarcallerEffect()));
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new MultikickerCount(), true),
|
||||
"with a +1/+1 counter on it for each time it was kicked"));
|
||||
|
||||
|
||||
// Other Elf creatures you control get +1/+1 for each +1/+1 counter on Joraga Warcaller.
|
||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostAllEffect(new CountersCount(CounterType.P1P1), new CountersCount(CounterType.P1P1), Constants.Duration.WhileOnBattlefield, filter, true, rule)));
|
||||
|
@ -99,37 +98,3 @@ public class JoragaWarcaller extends CardImpl<JoragaWarcaller> {
|
|||
return new JoragaWarcaller(this);
|
||||
}
|
||||
}
|
||||
|
||||
class JoragaWarcallerEffect extends OneShotEffect<JoragaWarcallerEffect> {
|
||||
|
||||
public JoragaWarcallerEffect() {
|
||||
super(Constants.Outcome.Benefit);
|
||||
staticText = "with a +1/+1 counter on it for each time it was kicked";
|
||||
}
|
||||
|
||||
public JoragaWarcallerEffect(final JoragaWarcallerEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (permanent != null) {
|
||||
for (Ability ability : permanent.getAbilities()) {
|
||||
if (ability instanceof MultikickerAbility) {
|
||||
int count = ((MultikickerAbility)ability).getActivateCount();
|
||||
if (count > 0) {
|
||||
permanent.addCounters(CounterType.P1P1.createInstance(count), game);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JoragaWarcallerEffect copy() {
|
||||
return new JoragaWarcallerEffect(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -31,7 +31,9 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
|
@ -52,10 +54,14 @@ public class LightkeeperOfEmeria extends CardImpl<LightkeeperOfEmeria> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
// Multikicker (You may pay an additional {W} any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{W}")));
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
MultikickerAbility ability = new MultikickerAbility(new GainLifeEffect(2), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{W}"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// When Lightkeeper of Emeria enters the battlefield, you gain 2 life for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(new MultikickerCount())));
|
||||
}
|
||||
|
||||
public LightkeeperOfEmeria(final LightkeeperOfEmeria card) {
|
||||
|
|
|
@ -31,7 +31,9 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
import mage.abilities.keyword.SwampwalkAbility;
|
||||
|
@ -54,10 +56,16 @@ public class QuagVampires extends CardImpl<QuagVampires> {
|
|||
this.power = 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.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{1}{B}")));
|
||||
|
||||
// Swampwalk
|
||||
this.addAbility(new SwampwalkAbility());
|
||||
MultikickerAbility ability = new MultikickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{B}"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Quag Vampires enters the battlefield with a +1/+1 counter on it for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new MultikickerCount(), true),
|
||||
"with a +1/+1 counter on it for each time it was kicked"));
|
||||
}
|
||||
|
||||
public QuagVampires(final QuagVampires card) {
|
||||
|
|
|
@ -31,7 +31,10 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EmptyEffect;
|
||||
import mage.abilities.common.EntersBattlefieldAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
|
@ -53,10 +56,17 @@ public class SkitterOfLizards extends CardImpl<SkitterOfLizards> {
|
|||
this.power = 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.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{1}{R}")));
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
MultikickerAbility ability = new MultikickerAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{R}"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Skitter of Lizards enters the battlefield with a +1/+1 counter on it for each time it was kicked.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new MultikickerCount(), true),
|
||||
"with a +1/+1 counter on it for each time it was kicked"));
|
||||
|
||||
}
|
||||
|
||||
public SkitterOfLizards(final SkitterOfLizards card) {
|
||||
|
|
|
@ -27,12 +27,9 @@
|
|||
*/
|
||||
package mage.sets.worldwake;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EmptyEffect;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -43,6 +40,9 @@ import mage.game.permanent.Permanent;
|
|||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.Constants.Outcome;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
|
||||
/**
|
||||
* @author noxx
|
||||
|
@ -55,12 +55,9 @@ public class StrengthOfTheTajuru extends CardImpl<StrengthOfTheTajuru> {
|
|||
|
||||
this.color.setGreen(true);
|
||||
|
||||
// Multikicker {1}
|
||||
//MultikickerAbility ability = new MultikickerAbility(new EmptyEffect(""), false);
|
||||
//ability.addManaCost(new GenericManaCost(1));
|
||||
//this.addAbility(ability);
|
||||
|
||||
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new EmptyEffect("Multikicker {1}")));
|
||||
// Multikicker (You may pay an additional {1} any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{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.
|
||||
this.getSpellAbility().addEffect(new StrengthOfTheTajuruAddCountersTargetEffect());
|
||||
|
@ -88,7 +85,7 @@ public class StrengthOfTheTajuru extends CardImpl<StrengthOfTheTajuru> {
|
|||
class StrengthOfTheTajuruAddCountersTargetEffect extends OneShotEffect<StrengthOfTheTajuruAddCountersTargetEffect> {
|
||||
|
||||
public StrengthOfTheTajuruAddCountersTargetEffect() {
|
||||
super(Constants.Outcome.BoostCreature);
|
||||
super(Outcome.BoostCreature);
|
||||
staticText = "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.";
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,10 @@ import mage.Constants.CardType;
|
|||
import mage.Constants.ColoredManaSymbol;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MultikickerCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.keyword.MultikickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -53,9 +56,11 @@ public class WolfbriarElemental extends CardImpl<WolfbriarElemental> {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
MultikickerAbility ability = new MultikickerAbility(new CreateTokenEffect(new WolfToken()), false);
|
||||
ability.addManaCost(new ColoredManaCost(ColoredManaSymbol.G));
|
||||
this.addAbility(ability);
|
||||
// Multikicker (You may pay an additional {G} any number of times as you cast this spell.)
|
||||
this.addAbility(new MultikickerAbility(new ManaCostsImpl("{G}")));
|
||||
|
||||
// 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())));
|
||||
}
|
||||
|
||||
public WolfbriarElemental(final WolfbriarElemental card) {
|
||||
|
|
|
@ -48,7 +48,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class AetherFigment extends CardImpl<AetherFigment> {
|
||||
|
||||
private final static String staticText = "If AEther Figment was kicked, it enters the battlefield with two +1/+1 counters on it";
|
||||
private final static String staticText = "with two +1/+1 counters on it, if it was kicked";
|
||||
|
||||
public AetherFigment(UUID ownerId) {
|
||||
super(ownerId, 40, "AEther Figment", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}");
|
||||
|
|
|
@ -27,12 +27,13 @@
|
|||
*/
|
||||
package mage.sets.zendikar;
|
||||
|
||||
import mage.Constants;
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalContinousEffect;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.ContinuousEffect;
|
||||
|
@ -43,7 +44,6 @@ import mage.cards.CardImpl;
|
|||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author nantuko, Loki
|
||||
|
@ -58,11 +58,11 @@ public class BoldDefense extends CardImpl<BoldDefense> {
|
|||
this.color.setWhite(true);
|
||||
|
||||
DynamicValue dn = new BoldDefensePTCount();
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(dn, dn, Constants.Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new BoostControlledEffect(dn, dn, Duration.EndOfTurn));
|
||||
|
||||
this.getSpellAbility().addOptionalCost(new ManaCostsImpl("{3}{W}"));
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{3}{W}"));
|
||||
|
||||
ContinuousEffect effect = new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Constants.Duration.EndOfTurn, new FilterCreaturePermanent(), false);
|
||||
ContinuousEffect effect = new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent(), false);
|
||||
this.getSpellAbility().addEffect(new ConditionalContinousEffect(effect, KickedCondition.getInstance(), staticText));
|
||||
}
|
||||
|
||||
|
@ -90,13 +90,19 @@ class BoldDefensePTCount implements DynamicValue {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DynamicValue clone() {
|
||||
return new BoldDefensePTCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "";
|
||||
return "1";
|
||||
}
|
||||
}
|
|
@ -71,7 +71,7 @@ public class GatekeeperOfMalakir extends CardImpl<GatekeeperOfMalakir> {
|
|||
EntersBattlefieldTriggeredAbility ability =
|
||||
new EntersBattlefieldTriggeredAbility(new SacrificeEffect(filter, 1, "target player"));
|
||||
|
||||
Ability conditionalAbility = new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, target player sacrifices a creature");
|
||||
Ability conditionalAbility = new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, target player sacrifices a creature.");
|
||||
conditionalAbility.addTarget(new TargetPlayer());
|
||||
this.addAbility(conditionalAbility);
|
||||
}
|
||||
|
|
|
@ -32,11 +32,13 @@ import mage.Constants.CardType;
|
|||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.continious.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
||||
/**
|
||||
|
@ -55,10 +57,13 @@ public class GoblinBushwhacker extends CardImpl<GoblinBushwhacker> {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
KickerAbility ability = new KickerAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn), false);
|
||||
// Kicker {R} (You may pay an additional {R} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{R}"));
|
||||
|
||||
// When Goblin Bushwhacker enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn), false);
|
||||
ability.addEffect(new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
|
||||
ability.addCost(new ManaCostsImpl("{R}"));
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, creatures you control get +1/+0 and gain haste until end of turn."));
|
||||
}
|
||||
|
||||
public GoblinBushwhacker(final GoblinBushwhacker card) {
|
||||
|
|
|
@ -28,20 +28,16 @@
|
|||
|
||||
package mage.sets.zendikar;
|
||||
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.ColoredManaSymbol;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ColoredManaCost;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.target.common.TargetNonBasicLandPermanent;
|
||||
|
||||
|
@ -59,13 +55,17 @@ public class GoblinRuinblaster extends CardImpl<GoblinRuinblaster> {
|
|||
this.subtype.add("Shaman");
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(1);
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
Ability ability1 = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
|
||||
ability1.addTarget(new TargetNonBasicLandPermanent());
|
||||
KickerAbility ability2 = new KickerAbility(new GainAbilitySourceEffect(ability1, Duration.WhileOnBattlefield), false);
|
||||
ability2.addManaCost(new ColoredManaCost(ColoredManaSymbol.R));
|
||||
this.addAbility(ability2);
|
||||
|
||||
// Kicker {R} (You may pay an additional {R} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{R}"));
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// When Goblin Ruinblaster enters the battlefield, if it was kicked, destroy target nonbasic land.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
|
||||
ability.addTarget(new TargetNonBasicLandPermanent());
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, destroy target nonbasic land."));
|
||||
}
|
||||
|
||||
public GoblinRuinblaster(final GoblinRuinblaster card) {
|
||||
|
|
|
@ -31,10 +31,12 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -53,11 +55,16 @@ public class HeartstabberMosquito extends CardImpl<HeartstabberMosquito> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{2}{B}"));
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
KickerAbility ability = new KickerAbility(new DestroyTargetEffect(), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{2}{B}"));
|
||||
|
||||
// When Heartstabber Mosquito enters the battlefield, if it was kicked, destroy target creature.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, destroy target creature."));
|
||||
}
|
||||
|
||||
public HeartstabberMosquito(final HeartstabberMosquito card) {
|
||||
|
|
|
@ -31,10 +31,11 @@ package mage.sets.zendikar;
|
|||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.DrawCardControllerEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.target.common.TargetNonlandPermanent;
|
||||
|
||||
|
@ -48,11 +49,17 @@ public class IntoTheRoil extends CardImpl<IntoTheRoil> {
|
|||
super(ownerId, 48, "Into the Roil", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{U}");
|
||||
this.expansionSetCode = "ZEN";
|
||||
this.color.setBlue(true);
|
||||
this.getSpellAbility().addTarget(new TargetNonlandPermanent());
|
||||
|
||||
// Kicker {1}{U} (You may pay an additional {1}{U} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{1}{U}"));
|
||||
|
||||
// Return target nonland permanent to its owner's hand. If Into the Roil was kicked, draw a card.
|
||||
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
KickerAbility ability = new KickerAbility(new DrawCardControllerEffect(1), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{U}"));
|
||||
this.addAbility(ability);
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DrawCardControllerEffect(1),
|
||||
KickedCondition.getInstance(),
|
||||
"If {this} was kicked, draw a card"));
|
||||
this.getSpellAbility().addTarget(new TargetNonlandPermanent());
|
||||
}
|
||||
|
||||
public IntoTheRoil(final IntoTheRoil card) {
|
||||
|
|
|
@ -62,7 +62,7 @@ public class KorAeronaut extends CardImpl<KorAeronaut> {
|
|||
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), false);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, target creature gains flying until end of turn"));
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, target creature gains flying until end of turn."));
|
||||
}
|
||||
|
||||
public KorAeronaut(final KorAeronaut card) {
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
package mage.sets.zendikar;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
|
@ -65,11 +64,14 @@ public class KorSanctifiers extends CardImpl<KorSanctifiers> {
|
|||
this.color.setWhite(true);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Kicker {W} (You may pay an additional {W} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{W}"));
|
||||
|
||||
// When Kor Sanctifiers enters the battlefield, if it was kicked, destroy target artifact or enchantment.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, destroy target artifact or enchantment"));
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, destroy target artifact or enchantment."));
|
||||
}
|
||||
|
||||
public KorSanctifiers (final KorSanctifiers card) {
|
||||
|
|
|
@ -48,7 +48,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class MarshCasualties extends CardImpl<MarshCasualties> {
|
||||
|
||||
private static final String ruleText = "Creatures target player controls get -1/-1 until end of turn. If {this} was kicked, those creatures get -2/-2 until end of turn instead.";
|
||||
private static final String ruleText = "Creatures target player controls get -1/-1 until end of turn. If {this} was kicked, those creatures get -2/-2 until end of turn instead";
|
||||
|
||||
public MarshCasualties(UUID ownerId) {
|
||||
super(ownerId, 101, "Marsh Casualties", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{B}{B}");
|
||||
|
|
|
@ -31,9 +31,11 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
@ -62,10 +64,13 @@ public class MoldShambler extends CardImpl<MoldShambler> {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
KickerAbility ability = new KickerAbility(new DestroyTargetEffect(), false);
|
||||
ability.addManaCost(new ManaCostsImpl("{1}{G}"));
|
||||
// Kicker {1}{G} (You may pay an additional {1}{G} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{1}{G}"));
|
||||
|
||||
// When Mold Shambler enters the battlefield, if it was kicked, destroy target noncreature permanent.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, destroy target noncreature permanent."));
|
||||
}
|
||||
|
||||
public MoldShambler(final MoldShambler card) {
|
||||
|
|
|
@ -29,16 +29,14 @@ package mage.sets.zendikar;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
@ -66,14 +64,16 @@ public class OranRiefRecluse extends CardImpl<OranRiefRecluse> {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Kicker {2}{G} (You may pay an additional {2}{G} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{2}{G}"));
|
||||
|
||||
// Reach (This creature can block creatures with flying.)
|
||||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
|
||||
// When Oran-Rief Recluse enters the battlefield, if it was kicked, destroy target creature with flying.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
|
||||
KickerAbility kickerAbility = new KickerAbility(new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield), false);
|
||||
kickerAbility.addManaCost(new ManaCostsImpl("{2}{G}"));
|
||||
this.addAbility(kickerAbility);
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, destroy target creature with flying."));
|
||||
}
|
||||
|
||||
public OranRiefRecluse(final OranRiefRecluse card) {
|
||||
|
|
|
@ -31,10 +31,12 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.TapTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.target.TargetPermanent;
|
||||
|
@ -54,13 +56,16 @@ public class TempestOwl extends CardImpl<TempestOwl> {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Kicker {4}{U}
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{4}{U}"));
|
||||
|
||||
// When Tempest Owl enters the battlefield, if it was kicked, tap up to three target permanents.
|
||||
KickerAbility kickerAbility = new KickerAbility(new TapTargetEffect(), false);
|
||||
kickerAbility.addTarget(new TargetPermanent(0, 3, new FilterPermanent(), false));
|
||||
kickerAbility.addManaCost(new ManaCostsImpl("{4}{U}"));
|
||||
this.addAbility(kickerAbility);
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), false);
|
||||
ability.addTarget(new TargetPermanent(0, 3, new FilterPermanent(), false));
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, tap up to three target permanents."));
|
||||
}
|
||||
|
||||
public TempestOwl(final TempestOwl card) {
|
||||
|
|
|
@ -29,15 +29,13 @@ package mage.sets.zendikar;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalTriggeredAbility;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
@ -57,12 +55,13 @@ public class TorchSlinger extends CardImpl<TorchSlinger> {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
// Kicker {1}{R} (You may pay an additional {1}{R} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{1}{R}"));
|
||||
|
||||
KickerAbility kickerAbility = new KickerAbility(new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield), false);
|
||||
kickerAbility.addManaCost(new ManaCostsImpl("{1}{R}"));
|
||||
this.addAbility(kickerAbility);
|
||||
// When Torch Slinger enters the battlefield, if it was kicked, it deals 2 damage to target creature.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2), false);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.getInstance(), "When {this} enters the battlefield, if it was kicked, it deals 2 damage to target creature."));
|
||||
}
|
||||
|
||||
public TorchSlinger(final TorchSlinger card) {
|
||||
|
|
|
@ -31,10 +31,12 @@ import java.util.UUID;
|
|||
import mage.Constants.CardType;
|
||||
import mage.Constants.Duration;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.costs.mana.KickerManaCost;
|
||||
import mage.abilities.decorator.ConditionalContinousEffect;
|
||||
import mage.abilities.effects.ContinuousEffect;
|
||||
import mage.abilities.effects.common.continious.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -51,13 +53,14 @@ public class VampiresBite extends CardImpl<VampiresBite> {
|
|||
|
||||
this.color.setBlack(true);
|
||||
|
||||
TargetCreaturePermanent target = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(target);
|
||||
// Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.)
|
||||
this.getSpellAbility().addOptionalCost(new KickerManaCost("{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.
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(3, 0, Duration.EndOfTurn));
|
||||
KickerAbility ability = new KickerAbility(new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), false);
|
||||
ability.addTarget(target);
|
||||
ability.addManaCost(new ManaCostsImpl("{2}{B}"));
|
||||
this.addAbility(ability);
|
||||
ContinuousEffect effect = new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn);
|
||||
this.getSpellAbility().addEffect(new ConditionalContinousEffect(effect, KickedCondition.getInstance(), "If {this} was kicked, that creature gains lifelink until end of turn"));
|
||||
}
|
||||
|
||||
public VampiresBite(final VampiresBite card) {
|
||||
|
|
|
@ -47,7 +47,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class VinesOfVastwood extends CardImpl<VinesOfVastwood> {
|
||||
|
||||
private static final String staticText = "If Vines of Vastwood was kicked, that creature gets +4/+4 until end of turn.";
|
||||
private static final String staticText = "If Vines of Vastwood was kicked, that creature gets +4/+4 until end of turn";
|
||||
|
||||
public VinesOfVastwood(UUID ownerId) {
|
||||
super(ownerId, 193, "Vines of Vastwood", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{G}");
|
||||
|
|
Loading…
Reference in a new issue