diff --git a/Mage.Sets/src/mage/cards/a/AetherRevolt.java b/Mage.Sets/src/mage/cards/a/AetherRevolt.java
index b3be8471053..f6f525e1897 100644
--- a/Mage.Sets/src/mage/cards/a/AetherRevolt.java
+++ b/Mage.Sets/src/mage/cards/a/AetherRevolt.java
@@ -33,7 +33,7 @@ public final class AetherRevolt extends CardImpl {
// Revolt -- As long as a permanent you controlled left the battlefield this turn, if a source you control would deal noncombat damage to an opponent or a permanent an opponent controls, it deals that much damage plus 2 instead.
this.addAbility(new SimpleStaticAbility(new ConditionalReplacementEffect(
new AetherRevoltEffect(), RevoltCondition.instance
- ).setText("As long as a permanent you controlled left the battlefield this turn, "
+ ).setText("as long as a permanent left the battlefield under your control this turn, "
+ "if a source you control would deal noncombat damage to an opponent or a permanent an opponent controls, "
+ "it deals that much damage plus 2 instead")
).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
diff --git a/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java b/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java
index 81879be5107..4fc6fa05bc5 100644
--- a/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java
+++ b/Mage.Sets/src/mage/cards/a/AidFromTheCowl.java
@@ -1,38 +1,38 @@
package mage.cards.a;
-import java.util.UUID;
-import mage.MageObject;
import mage.abilities.Ability;
-import mage.abilities.TriggeredAbility;
-import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
-import mage.cards.*;
+import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
+import mage.cards.Card;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.cards.CardsImpl;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
-import mage.filter.common.FilterPermanentCard;
import mage.game.Game;
import mage.players.Player;
+import mage.util.CardUtil;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class AidFromTheCowl extends CardImpl {
- private static final String ruleText = "Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, "
- + "reveal the top card of your library. If it's a permanent card, you may put it onto the battlefield. Otherwise, you may put it on the bottom of your library.";
-
public AidFromTheCowl(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}{G}");
// Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn,
// reveal the top card of your library. If it is a permanent card, you may put it onto the battlefield. Otherwise, put it on the bottom of your library.
- TriggeredAbility ability = new BeginningOfEndStepTriggeredAbility(new AidFromTheCowlEffect());
- this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, RevoltCondition.instance, ruleText).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new BeginningOfEndStepTriggeredAbility(new AidFromTheCowlEffect())
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private AidFromTheCowl(final AidFromTheCowl card) {
@@ -49,7 +49,8 @@ class AidFromTheCowlEffect extends OneShotEffect {
AidFromTheCowlEffect() {
super(Outcome.PutCreatureInPlay);
- this.staticText = "reveal the top card of your library. If it's a permanent card, you may put it onto the battlefield. Otherwise, you may put that card on the bottom of your library";
+ this.staticText = "reveal the top card of your library. If it's a permanent card, " +
+ "you may put it onto the battlefield. Otherwise, you may put that card on the bottom of your library";
}
private AidFromTheCowlEffect(final AidFromTheCowlEffect effect) {
@@ -64,25 +65,20 @@ class AidFromTheCowlEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
- MageObject sourceObject = game.getObject(source);
- if (controller == null || sourceObject == null) {
+ if (controller == null || !controller.getLibrary().hasCards()) {
return false;
}
-
- if (controller.getLibrary().hasCards()) {
- Card card = controller.getLibrary().getFromTop(game);
- Cards cards = new CardsImpl(card);
- controller.revealCards(sourceObject.getIdName(), cards, game);
-
- if (card != null) {
- if (new FilterPermanentCard().match(card, game) && controller.chooseUse(Outcome.Neutral, "Put " + card.getIdName() + " onto the battlefield?", source, game)) {
- controller.moveCards(card, Zone.BATTLEFIELD, source, game);
- } else if (controller.chooseUse(Outcome.Neutral, "Put " + card.getIdName() + " on the bottom of your library?", source, game)) {
- controller.putCardsOnBottomOfLibrary(cards, game, source, false);
- } else {
- game.informPlayers(controller.getLogName() + " puts the revealed card back to the top of the library.");
- }
- }
+ Card card = controller.getLibrary().getFromTop(game);
+ if (card == null) {
+ return false;
+ }
+ controller.revealCards(CardUtil.getSourceIdName(game, source), new CardsImpl(card), game);
+ if (card.isPermanent(game) && controller.chooseUse(Outcome.Neutral, "Put " + card.getIdName() + " onto the battlefield?", source, game)) {
+ controller.moveCards(card, Zone.BATTLEFIELD, source, game);
+ } else if (controller.chooseUse(Outcome.Neutral, "Put " + card.getIdName() + " on the bottom of your library?", source, game)) {
+ controller.putCardsOnBottomOfLibrary(card, game, source, false);
+ } else {
+ game.informPlayers(controller.getLogName() + " puts the revealed card back to the top of the library.");
}
return true;
}
diff --git a/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java b/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java
index 15687ad96e3..0d870248803 100644
--- a/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java
+++ b/Mage.Sets/src/mage/cards/a/AirdropAeronauts.java
@@ -1,10 +1,8 @@
package mage.cards.a;
import mage.MageInt;
-import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
@@ -33,13 +31,10 @@ public final class AirdropAeronauts extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Revolt — When Airdrop Aeronauts enters the battlefield, if a permanent you controlled left the battlefield this turn, you gain 5 life.
- Ability ability = new ConditionalInterveningIfTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new GainLifeEffect(5), false),
- RevoltCondition.instance, "When {this} enters, " +
- "if a permanent you controlled left the battlefield this turn, you gain 5 life."
- );
- ability.setAbilityWord(AbilityWord.REVOLT);
- this.addAbility(ability.addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(5))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private AirdropAeronauts(final AirdropAeronauts card) {
diff --git a/Mage.Sets/src/mage/cards/c/CallForUnity.java b/Mage.Sets/src/mage/cards/c/CallForUnity.java
index a6fdead9c67..c1c60ddeb73 100644
--- a/Mage.Sets/src/mage/cards/c/CallForUnity.java
+++ b/Mage.Sets/src/mage/cards/c/CallForUnity.java
@@ -1,46 +1,44 @@
-
package mage.cards.c;
-import java.util.UUID;
-import mage.abilities.TriggeredAbility;
-import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
+import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Duration;
-import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class CallForUnity extends CardImpl {
- private static final String ruleText = "Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, "
- + "put a unity counter on {this}.";
+ private static final DynamicValue xValue = new CountersSourceCount(CounterType.UNITY);
public CallForUnity(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}{W}");
// Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a unity counter on Call for Unity.
- TriggeredAbility ability = new BeginningOfEndStepTriggeredAbility(new AddCountersSourceEffect(CounterType.UNITY.createInstance(), true));
- this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, RevoltCondition.instance, ruleText).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new BeginningOfEndStepTriggeredAbility(new AddCountersSourceEffect(CounterType.UNITY.createInstance()))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
// Creatures you control get +1/+1 for each unity counter on Call for Unity.
- Effect effect = new BoostControlledEffect(new CountersSourceCount(CounterType.UNITY), new CountersSourceCount(CounterType.UNITY), Duration.WhileOnBattlefield,
- StaticFilters.FILTER_PERMANENT_CREATURE, false);
- effect.setText("Creatures you control get +1/+1 for each unity counter on {this}");
- this.addAbility(new SimpleStaticAbility(effect));
+ this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
+ xValue, xValue, Duration.WhileOnBattlefield,
+ StaticFilters.FILTER_PERMANENT_CREATURE, false
+ ).setText("creatures you control get +1/+1 for each unity counter on {this}")));
}
private CallForUnity(final CallForUnity card) {
diff --git a/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java b/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java
index 1e25f1633ec..6b04aa94436 100644
--- a/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java
+++ b/Mage.Sets/src/mage/cards/c/CountlessGearsRenegade.java
@@ -1,10 +1,8 @@
package mage.cards.c;
import mage.MageInt;
-import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -31,13 +29,10 @@ public final class CountlessGearsRenegade extends CardImpl {
// Revolt — When Countless Gears Renegade enters the battlefield, if a permanent you controlled
// left the battlefield this turn, create a 1/1 colorless Servo artifact creature token.
- Ability ability = new ConditionalInterveningIfTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ServoToken()), false),
- RevoltCondition.instance, "When {this} enters, if a permanent you controlled " +
- "left the battlefield this turn, create a 1/1 colorless Servo artifact creature token."
- );
- ability.setAbilityWord(AbilityWord.REVOLT);
- this.addAbility(ability.addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ServoToken()))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private CountlessGearsRenegade(final CountlessGearsRenegade card) {
diff --git a/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java b/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java
index f0038f030ef..9decd10ada3 100644
--- a/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java
+++ b/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java
@@ -4,7 +4,6 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -40,14 +39,10 @@ public final class DeadeyeHarpooner extends CardImpl {
this.toughness = new MageInt(2);
// Revolt — When Deadeye Harpooner enters the battlefield, if a permanent you controlled left the battlefield this turn, destroy target tapped creature an opponent controls.
- Ability ability = new ConditionalInterveningIfTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false),
- RevoltCondition.instance, "When {this} enters, if a permanent you controlled " +
- "left the battlefield this turn, destroy target tapped creature an opponent controls."
- );
- ability.setAbilityWord(AbilityWord.REVOLT);
+ Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect())
+ .withInterveningIf(RevoltCondition.instance);
ability.addTarget(new TargetPermanent(filter));
- this.addAbility(ability.addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(ability.setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private DeadeyeHarpooner(final DeadeyeHarpooner card) {
diff --git a/Mage.Sets/src/mage/cards/d/Decommission.java b/Mage.Sets/src/mage/cards/d/Decommission.java
index 147fe2d959a..4e3bba20f53 100644
--- a/Mage.Sets/src/mage/cards/d/Decommission.java
+++ b/Mage.Sets/src/mage/cards/d/Decommission.java
@@ -7,6 +7,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
@@ -15,7 +16,6 @@ import mage.watchers.common.RevoltWatcher;
import java.util.UUID;
/**
- *
* @author emerald000
*/
public final class Decommission extends CardImpl {
@@ -28,7 +28,10 @@ public final class Decommission extends CardImpl {
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
// Revolt — If a permanent you controlled left the battlefield this turn, you gain 3 life.
- this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new GainLifeEffect(3), RevoltCondition.instance, "
Revolt — If a permanent you controlled left the battlefield this turn, you gain 3 life."));
+ this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
+ new GainLifeEffect(3), RevoltCondition.instance, "
" + AbilityWord.REVOLT.formatWord() +
+ "If a permanent you controlled left the battlefield this turn, you gain 3 life."
+ ));
this.getSpellAbility().addWatcher(new RevoltWatcher());
this.getSpellAbility().addHint(RevoltCondition.getHint());
}
diff --git a/Mage.Sets/src/mage/cards/f/FatalPush.java b/Mage.Sets/src/mage/cards/f/FatalPush.java
index 19452081f46..cf50d901f9b 100644
--- a/Mage.Sets/src/mage/cards/f/FatalPush.java
+++ b/Mage.Sets/src/mage/cards/f/FatalPush.java
@@ -1,22 +1,21 @@
-
package mage.cards.f;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.condition.common.RevoltCondition;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.game.Game;
import mage.game.permanent.Permanent;
-import mage.players.Player;
import mage.target.common.TargetCreaturePermanent;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author emerald000
*/
public final class FatalPush extends CardImpl {
@@ -46,7 +45,9 @@ class FatalPushEffect extends OneShotEffect {
FatalPushEffect() {
super(Outcome.DestroyPermanent);
- this.staticText = "Destroy target creature if it has mana value 2 or less.
Revolt — Destroy that creature if it has mana value 4 or less instead if a permanent you controlled left the battlefield this turn";
+ this.staticText = "Destroy target creature if it has mana value 2 or less.
" +
+ AbilityWord.REVOLT.formatWord() + "Destroy that creature if it has mana value 4 " +
+ "or less instead if a permanent you controlled left the battlefield this turn";
}
private FatalPushEffect(final FatalPushEffect effect) {
@@ -60,16 +61,13 @@ class FatalPushEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
- Player controller = game.getPlayer(source.getControllerId());
- if (controller != null) {
- Permanent targetCreature = game.getPermanent(this.getTargetPointer().getFirst(game, source));
- if (targetCreature != null) {
- int cmc = targetCreature.getManaValue();
- if (cmc <= 2
- || (RevoltCondition.instance.apply(game, source) && cmc <= 4)) {
- targetCreature.destroy(source, game, false);
- }
- }
+ Permanent targetCreature = game.getPermanent(this.getTargetPointer().getFirst(game, source));
+ if (targetCreature == null) {
+ return false;
+ }
+ int cmc = targetCreature.getManaValue();
+ if ((cmc <= 2 || (RevoltCondition.instance.apply(game, source) && cmc <= 4))
+ && targetCreature.destroy(source, game, false)) {
return true;
}
return false;
diff --git a/Mage.Sets/src/mage/cards/g/GreenwheelLiberator.java b/Mage.Sets/src/mage/cards/g/GreenwheelLiberator.java
index 2934e000426..130582d805a 100644
--- a/Mage.Sets/src/mage/cards/g/GreenwheelLiberator.java
+++ b/Mage.Sets/src/mage/cards/g/GreenwheelLiberator.java
@@ -1,19 +1,20 @@
package mage.cards.g;
-import java.util.UUID;
import mage.MageInt;
-import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.RevoltCondition;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
* @author JRHerlehy
*/
@@ -29,11 +30,11 @@ public final class GreenwheelLiberator extends CardImpl {
// Revolt — Greenbelt Liberator enters the battlefield with two +1/+1 counters on it if a
// permanent you controlled left the battlefield this turn.
- Ability ability = new EntersBattlefieldAbility(
- new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false, RevoltCondition.instance,
- "Revolt — {this} enters with two +1/+1 counters on it if a permanent you controlled left the battlefield this turn.", null);
- ability.addWatcher(new RevoltWatcher());
- this.addAbility(ability.addHint(RevoltCondition.getHint()));
+ this.addAbility(new EntersBattlefieldAbility(
+ new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false,
+ RevoltCondition.instance, "{this} enters with two +1/+1 counters on it " +
+ "if a permanent you controlled left the battlefield this turn.", null
+ ).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private GreenwheelLiberator(final GreenwheelLiberator card) {
diff --git a/Mage.Sets/src/mage/cards/h/HiddenHerbalists.java b/Mage.Sets/src/mage/cards/h/HiddenHerbalists.java
index bf32ff78c05..54b854b9afe 100644
--- a/Mage.Sets/src/mage/cards/h/HiddenHerbalists.java
+++ b/Mage.Sets/src/mage/cards/h/HiddenHerbalists.java
@@ -1,21 +1,20 @@
-
package mage.cards.h;
-import java.util.UUID;
import mage.MageInt;
import mage.Mana;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.mana.BasicManaEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author Styxo
*/
public final class HiddenHerbalists extends CardImpl {
@@ -29,13 +28,10 @@ public final class HiddenHerbalists extends CardImpl {
this.toughness = new MageInt(2);
// Revolt &mdash When Hidden Herbalists enters the battlefield, if a permanent you controlled left the battlefield this turn, add {G}{G};
- this.addAbility(
- new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility(
- new BasicManaEffect(Mana.GreenMana(2)), false), RevoltCondition.instance,
- "Revolt — When {this} enters, if a permanent you controlled left"
- + " the battlefield this turn, add {G}{G}.").addHint(RevoltCondition.getHint()),
- new RevoltWatcher()
- );
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new BasicManaEffect(Mana.GreenMana(2)))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private HiddenHerbalists(final HiddenHerbalists card) {
diff --git a/Mage.Sets/src/mage/cards/h/HiddenStockpile.java b/Mage.Sets/src/mage/cards/h/HiddenStockpile.java
index 41b81013265..36581aa4b73 100644
--- a/Mage.Sets/src/mage/cards/h/HiddenStockpile.java
+++ b/Mage.Sets/src/mage/cards/h/HiddenStockpile.java
@@ -1,25 +1,23 @@
package mage.cards.h;
import mage.abilities.Ability;
-import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.RevoltCondition;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.mana.GenericManaCost;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.keyword.ScryEffect;
+import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
+import mage.filter.StaticFilters;
import mage.game.permanent.token.ServoToken;
import mage.watchers.common.RevoltWatcher;
import java.util.UUID;
-import mage.filter.StaticFilters;
-
/**
* @author LevelX2
*/
@@ -29,11 +27,10 @@ public final class HiddenStockpile extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}{B}");
// Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, create a 1/1 colorless Servo artifact creature token.
- this.addAbility(new ConditionalInterveningIfTriggeredAbility(
- new BeginningOfEndStepTriggeredAbility(new CreateTokenEffect(new ServoToken())),
- RevoltCondition.instance, "At the beginning of your end step, if a permanent you controlled " +
- "left the battlefield this turn, create a 1/1 colorless Servo artifact creature token."
- ).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new BeginningOfEndStepTriggeredAbility(new CreateTokenEffect(new ServoToken()))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
// {1}, Sacrifice a creature: Scry 1.
Ability ability = new SimpleActivatedAbility(new ScryEffect(1, false), new GenericManaCost(1));
diff --git a/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java b/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java
index 7bf234eb7cf..2d6080a9757 100644
--- a/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java
+++ b/Mage.Sets/src/mage/cards/l/LifecraftCavalry.java
@@ -1,7 +1,5 @@
-
package mage.cards.l;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.RevoltCondition;
@@ -9,13 +7,15 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class LifecraftCavalry extends CardImpl {
@@ -32,15 +32,11 @@ public final class LifecraftCavalry extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// Revolt — Lifecraft Cavalry enters the battlefield with two +1/+1 counters on it if a permanent you controlled left the battlefield this turn.
- this.addAbility(
- new EntersBattlefieldAbility(
- new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
- false,
- RevoltCondition.instance,
- "Revolt — {this} enters with two +1/+1 counters on it if a permanent you controlled left the battlefield this turn.",
- null).addHint(RevoltCondition.getHint()),
- new RevoltWatcher()
- );
+ this.addAbility(new EntersBattlefieldAbility(
+ new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false,
+ RevoltCondition.instance, "{this} enters with two +1/+1 counters on it " +
+ "if a permanent you controlled left the battlefield this turn.", null
+ ).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private LifecraftCavalry(final LifecraftCavalry card) {
diff --git a/Mage.Sets/src/mage/cards/n/NarnamRenegade.java b/Mage.Sets/src/mage/cards/n/NarnamRenegade.java
index 670673c5f49..a66b114f50c 100644
--- a/Mage.Sets/src/mage/cards/n/NarnamRenegade.java
+++ b/Mage.Sets/src/mage/cards/n/NarnamRenegade.java
@@ -7,6 +7,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
@@ -33,9 +34,9 @@ public final class NarnamRenegade extends CardImpl {
// Revolt — Narnam Renegade enters the battlefield with a +1/+1 counter on it if a permanent you controlled left this battlefield this turn.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false,
- RevoltCondition.instance, "Revolt — {this} enters with " +
- "a +1/+1 counter on it if a permanent you controlled left the battlefield this turn.", null
- ).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ RevoltCondition.instance, "{this} enters with a +1/+1 counter on it " +
+ "if a permanent you controlled left the battlefield this turn.", null
+ ).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private NarnamRenegade(final NarnamRenegade card) {
diff --git a/Mage.Sets/src/mage/cards/n/NightMarketAeronaut.java b/Mage.Sets/src/mage/cards/n/NightMarketAeronaut.java
index 0f13cadb050..a6b8a0ec9ef 100644
--- a/Mage.Sets/src/mage/cards/n/NightMarketAeronaut.java
+++ b/Mage.Sets/src/mage/cards/n/NightMarketAeronaut.java
@@ -7,6 +7,7 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
@@ -34,9 +35,9 @@ public final class NightMarketAeronaut extends CardImpl {
// a permanent you controlled left the battlefield this turn.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false,
- RevoltCondition.instance, "Revolt — {this} enters with " +
- "a +1/+1 counter on it if a permanent you controlled left the battlefield this turn.", null
- ).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ RevoltCondition.instance, "{this} enters with a +1/+1 counter on it " +
+ "if a permanent you controlled left the battlefield this turn.", null
+ ).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private NightMarketAeronaut(final NightMarketAeronaut card) {
diff --git a/Mage.Sets/src/mage/cards/r/RenegadeRallier.java b/Mage.Sets/src/mage/cards/r/RenegadeRallier.java
index 847bc6cb4fb..1569342b074 100644
--- a/Mage.Sets/src/mage/cards/r/RenegadeRallier.java
+++ b/Mage.Sets/src/mage/cards/r/RenegadeRallier.java
@@ -4,7 +4,6 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@@ -40,11 +39,9 @@ public final class RenegadeRallier extends CardImpl {
// Revolt — When Renegade Rallier enters the battlefield, if a permanent you controlled left the battlefield this turn,
// return target permanent card with converted mana cost 2 or less from your graveyard to your battlefield.
- Ability ability = new ConditionalInterveningIfTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), false),
- RevoltCondition.instance, "When {this} enters, if a permanent you controlled " +
- "left the battlefield this turn, return target permanent card with mana value 2 or less from your graveyard to the battlefield."
- ).setAbilityWord(AbilityWord.REVOLT);
+ Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect())
+ .withInterveningIf(RevoltCondition.instance);
+ ability.setAbilityWord(AbilityWord.REVOLT);
ability.addTarget(new TargetCardInYourGraveyard(filter));
this.addAbility(ability.addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
diff --git a/Mage.Sets/src/mage/cards/s/SilkweaverElite.java b/Mage.Sets/src/mage/cards/s/SilkweaverElite.java
index d860ded15c7..41117ad2d49 100644
--- a/Mage.Sets/src/mage/cards/s/SilkweaverElite.java
+++ b/Mage.Sets/src/mage/cards/s/SilkweaverElite.java
@@ -3,7 +3,6 @@ package mage.cards.s;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.keyword.ReachAbility;
import mage.cards.CardImpl;
@@ -32,11 +31,10 @@ public final class SilkweaverElite extends CardImpl {
this.addAbility(ReachAbility.getInstance());
// Revolt — When Silkweaver Elite enters the battlefield, if a permanent you controlled left the battlefield this turn, draw a card.
- this.addAbility(new ConditionalInterveningIfTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false),
- RevoltCondition.instance, "When {this} enters, " +
- "if a permanent you controlled left the battlefield this turn, draw a card."
- ).setAbilityWord(AbilityWord.REVOLT).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private SilkweaverElite(final SilkweaverElite card) {
diff --git a/Mage.Sets/src/mage/cards/s/SolemnRecruit.java b/Mage.Sets/src/mage/cards/s/SolemnRecruit.java
index 430568a5d77..891bdfa7d76 100644
--- a/Mage.Sets/src/mage/cards/s/SolemnRecruit.java
+++ b/Mage.Sets/src/mage/cards/s/SolemnRecruit.java
@@ -1,22 +1,22 @@
package mage.cards.s;
-import java.util.UUID;
import mage.MageInt;
-import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.DoubleStrikeAbility;
+import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class SolemnRecruit extends CardImpl {
@@ -33,13 +33,10 @@ public final class SolemnRecruit extends CardImpl {
this.addAbility(DoubleStrikeAbility.getInstance());
// Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a +1/+1 counter on Solemn Recruit.
- this.addAbility(new ConditionalInterveningIfTriggeredAbility(
- new BeginningOfEndStepTriggeredAbility(
- new AddCountersSourceEffect(CounterType.P1P1.createInstance())
- ),
- RevoltCondition.instance,
- "Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a +1/+1 counter on {this}."
- ).addHint(RevoltCondition.getHint()), new RevoltWatcher());
+ this.addAbility(new BeginningOfEndStepTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()))
+ .withInterveningIf(RevoltCondition.instance)
+ .setAbilityWord(AbilityWord.REVOLT)
+ .addHint(RevoltCondition.getHint()), new RevoltWatcher());
}
private SolemnRecruit(final SolemnRecruit card) {
diff --git a/Mage.Sets/src/mage/cards/v/VengefulRebel.java b/Mage.Sets/src/mage/cards/v/VengefulRebel.java
index 32df6c4df8b..272d2798277 100644
--- a/Mage.Sets/src/mage/cards/v/VengefulRebel.java
+++ b/Mage.Sets/src/mage/cards/v/VengefulRebel.java
@@ -1,24 +1,22 @@
package mage.cards.v;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.RevoltCondition;
-import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.constants.Duration;
import mage.target.common.TargetOpponentsCreaturePermanent;
import mage.watchers.common.RevoltWatcher;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class VengefulRebel extends CardImpl {
@@ -33,12 +31,8 @@ public final class VengefulRebel extends CardImpl {
// Revolt — When Vengeful Rebel enters the battlefield, if a permanent you controlled left the battlefield this turn,
// target creature an opponent controls gets -3/-3 until end of turn.
- Ability ability = new ConditionalInterveningIfTriggeredAbility(
- new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(-3, -3, Duration.EndOfTurn), false),
- RevoltCondition.instance,
- "When {this} enters, if a permanent you controlled left the battlefield this turn, "
- + "target creature an opponent controls gets -3/-3 until end of turn"
- );
+ Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(-3, -3))
+ .withInterveningIf(RevoltCondition.instance);
ability.addTarget(new TargetOpponentsCreaturePermanent());
ability.setAbilityWord(AbilityWord.REVOLT);
this.addAbility(ability.addHint(RevoltCondition.getHint()), new RevoltWatcher());
diff --git a/Mage/src/main/java/mage/abilities/condition/common/RevoltCondition.java b/Mage/src/main/java/mage/abilities/condition/common/RevoltCondition.java
index 530f657ca38..35a217f742c 100644
--- a/Mage/src/main/java/mage/abilities/condition/common/RevoltCondition.java
+++ b/Mage/src/main/java/mage/abilities/condition/common/RevoltCondition.java
@@ -31,6 +31,6 @@ public enum RevoltCondition implements Condition {
@Override
public String toString() {
- return "a permanent you controlled left the battlefield this turn";
+ return "a permanent left the battlefield under your control this turn";
}
}