diff --git a/Mage.Sets/src/mage/cards/i/InvisibleWoman.java b/Mage.Sets/src/mage/cards/i/InvisibleWoman.java new file mode 100644 index 00000000000..02505d6cc09 --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InvisibleWoman.java @@ -0,0 +1,61 @@ +package mage.cards.i; + +import mage.MageInt; +import mage.abilities.common.AttacksWithCreaturesTriggeredAbility; +import mage.abilities.common.delayed.ReflexiveTriggeredAbility; +import mage.abilities.condition.common.CastNoncreatureSpellThisTurnCondition; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DoWhenCostPaid; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.triggers.BeginningOfCombatTriggeredAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.game.permanent.token.WallColorlessReachToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class InvisibleWoman extends CardImpl { + + public InvisibleWoman(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.HERO); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // At the beginning of combat on your turn, if you've cast a noncreature spell this turn, create a 0/3 colorless Wall creature token with defender and reach. + this.addAbility(new BeginningOfCombatTriggeredAbility(new CreateTokenEffect(new WallColorlessReachToken())) + .withInterveningIf(CastNoncreatureSpellThisTurnCondition.instance) + .addHint(CastNoncreatureSpellThisTurnCondition.getHint())); + + // Whenever you attack, you may pay {R}{G}{W}{U}. When you do, target creature gets +1/+0 until end of turn for each creature you control and can't be blocked this turn. + ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( + new BoostTargetEffect(CreaturesYouControlCount.SINGULAR, StaticValue.get(0)), false + ); + ability.addEffect(new CantBeBlockedTargetEffect().setText("and can't be blocked this turn")); + this.addAbility(new AttacksWithCreaturesTriggeredAbility(new DoWhenCostPaid( + ability, new ManaCostsImpl<>("{R}{G}{W}{U}"), "Pay {R}{G}{W}{U}?" + ), 1)); + } + + private InvisibleWoman(final InvisibleWoman card) { + super(card); + } + + @Override + public InvisibleWoman copy() { + return new InvisibleWoman(this); + } +} diff --git a/Mage.Sets/src/mage/sets/MarvelSuperHeroesCommander.java b/Mage.Sets/src/mage/sets/MarvelSuperHeroesCommander.java index e20c2f4e820..d66f0f251ce 100644 --- a/Mage.Sets/src/mage/sets/MarvelSuperHeroesCommander.java +++ b/Mage.Sets/src/mage/sets/MarvelSuperHeroesCommander.java @@ -21,6 +21,7 @@ public final class MarvelSuperHeroesCommander extends ExpansionSet { this.hasBasicLands = false; // temporary cards.add(new SetCardInfo("Human Torch", 3, Rarity.MYTHIC, mage.cards.h.HumanTorch.class)); + cards.add(new SetCardInfo("Invisible Woman", 1, Rarity.MYTHIC, mage.cards.i.InvisibleWoman.class)); cards.add(new SetCardInfo("Mister Fantastic", 2, Rarity.MYTHIC, mage.cards.m.MisterFantastic.class)); cards.add(new SetCardInfo("The Thing", 4, Rarity.MYTHIC, mage.cards.t.TheThing.class)); } diff --git a/Mage/src/main/java/mage/game/permanent/token/WallColorlessReachToken.java b/Mage/src/main/java/mage/game/permanent/token/WallColorlessReachToken.java new file mode 100644 index 00000000000..befd19724e9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/WallColorlessReachToken.java @@ -0,0 +1,31 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; +import mage.abilities.keyword.ReachAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author TheElk801 + */ +public final class WallColorlessReachToken extends TokenImpl { + + public WallColorlessReachToken() { + super("Wall Token", "0/3 colorless Wall creature token with defender and reach"); + cardType.add(CardType.CREATURE); + subtype.add(SubType.WALL); + power = new MageInt(0); + toughness = new MageInt(3); + addAbility(DefenderAbility.getInstance()); + addAbility(ReachAbility.getInstance()); + } + + private WallColorlessReachToken(final WallColorlessReachToken token) { + super(token); + } + + public WallColorlessReachToken copy() { + return new WallColorlessReachToken(this); + } +}