[MIR] Implement Mindbender Spores (#11586)

This commit is contained in:
Cameron Merkel 2023-12-29 21:40:28 -06:00 committed by GitHub
parent d95dfe4a99
commit f28c5c4fc5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,70 @@
package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.BlocksCreatureTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.decorator.ConditionalContinuousRuleModifyingEffect;
import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.DefenderAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.counters.CounterType;
import java.util.UUID;
/**
* @author Cguy7777
*/
public final class MindbenderSpores extends CardImpl {
public MindbenderSpores(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.subtype.add(SubType.FUNGUS);
this.subtype.add(SubType.WALL);
this.power = new MageInt(0);
this.toughness = new MageInt(1);
// Defender
this.addAbility(DefenderAbility.getInstance());
// Flying
this.addAbility(FlyingAbility.getInstance());
// Whenever Mindbender Spores blocks a creature, put four fungus counters on that creature.
// The creature gains "This creature doesn't untap during your untap step if it has a fungus counter on it"
// and "At the beginning of your upkeep, remove a fungus counter from this creature."
Ability ability = new BlocksCreatureTriggeredAbility(new AddCountersTargetEffect(CounterType.FUNGUS.createInstance(4)));
SimpleStaticAbility doesntUntapAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousRuleModifyingEffect(
new DontUntapInControllersUntapStepSourceEffect(), new SourceHasCounterCondition(CounterType.FUNGUS))
.setText("{this} doesn't untap during your untap step if it has a fungus counter on it"));
ability.addEffect(new GainAbilityTargetEffect(doesntUntapAbility, Duration.Custom)
.setText("The creature gains \"This creature doesn't untap during your untap step if it has a fungus counter on it\""));
BeginningOfUpkeepTriggeredAbility removeCounterAbility = new BeginningOfUpkeepTriggeredAbility(
new RemoveCounterSourceEffect(CounterType.FUNGUS.createInstance()), TargetController.YOU, false);
ability.addEffect(new GainAbilityTargetEffect(removeCounterAbility, Duration.Custom)
.concatBy("and")
.setText("\"At the beginning of your upkeep, remove a fungus counter from this creature.\""));
this.addAbility(ability);
}
private MindbenderSpores(final MindbenderSpores card) {
super(card);
}
@Override
public MindbenderSpores copy() {
return new MindbenderSpores(this);
}
}

View file

@ -208,6 +208,7 @@ public final class Mirage extends ExpansionSet {
cards.add(new SetCardInfo("Merfolk Raiders", 75, Rarity.COMMON, mage.cards.m.MerfolkRaiders.class));
cards.add(new SetCardInfo("Merfolk Seer", 76, Rarity.COMMON, mage.cards.m.MerfolkSeer.class));
cards.add(new SetCardInfo("Mind Harness", 78, Rarity.UNCOMMON, mage.cards.m.MindHarness.class));
cards.add(new SetCardInfo("Mindbender Spores", 229, Rarity.RARE, mage.cards.m.MindbenderSpores.class));
cards.add(new SetCardInfo("Mire Shade", 131, Rarity.UNCOMMON, mage.cards.m.MireShade.class));
cards.add(new SetCardInfo("Misers' Cage", 311, Rarity.RARE, mage.cards.m.MisersCage.class));
cards.add(new SetCardInfo("Mist Dragon", 79, Rarity.RARE, mage.cards.m.MistDragon.class));