Implemented Mesmerizing Benthid

This commit is contained in:
Evan Kranzler 2019-01-07 19:13:03 -05:00
parent 993c56e1db
commit c1c09020a6
4 changed files with 98 additions and 2 deletions

View file

@ -0,0 +1,56 @@
package mage.cards.m;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.game.permanent.token.MesmerizingBenthidToken;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class MesmerizingBenthid extends CardImpl {
private static final FilterPermanent filter = new FilterControlledCreaturePermanent(SubType.ILLUSION);
public MesmerizingBenthid(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
this.subtype.add(SubType.OCTOPUS);
this.power = new MageInt(4);
this.toughness = new MageInt(5);
// When Mesmerizing Benthid enters the battlefield, create two 0/2 blue Illusion creature tokens with "Whenever this creature blocks a creature, that creature doesn't untap during its controller's next untap step."
this.addAbility(new EntersBattlefieldTriggeredAbility(
new CreateTokenEffect(new MesmerizingBenthidToken(), 2)
));
// Mesmerizing Benthid has hexproof as long as you control an Illusion.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(HexproofAbility.getInstance()),
new PermanentsOnTheBattlefieldCondition(filter),
"{this} has hexproof as long as you control an Illusion."
)));
}
private MesmerizingBenthid(final MesmerizingBenthid card) {
super(card);
}
@Override
public MesmerizingBenthid copy() {
return new MesmerizingBenthid(this);
}
}

View file

@ -85,6 +85,7 @@ public final class RavnicaAllegiance extends ExpansionSet {
cards.add(new SetCardInfo("Lavinia, Azorius Renegade", 189, Rarity.RARE, mage.cards.l.LaviniaAzoriusRenegade.class));
cards.add(new SetCardInfo("Light Up the Stage", 107, Rarity.UNCOMMON, mage.cards.l.LightUpTheStage.class));
cards.add(new SetCardInfo("Mass Manipulation", 42, Rarity.RARE, mage.cards.m.MassManipulation.class));
cards.add(new SetCardInfo("Mesmerizing Benthid", 43, Rarity.MYTHIC, mage.cards.m.MesmerizingBenthid.class));
cards.add(new SetCardInfo("Ministrant of Obligation", 16, Rarity.UNCOMMON, mage.cards.m.MinistrantOfObligation.class));
cards.add(new SetCardInfo("Mortify", 192, Rarity.UNCOMMON, mage.cards.m.Mortify.class));
cards.add(new SetCardInfo("Orzhov Guildgate", 252, Rarity.COMMON, mage.cards.o.OrzhovGuildgate.class, NON_FULL_USE_VARIOUS));

View file

@ -2,16 +2,19 @@
package mage.abilities.common;
import mage.constants.Zone;
import mage.abilities.StaticAbility;
import mage.abilities.effects.Effect;
import mage.constants.Zone;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public class SimpleStaticAbility extends StaticAbility {
public SimpleStaticAbility(Effect effect) {
this(Zone.BATTLEFIELD, effect);
}
public SimpleStaticAbility(Zone zone, Effect effect) {
super(zone, effect);
}

View file

@ -0,0 +1,36 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.common.BlocksTriggeredAbility;
import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author TheElk801
*/
public final class MesmerizingBenthidToken extends TokenImpl {
public MesmerizingBenthidToken() {
super("Illusion", "0/2 blue Illusion creature token with \"Whenever this creature blocks a creature, that creature doesn't untap during its controller's next untap step.\"");
cardType.add(CardType.CREATURE);
color.setBlue(true);
subtype.add(SubType.ILLUSION);
power = new MageInt(0);
toughness = new MageInt(2);
this.addAbility(new BlocksTriggeredAbility(
new DontUntapInControllersNextUntapStepTargetEffect("that creature"),
false, true
));
}
private MesmerizingBenthidToken(final MesmerizingBenthidToken token) {
super(token);
}
public MesmerizingBenthidToken copy() {
return new MesmerizingBenthidToken(this);
}
}