mirror of
https://github.com/correl/mage.git
synced 2024-11-14 19:19:32 +00:00
[MID] added tokens and images support
This commit is contained in:
parent
9015b156e5
commit
54a1efec63
24 changed files with 141 additions and 86 deletions
|
@ -663,6 +663,27 @@ public class ScryfallImageSupportTokens {
|
|||
put("MIC/Zombie/1", "https://api.scryfall.com/cards/tmic/5/en?format=image"); // 2/2
|
||||
put("MIC/Zombie/2", "https://api.scryfall.com/cards/tmic/4/en?format=image"); // */*
|
||||
|
||||
// MID
|
||||
put("MID/Bat", "https://api.scryfall.com/cards/tmid/4/en?format=image");
|
||||
put("MID/Beast", "https://api.scryfall.com/cards/tmid/8/en?format=image");
|
||||
put("MID/Bird", "https://api.scryfall.com/cards/tmid/3/en?format=image");
|
||||
put("MID/Clue", "https://api.scryfall.com/cards/tmid/16/en?format=image");
|
||||
put("MID/Devil", "https://api.scryfall.com/cards/tmid/6/en?format=image");
|
||||
put("MID/Elemental", "https://api.scryfall.com/cards/tmid/7/en?format=image");
|
||||
put("MID/Human", "https://api.scryfall.com/cards/tmid/1/en?format=image");
|
||||
put("MID/Insect", "https://api.scryfall.com/cards/tmid/9/en?format=image");
|
||||
put("MID/Ooze", "https://api.scryfall.com/cards/tmid/10/en?format=image");
|
||||
put("MID/Spider", "https://api.scryfall.com/cards/tmid/11/en?format=image");
|
||||
put("MID/Spirit", "https://api.scryfall.com/cards/tmid/2/en?format=image");
|
||||
put("MID/Emblem Teferi, Who Slows the Sunset", "https://api.scryfall.com/cards/tmid/17/en?format=image");
|
||||
put("MID/Treefolk", "https://api.scryfall.com/cards/tmid/12/en?format=image");
|
||||
put("MID/Vampire", "https://api.scryfall.com/cards/tmid/14/en?format=image");
|
||||
put("MID/Wolf", "https://api.scryfall.com/cards/tmid/13/en?format=image");
|
||||
put("MID/Emblem Wrenn and Seven", "https://api.scryfall.com/cards/tmid/18/en?format=image");
|
||||
put("MID/Zombie/1", "https://api.scryfall.com/cards/tmid/5/en?format=image"); // decayed
|
||||
put("MID/Zombie/2", "https://api.scryfall.com/cards/tmid/15/en?format=image"); // menace
|
||||
|
||||
|
||||
// generate supported sets
|
||||
supportedSets.clear();
|
||||
for (String cardName : this.keySet()) {
|
||||
|
|
|
@ -112,6 +112,8 @@
|
|||
|Generate|EMBLEM:AFR|Lolth, Spider Queen||Emblem Lolth|LolthSpiderQueenEmblem|
|
||||
|Generate|EMBLEM:AFR|Mordenkainen||Emblem Mordenkainen|MordenkainenEmblem|
|
||||
|Generate|EMBLEM:AFR|Zariel, Archduke of Avernus||Emblem Zariel|ZarielArchdukeOfAvernusEmblem|
|
||||
|Generate|EMBLEM:MID|Teferi, Who Slows the Sunset||Emblem Teferi|TeferiWhoSlowsTheSunsetEmblem|
|
||||
|Generate|EMBLEM:MID|Wrenn and Seven||Emblem Wrenn|WrennAndSevenEmblem|
|
||||
|
||||
# Planes
|
||||
|Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane|
|
||||
|
@ -1615,4 +1617,22 @@
|
|||
|Generate|TOK:MIC|Snake|||SnakeToken|
|
||||
|Generate|TOK:MIC|Zombie|1||ZombieToken|
|
||||
|Generate|TOK:MIC|Zombie|2||StitcherGeralfZombieToken|
|
||||
|Generate|TOK:MIC|Zombie Army|||ZombieArmyToken|
|
||||
|Generate|TOK:MIC|Zombie Army|||ZombieArmyToken|
|
||||
|
||||
# MID
|
||||
|Generate|TOK:MID|Bat|||BatToken|
|
||||
|Generate|TOK:MID|Beast|||BeastToken2|
|
||||
|Generate|TOK:MID|Bird|||OminousRoostBirdToken|
|
||||
|Generate|TOK:MID|Clue|||ClueArtifactToken|
|
||||
|Generate|TOK:MID|Devil|||DevilToken|
|
||||
|Generate|TOK:MID|Elemental|||SeizeTheStormElementalToken|
|
||||
|Generate|TOK:MID|Human|||HumanToken|
|
||||
|Generate|TOK:MID|Insect|||RiseOfTheAntsInsectToken|
|
||||
|Generate|TOK:MID|Ooze|||ConsumingBlobOozeToken|
|
||||
|Generate|TOK:MID|Spider|||SpiderToken|
|
||||
|Generate|TOK:MID|Spirit|||SpiritWhiteToken|
|
||||
|Generate|TOK:MID|Treefolk|||WrennAndSevenTreefolkToken|
|
||||
|Generate|TOK:MID|Vampire|||HungryForMoreVampireToken|
|
||||
|Generate|TOK:MID|Wolf|||WolfToken|
|
||||
|Generate|TOK:MID|Zombie|1||ZombieDecayedToken|
|
||||
|Generate|TOK:MID|Zombie|2||ZombieMenaceToken|
|
|
@ -13,7 +13,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.ConsumingBlobToken;
|
||||
import mage.game.permanent.token.ConsumingBlobOozeToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -34,7 +34,7 @@ public final class ConsumingBlob extends CardImpl {
|
|||
|
||||
// At the beginning of your end step, create a green Ooze creature token with "This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1".
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||
new CreateTokenEffect(new ConsumingBlobToken()), TargetController.YOU, false)
|
||||
new CreateTokenEffect(new ConsumingBlobOozeToken()), TargetController.YOU, false)
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,9 +10,8 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TimingRule;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.HungryForMoreToken;
|
||||
import mage.game.permanent.token.HungryForMoreVampireToken;
|
||||
import mage.game.permanent.token.Token;
|
||||
import mage.target.targetpointer.FixedTargets;
|
||||
|
||||
|
@ -63,7 +62,7 @@ class HungryForMoreEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Token token = new HungryForMoreToken();
|
||||
Token token = new HungryForMoreVampireToken();
|
||||
token.putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(
|
||||
new SacrificeTargetEffect().setTargetPointer(new FixedTargets(
|
||||
|
|
|
@ -2,16 +2,13 @@ package mage.cards.o;
|
|||
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.token.OminousRoostToken;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.target.common.TargetNonlandPermanent;
|
||||
import mage.game.permanent.token.OminousRoostBirdToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -40,7 +37,7 @@ public final class OminousRoost extends CardImpl {
|
|||
class OminousRoostTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
OminousRoostTriggeredAbility() {
|
||||
super(Zone.ALL, new CreateTokenEffect(new OminousRoostToken()));
|
||||
super(Zone.ALL, new CreateTokenEffect(new OminousRoostBirdToken()));
|
||||
}
|
||||
|
||||
private OminousRoostTriggeredAbility(final OminousRoostTriggeredAbility ability) {
|
||||
|
|
|
@ -7,7 +7,7 @@ import mage.abilities.keyword.FlashbackAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.game.permanent.token.RiseOfTheAntsToken;
|
||||
import mage.game.permanent.token.RiseOfTheAntsInsectToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public final class RiseOfTheAnts extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}{G}");
|
||||
|
||||
// Create two 3/3 green Insect creature tokens. You gain 2 life.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new RiseOfTheAntsToken(), 2));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new RiseOfTheAntsInsectToken(), 2));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("."));
|
||||
|
||||
// Flashback {6}{G}{G}
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.SeizeTheStormToken;
|
||||
import mage.game.permanent.token.SeizeTheStormElementalToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -32,7 +32,7 @@ public final class SeizeTheStorm extends CardImpl {
|
|||
|
||||
// Create a red Elemental creature token with trample and "This creature's power and toughness are each equal to the number of instant and sorcery cards in your graveyard, plus the number of cards with flashback you own in exile."
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(
|
||||
new SeizeTheStormToken(SeizeTheStormValue.instance, hint)
|
||||
new SeizeTheStormElementalToken(SeizeTheStormValue.instance, hint)
|
||||
));
|
||||
this.getSpellAbility().addHint(hint);
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ import mage.constants.*;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.command.emblems.WrennAndSevenEmblem;
|
||||
import mage.game.permanent.token.WrennAndSevenToken;
|
||||
import mage.game.permanent.token.WrennAndSevenTreefolkToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
|
||||
|
@ -41,7 +41,7 @@ public final class WrennAndSeven extends CardImpl {
|
|||
this.addAbility(new LoyaltyAbility(new WrennAndSevenLandEffect(), 0));
|
||||
|
||||
// −3: Create a green Treefolk creature token with reach and "This creature's power and toughness are each equal to the number of lands you control."
|
||||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new WrennAndSevenToken()), -3));
|
||||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new WrennAndSevenTreefolkToken()), -3));
|
||||
|
||||
// −8: Return all permanent cards from your graveyard to your hand. You get an emblem with "You have no maximum hand size."
|
||||
Ability ability = new LoyaltyAbility(new WrennAndSevenReturnEffect(), -8);
|
||||
|
|
|
@ -1,24 +1,16 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
public final class BatToken extends TokenImpl {
|
||||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
import java.util.Arrays;
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("MMA", "C17"));
|
||||
}
|
||||
public final class BatToken extends TokenImpl {
|
||||
|
||||
public BatToken() {
|
||||
super("Bat", "1/1 black Bat creature token with flying");
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
subtype.add(SubType.BAT);
|
||||
|
@ -26,8 +18,9 @@ public final class BatToken extends TokenImpl {
|
|||
toughness = new MageInt(1);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
this.setOriginalExpansionSetCode("MMA");
|
||||
availableImageSetCodes = Arrays.asList("GVL", "DDD", "GPT", "MMA", "M19", "MID");
|
||||
}
|
||||
|
||||
public BatToken(final BatToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class BeastToken2 extends TokenImpl {
|
|||
toughness = new MageInt(4);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C13", "C14", "C15", "C19", "CMA", "CMD", "GVL", "DDD",
|
||||
"E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21", "MH2");
|
||||
"E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21", "MH2", "MID");
|
||||
}
|
||||
|
||||
public BeastToken2(final BeastToken2 token) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class ClueArtifactToken extends TokenImpl {
|
|||
ability.addCost(cost);
|
||||
this.addAbility(ability);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC");
|
||||
availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC", "MID");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,14 +10,15 @@ import mage.abilities.hint.common.CardTypesInGraveyardHint;
|
|||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author ciaccona007
|
||||
*/
|
||||
public final class ConsumingBlobToken extends TokenImpl {
|
||||
public final class ConsumingBlobOozeToken extends TokenImpl {
|
||||
|
||||
public ConsumingBlobToken() {
|
||||
public ConsumingBlobOozeToken() {
|
||||
super("Ooze", "green Ooze creature token with \"This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.\"");
|
||||
setOriginalExpansionSetCode("MID");
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.OOZE);
|
||||
color.setGreen(true);
|
||||
|
@ -28,15 +29,16 @@ public final class ConsumingBlobToken extends TokenImpl {
|
|||
// This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new ConsumingBlobTokenEffect()).addHint(CardTypesInGraveyardHint.YOU));
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MID"));
|
||||
}
|
||||
|
||||
private ConsumingBlobToken(final ConsumingBlobToken token) {
|
||||
private ConsumingBlobOozeToken(final ConsumingBlobOozeToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConsumingBlobToken copy() {
|
||||
return new ConsumingBlobToken(this);
|
||||
public ConsumingBlobOozeToken copy() {
|
||||
return new ConsumingBlobOozeToken(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -21,8 +21,6 @@ public final class DevilToken extends TokenImpl {
|
|||
|
||||
public DevilToken() {
|
||||
super("Devil", "1/1 red Devil creature token with \"When this creature dies, it deals 1 damage to any target.\"");
|
||||
availableImageSetCodes.addAll(Collections.singletonList("SOI"));
|
||||
availableImageSetCodes.addAll(Collections.singletonList("WAR"));
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.DEVIL);
|
||||
color.setRed(true);
|
||||
|
@ -36,7 +34,7 @@ public final class DevilToken extends TokenImpl {
|
|||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("SOI", "WAR", "AFR");
|
||||
availableImageSetCodes = Arrays.asList("SOI", "WAR", "AFR", "MID");
|
||||
}
|
||||
|
||||
public DevilToken(final DevilToken token) {
|
||||
|
|
|
@ -18,7 +18,8 @@ public final class HumanToken extends TokenImpl {
|
|||
subtype.add(SubType.HUMAN);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20"));
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20", "MID"));
|
||||
}
|
||||
|
||||
public HumanToken(final HumanToken token) {
|
||||
|
|
|
@ -7,12 +7,14 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class HungryForMoreToken extends TokenImpl {
|
||||
public final class HungryForMoreVampireToken extends TokenImpl {
|
||||
|
||||
public HungryForMoreToken() {
|
||||
public HungryForMoreVampireToken() {
|
||||
super("Vampire", "3/1 black and red Vampire creature token with trample, lifelink, and haste");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setRed(true);
|
||||
|
@ -23,13 +25,15 @@ public final class HungryForMoreToken extends TokenImpl {
|
|||
addAbility(TrampleAbility.getInstance());
|
||||
addAbility(LifelinkAbility.getInstance());
|
||||
addAbility(HasteAbility.getInstance());
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MID"));
|
||||
}
|
||||
|
||||
public HungryForMoreToken(final HungryForMoreToken token) {
|
||||
public HungryForMoreVampireToken(final HungryForMoreVampireToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public HungryForMoreToken copy() {
|
||||
return new HungryForMoreToken(this);
|
||||
public HungryForMoreVampireToken copy() {
|
||||
return new HungryForMoreVampireToken(this);
|
||||
}
|
||||
}
|
|
@ -6,9 +6,11 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
public class OminousRoostToken extends TokenImpl {
|
||||
import java.util.Arrays;
|
||||
|
||||
public OminousRoostToken() {
|
||||
public class OminousRoostBirdToken extends TokenImpl {
|
||||
|
||||
public OminousRoostBirdToken() {
|
||||
super("Bird", "1/1 blue Bird creature token with flying and \"This creature can block only creatures with flying\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
|
@ -18,14 +20,16 @@ public class OminousRoostToken extends TokenImpl {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
this.addAbility(new CanBlockOnlyFlyingAbility());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("MID");
|
||||
}
|
||||
|
||||
public OminousRoostToken(final OminousRoostToken token) {
|
||||
public OminousRoostBirdToken(final OminousRoostBirdToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Token copy() {
|
||||
return new OminousRoostToken(this);
|
||||
return new OminousRoostBirdToken(this);
|
||||
}
|
||||
}
|
|
@ -4,25 +4,29 @@ import mage.MageInt;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class RiseOfTheAntsToken extends TokenImpl {
|
||||
public final class RiseOfTheAntsInsectToken extends TokenImpl {
|
||||
|
||||
public RiseOfTheAntsToken() {
|
||||
public RiseOfTheAntsInsectToken() {
|
||||
super("Insect", "3/3 green Insect creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
subtype.add(SubType.INSECT);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MID"));
|
||||
}
|
||||
|
||||
public RiseOfTheAntsToken(final RiseOfTheAntsToken token) {
|
||||
public RiseOfTheAntsInsectToken(final RiseOfTheAntsInsectToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public RiseOfTheAntsToken copy() {
|
||||
return new RiseOfTheAntsToken(this);
|
||||
public RiseOfTheAntsInsectToken copy() {
|
||||
return new RiseOfTheAntsInsectToken(this);
|
||||
}
|
||||
}
|
|
@ -10,12 +10,14 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SeizeTheStormToken extends TokenImpl {
|
||||
public final class SeizeTheStormElementalToken extends TokenImpl {
|
||||
|
||||
public SeizeTheStormToken(DynamicValue xValue, Hint hint) {
|
||||
public SeizeTheStormElementalToken(DynamicValue xValue, Hint hint) {
|
||||
super("Elemental", "red Elemental creature token with trample and " +
|
||||
"\"This creature's power and toughness are each equal to the number of instant " +
|
||||
"and sorcery cards in your graveyard plus the number of cards with flashback you own in exile.\"");
|
||||
|
@ -30,14 +32,16 @@ public final class SeizeTheStormToken extends TokenImpl {
|
|||
).setText("this creature's power and toughness are each equal to the number of " +
|
||||
"instant and sorcery cards in your graveyard, plus the number of cards with flashback you own in exile")
|
||||
).addHint(hint));
|
||||
|
||||
availableImageSetCodes = Arrays.asList("MID");
|
||||
}
|
||||
|
||||
private SeizeTheStormToken(final SeizeTheStormToken token) {
|
||||
private SeizeTheStormElementalToken(final SeizeTheStormElementalToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SeizeTheStormToken copy() {
|
||||
return new SeizeTheStormToken(this);
|
||||
public SeizeTheStormElementalToken copy() {
|
||||
return new SeizeTheStormElementalToken(this);
|
||||
}
|
||||
}
|
|
@ -5,39 +5,24 @@ import mage.abilities.keyword.ReachAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class SpiderToken extends TokenImpl {
|
||||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("ISD", "EMN", "C15", "SHM", "MH1", "THB"));
|
||||
}
|
||||
|
||||
public SpiderToken() {
|
||||
this(null, 0);
|
||||
}
|
||||
|
||||
public SpiderToken(String setCode) {
|
||||
this(setCode, 0);
|
||||
}
|
||||
|
||||
public SpiderToken(String setCode, int tokenType) {
|
||||
super("Spider", "1/2 green Spider creature token with reach");
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
setOriginalExpansionSetCode(setCode);
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
subtype.add(SubType.SPIDER);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(2);
|
||||
addAbility(ReachAbility.getInstance());
|
||||
|
||||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("C15", "EMN", "ISD", "SHM", "MH1", "THB", "MID"));
|
||||
}
|
||||
|
||||
public SpiderToken(final SpiderToken token) {
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class SpiritWhiteToken extends TokenImpl {
|
|||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM",
|
||||
"SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM");
|
||||
"SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM", "MID");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class WolfToken extends TokenImpl {
|
|||
|
||||
availableImageSetCodes = Arrays.asList("BNG", "C14", "C15", "CMA", "CMD", "CNS", "DKA", "EVE", "ISD",
|
||||
"LRW", "M10", "M14", "MM2", "MOR", "SHM", "SOI", "SOM", "V10", "WWK", "ZEN", "WAR", "M20",
|
||||
"THB", "AFR");
|
||||
"THB", "AFR", "MID");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -10,12 +10,14 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class WrennAndSevenToken extends TokenImpl {
|
||||
public final class WrennAndSevenTreefolkToken extends TokenImpl {
|
||||
|
||||
public WrennAndSevenToken() {
|
||||
public WrennAndSevenTreefolkToken() {
|
||||
super("Treefolk", "green Treefolk creature token with reach and \"This creature's power and toughness are each equal to the number of lands you control.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
|
@ -26,13 +28,15 @@ public final class WrennAndSevenToken extends TokenImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(
|
||||
LandsYouControlCount.instance, Duration.EndOfGame
|
||||
).setText("this creature's power and toughness are each equal to the number of lands you control")));
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MID"));
|
||||
}
|
||||
|
||||
public WrennAndSevenToken(final WrennAndSevenToken token) {
|
||||
public WrennAndSevenTreefolkToken(final WrennAndSevenTreefolkToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public WrennAndSevenToken copy() {
|
||||
return new WrennAndSevenToken(this);
|
||||
public WrennAndSevenTreefolkToken copy() {
|
||||
return new WrennAndSevenTreefolkToken(this);
|
||||
}
|
||||
}
|
|
@ -4,6 +4,9 @@ import mage.MageInt;
|
|||
import mage.abilities.keyword.DecayedAbility;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.util.RandomUtil;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
@ -18,6 +21,8 @@ public final class ZombieDecayedToken extends TokenImpl {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
this.addAbility(new DecayedAbility());
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MID"));
|
||||
}
|
||||
|
||||
public ZombieDecayedToken(final ZombieDecayedToken token) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.MenaceAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class ZombieMenaceToken extends TokenImpl {
|
||||
|
||||
public ZombieMenaceToken(int xValue) {
|
||||
|
@ -15,7 +17,19 @@ public class ZombieMenaceToken extends TokenImpl {
|
|||
subtype.add(SubType.ZOMBIE);
|
||||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
addAbility(new MenaceAbility());
|
||||
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MID"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MID")) {
|
||||
this.setTokenType(2);
|
||||
}
|
||||
}
|
||||
|
||||
private ZombieMenaceToken(final ZombieMenaceToken token) {
|
||||
|
|
Loading…
Reference in a new issue