public GainLifeEffect(DynamicValue life) { super(Outcome.GainLife); this.life = life; setText(); }
public CreepingChill(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}"); // Creeping Chill deals 3 damage to each opponent and you gain 3 life. this.getSpellAbility().addEffect( new DamagePlayersEffect(3, TargetController.OPPONENT) ); this.getSpellAbility().addEffect( new GainLifeEffect(3).setText("and you gain 3 life") ); // When Creeping Chill is put into your graveyard from your library, you may exile it. If you do, Creeping Chill deals 3 damage to each opponent and you gain 3 life. this.addAbility(new CreepingChillAbility()); }
public SovereignsBite(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}"); // Target player loses 3 life and you gain 3 life. this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3)); this.getSpellAbility().addEffect(new GainLifeEffect(3).setText("and you gain 3 life")); this.getSpellAbility().addTarget(new TargetPlayer()); }
public WarleadersHelix(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}{W}"); // Warleader's Helix deals 4 damage to any target and you gain 4 life. this.getSpellAbility().addEffect(new DamageTargetEffect(4)); this.getSpellAbility().addEffect(new GainLifeEffect(4).setText("and you gain 4 life")); this.getSpellAbility().addTarget(new TargetAnyTarget()); }
public BasilicaBellHaunt(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{W}{B}{B}"); this.subtype.add(SubType.SPIRIT); this.power = new MageInt(3); this.toughness = new MageInt(4); // When Basilica Bell-Haunt enters the battlefield, each opponent discards a card and you gain 3 life. Ability ability = new EntersBattlefieldTriggeredAbility(new DiscardEachPlayerEffect(TargetController.OPPONENT)); ability.addEffect(new GainLifeEffect(3).setText("and you gain 3 life")); this.addAbility(ability); }
public HierophantsChalice(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // When Hierophant's Chalice enters the battlefield, target opponent loses 1 life and you gain 1 life. Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(1), false); ability.addEffect(new GainLifeEffect(1).setText("and you gain one life.")); Target target = new TargetOpponent(); ability.addTarget(target); this.addAbility(ability); // {t}: Add {c}. this.addAbility(new ColorlessManaAbility()); }
public TakeHeart(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}"); // Target creature gets +2/+2 until end of turn. You gain 1 life for each attacking creature you control. this.getSpellAbility().addEffect( new BoostTargetEffect(2, 2, Duration.EndOfTurn) ); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new GainLifeEffect( new PermanentsOnBattlefieldCount(filter) ).setText("You gain 1 life for each attacking creature you control.")); }
public ChainersTorment(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}"); this.subtype.add(SubType.SAGA); // <i>(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)</i> SagaAbility sagaAbility = new SagaAbility(this, SagaChapter.CHAPTER_III); // I, II — Chainer's Torment deals 2 damage to each opponent and you gain 2 life. Effects effects = new Effects(); effects.add(new DamagePlayersEffect(2, TargetController.OPPONENT)); effects.add(new GainLifeEffect(2).setText("and you gain 2 life")); sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, SagaChapter.CHAPTER_II, effects); // III — Create an X/X black Nightmare Horror creature token, where X is half your life total, rounded up. It deals X damage to you. sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new ChainersTormentEffect()); this.addAbility(sagaAbility); }
public GraspingThrull(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{B}"); this.subtype.add(SubType.THRULL); this.power = new MageInt(3); this.toughness = new MageInt(3); // Flying this.addAbility(FlyingAbility.getInstance()); // When Grasping Thrull enters the battlefield, it deals 2 damage to each opponent and you gain 2 life. Ability ability = new EntersBattlefieldTriggeredAbility(new DamagePlayersEffect( 2, TargetController.OPPONENT, "it" )); ability.addEffect(new GainLifeEffect(2).setText("and you gain 2 life")); this.addAbility(ability); }
public WindgraceAcolyte(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); this.subtype.add(SubType.CAT); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(3); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // When Windgrace Acolyte enters the battlefield, put the top three cards of your library into your graveyard and you gain 3 life. Ability ability = new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(3), false); ability.addEffect(new GainLifeEffect(3).setText("and you gain 3 life")); this.addAbility(ability); }
public LastCaress(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}"); this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1)); this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addEffect(new GainLifeEffect(1).setText("and you gain 1 life")); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card")); }
public AbsorbVis(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{6}{B}"); this.getSpellAbility().addEffect(new LoseLifeTargetEffect(4)); this.getSpellAbility().addEffect(new GainLifeEffect(4).setText("and you gain 4 life")); this.getSpellAbility().addTarget(new TargetPlayer()); this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl("{1}{B}"))); }
public VampireSovereign(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); this.subtype.add(SubType.VAMPIRE); this.power = new MageInt(3); this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); // When Vampire Sovereign enters the battlefield, target opponent loses 3 life and you gain 3 life. Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(3)); ability.addEffect(new GainLifeEffect(3).setText("and you gain 3 life")); ability.addTarget(new TargetOpponent()); this.addAbility(ability); }
public Finn(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.TROOPER); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(3); this.toughness = new MageInt(3); // Whenever Finn or another nontoken creature you control enters the battlefield under your control, you gain 1 life for each nontoken creature you control. this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(new PermanentsOnBattlefieldCount(filter)) .setText("you gain 1 life for each nontoken creature you control"), filter, false)); }
public VampireNeonate(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); this.subtype.add(SubType.VAMPIRE); this.power = new MageInt(0); this.toughness = new MageInt(3); // {2}, {T}: Each opponent loses 1 life and you gain 1 life. Ability ability = new SimpleActivatedAbility( new LoseLifeOpponentsEffect(1), new GenericManaCost(2) ); ability.addCost(new TapSourceCost()); ability.addEffect(new GainLifeEffect(1).setText("and you gain 1 life")); this.addAbility(ability); }
public KeeperOfTheLight(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{W}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(1); this.toughness = new MageInt(2); // {W}, {T}: Choose target opponent who had more life than you did as you activated this ability. You gain 3 life. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3).setText("Choose target opponent who had more life than you did as you activated this ability. You gain 3 life."), new ManaCostsImpl("{W}")); ability.addCost(new TapSourceCost()); ability.addTarget(new KeeperOfTheLightTarget()); this.addAbility(ability); }
public BloodbornScoundrels(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{B}"); this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.ROGUE); this.power = new MageInt(4); this.toughness = new MageInt(4); // Assist this.addAbility(new AssistAbility()); // When Bloodborn Scoundrels enters the battlefield, target opponent loses 2 life and you gain 2 life. Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(2)); ability.addEffect(new GainLifeEffect(2).setText("and you gain 2 life")); ability.addTarget(new TargetOpponent()); this.addAbility(ability); }
public SkymarchBloodletter(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(2); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // When Skymarch Bloodletters enters the battlefield, target opponent loses 1 life and you gain 1 life. Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(1), false); ability.addEffect(new GainLifeEffect(1).setText("and you gain 1 life")); Target target = new TargetOpponent(); ability.addTarget(target); this.addAbility(ability); }
public VraskasConquistador(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(2); this.toughness = new MageInt(1); // Whenever Vraska's Conquistador attacks or blocks, if you control a Vraska planeswalker, target opponent loses 2 life and you gain 2 life. TriggeredAbility ability = new AttacksOrBlocksTriggeredAbility(new LoseLifeTargetEffect(2), false); ability.addEffect(new GainLifeEffect(2).setText("and you gain 2 life")); ability.addTarget(new TargetOpponent()); this.addAbility(new ConditionalInterveningIfTriggeredAbility( ability, new PermanentsOnTheBattlefieldCondition(filter), "Whenever {this} attacks or blocks, if you control a Vraska planeswalker, target opponent loses 2 life and you gain 2 life.")); }
public MidnightCharm(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); // Choose one - Midnight Charm deals 1 damage to target creature and you gain 1 life; or target creature gains first strike until end of turn; or tap target creature. this.getSpellAbility().addEffect(new DamageTargetEffect(1)); this.getSpellAbility().addEffect(new GainLifeEffect(1).setText("and you gain 1 life")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); Mode mode = new Mode(); mode.addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); mode.addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addMode(mode); mode = new Mode(); mode.addEffect(new TapTargetEffect()); mode.addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addMode(mode); }