[BLB] Implement Mind Spiral

This commit is contained in:
theelk801 2024-07-23 15:21:23 -04:00
parent 8ed32d03f0
commit 12aa81cbf4
3 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,52 @@
package mage.cards.m;
import mage.abilities.condition.common.GiftWasPromisedCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.keyword.GiftAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.GiftType;
import mage.counters.CounterType;
import mage.target.TargetPlayer;
import mage.target.common.TargetOpponentsCreaturePermanent;
import mage.target.targetadjustment.ConditionalTargetAdjuster;
import mage.target.targetpointer.SecondTargetPointer;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class MindSpiral extends CardImpl {
public MindSpiral(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}");
// Gift a tapped Fish
this.addAbility(new GiftAbility(this, GiftType.TAPPED_FISH));
// Target player draws three cards. If the gift was promised, tap target creature an opponent controls and put a stun counter on it.
this.getSpellAbility().addEffect(new DrawCardTargetEffect(3));
this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new TapTargetEffect(), GiftWasPromisedCondition.TRUE, "if the gift was promised, " +
"tap target creature an opponent controls and put a stun counter on it"
).addEffect(new AddCountersTargetEffect(CounterType.STUN.createInstance())).setTargetPointer(new SecondTargetPointer()));
this.getSpellAbility().setTargetAdjuster(new ConditionalTargetAdjuster(
GiftWasPromisedCondition.TRUE, true, new TargetOpponentsCreaturePermanent()
));
}
private MindSpiral(final MindSpiral card) {
super(card);
}
@Override
public MindSpiral copy() {
return new MindSpiral(this);
}
}

View file

@ -134,6 +134,7 @@ public final class Bloomburrow extends ExpansionSet {
cards.add(new SetCardInfo("Manifold Mouse", 143, Rarity.RARE, mage.cards.m.ManifoldMouse.class));
cards.add(new SetCardInfo("Might of the Meek", 144, Rarity.COMMON, mage.cards.m.MightOfTheMeek.class));
cards.add(new SetCardInfo("Mind Drill Assailant", 225, Rarity.COMMON, mage.cards.m.MindDrillAssailant.class));
cards.add(new SetCardInfo("Mind Spiral", 59, Rarity.COMMON, mage.cards.m.MindSpiral.class));
cards.add(new SetCardInfo("Mind Spring", 389, Rarity.RARE, mage.cards.m.MindSpring.class));
cards.add(new SetCardInfo("Mindwhisker", 60, Rarity.UNCOMMON, mage.cards.m.Mindwhisker.class));
cards.add(new SetCardInfo("Mistbreath Elder", 184, Rarity.RARE, mage.cards.m.MistbreathElder.class));

View file

@ -3,10 +3,12 @@ package mage.abilities.decorator;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.condition.Condition;
import mage.abilities.effects.Effect;
import mage.abilities.effects.Effects;
import mage.abilities.effects.OneShotEffect;
import mage.constants.Outcome;
import mage.game.Game;
import mage.target.targetpointer.TargetPointer;
import mage.util.CardUtil;
/**
@ -110,6 +112,13 @@ public class ConditionalOneShotEffect extends OneShotEffect {
+ CardUtil.getTextWithFirstCharLowerCase(otherwiseEffects.getText(mode));
}
@Override
public Effect setTargetPointer(TargetPointer targetPointer) {
effects.setTargetPointer(targetPointer);
otherwiseEffects.setTargetPointer(targetPointer);
return super.setTargetPointer(targetPointer);
}
@Override
public Condition getCondition() {
return condition;