[ZNR] Implemented Glasspool Mimic / Glasspool Shore

This commit is contained in:
Evan Kranzler 2020-09-09 10:18:39 -04:00
parent a6f38b6ad7
commit 04b961e922
3 changed files with 107 additions and 0 deletions

View file

@ -0,0 +1,68 @@
package mage.cards.g;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.CopyPermanentEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.util.functions.ApplyToPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class GlasspoolMimic extends CardImpl {
public GlasspoolMimic(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
this.subtype.add(SubType.SHAPESHIFTER);
this.subtype.add(SubType.ROGUE);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.modalDFC = true;
this.secondSideCardClazz = mage.cards.g.GlasspoolShore.class;
// You may have Glasspool Mimic enter the battlefield as a copy of a creature you control, except it's a Shapeshifter Rogue in addition to its other types.
this.addAbility(new EntersBattlefieldAbility(
new CopyPermanentEffect(StaticFilters.FILTER_CONTROLLED_CREATURE, new GlasspoolMimicApplier()),
null, "You may have {this} enter the battlefield as a copy of a creature you control, " +
"except it's a Shapeshifter Rogue in addition to its other types", ""
));
}
private GlasspoolMimic(final GlasspoolMimic card) {
super(card);
}
@Override
public GlasspoolMimic copy() {
return new GlasspoolMimic(this);
}
}
class GlasspoolMimicApplier extends ApplyToPermanent {
@Override
public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) {
permanent.getSubtype(game).add(SubType.SHAPESHIFTER);
permanent.getSubtype(game).add(SubType.ROGUE);
return true;
}
@Override
public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) {
mageObject.getSubtype(game).add(SubType.SHAPESHIFTER);
mageObject.getSubtype(game).add(SubType.ROGUE);
return true;
}
}

View file

@ -0,0 +1,37 @@
package mage.cards.g;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.mana.BlueManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class GlasspoolShore extends CardImpl {
public GlasspoolShore(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
this.modalDFC = true;
this.nightCard = true;
// Glasspool Shore enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
// {T}: Add {U}.
this.addAbility(new BlueManaAbility());
}
private GlasspoolShore(final GlasspoolShore card) {
super(card);
}
@Override
public GlasspoolShore copy() {
return new GlasspoolShore(this);
}
}

View file

@ -172,6 +172,8 @@ public final class ZendikarRising extends ExpansionSet {
cards.add(new SetCardInfo("Forest", 278, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Ghastly Gloomhunter", 103, Rarity.COMMON, mage.cards.g.GhastlyGloomhunter.class));
cards.add(new SetCardInfo("Glacial Grasp", 59, Rarity.COMMON, mage.cards.g.GlacialGrasp.class));
cards.add(new SetCardInfo("Glasspool Mimic", 60, Rarity.RARE, mage.cards.g.GlasspoolMimic.class));
cards.add(new SetCardInfo("Glasspool Shore", 60, Rarity.RARE, mage.cards.g.GlasspoolShore.class));
cards.add(new SetCardInfo("Gnarlid Colony", 185, Rarity.COMMON, mage.cards.g.GnarlidColony.class));
cards.add(new SetCardInfo("Goma Fada Vanguard", 141, Rarity.UNCOMMON, mage.cards.g.GomaFadaVanguard.class));
cards.add(new SetCardInfo("Grimclimb Pathway", 259, Rarity.RARE, mage.cards.g.GrimclimbPathway.class));