diff --git a/Mage.Sets/src/mage/cards/t/TeyoTheShieldmage.java b/Mage.Sets/src/mage/cards/t/TeyoTheShieldmage.java new file mode 100644 index 00000000000..6a862561612 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TeyoTheShieldmage.java @@ -0,0 +1,45 @@ +package mage.cards.t; + +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.GainAbilityControllerEffect; +import mage.abilities.keyword.HexproofAbility; +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.TeyoToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TeyoTheShieldmage extends CardImpl { + + public TeyoTheShieldmage(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{W}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.TEYO); + this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5)); + + // You have hexproof. + this.addAbility(new SimpleStaticAbility(new GainAbilityControllerEffect(HexproofAbility.getInstance()))); + + // -2: Create a 0/3 white Wall creature token with defender. + this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new TeyoToken()), -2)); + } + + private TeyoTheShieldmage(final TeyoTheShieldmage card) { + super(card); + } + + @Override + public TeyoTheShieldmage copy() { + return new TeyoTheShieldmage(this); + } +} diff --git a/Mage.Sets/src/mage/sets/WarOfTheSpark.java b/Mage.Sets/src/mage/sets/WarOfTheSpark.java index f45422725be..e399364ae6b 100644 --- a/Mage.Sets/src/mage/sets/WarOfTheSpark.java +++ b/Mage.Sets/src/mage/sets/WarOfTheSpark.java @@ -78,6 +78,7 @@ public final class WarOfTheSpark extends ExpansionSet { cards.add(new SetCardInfo("Swamp", 258, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Teferi, Time Raveler", 221, Rarity.RARE, mage.cards.t.TeferiTimeRaveler.class)); cards.add(new SetCardInfo("Teyo's Lightshield", 33, Rarity.COMMON, mage.cards.t.TeyosLightshield.class)); + cards.add(new SetCardInfo("Teyo, the Shieldmage", 32, Rarity.UNCOMMON, mage.cards.t.TeyoTheShieldmage.class)); cards.add(new SetCardInfo("Tezzeret, Master of the Bridge", 275, Rarity.MYTHIC, mage.cards.t.TezzeretMasterOfTheBridge.class)); cards.add(new SetCardInfo("The Wanderer", 37, Rarity.UNCOMMON, mage.cards.t.TheWanderer.class)); cards.add(new SetCardInfo("Tibalt's Rager", 147, Rarity.UNCOMMON, mage.cards.t.TibaltsRager.class)); diff --git a/Mage/src/main/java/mage/constants/SubType.java b/Mage/src/main/java/mage/constants/SubType.java index 49450f0e3e5..7c29322629f 100644 --- a/Mage/src/main/java/mage/constants/SubType.java +++ b/Mage/src/main/java/mage/constants/SubType.java @@ -411,6 +411,7 @@ public enum SubType { SORIN("Sorin", SubTypeSet.PlaneswalkerType), TAMIYO("Tamiyo", SubTypeSet.PlaneswalkerType), TEFERI("Teferi", SubTypeSet.PlaneswalkerType), + TEYO("Teyo", SubTypeSet.PlaneswalkerType), TEZZERET("Tezzeret", SubTypeSet.PlaneswalkerType), TIBALT("Tibalt", SubTypeSet.PlaneswalkerType), UGIN("Ugin", SubTypeSet.PlaneswalkerType), diff --git a/Mage/src/main/java/mage/game/permanent/token/TeyoToken.java b/Mage/src/main/java/mage/game/permanent/token/TeyoToken.java new file mode 100644 index 00000000000..229192175ca --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/TeyoToken.java @@ -0,0 +1,27 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.DefenderAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +public final class TeyoToken extends TokenImpl { + + public TeyoToken() { + super("Wall", "0/3 white Wall creature token with defender"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add(SubType.WALL); + power = new MageInt(0); + toughness = new MageInt(3); + addAbility(DefenderAbility.getInstance()); + } + + public TeyoToken(final TeyoToken token) { + super(token); + } + + public TeyoToken copy() { + return new TeyoToken(this); + } +}