diff --git a/Mage.Sets/src/mage/cards/a/AcquireTarget.java b/Mage.Sets/src/mage/cards/a/AcquireTarget.java
index 4df897f8045..391d1a74564 100644
--- a/Mage.Sets/src/mage/cards/a/AcquireTarget.java
+++ b/Mage.Sets/src/mage/cards/a/AcquireTarget.java
@@ -1,8 +1,6 @@
package mage.cards.a;
-import java.util.UUID;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
@@ -14,29 +12,26 @@ import mage.target.TargetPlayer;
import mage.target.common.TargetOpponentsCreaturePermanent;
import mage.target.targetpointer.SecondTargetPointer;
+import java.util.UUID;
+
/**
- *
* @author Styxo
*/
public final class AcquireTarget extends CardImpl {
public AcquireTarget(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
// Target player draws two cards and loses 2 life.
this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new DrawCardTargetEffect(2));
- Effect effect = new LoseLifeTargetEffect(2);
- effect.setText("and loses 2 life");
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).concatBy("and"));
// Put a bounty counter on up to one target creature an opponent controls.
- effect = new AddCountersTargetEffect(CounterType.BOUNTY.createInstance());
- effect.setTargetPointer(new SecondTargetPointer());
- effect.setText("Put a bounty counter on up to one target creature an opponent controls.");
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.BOUNTY.createInstance())
+ .setTargetPointer(new SecondTargetPointer())
+ .setText("Put a bounty counter on up to one target creature an opponent controls."));
this.getSpellAbility().addTarget(new TargetOpponentsCreaturePermanent(0, 1));
-
}
private AcquireTarget(final AcquireTarget card) {
diff --git a/Mage.Sets/src/mage/cards/a/ArcaneDenial.java b/Mage.Sets/src/mage/cards/a/ArcaneDenial.java
index efd142367a3..d6d7fbc6651 100644
--- a/Mage.Sets/src/mage/cards/a/ArcaneDenial.java
+++ b/Mage.Sets/src/mage/cards/a/ArcaneDenial.java
@@ -35,8 +35,7 @@ public final class ArcaneDenial extends CardImpl {
// You draw a card at the beginning of the next turn's upkeep.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
- new DrawCardSourceControllerEffect(1)
- .setText("you draw a card")
+ new DrawCardSourceControllerEffect(1, true)
), false).concatBy("
")
);
}
diff --git a/Mage.Sets/src/mage/cards/a/Armistice.java b/Mage.Sets/src/mage/cards/a/Armistice.java
index 1d3a19b1d93..8eb96a39685 100644
--- a/Mage.Sets/src/mage/cards/a/Armistice.java
+++ b/Mage.Sets/src/mage/cards/a/Armistice.java
@@ -1,39 +1,31 @@
package mage.cards.a;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.GainLifeTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Zone;
import mage.target.common.TargetOpponent;
+import java.util.UUID;
+
/**
- *
* @author LevelX2
*/
public final class Armistice extends CardImpl {
public Armistice(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
// {3}{W}{W}: You draw a card and target opponent gains 3 life.
- Effect effect = new DrawCardSourceControllerEffect(1);
- effect.setText("You draw a card");
- Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{3}{W}{W}"));
- effect = new GainLifeTargetEffect(3);
- effect.setText("and target opponent gains 3 life");
- ability.addEffect(effect);
+ Ability ability = new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1, true), new ManaCostsImpl<>("{3}{W}{W}"));
+ ability.addEffect(new GainLifeTargetEffect(3).concatBy("and"));
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
-
}
private Armistice(final Armistice card) {
diff --git a/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java b/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java
index 828835e7d5a..aa02f869cb6 100644
--- a/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java
+++ b/Mage.Sets/src/mage/cards/b/BlackMarketDealer.java
@@ -4,7 +4,6 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
@@ -23,7 +22,6 @@ import mage.target.common.TargetOpponentsCreaturePermanent;
import java.util.UUID;
/**
- *
* @author Styxo
*/
public final class BlackMarketDealer extends CardImpl {
@@ -48,9 +46,7 @@ public final class BlackMarketDealer extends CardImpl {
// Bounty — Whenever a creature an opponent controls with a bounty counter on it dies, target player loses 1 life and draws a card.
ability = new BountyAbility(new LoseLifeTargetEffect(1));
- Effect effect = new DrawCardTargetEffect(1);
- effect.setText("and draws a card");
- ability.addEffect(effect);
+ ability.addEffect(new DrawCardTargetEffect(1).withTargetDescription("and"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/b/BloodPact.java b/Mage.Sets/src/mage/cards/b/BloodPact.java
index d44696cb5f1..6a970179215 100644
--- a/Mage.Sets/src/mage/cards/b/BloodPact.java
+++ b/Mage.Sets/src/mage/cards/b/BloodPact.java
@@ -19,7 +19,7 @@ public final class BloodPact extends CardImpl {
// Target player draws two cards and loses 2 life.
this.getSpellAbility().addEffect(new DrawCardTargetEffect(2));
- this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).setText("and loses 2 life"));
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
this.getSpellAbility().addTarget(new TargetPlayer());
}
diff --git a/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java b/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java
index a98599644ed..e568c970d2f 100644
--- a/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java
+++ b/Mage.Sets/src/mage/cards/b/BloodgiftDemon.java
@@ -30,7 +30,7 @@ public final class BloodgiftDemon extends CardImpl {
// At the beginning of your upkeep, target player draws a card and loses 1 life.
Ability ability = new BeginningOfUpkeepTriggeredAbility(new DrawCardTargetEffect(1));
- ability.addEffect(new LoseLifeTargetEffect(1).setText("and loses 1 life"));
+ ability.addEffect(new LoseLifeTargetEffect(1).withTargetDescription("and"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/d/DoctorDoom.java b/Mage.Sets/src/mage/cards/d/DoctorDoom.java
index 1006beb5aad..b50c370aee6 100644
--- a/Mage.Sets/src/mage/cards/d/DoctorDoom.java
+++ b/Mage.Sets/src/mage/cards/d/DoctorDoom.java
@@ -68,7 +68,7 @@ public final class DoctorDoom extends CardImpl {
// At the beginning of your end step, you draw a card and lose 1 life.
Ability ability = new BeginningOfEndStepTriggeredAbility(new DrawCardSourceControllerEffect(1, true));
- ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
+ ability.addEffect(new LoseLifeSourceControllerEffect(1, false).concatBy("and"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/d/DreadPresence.java b/Mage.Sets/src/mage/cards/d/DreadPresence.java
index 915655030f6..9ac7c82e511 100644
--- a/Mage.Sets/src/mage/cards/d/DreadPresence.java
+++ b/Mage.Sets/src/mage/cards/d/DreadPresence.java
@@ -35,7 +35,7 @@ public final class DreadPresence extends CardImpl {
// Whenever a Swamp you control enters, choose one ---
// • You draw a card and you lose 1 life.
Ability ability = new EntersBattlefieldControlledTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), filter
+ new DrawCardSourceControllerEffect(1, true), filter
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
diff --git a/Mage.Sets/src/mage/cards/e/EyeOfVecna.java b/Mage.Sets/src/mage/cards/e/EyeOfVecna.java
index 3a1aec13464..7785a0dbd52 100644
--- a/Mage.Sets/src/mage/cards/e/EyeOfVecna.java
+++ b/Mage.Sets/src/mage/cards/e/EyeOfVecna.java
@@ -1,12 +1,12 @@
package mage.cards.e;
import mage.abilities.Ability;
-import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
+import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -26,19 +26,15 @@ public final class EyeOfVecna extends CardImpl {
// When Eye of Vecna enters the battlefield, you draw a card and you lose 2 life.
Ability ability = new EntersBattlefieldTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card")
+ new DrawCardSourceControllerEffect(1, true)
);
ability.addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"));
this.addAbility(ability);
// At the beginning of your upkeep, you may pay {2}. If you do, you draw a card and you lose 2 life.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(
- new DoIfCostPaid(
- new DrawCardSourceControllerEffect(1)
- .setText("you draw a card"),
- new GenericManaCost(2)
- ).addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"))
- ));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DoIfCostPaid(
+ new DrawCardSourceControllerEffect(1, true), new GenericManaCost(2)
+ ).addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"))));
}
private EyeOfVecna(final EyeOfVecna card) {
diff --git a/Mage.Sets/src/mage/cards/f/FaerieMastermind.java b/Mage.Sets/src/mage/cards/f/FaerieMastermind.java
index 62cdac26bd8..5fdfdb809e9 100644
--- a/Mage.Sets/src/mage/cards/f/FaerieMastermind.java
+++ b/Mage.Sets/src/mage/cards/f/FaerieMastermind.java
@@ -33,8 +33,7 @@ public class FaerieMastermind extends CardImpl {
//Whenever an opponent draws their second card each turn, you draw a card.
this.addAbility(new DrawNthCardTriggeredAbility(
- new DrawCardSourceControllerEffect(1)
- .setText("you draw a card"),
+ new DrawCardSourceControllerEffect(1, true),
false, TargetController.OPPONENT, 2
));
diff --git a/Mage.Sets/src/mage/cards/f/FellStinger.java b/Mage.Sets/src/mage/cards/f/FellStinger.java
index 8a9e4fdb051..a13c7b69e80 100644
--- a/Mage.Sets/src/mage/cards/f/FellStinger.java
+++ b/Mage.Sets/src/mage/cards/f/FellStinger.java
@@ -36,7 +36,7 @@ public final class FellStinger extends CardImpl {
// When Fell Stinger exploits a creature, target player draws two cards and loses 2 life.
Ability ability = new ExploitCreatureTriggeredAbility(new DrawCardTargetEffect(2));
- ability.addEffect(new LoseLifeTargetEffect(2).setText("and loses 2 life"));
+ ability.addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/f/FirstSphereGargantua.java b/Mage.Sets/src/mage/cards/f/FirstSphereGargantua.java
index a58301d0172..b7f045cac74 100644
--- a/Mage.Sets/src/mage/cards/f/FirstSphereGargantua.java
+++ b/Mage.Sets/src/mage/cards/f/FirstSphereGargantua.java
@@ -29,7 +29,7 @@ public final class FirstSphereGargantua extends CardImpl {
// When First-Sphere Gargantua enters the battlefield, you draw a card and you lose 1 life.
Ability ability = new EntersBattlefieldTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card")
+ new DrawCardSourceControllerEffect(1, true)
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/f/ForebodingFruit.java b/Mage.Sets/src/mage/cards/f/ForebodingFruit.java
index 506fa270887..41c9cc1bfa7 100644
--- a/Mage.Sets/src/mage/cards/f/ForebodingFruit.java
+++ b/Mage.Sets/src/mage/cards/f/ForebodingFruit.java
@@ -23,7 +23,7 @@ public final class ForebodingFruit extends CardImpl {
// Target player draws two cards and loses 2 life.
this.getSpellAbility().addEffect(new DrawCardTargetEffect(2));
- this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).setText("and loses 2 life"));
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
this.getSpellAbility().addTarget(new TargetPlayer());
// Adamant — If at least three black mana was spent to cast this spell, create a Food token.
diff --git a/Mage.Sets/src/mage/cards/f/FoulmireKnight.java b/Mage.Sets/src/mage/cards/f/FoulmireKnight.java
index 11df26d2c4f..34ade587b09 100644
--- a/Mage.Sets/src/mage/cards/f/FoulmireKnight.java
+++ b/Mage.Sets/src/mage/cards/f/FoulmireKnight.java
@@ -29,7 +29,7 @@ public final class FoulmireKnight extends AdventureCard {
// Profane Insight
// You draw a card and you lose 1 life.
- this.getSpellCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("You draw a card"));
+ this.getSpellCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1, true));
this.getSpellCard().getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.finalizeAdventure();
diff --git a/Mage.Sets/src/mage/cards/f/FuneralRites.java b/Mage.Sets/src/mage/cards/f/FuneralRites.java
index 7c12689b3a0..50e5095e97f 100644
--- a/Mage.Sets/src/mage/cards/f/FuneralRites.java
+++ b/Mage.Sets/src/mage/cards/f/FuneralRites.java
@@ -18,8 +18,7 @@ public final class FuneralRites extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
// You draw two cards, lose 2 life, and put the top two cards of your library into your graveyard
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)
- .setText("You draw two cards"));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2, true));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2)
.setText(", lose 2 life"));
this.getSpellAbility().addEffect(new MillCardsControllerEffect(2)
diff --git a/Mage.Sets/src/mage/cards/f/FungalShambler.java b/Mage.Sets/src/mage/cards/f/FungalShambler.java
index 6a501fb5c27..d89d27ce857 100644
--- a/Mage.Sets/src/mage/cards/f/FungalShambler.java
+++ b/Mage.Sets/src/mage/cards/f/FungalShambler.java
@@ -1,11 +1,8 @@
-
package mage.cards.f;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealsDamageToOpponentTriggeredAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.abilities.keyword.TrampleAbility;
@@ -14,8 +11,9 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
+import java.util.UUID;
+
/**
- *
* @author LoneFox
*/
public final class FungalShambler extends CardImpl {
@@ -29,13 +27,10 @@ public final class FungalShambler extends CardImpl {
// Trample
this.addAbility(TrampleAbility.getInstance());
+
// Whenever Fungal Shambler deals damage to an opponent, you draw a card and that opponent discards a card.
- Effect effect = new DrawCardSourceControllerEffect(1);
- effect.setText("you draw a card");
- Ability ability = new DealsDamageToOpponentTriggeredAbility(effect, false, false, true);
- effect = new DiscardTargetEffect(1);
- effect.setText("and that opponent discards a card");
- ability.addEffect(effect);
+ Ability ability = new DealsDamageToOpponentTriggeredAbility(new DrawCardSourceControllerEffect(1), false, false, true);
+ ability.addEffect(new DiscardTargetEffect(1).setText("and that opponent discards a card"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java b/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java
index e258dd17008..165d00f4276 100644
--- a/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java
+++ b/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java
@@ -1,7 +1,6 @@
package mage.cards.g;
import mage.MageInt;
-import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility;
import mage.abilities.costs.common.PayEnergyCost;
import mage.abilities.effects.common.DoIfCostPaid;
@@ -9,6 +8,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
import mage.abilities.keyword.MenaceAbility;
+import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -37,7 +37,7 @@ public final class GlintSleeveSiphoner extends CardImpl {
// At the beginning of your upkeep, you may pay {E}{E}. If you do, draw a card and you lose 1 life.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DoIfCostPaid(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), new PayEnergyCost(2)
+ new DrawCardSourceControllerEffect(1, true), new PayEnergyCost(2)
).addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"))));
}
diff --git a/Mage.Sets/src/mage/cards/h/HarrowingJourney.java b/Mage.Sets/src/mage/cards/h/HarrowingJourney.java
index 1775707ee30..c8b2cd87bc1 100644
--- a/Mage.Sets/src/mage/cards/h/HarrowingJourney.java
+++ b/Mage.Sets/src/mage/cards/h/HarrowingJourney.java
@@ -1,6 +1,5 @@
package mage.cards.h;
-import java.util.UUID;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.cards.CardImpl;
@@ -8,18 +7,19 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.target.TargetPlayer;
+import java.util.UUID;
+
/**
- *
* @author Loki
*/
public final class HarrowingJourney extends CardImpl {
public HarrowingJourney(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}");
// Target player draws three cards and loses 3 life.
this.getSpellAbility().addEffect(new DrawCardTargetEffect(3));
- this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3).setText("and loses 3 life"));
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3).withTargetDescription("and"));
this.getSpellAbility().addTarget(new TargetPlayer());
}
diff --git a/Mage.Sets/src/mage/cards/h/HenrikaDomnathi.java b/Mage.Sets/src/mage/cards/h/HenrikaDomnathi.java
index c85473cec50..45e6667b3ba 100644
--- a/Mage.Sets/src/mage/cards/h/HenrikaDomnathi.java
+++ b/Mage.Sets/src/mage/cards/h/HenrikaDomnathi.java
@@ -60,7 +60,7 @@ public final class HenrikaDomnathi extends TransformingDoubleFacedCard {
ability.getModes().setLimitUsageByOnce(false);
// • You draw a card and you lose 1 life.
- Mode mode = new Mode(new DrawCardSourceControllerEffect(1).setText("you draw a card"));
+ Mode mode = new Mode(new DrawCardSourceControllerEffect(1));
mode.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
mode.setModeTag("draw and lose life");
ability.addMode(mode);
diff --git a/Mage.Sets/src/mage/cards/i/InsatiableAvarice.java b/Mage.Sets/src/mage/cards/i/InsatiableAvarice.java
index 8c404e52275..d5ad02e7d0d 100644
--- a/Mage.Sets/src/mage/cards/i/InsatiableAvarice.java
+++ b/Mage.Sets/src/mage/cards/i/InsatiableAvarice.java
@@ -32,7 +32,7 @@ public final class InsatiableAvarice extends CardImpl {
// + {B}{B} -- Target player draws three cards and loses 3 life.
this.getSpellAbility().addMode(new Mode(new DrawCardTargetEffect(3))
- .addEffect(new LoseLifeTargetEffect(3).setText("and loses 3 life"))
+ .addEffect(new LoseLifeTargetEffect(3).withTargetDescription("and"))
.addTarget(new TargetPlayer())
.withCost(new ManaCostsImpl<>("{B}{B}")));
}
diff --git a/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java b/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java
index 7f6491db3fe..8821beaf800 100644
--- a/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java
+++ b/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java
@@ -1,31 +1,19 @@
-
package mage.cards.k;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
-import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.ZoneChangeAllTriggeredAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.keyword.FlyingAbility;
-import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
-import mage.constants.CardType;
-import mage.constants.SubType;
-import mage.constants.SuperType;
-import mage.constants.TargetController;
-import mage.constants.Zone;
+import mage.constants.*;
import mage.filter.FilterPermanent;
-import mage.game.Game;
-import mage.game.events.GameEvent;
-import mage.game.events.ZoneChangeEvent;
-import mage.players.Player;
+
+import java.util.UUID;
/**
- *
* @author LevelX2
*/
public final class KothophedSoulHoarder extends CardImpl {
@@ -37,7 +25,7 @@ public final class KothophedSoulHoarder extends CardImpl {
}
public KothophedSoulHoarder(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.DEMON);
this.power = new MageInt(6);
@@ -47,13 +35,13 @@ public final class KothophedSoulHoarder extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Whenever a permanent owned by another player is put into the graveyard from the battlefield, you draw one card and lose 1 life.
- Effect effect = new DrawCardSourceControllerEffect(1);
- effect.setText("you draw a card");
- Ability ability = new ZoneChangeAllTriggeredAbility(Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.GRAVEYARD, effect, filter,
- "Whenever a permanent owned by another player is put into a graveyard from the battlefield, ", false);
- effect = new LoseLifeSourceControllerEffect(1);
- effect.setText("and you lose 1 life");
- ability.addEffect(effect);
+ Ability ability = new ZoneChangeAllTriggeredAbility(
+ Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.GRAVEYARD,
+ new DrawCardSourceControllerEffect(1, true),
+ filter, "Whenever a permanent owned by another player " +
+ "is put into a graveyard from the battlefield, ", false
+ );
+ ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
}
@@ -66,36 +54,3 @@ public final class KothophedSoulHoarder extends CardImpl {
return new KothophedSoulHoarder(this);
}
}
-
-class KothophedSoulHoarderTriggeredAbility extends TriggeredAbilityImpl {
-
- public KothophedSoulHoarderTriggeredAbility(Effect effect) {
- super(Zone.BATTLEFIELD, effect);
- setTriggerPhrase("Whenever a creature leaves an opponent's graveyard, ");
- }
-
- private KothophedSoulHoarderTriggeredAbility(final KothophedSoulHoarderTriggeredAbility ability) {
- super(ability);
- }
-
- @Override
- public KothophedSoulHoarderTriggeredAbility copy() {
- return new KothophedSoulHoarderTriggeredAbility(this);
- }
-
- @Override
- public boolean checkEventType(GameEvent event, Game game) {
- return event.getType() == GameEvent.EventType.ZONE_CHANGE;
- }
-
- @Override
- public boolean checkTrigger(GameEvent event, Game game) {
- ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
- if (zEvent.getToZone() == Zone.GRAVEYARD && zEvent.getFromZone() == Zone.BATTLEFIELD) {
- Card card = game.getCard(zEvent.getTargetId());
- Player controller = game.getPlayer(getControllerId());
- return card != null && controller != null && controller.hasOpponent(card.getOwnerId(), game);
- }
- return false;
- }
-}
diff --git a/Mage.Sets/src/mage/cards/l/LilianasContract.java b/Mage.Sets/src/mage/cards/l/LilianasContract.java
index be8b6ba2e5e..93afd0344a8 100644
--- a/Mage.Sets/src/mage/cards/l/LilianasContract.java
+++ b/Mage.Sets/src/mage/cards/l/LilianasContract.java
@@ -28,7 +28,7 @@ public final class LilianasContract extends CardImpl {
// When Liliana's Contract enters the battlefield, you draw four cards and you lose 4 life.
Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(4, true));
- ability.addEffect(new LoseLifeSourceControllerEffect(4).setText("and you lose 4 life"));
+ ability.addEffect(new LoseLifeSourceControllerEffect(4).concatBy("and"));
this.addAbility(ability);
// At the beginning of your upkeep, if you control four or more Demons with different names, you win the game.
diff --git a/Mage.Sets/src/mage/cards/l/LiveFast.java b/Mage.Sets/src/mage/cards/l/LiveFast.java
index 28270b8bb7e..292e5df0498 100644
--- a/Mage.Sets/src/mage/cards/l/LiveFast.java
+++ b/Mage.Sets/src/mage/cards/l/LiveFast.java
@@ -1,8 +1,6 @@
package mage.cards.l;
-import java.util.UUID;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
@@ -10,25 +8,20 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class LiveFast extends CardImpl {
public LiveFast(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
// You draw two cards, lose 2 life, and get {E}{E}.
- Effect effect = new DrawCardSourceControllerEffect(2);
- effect.setText("You draw two cards");
- getSpellAbility().addEffect(effect);
- effect = new LoseLifeSourceControllerEffect(2);
- effect.setText(", lose 2 life");
- getSpellAbility().addEffect(effect);
- effect = new GetEnergyCountersControllerEffect(2);
- effect.setText(", and get {E}{E} (two energy counters).");
- getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2, true));
+ this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2).setText(", lose 2 life"));
+ this.getSpellAbility().addEffect(new GetEnergyCountersControllerEffect(2).setText(", and get {E}{E} (two energy counters)."));
}
private LiveFast(final LiveFast card) {
diff --git a/Mage.Sets/src/mage/cards/l/LolthSpiderQueen.java b/Mage.Sets/src/mage/cards/l/LolthSpiderQueen.java
index 9646e03e6cd..e79468de16c 100644
--- a/Mage.Sets/src/mage/cards/l/LolthSpiderQueen.java
+++ b/Mage.Sets/src/mage/cards/l/LolthSpiderQueen.java
@@ -39,7 +39,7 @@ public final class LolthSpiderQueen extends CardImpl {
));
// 0: You draw a card and you lose 1 life.
- Ability ability = new LoyaltyAbility(new DrawCardSourceControllerEffect(1).setText("you draw a card"), 0);
+ Ability ability = new LoyaltyAbility(new DrawCardSourceControllerEffect(1, true), 0);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MeasureOfWickedness.java b/Mage.Sets/src/mage/cards/m/MeasureOfWickedness.java
index 8021e47408f..ef56a4cafcb 100644
--- a/Mage.Sets/src/mage/cards/m/MeasureOfWickedness.java
+++ b/Mage.Sets/src/mage/cards/m/MeasureOfWickedness.java
@@ -36,7 +36,6 @@ public final class MeasureOfWickedness extends CardImpl {
// At the beginning of your end step, sacrifice Measure of Wickedness and you lose 8 life.
Ability ability = new BeginningOfEndStepTriggeredAbility(TargetController.YOU, new SacrificeSourceEffect(), false, null);
Effect effect = new LoseLifeSourceControllerEffect(8);
- effect.setText("and you lose 8 life");
ability.addEffect(effect);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MoriokReplica.java b/Mage.Sets/src/mage/cards/m/MoriokReplica.java
index 0bbd7b7f5da..b9a18be2f22 100644
--- a/Mage.Sets/src/mage/cards/m/MoriokReplica.java
+++ b/Mage.Sets/src/mage/cards/m/MoriokReplica.java
@@ -1,42 +1,36 @@
-
-
package mage.cards.m;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.constants.Zone;
+
+import java.util.UUID;
/**
- *
* @author Loki
*/
public final class MoriokReplica extends CardImpl {
- public MoriokReplica (UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}");
+ public MoriokReplica(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
-
+
// {1}{B}, Sacrifice Moriok Replica: You draw two cards and you lose 2 life.
- Effect effect = new DrawCardSourceControllerEffect(2);
- effect.setText("You draw two cards");
- Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{1}{B}"));
- effect = new LoseLifeSourceControllerEffect(2);
- effect.setText("and you lose 2 life");
+ Ability ability = new SimpleActivatedAbility(
+ new DrawCardSourceControllerEffect(2, true), new ManaCostsImpl<>("{1}{B}")
+ );
ability.addCost(new SacrificeSourceCost());
- ability.addEffect(effect);
+ ability.addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"));
this.addAbility(ability);
}
@@ -48,5 +42,4 @@ public final class MoriokReplica extends CardImpl {
public MoriokReplica copy() {
return new MoriokReplica(this);
}
-
}
diff --git a/Mage.Sets/src/mage/cards/n/NightsWhisper.java b/Mage.Sets/src/mage/cards/n/NightsWhisper.java
index 3bbcb8b6dc3..64a0e7648e8 100644
--- a/Mage.Sets/src/mage/cards/n/NightsWhisper.java
+++ b/Mage.Sets/src/mage/cards/n/NightsWhisper.java
@@ -1,26 +1,25 @@
package mage.cards.n;
-import java.util.UUID;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import java.util.UUID;
+
/**
- *
* @author jonubuu
*/
public final class NightsWhisper extends CardImpl {
public NightsWhisper(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}");
// You draw two cards and you lose 2 life.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2, true));
- this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"));
+ this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2, false).concatBy("and"));
}
private NightsWhisper(final NightsWhisper card) {
diff --git a/Mage.Sets/src/mage/cards/n/NivMizzetParun.java b/Mage.Sets/src/mage/cards/n/NivMizzetParun.java
index c693f75898a..36b717bc6be 100644
--- a/Mage.Sets/src/mage/cards/n/NivMizzetParun.java
+++ b/Mage.Sets/src/mage/cards/n/NivMizzetParun.java
@@ -1,6 +1,5 @@
package mage.cards.n;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.CantBeCounteredSourceAbility;
@@ -8,17 +7,18 @@ import mage.abilities.common.DrawCardControllerTriggeredAbility;
import mage.abilities.common.SpellCastAllTriggeredAbility;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
-import mage.constants.SubType;
-import mage.constants.SuperType;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import mage.constants.SubType;
+import mage.constants.SuperType;
import mage.filter.StaticFilters;
import mage.target.common.TargetAnyTarget;
+import java.util.UUID;
+
/**
- *
* @author TheElk801
*/
public final class NivMizzetParun extends CardImpl {
@@ -47,7 +47,7 @@ public final class NivMizzetParun extends CardImpl {
// Whenever a player casts an instant or sorcery spell, you draw a card.
this.addAbility(new SpellCastAllTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"),
+ new DrawCardSourceControllerEffect(1, true),
StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false
));
}
diff --git a/Mage.Sets/src/mage/cards/n/NoviceOccultist.java b/Mage.Sets/src/mage/cards/n/NoviceOccultist.java
index 67ee4ae8510..f42ecfbb98c 100644
--- a/Mage.Sets/src/mage/cards/n/NoviceOccultist.java
+++ b/Mage.Sets/src/mage/cards/n/NoviceOccultist.java
@@ -27,7 +27,7 @@ public final class NoviceOccultist extends CardImpl {
// When Novice Occultist dies, you draw a card and you lose 1 life.
Ability ability = new DiesSourceTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card")
+ new DrawCardSourceControllerEffect(1, true)
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/p/PainfulLesson.java b/Mage.Sets/src/mage/cards/p/PainfulLesson.java
index 198b90aa2cc..57dcda87adb 100644
--- a/Mage.Sets/src/mage/cards/p/PainfulLesson.java
+++ b/Mage.Sets/src/mage/cards/p/PainfulLesson.java
@@ -1,8 +1,5 @@
-
package mage.cards.p;
-import java.util.UUID;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.cards.CardImpl;
@@ -10,8 +7,9 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.target.TargetPlayer;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class PainfulLesson extends CardImpl {
@@ -22,9 +20,7 @@ public final class PainfulLesson extends CardImpl {
// Target player draws two cards and loses 2 life.
this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new DrawCardTargetEffect(2));
- Effect effect = new LoseLifeTargetEffect(2);
- effect.setText("and loses 2 life");
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
}
private PainfulLesson(final PainfulLesson card) {
diff --git a/Mage.Sets/src/mage/cards/p/PainfulTruths.java b/Mage.Sets/src/mage/cards/p/PainfulTruths.java
index 9064c4f8d8a..acdb5a1a199 100644
--- a/Mage.Sets/src/mage/cards/p/PainfulTruths.java
+++ b/Mage.Sets/src/mage/cards/p/PainfulTruths.java
@@ -1,9 +1,6 @@
-
package mage.cards.p;
-import java.util.UUID;
import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
@@ -11,23 +8,22 @@ import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class PainfulTruths extends CardImpl {
public PainfulTruths(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
// Converge — You draw X cards and lose X life, where X is the number of colors of mana spent to cast Painful Truths.
- getSpellAbility().setAbilityWord(AbilityWord.CONVERGE);
- Effect effect = new DrawCardSourceControllerEffect(ColorsOfManaSpentToCastCount.getInstance());
- effect.setText("You draw X cards");
- getSpellAbility().addEffect(effect);
- effect = new LoseLifeSourceControllerEffect(ColorsOfManaSpentToCastCount.getInstance());
- effect.setText("and you lose X life, where X is the number of colors of mana spent to cast this spell");
- getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(ColorsOfManaSpentToCastCount.getInstance())
+ .setText("you draw X cards"));
+ this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(ColorsOfManaSpentToCastCount.getInstance())
+ .setText("and lose X life, where X is the number of colors of mana spent to cast this spell"));
+ this.getSpellAbility().setAbilityWord(AbilityWord.CONVERGE);
}
private PainfulTruths(final PainfulTruths card) {
diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianRager.java b/Mage.Sets/src/mage/cards/p/PhyrexianRager.java
index a3e6ad0e9a0..7e86fdec400 100644
--- a/Mage.Sets/src/mage/cards/p/PhyrexianRager.java
+++ b/Mage.Sets/src/mage/cards/p/PhyrexianRager.java
@@ -25,7 +25,7 @@ public final class PhyrexianRager extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
Ability ability = new EntersBattlefieldTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), false
+ new DrawCardSourceControllerEffect(1, true), false
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/p/PlumbTheForbidden.java b/Mage.Sets/src/mage/cards/p/PlumbTheForbidden.java
index 32d7e32de69..1e17a26edeb 100644
--- a/Mage.Sets/src/mage/cards/p/PlumbTheForbidden.java
+++ b/Mage.Sets/src/mage/cards/p/PlumbTheForbidden.java
@@ -28,7 +28,7 @@ public final class PlumbTheForbidden extends CardImpl {
this.getSpellAbility().addCost(new PlumbTheForbiddenCost());
// You draw a card and you lose 1 life.
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("you draw a card"));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1, true));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
}
diff --git a/Mage.Sets/src/mage/cards/p/PromiseOfPower.java b/Mage.Sets/src/mage/cards/p/PromiseOfPower.java
index baf58f0def8..0d995fb340a 100644
--- a/Mage.Sets/src/mage/cards/p/PromiseOfPower.java
+++ b/Mage.Sets/src/mage/cards/p/PromiseOfPower.java
@@ -2,9 +2,7 @@ package mage.cards.p;
import mage.abilities.Ability;
import mage.abilities.Mode;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
-import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.keyword.EntwineAbility;
@@ -31,16 +29,11 @@ public final class PromiseOfPower extends CardImpl {
this.getSpellAbility().getModes().setMaxModes(1);
// - You draw five cards and you lose 5 life.
- Effect effect = new DrawCardSourceControllerEffect(5);
- effect.setText("You draw five cards");
- this.getSpellAbility().addEffect(effect);
- effect = new LoseLifeSourceControllerEffect(5);
- effect.setText("and you lose 5 life");
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(5, true));
+ this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(5).concatBy("and"));
// - Create an X/X black Demon creature token with flying, where X is the number of cards in your hand.
- Mode mode = new Mode(new PromiseOfPowerEffect());
- this.getSpellAbility().getModes().addMode(mode);
+ this.getSpellAbility().getModes().addMode(new Mode(new PromiseOfPowerEffect()));
// Entwine {4}
this.addAbility(new EntwineAbility("{4}"));
@@ -70,10 +63,7 @@ class PromiseOfPowerEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
- if (controller != null) {
- return new CreateTokenEffect(new DemonFlyingToken(controller.getHand().size())).apply(game, source);
- }
- return false;
+ return controller != null && new DemonFlyingToken(controller.getHand().size()).putOntoBattlefield(1, game, source);
}
@Override
diff --git a/Mage.Sets/src/mage/cards/r/RiveteersConfluence.java b/Mage.Sets/src/mage/cards/r/RiveteersConfluence.java
index a275504214a..eca685132e3 100644
--- a/Mage.Sets/src/mage/cards/r/RiveteersConfluence.java
+++ b/Mage.Sets/src/mage/cards/r/RiveteersConfluence.java
@@ -1,7 +1,10 @@
package mage.cards.r;
import mage.abilities.Mode;
-import mage.abilities.effects.common.*;
+import mage.abilities.effects.common.DamageAllEffect;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
+import mage.abilities.effects.common.PutCardFromHandOrGraveyardOntoBattlefieldEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -32,7 +35,7 @@ public class RiveteersConfluence extends CardImpl {
this.getSpellAbility().getModes().setMayChooseSameModeMoreThanOnce(true);
//• You draw a card and you lose 1 life.
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("you draw a card"));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1, true));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
//• Riveteers Confluence deals 1 damage to each creature and planeswalker you don’t control.
diff --git a/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java b/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java
index 8f02ce75e01..3206245ee7e 100644
--- a/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java
+++ b/Mage.Sets/src/mage/cards/s/SeizanPerverterOfTruth.java
@@ -1,14 +1,10 @@
-
-
package mage.cards.s;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
-import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
+import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@@ -16,30 +12,26 @@ import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.TargetController;
+import java.util.UUID;
+
/**
- *
* @author Loki
*/
public final class SeizanPerverterOfTruth extends CardImpl {
- public SeizanPerverterOfTruth (UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}");
+ public SeizanPerverterOfTruth(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.DEMON);
this.subtype.add(SubType.SPIRIT);
this.power = new MageInt(6);
this.toughness = new MageInt(5);
-
- // At the beginning of each player's upkeep, that player loses 2 life and draws two cards.
- Effect effect = new LoseLifeTargetEffect(2);
- effect.setText("that player loses 2 life");
- Ability ability = new BeginningOfUpkeepTriggeredAbility(TargetController.EACH_PLAYER, effect, false);
- effect = new DrawCardTargetEffect(2);
- effect.setText("and draws two cards");
- ability.addEffect(effect);
- this.addAbility(ability);
+ // At the beginning of each player's upkeep, that player loses 2 life and draws two cards.
+ Ability ability = new BeginningOfUpkeepTriggeredAbility(TargetController.EACH_PLAYER, new LoseLifeTargetEffect(2), false);
+ ability.addEffect(new DrawCardTargetEffect(2).withTargetDescription("and"));
+ this.addAbility(ability);
}
private SeizanPerverterOfTruth(final SeizanPerverterOfTruth card) {
diff --git a/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java b/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java
index 1d4d3e793a6..a0bba8b25f3 100644
--- a/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java
+++ b/Mage.Sets/src/mage/cards/s/ShadrixSilverquill.java
@@ -3,16 +3,19 @@ package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.Mode;
-import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenTargetEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.keyword.DoubleStrikeAbility;
import mage.abilities.keyword.FlyingAbility;
+import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
-import mage.constants.*;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.SubType;
+import mage.constants.SuperType;
import mage.counters.CounterType;
import mage.filter.FilterPlayer;
import mage.filter.StaticFilters;
@@ -68,7 +71,7 @@ public final class ShadrixSilverquill extends CardImpl {
// • Target player draws a card and loses 1 life.
ability.addMode(new Mode(new DrawCardTargetEffect(1))
- .addEffect(new LoseLifeTargetEffect(1).setText("and loses 1 life"))
+ .addEffect(new LoseLifeTargetEffect(1).withTargetDescription("and"))
.addTarget(new TargetPlayer(filter2).setTargetTag(2).withChooseHint("to draw a card and lose 1 life")));
// • Target player puts a +1/+1 counter on each creature they control.
diff --git a/Mage.Sets/src/mage/cards/s/ShanidSleepersScourge.java b/Mage.Sets/src/mage/cards/s/ShanidSleepersScourge.java
index 8a96ffea196..1fc9fcd91f8 100644
--- a/Mage.Sets/src/mage/cards/s/ShanidSleepersScourge.java
+++ b/Mage.Sets/src/mage/cards/s/ShanidSleepersScourge.java
@@ -56,7 +56,7 @@ public final class ShanidSleepersScourge extends CardImpl {
true)));
// Whenever you play a legendary land or cast a legendary spell, you draw a card and you lose 1 life.
Ability ability = new OrTriggeredAbility(Zone.BATTLEFIELD,
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), false,
+ new DrawCardSourceControllerEffect(1, true), false,
"Whenever you play a legendary land or cast a legendary spell, ",
new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, null, legendaryLandFilter, true),
new SpellCastControllerTriggeredAbility(null, legendarySpellFilter, false)
diff --git a/Mage.Sets/src/mage/cards/s/SignInBlood.java b/Mage.Sets/src/mage/cards/s/SignInBlood.java
index c71629261ac..526647b4952 100644
--- a/Mage.Sets/src/mage/cards/s/SignInBlood.java
+++ b/Mage.Sets/src/mage/cards/s/SignInBlood.java
@@ -2,8 +2,6 @@
package mage.cards.s;
-import java.util.UUID;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.cards.CardImpl;
@@ -11,22 +9,20 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.target.TargetPlayer;
+import java.util.UUID;
+
/**
- *
* @author BetaSteward_at_googlemail.com
*/
public final class SignInBlood extends CardImpl {
public SignInBlood(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}{B}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}{B}");
// Target player draws two cards and loses 2 life.
this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new DrawCardTargetEffect(2));
- Effect effect = new LoseLifeTargetEffect(2);
- effect.setText("and loses 2 life");
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
}
private SignInBlood(final SignInBlood card) {
diff --git a/Mage.Sets/src/mage/cards/s/SilverquillCommand.java b/Mage.Sets/src/mage/cards/s/SilverquillCommand.java
index 4543da487ee..45ef60efd4d 100644
--- a/Mage.Sets/src/mage/cards/s/SilverquillCommand.java
+++ b/Mage.Sets/src/mage/cards/s/SilverquillCommand.java
@@ -59,7 +59,7 @@ public final class SilverquillCommand extends CardImpl {
// • Target player draws a card and loses 1 life.
mode = new Mode(new DrawCardTargetEffect(1));
- mode.addEffect(new LoseLifeTargetEffect(1).setText("and loses 1 life"));
+ mode.addEffect(new LoseLifeTargetEffect(1).withTargetDescription("and"));
mode.addTarget(new TargetPlayer());
this.getSpellAbility().addMode(mode);
diff --git a/Mage.Sets/src/mage/cards/s/SkeletalScrying.java b/Mage.Sets/src/mage/cards/s/SkeletalScrying.java
index 9ea156bbf0b..45e01e98a68 100644
--- a/Mage.Sets/src/mage/cards/s/SkeletalScrying.java
+++ b/Mage.Sets/src/mage/cards/s/SkeletalScrying.java
@@ -39,12 +39,8 @@ public final class SkeletalScrying extends CardImpl {
this.getSpellAbility().setCostAdjuster(SkeletalScryingAdjuster.instance);
// You draw X cards and you lose X life.
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(
- GetXValue.instance
- ).setText("you draw X cards"));
- this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(
- GetXValue.instance
- ).concatBy("and"));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(GetXValue.instance, true));
+ this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(GetXValue.instance).concatBy("and"));
}
private SkeletalScrying(final SkeletalScrying card) {
diff --git a/Mage.Sets/src/mage/cards/s/SkemfarAvenger.java b/Mage.Sets/src/mage/cards/s/SkemfarAvenger.java
index 05c048cd6cc..2d40bfdef61 100644
--- a/Mage.Sets/src/mage/cards/s/SkemfarAvenger.java
+++ b/Mage.Sets/src/mage/cards/s/SkemfarAvenger.java
@@ -44,7 +44,7 @@ public final class SkemfarAvenger extends CardImpl {
// Whenever another nontoken Elf or Berserker you control dies, you draw a card and you lose 1 life.
Ability ability = new DiesCreatureTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), false, filter
+ new DrawCardSourceControllerEffect(1, true), false, filter
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/s/Slitherwisp.java b/Mage.Sets/src/mage/cards/s/Slitherwisp.java
index d1dc58327aa..bb4df3f94aa 100644
--- a/Mage.Sets/src/mage/cards/s/Slitherwisp.java
+++ b/Mage.Sets/src/mage/cards/s/Slitherwisp.java
@@ -41,9 +41,7 @@ public final class Slitherwisp extends CardImpl {
// Whenever you cast another spell with flash, you draw a card and each opponent loses 1 life.
Ability ability = new SpellCastControllerTriggeredAbility(
- new DrawCardSourceControllerEffect(1)
- .setText("you draw a card"),
- filter, false
+ new DrawCardSourceControllerEffect(1, true), filter, false
);
ability.addEffect(new LoseLifeOpponentsEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/s/SuccumbToTemptation.java b/Mage.Sets/src/mage/cards/s/SuccumbToTemptation.java
index 1bc3d402ae8..3b45ddff671 100644
--- a/Mage.Sets/src/mage/cards/s/SuccumbToTemptation.java
+++ b/Mage.Sets/src/mage/cards/s/SuccumbToTemptation.java
@@ -1,27 +1,24 @@
package mage.cards.s;
-import java.util.UUID;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
+import java.util.UUID;
+
/**
- *
* @author LevelX2
*/
public final class SuccumbToTemptation extends CardImpl {
public SuccumbToTemptation(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}{B}");
// You draw two cards and you lose 2 life.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2, true));
- Effect effect = new LoseLifeSourceControllerEffect(2);
- effect.setText("and you lose 2 life");
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"));
}
private SuccumbToTemptation(final SuccumbToTemptation card) {
diff --git a/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java b/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java
index 6680746e72c..195c9c1c459 100644
--- a/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java
+++ b/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java
@@ -53,7 +53,7 @@ public final class SyrGwynHeroOfAshvale extends CardImpl {
// Whenever an equipped creature you control attacks, you draw a card and you lose 1 life.
Ability ability = new AttacksCreatureYouControlTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), false, filter
+ new DrawCardSourceControllerEffect(1, true), false, filter
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/t/TheCouncilOfFour.java b/Mage.Sets/src/mage/cards/t/TheCouncilOfFour.java
index 0005c82831c..428c1d17c14 100644
--- a/Mage.Sets/src/mage/cards/t/TheCouncilOfFour.java
+++ b/Mage.Sets/src/mage/cards/t/TheCouncilOfFour.java
@@ -31,8 +31,7 @@ public final class TheCouncilOfFour extends CardImpl {
// Whenever a player draws their second card during their turn, you draw a card.
this.addAbility(new DrawNthCardTriggeredAbility(
- new DrawCardSourceControllerEffect(1)
- .setText("you draw a card"),
+ new DrawCardSourceControllerEffect(1, true),
false, TargetController.ACTIVE, 2
));
diff --git a/Mage.Sets/src/mage/cards/t/ToilTrouble.java b/Mage.Sets/src/mage/cards/t/ToilTrouble.java
index e904bbcffe7..cde66322ded 100644
--- a/Mage.Sets/src/mage/cards/t/ToilTrouble.java
+++ b/Mage.Sets/src/mage/cards/t/ToilTrouble.java
@@ -1,7 +1,6 @@
package mage.cards.t;
import mage.abilities.dynamicvalue.common.CardsInTargetHandCount;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
@@ -20,17 +19,14 @@ public final class ToilTrouble extends SplitCard {
// Toil
// Target player draws two cards and loses 2 life.
- getLeftHalfCard().getSpellAbility().addTarget(new TargetPlayer().withChooseHint("to draw two cards and lose 2 life"));
- getLeftHalfCard().getSpellAbility().addEffect(new DrawCardTargetEffect(2));
- getLeftHalfCard().getSpellAbility().addEffect(new LoseLifeTargetEffect(2).setText("and loses 2 life"));
+ this.getLeftHalfCard().getSpellAbility().addTarget(new TargetPlayer().withChooseHint("to draw two cards and lose 2 life"));
+ this.getLeftHalfCard().getSpellAbility().addEffect(new DrawCardTargetEffect(2));
+ this.getLeftHalfCard().getSpellAbility().addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
// Trouble
// Trouble deals damage to target player equal to the number of cards in that player's hand.
- Effect effect = new DamageTargetEffect(CardsInTargetHandCount.instance);
- effect.setText("{this} deals damage to target player equal to the number of cards in that player's hand");
- getRightHalfCard().getSpellAbility().addEffect(effect);
- getRightHalfCard().getSpellAbility().addTarget(new TargetPlayer().withChooseHint("to deal damage to"));
-
+ this.getRightHalfCard().getSpellAbility().addEffect(new DamageTargetEffect(CardsInTargetHandCount.instance).setText("{this} deals damage to target player equal to the number of cards in that player's hand"));
+ this.getRightHalfCard().getSpellAbility().addTarget(new TargetPlayer().withChooseHint("to deal damage to"));
}
private ToilTrouble(final ToilTrouble card) {
diff --git a/Mage.Sets/src/mage/cards/u/UndeadAugur.java b/Mage.Sets/src/mage/cards/u/UndeadAugur.java
index 0a14cfaf167..5466329b124 100644
--- a/Mage.Sets/src/mage/cards/u/UndeadAugur.java
+++ b/Mage.Sets/src/mage/cards/u/UndeadAugur.java
@@ -36,7 +36,7 @@ public final class UndeadAugur extends CardImpl {
// Whenever Undead Augur or another Zombie you control dies, you draw a card and you lose 1 life.
Ability ability = new DiesThisOrAnotherTriggeredAbility(
- new DrawCardSourceControllerEffect(1).setText("you draw a card"), false, filter
+ new DrawCardSourceControllerEffect(1, true), false, filter
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/u/UnscrupulousContractor.java b/Mage.Sets/src/mage/cards/u/UnscrupulousContractor.java
index 990f8461acb..a9278914d4f 100644
--- a/Mage.Sets/src/mage/cards/u/UnscrupulousContractor.java
+++ b/Mage.Sets/src/mage/cards/u/UnscrupulousContractor.java
@@ -32,7 +32,7 @@ public final class UnscrupulousContractor extends CardImpl {
// When Unscrupulous Contractor enters the battlefield, you may sacrifice a creature. When you do, target player draws two cards and loses 2 life.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new DrawCardTargetEffect(2), false);
- ability.addEffect(new LoseLifeTargetEffect(2).setText("and loses 2 life"));
+ ability.addEffect(new LoseLifeTargetEffect(2).withTargetDescription("and"));
ability.addTarget(new TargetPlayer());
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoWhenCostPaid(
ability, new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE),
diff --git a/Mage.Sets/src/mage/cards/u/UnwillingIngredient.java b/Mage.Sets/src/mage/cards/u/UnwillingIngredient.java
index 26c0be437a0..e8fa354f167 100644
--- a/Mage.Sets/src/mage/cards/u/UnwillingIngredient.java
+++ b/Mage.Sets/src/mage/cards/u/UnwillingIngredient.java
@@ -34,8 +34,7 @@ public final class UnwillingIngredient extends CardImpl {
// {2}{B}, Exile Unwilling Ingredient from your graveyard: You draw a card and you lose 1 life.
Ability ability = new SimpleActivatedAbility(
Zone.GRAVEYARD,
- new DrawCardSourceControllerEffect(1)
- .setText("you draw a card"),
+ new DrawCardSourceControllerEffect(1, true),
new ManaCostsImpl<>("{2}{B}")
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
diff --git a/Mage.Sets/src/mage/cards/v/VaultPlunderer.java b/Mage.Sets/src/mage/cards/v/VaultPlunderer.java
index 25d96b4c814..a62236b99e5 100644
--- a/Mage.Sets/src/mage/cards/v/VaultPlunderer.java
+++ b/Mage.Sets/src/mage/cards/v/VaultPlunderer.java
@@ -28,7 +28,7 @@ public final class VaultPlunderer extends CardImpl {
// When Vault Plunderer enters the battlefield, target player draws a card and loses 1 life.
Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardTargetEffect(1));
- ability.addEffect(new LoseLifeTargetEffect(1).setText("and loses 1 life"));
+ ability.addEffect(new LoseLifeTargetEffect(1).withTargetDescription("and"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/v/VraskaBetrayalsSting.java b/Mage.Sets/src/mage/cards/v/VraskaBetrayalsSting.java
index 6210ec146ef..9243008f40d 100644
--- a/Mage.Sets/src/mage/cards/v/VraskaBetrayalsSting.java
+++ b/Mage.Sets/src/mage/cards/v/VraskaBetrayalsSting.java
@@ -36,8 +36,8 @@ public final class VraskaBetrayalsSting extends CardImpl {
this.addAbility(CompleatedAbility.getInstance());
// 0: You draw a card and you lose 1 life. Proliferate.
- Ability ability = new LoyaltyAbility(new DrawCardSourceControllerEffect(1).setText("You draw a card"), 0);
- ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
+ Ability ability = new LoyaltyAbility(new DrawCardSourceControllerEffect(1, true), 0);
+ ability.addEffect(new LoseLifeSourceControllerEffect(1, false).concatBy("and"));
ability.addEffect(new ProliferateEffect(false));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/v/VulturousAven.java b/Mage.Sets/src/mage/cards/v/VulturousAven.java
index 0bfa598aea8..11b6dea4cf1 100644
--- a/Mage.Sets/src/mage/cards/v/VulturousAven.java
+++ b/Mage.Sets/src/mage/cards/v/VulturousAven.java
@@ -1,11 +1,8 @@
-
package mage.cards.v;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ExploitCreatureTriggeredAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.keyword.ExploitAbility;
@@ -15,14 +12,15 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
+import java.util.UUID;
+
/**
- *
* @author LevelX2
*/
public final class VulturousAven extends CardImpl {
public VulturousAven(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
this.subtype.add(SubType.BIRD);
this.subtype.add(SubType.SHAMAN);
this.power = new MageInt(2);
@@ -30,17 +28,13 @@ public final class VulturousAven extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
-
+
// Exploit
this.addAbility(new ExploitAbility());
// When Vulturous Aven exploits a creature, you draw two cards and you lose 2 life.
- Effect effect = new DrawCardSourceControllerEffect(2);
- effect.setText("you draw two cards");
- Ability ability = new ExploitCreatureTriggeredAbility(effect, false);
- effect = new LoseLifeSourceControllerEffect(2);
- effect.setText("and you lose 2 life");
- ability.addEffect(effect);
+ Ability ability = new ExploitCreatureTriggeredAbility(new DrawCardSourceControllerEffect(2, true), false);
+ ability.addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/w/WretchedConfluence.java b/Mage.Sets/src/mage/cards/w/WretchedConfluence.java
index 822b18e3e83..10dab9dc034 100644
--- a/Mage.Sets/src/mage/cards/w/WretchedConfluence.java
+++ b/Mage.Sets/src/mage/cards/w/WretchedConfluence.java
@@ -1,9 +1,6 @@
-
package mage.cards.w;
-import java.util.UUID;
import mage.abilities.Mode;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
@@ -11,14 +8,14 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Duration;
import mage.filter.StaticFilters;
import mage.target.TargetPlayer;
import mage.target.common.TargetCardInYourGraveyard;
import mage.target.common.TargetCreaturePermanent;
+import java.util.UUID;
+
/**
- *
* @author fireshoes
*/
public final class WretchedConfluence extends CardImpl {
@@ -32,21 +29,17 @@ public final class WretchedConfluence extends CardImpl {
this.getSpellAbility().getModes().setMayChooseSameModeMoreThanOnce(true);
// - Target player draws a card and loses 1 life;
- Effect effect = new LoseLifeTargetEffect(1);
- effect.setText("and loses 1 life");
this.getSpellAbility().addEffect(new DrawCardTargetEffect(1));
- this.getSpellAbility().addEffect(effect);
+ this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1).withTargetDescription("and"));
this.getSpellAbility().addTarget(new TargetPlayer());
// Target creature gets -2/-2 until end of turn;
- Mode mode = new Mode(new BoostTargetEffect(-2, -2, Duration.EndOfTurn));
- mode.addTarget(new TargetCreaturePermanent());
- this.getSpellAbility().getModes().addMode(mode);
+ this.getSpellAbility().getModes().addMode(new Mode(new BoostTargetEffect(-2, -2))
+ .addTarget(new TargetCreaturePermanent()));
// Return target creature card from your graveyard to your hand.
- mode = new Mode(new ReturnFromGraveyardToHandTargetEffect());
- mode.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
- this.getSpellAbility().getModes().addMode(mode);
+ this.getSpellAbility().getModes().addMode(new Mode(new ReturnFromGraveyardToHandTargetEffect())
+ .addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)));
}
private WretchedConfluence(final WretchedConfluence card) {
diff --git a/Mage.Sets/src/mage/cards/z/ZukoConflicted.java b/Mage.Sets/src/mage/cards/z/ZukoConflicted.java
index 9d528c62fdc..42c7b6e7cb2 100644
--- a/Mage.Sets/src/mage/cards/z/ZukoConflicted.java
+++ b/Mage.Sets/src/mage/cards/z/ZukoConflicted.java
@@ -50,7 +50,7 @@ public final class ZukoConflicted extends CardImpl {
// * Add {R}.
ability.addMode(new Mode(new BasicManaEffect(Mana.RedMana(1)).setText("add"))
- .addEffect(new LoseLifeSourceControllerEffect(2).setText("{R}")));
+ .addEffect(new LoseLifeSourceControllerEffect(2).setText(" {R}")));
// * Exile Zuko, then return him to the battlefield under an opponent's control.
ability.addMode(new Mode(new ZukoConflictedEffect())
diff --git a/Mage/src/main/java/mage/abilities/effects/common/LoseLifeSourceControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/LoseLifeSourceControllerEffect.java
index b3e54ac0a94..d38e0cc6fc1 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/LoseLifeSourceControllerEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/LoseLifeSourceControllerEffect.java
@@ -1,12 +1,10 @@
-
-
package mage.abilities.effects.common;
-import mage.constants.Outcome;
import mage.abilities.Ability;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.OneShotEffect;
+import mage.constants.Outcome;
import mage.game.Game;
import mage.players.Player;
@@ -18,13 +16,21 @@ public class LoseLifeSourceControllerEffect extends OneShotEffect {
protected DynamicValue amount;
public LoseLifeSourceControllerEffect(int amount) {
- this(StaticValue.get(amount));
+ this(amount, true);
+ }
+
+ public LoseLifeSourceControllerEffect(int amount, boolean youLose) {
+ this(StaticValue.get(amount), youLose);
}
public LoseLifeSourceControllerEffect(DynamicValue amount) {
+ this(amount, true);
+ }
+
+ public LoseLifeSourceControllerEffect(DynamicValue amount, boolean youLose) {
super(Outcome.LoseLife);
this.amount = amount;
- setText();
+ setText(youLose);
}
protected LoseLifeSourceControllerEffect(final LoseLifeSourceControllerEffect effect) {
@@ -47,9 +53,14 @@ public class LoseLifeSourceControllerEffect extends OneShotEffect {
return false;
}
- private void setText() {
+ private void setText(boolean youLose) {
StringBuilder sb = new StringBuilder();
- sb.append("you lose ").append(amount.toString()).append(" life");
+ if (youLose) {
+ sb.append("you ");
+ }
+ sb.append("lose ");
+ sb.append(amount.toString());
+ sb.append(" life");
String message = amount.getMessage();
if (!message.isEmpty()) {
sb.append(" for each ");
diff --git a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java
index 48a2c2b8632..7d49ad7eaa8 100644
--- a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java
@@ -15,7 +15,7 @@ import mage.target.common.TargetAnyTarget;
public final class DevilToken extends TokenImpl {
public DevilToken() {
- super("Devil Token", "1/1 red Devil creature token with \"When this creature dies, it deals 1 damage to any target.\"");
+ super("Devil Token", "1/1 red Devil creature token with \"When this token dies, it deals 1 damage to any target.\"");
cardType.add(CardType.CREATURE);
subtype.add(SubType.DEVIL);
color.setRed(true);