mirror of
https://github.com/magefree/mage.git
synced 2026-01-10 21:02:08 -08:00
[TDM] Implement Desperate Measures
This commit is contained in:
parent
552852bd86
commit
e54210ad2e
3 changed files with 52 additions and 2 deletions
41
Mage.Sets/src/mage/cards/d/DesperateMeasures.java
Normal file
41
Mage.Sets/src/mage/cards/d/DesperateMeasures.java
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
package mage.cards.d;
|
||||
|
||||
import mage.abilities.common.delayed.WhenTargetDiesDelayedTriggeredAbility;
|
||||
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
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.constants.SetTargetPointer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class DesperateMeasures extends CardImpl {
|
||||
|
||||
public DesperateMeasures(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}");
|
||||
|
||||
// Target creature gets +1/-1 until end of turn. When it dies under your control this turn, draw two cards.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(1, -1));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new WhenTargetDiesDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(2), Duration.EndOfTurn,
|
||||
SetTargetPointer.NONE, true
|
||||
), true
|
||||
));
|
||||
}
|
||||
|
||||
private DesperateMeasures(final DesperateMeasures card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DesperateMeasures copy() {
|
||||
return new DesperateMeasures(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -80,6 +80,7 @@ public final class TarkirDragonstorm extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Defibrillating Current", 177, Rarity.UNCOMMON, mage.cards.d.DefibrillatingCurrent.class));
|
||||
cards.add(new SetCardInfo("Delta Bloodflies", 77, Rarity.COMMON, mage.cards.d.DeltaBloodflies.class));
|
||||
cards.add(new SetCardInfo("Descendant of Storms", 8, Rarity.UNCOMMON, mage.cards.d.DescendantOfStorms.class));
|
||||
cards.add(new SetCardInfo("Desperate Measures", 78, Rarity.UNCOMMON, mage.cards.d.DesperateMeasures.class));
|
||||
cards.add(new SetCardInfo("Devoted Duelist", 104, Rarity.COMMON, mage.cards.d.DevotedDuelist.class));
|
||||
cards.add(new SetCardInfo("Dirgur Island Dragon", 40, Rarity.COMMON, mage.cards.d.DirgurIslandDragon.class));
|
||||
cards.add(new SetCardInfo("Dismal Backwater", 254, Rarity.COMMON, mage.cards.d.DismalBackwater.class));
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ public class WhenTargetDiesDelayedTriggeredAbility extends DelayedTriggeredAbili
|
|||
|
||||
protected MageObjectReference mor;
|
||||
private final SetTargetPointer setTargetPointer;
|
||||
private final boolean onlyControlled;
|
||||
|
||||
public WhenTargetDiesDelayedTriggeredAbility(Effect effect) {
|
||||
this(effect, SetTargetPointer.NONE);
|
||||
|
|
@ -28,15 +29,21 @@ public class WhenTargetDiesDelayedTriggeredAbility extends DelayedTriggeredAbili
|
|||
}
|
||||
|
||||
public WhenTargetDiesDelayedTriggeredAbility(Effect effect, Duration duration, SetTargetPointer setTargetPointer) {
|
||||
this(effect, duration, setTargetPointer, false);
|
||||
}
|
||||
|
||||
public WhenTargetDiesDelayedTriggeredAbility(Effect effect, Duration duration, SetTargetPointer setTargetPointer, boolean onlyControlled) {
|
||||
super(effect, duration, true);
|
||||
this.setTargetPointer = setTargetPointer;
|
||||
setTriggerPhrase("When that creature dies" + (duration == Duration.EndOfTurn ? " this turn, " : ", "));
|
||||
this.onlyControlled = onlyControlled;
|
||||
setTriggerPhrase("When that creature dies" + (onlyControlled ? " under your control" : "") + (duration == Duration.EndOfTurn ? " this turn, " : ", "));
|
||||
}
|
||||
|
||||
protected WhenTargetDiesDelayedTriggeredAbility(final WhenTargetDiesDelayedTriggeredAbility ability) {
|
||||
super(ability);
|
||||
this.mor = ability.mor;
|
||||
this.setTargetPointer = ability.setTargetPointer;
|
||||
this.onlyControlled = ability.onlyControlled;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -62,7 +69,8 @@ public class WhenTargetDiesDelayedTriggeredAbility extends DelayedTriggeredAbili
|
|||
return false;
|
||||
}
|
||||
Permanent permanent = zEvent.getTarget();
|
||||
if (mor == null || !mor.refersTo(permanent, game)) {
|
||||
if (mor == null || !mor.refersTo(permanent, game)
|
||||
|| onlyControlled && !permanent.isControlledBy(getControllerId())) {
|
||||
return false;
|
||||
}
|
||||
switch (setTargetPointer) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue