mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
some text fixes around effects which draw cards and lose life
This commit is contained in:
parent
48dee7d128
commit
75717bc839
57 changed files with 177 additions and 308 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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("<br>")
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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 {
|
|||
|
||||
// <i>Bounty</i> — 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
));
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"))));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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}")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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} <i>(two energy counters)</i>.");
|
||||
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} <i>(two energy counters)</i>."));
|
||||
}
|
||||
|
||||
private LiveFast(final LiveFast card) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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}");
|
||||
|
||||
// <i>Converge</i> — 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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
));
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -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 ");
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue