mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
[TSR] added tokens
This commit is contained in:
parent
7e72ba95bc
commit
ccc85c1acb
41 changed files with 172 additions and 133 deletions
|
@ -520,7 +520,7 @@ public class ScryfallImageSupportTokens {
|
|||
put("KHM/Emblem Tibalt Cosmic Imposter", "https://api.scryfall.com/cards/tkhm/21/en?format=image");
|
||||
put("KHM/Emblem Tyvar Kell", "https://api.scryfall.com/cards/tkhm/22/en?format=image");
|
||||
|
||||
// TKHC
|
||||
// KHC
|
||||
put("KHC/Bird", "https://api.scryfall.com/cards/tkhc/1/en?format=image");
|
||||
put("KHC/Boar", "https://api.scryfall.com/cards/tkhc/5/en?format=image");
|
||||
put("KHC/Elemental", "https://api.scryfall.com/cards/tkhc/6/en?format=image");
|
||||
|
@ -530,6 +530,23 @@ public class ScryfallImageSupportTokens {
|
|||
put("KHC/Soldier", "https://api.scryfall.com/cards/tkhc/4/en?format=image");
|
||||
put("KHC/Thopter", "https://api.scryfall.com/cards/tkhc/8/en?format=image");
|
||||
|
||||
// TSR
|
||||
put("TSR/Ape", "https://api.scryfall.com/cards/ttsr/10/en?format=image");
|
||||
put("TSR/Assembly-Worker", "https://api.scryfall.com/cards/ttsr/14/en?format=image");
|
||||
put("TSR/Bat", "https://api.scryfall.com/cards/ttsr/4/en?format=image");
|
||||
put("TSR/Cloud Sprite", "https://api.scryfall.com/cards/ttsr/3/en?format=image");
|
||||
put("TSR/Giant", "https://api.scryfall.com/cards/ttsr/7/en?format=image");
|
||||
put("TSR/Goblin", "https://api.scryfall.com/cards/ttsr/8/en?format=image");
|
||||
put("TSR/Griffin", "https://api.scryfall.com/cards/ttsr/1/en?format=image");
|
||||
put("TSR/Insect", "https://api.scryfall.com/cards/ttsr/11/en?format=image");
|
||||
put("TSR/Knight", "https://api.scryfall.com/cards/ttsr/5/en?format=image");
|
||||
put("TSR/Kobolds of Kher Keep", "https://api.scryfall.com/cards/ttsr/9/en?format=image");
|
||||
put("TSR/Llanowar Elves", "https://api.scryfall.com/cards/ttsr/12/en?format=image");
|
||||
put("TSR/Metallic Sliver", "https://api.scryfall.com/cards/ttsr/15/en?format=image");
|
||||
put("TSR/Saproling", "https://api.scryfall.com/cards/ttsr/13/en?format=image");
|
||||
put("TSR/Soldier", "https://api.scryfall.com/cards/ttsr/2/en?format=image");
|
||||
put("TSR/Spider", "https://api.scryfall.com/cards/ttsr/6/en?format=image");
|
||||
|
||||
// generate supported sets
|
||||
supportedSets.clear();
|
||||
for (String cardName : this.keySet()) {
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#TODO: some sets (TOK:code) don't have tokens but recorded here - must be fixed and removed (from that file and from tokens)
|
||||
#Generate|TOK:TPR|Goblin||
|
||||
#Generate|TOK:TPR|Pegasus||
|
||||
#Generate|TOK:TPR|Rat||
|
||||
|
@ -305,8 +306,7 @@
|
|||
|Generate|TOK:C14|Demon|2||ReignOfThePitToken|
|
||||
|Generate|TOK:C14|Elemental|||TitaniaProtectorOfArgothElementalToken|
|
||||
|Generate|TOK:C14|Elephant|||ElephantToken|
|
||||
|Generate|TOK:C14|Elf Druid|||FreyaliseLlanowarsFuryToken|
|
||||
|Generate|TOK:C14|Elf Druid|||LlanowarElvesToken|
|
||||
|Generate|TOK:C14|Elf Druid|||ElfDruidToken|
|
||||
|Generate|TOK:C14|Elf Warrior|||ElfWarriorToken|
|
||||
|Generate|TOK:C14|Equipment|||NahiriTheLithomancerEquipmentToken|
|
||||
|Generate|TOK:C14|Fish|||ReefWormFishToken|
|
||||
|
@ -444,8 +444,7 @@
|
|||
|Generate|TOK:CMA|Drake|||LeafdrakeRoostDrakeToken|
|
||||
|Generate|TOK:CMA|Elemental|||TitaniaProtectorOfArgothElementalToken|
|
||||
|Generate|TOK:CMA|Elephant|||ElephantToken|
|
||||
|Generate|TOK:C14|Elf Druid|||FreyaliseLlanowarsFuryToken|
|
||||
|Generate|TOK:C14|Elf Druid|||LlanowarElvesToken|
|
||||
|Generate|TOK:C14|Elf Druid|||ElfDruidToken|
|
||||
|Generate|TOK:CMA|Elf Warrior||
|
||||
|Generate|TOK:CMA|Gargoyle|||GargoyleToken|
|
||||
|Generate|TOK:CMA|Kithkin Soldier|||KithkinSoldierToken|
|
||||
|
@ -467,7 +466,6 @@
|
|||
|Generate|TOK:CMD|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:CMD|Snake|||SnakeToken|
|
||||
|Generate|TOK:CMD|Soldier|||SoldierToken|
|
||||
|Generate|TOK:CMD|Spider|||PenumbraSpiderToken|
|
||||
|Generate|TOK:CMD|Spirit|||SpiritWhiteToken|
|
||||
|Generate|TOK:CMD|Squirrel|||SquirrelToken|
|
||||
|Generate|TOK:CMD|Triskelavite|||TriskelaviteToken|
|
||||
|
@ -680,18 +678,6 @@
|
|||
|Generate|TOK:FRF|Monk|||MonasteryMentorToken|
|
||||
|Generate|TOK:FRF|Spirit|||SpiritWhiteToken|
|
||||
|Generate|TOK:FRF|Warrior|||MarduStrikeLeaderWarriorToken|
|
||||
|Generate|TOK:FUT|Elemental|||SparkElementalToken|
|
||||
|Generate|TOK:FUT|Elf Druid|||FreyaliseLlanowarsFuryToken|
|
||||
|Generate|TOK:FUT|Elf Druid|||LlanowarElvesToken|
|
||||
|Generate|TOK:FUT|Giant|||GiantToken|
|
||||
|Generate|TOK:FUT|Kithkin Soldier|||KithkinSoldierToken|
|
||||
|Generate|TOK:FUT|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:FUT|Sliver|||SliversmithToken|
|
||||
|Generate|TOK:FUT|Soldier|||SoldierToken|
|
||||
|Generate|TOK:FUT|Wurm|||WurmCallingWurmToken|
|
||||
|Generate|TOK:FUT|Zombie Goblin|||FesteringGoblinToken|
|
||||
|Generate|TOK:FUT|Zombie|||ZombieToken|
|
||||
|Generate|TOK:FUT|Faerie|||CloudSpriteToken|
|
||||
|Generate|TOK:GPT|Bat|||BatToken|
|
||||
|Generate|TOK:GPT|Pegasus|||PegasusToken|
|
||||
|Generate|TOK:GPT|Sand|||DuneBroodNephilimToken|
|
||||
|
@ -709,7 +695,6 @@
|
|||
|Generate|TOK:GTC|Soldier|1||SoldierToken|
|
||||
|Generate|TOK:GTC|Soldier|2||SoldierTokenWithHaste|
|
||||
|Generate|TOK:GTC|Spirit|||TeysaEnvoyOfGhostsToken|
|
||||
|Generate|TOK:H09|Sliver|||SliversmithToken|
|
||||
|Generate|TOK:H17|Dragon|||DragonTokenGold|
|
||||
|Generate|TOK:HML|Plant Wall|||KelpToken|
|
||||
|Generate|TOK:HML|Serf|||SerfToken|
|
||||
|
@ -792,10 +777,7 @@
|
|||
|Generate|TOK:LEG|Demon|||MinorDemonToken|
|
||||
|Generate|TOK:LEG|Sand Warrior|||HazezonTamarSandWarriorToken|
|
||||
|Generate|TOK:LEG|Snake|||SerpentGeneratorSnakeToken|
|
||||
|Generate|TOK:LGN|Bear|||BearToken|
|
||||
|Generate|TOK:LGN|Goblin|||GoblinToken|
|
||||
|Generate|TOK:LGN|Insect|||InsectToken|
|
||||
|Generate|TOK:LGN|Sliver|||SliversmithToken|
|
||||
# LGN don't have tokens, from wiki: A Sliver token for Brood Sliver and a Goblin token for Warbreak Trumpeter were featured as a Magic Player Reward.
|
||||
|Generate|TOK:LRW|Avatar|||AvatarToken|
|
||||
|Generate|TOK:LRW|Beast|||BeastToken|
|
||||
|Generate|TOK:LRW|Elemental Shaman|||ElementalShamanToken|
|
||||
|
@ -1037,7 +1019,7 @@
|
|||
|Generate|TOK:PCY|Squirrel|||SquirrelToken|
|
||||
|Generate|TOK:PLC|Ape|||PongifyApeToken|
|
||||
|Generate|TOK:PLC|Cat Warrior|||CatWarriorToken|
|
||||
|Generate|TOK:PLC|Insect|||DeadlyGrubToken|
|
||||
|Generate|TOK:PLC|Insect|||DeadlyGrubInsectToken|
|
||||
|Generate|TOK:PLC|Knight|||RiftmarkedKnightToken|
|
||||
|Generate|TOK:PLC|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:PLC|Soldier|||SoldierToken|
|
||||
|
@ -1127,12 +1109,6 @@
|
|||
|Generate|TOK:SOM|Wolf|||WolfToken|
|
||||
|Generate|TOK:SOM|Wurm|1||WurmWithDeathtouchToken|
|
||||
|Generate|TOK:SOM|Wurm|2||WurmWithLifelinkToken|
|
||||
|Generate|TOK:STH|Goblin|||GoblinToken|
|
||||
|Generate|TOK:STH|Insect|||HornetToken|
|
||||
|Generate|TOK:STH|Insect|||WaspToken|
|
||||
|Generate|TOK:STH|Rat|||RatToken|
|
||||
|Generate|TOK:STH|Sliver|||SliversmithToken|
|
||||
|Generate|TOK:STH|Spike|||SpikeToken|
|
||||
|Generate|TOK:SWS|Ewok|||EwokToken|
|
||||
|Generate|TOK:SWS|B-Wing|||RebelStarshipToken|
|
||||
|Generate|TOK:SWS|Hunter|||HunterToken|
|
||||
|
@ -1161,16 +1137,6 @@
|
|||
|Generate|TOK:TMP|Spirit|||SpiritWhiteToken|
|
||||
|Generate|TOK:TMP|Zombie|||ZombieToken|
|
||||
|Generate|TOK:TOR|Squirrel|||SquirrelToken|
|
||||
|Generate|TOK:TPR|Goblin|||GoblinToken|
|
||||
|Generate|TOK:TPR|Pegasus|||PegasusToken|
|
||||
|Generate|TOK:TPR|Rat|||RatToken|
|
||||
|Generate|TOK:TPR|Reflection|||ReflectionToken|
|
||||
|Generate|TOK:TPR|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:TPR|Sliver|||SliversmithToken|
|
||||
|Generate|TOK:TPR|Spike|||SpikeToken|
|
||||
|Generate|TOK:TPR|Spirit|||SpiritWhiteToken|
|
||||
|Generate|TOK:TPR|Thopter|||ThopterColorlessToken|
|
||||
|Generate|TOK:TPR|Zombie|||ZombieToken|
|
||||
|Generate|TOK:TSP|Assembly-Worker|||AssembleWorkerToken|
|
||||
|Generate|TOK:TSP|Bat|||SengirNosferatuBatToken|
|
||||
|Generate|TOK:TSP|Citizen|||CitizenToken|
|
||||
|
@ -1513,3 +1479,20 @@
|
|||
|Generate|TOK:KHC|Servo|||ServoToken|
|
||||
|Generate|TOK:KHC|Soldier|||SoldierToken|
|
||||
|Generate|TOK:KHC|Thopter|||ThopterColorlessToken|
|
||||
|
||||
# TSR
|
||||
|Generate|TOK:TSR|Ape|||PongifyApeToken|
|
||||
|Generate|TOK:TSR|Assembly-Worker|||AssemblyWorkerToken|
|
||||
|Generate|TOK:TSR|Bat|||SengirNosferatuBatToken|
|
||||
|Generate|TOK:TSR|Cloud Sprite|||CloudSpriteToken|
|
||||
|Generate|TOK:TSR|Giant|||GiantToken|
|
||||
|Generate|TOK:TSR|Goblin|||GoblinToken|
|
||||
|Generate|TOK:TSR|Griffin|||GriffinToken|
|
||||
|Generate|TOK:TSR|Insect|||DeadlyGrubInsectToken|
|
||||
|Generate|TOK:TSR|Knight|||RiftmarkedKnightToken|
|
||||
|Generate|TOK:TSR|Kobolds of Kher Keep|||KherKeepKoboldToken|
|
||||
|Generate|TOK:TSR|Llanowar Elves|||LlanowarElvesToken|
|
||||
|Generate|TOK:TSR|Metallic Sliver|||MetallicSliverToken|
|
||||
|Generate|TOK:TSR|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:TSR|Soldier|||SoldierToken|
|
||||
|Generate|TOK:TSR|Spider|||PenumbraSpiderToken|
|
|
@ -17,7 +17,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.permanent.token.DeadlyGrubToken;
|
||||
import mage.game.permanent.token.DeadlyGrubInsectToken;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -37,8 +37,9 @@ public final class DeadlyGrub extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
this.addAbility(new VanishingUpkeepAbility(3));
|
||||
this.addAbility(new VanishingSacrificeAbility());
|
||||
|
||||
// When Deadly Grub dies, if it had no time counters on it, create a 6/1 green Insect creature token with shroud.
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new DeadlyGrubToken(), 1)),
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new DeadlyGrubInsectToken(), 1)),
|
||||
LastTimeCounterRemovedCondition.instance, "When {this} dies, if it had no time counters on it, create a 6/1 green Insect creature token with shroud."));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.e;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -20,6 +19,7 @@ public final class EmptyTheWarrens extends CardImpl {
|
|||
|
||||
// Create two 1/1 red Goblin creature tokens.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinToken(), 2));
|
||||
|
||||
// Storm
|
||||
this.addAbility(new StormAbility());
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import mage.ObjectColor;
|
||||
|
@ -16,7 +15,7 @@ import mage.constants.SubType;
|
|||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.game.permanent.token.FreyaliseLlanowarsFuryToken;
|
||||
import mage.game.permanent.token.ElfDruidToken;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -42,11 +41,13 @@ public final class FreyaliseLlanowarsFury extends CardImpl {
|
|||
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(3));
|
||||
|
||||
// +2: Create a 1/1 green Elf Druid creature token with "{T}: Add {G}."
|
||||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new FreyaliseLlanowarsFuryToken()), 2));
|
||||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new ElfDruidToken()), 2));
|
||||
|
||||
// -2: Destroy target artifact or enchantment.
|
||||
LoyaltyAbility loyaltyAbility = new LoyaltyAbility(new DestroyTargetEffect(), -2);
|
||||
loyaltyAbility.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
|
||||
this.addAbility(loyaltyAbility);
|
||||
|
||||
// -6: Draw a card for each green creature you control.
|
||||
this.addAbility(new LoyaltyAbility(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filterGreen)), -6));
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class GoblinGangLeader extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Goblin Gang Leader enters the battlefield, create two 1/1 red Goblin creature tokens.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken("ANA"), 2)));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(), 2)));
|
||||
}
|
||||
|
||||
private GoblinGangLeader(final GoblinGangLeader card) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -34,10 +33,12 @@ public final class GriffinGuide extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2 and has flying.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield, "and has flying"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// When enchanted creature dies, create a 2/2 white Griffin creature token with flying.
|
||||
this.addAbility(new DiesAttachedTriggeredAbility(new CreateTokenEffect(new GriffinToken()), "enchanted creature"));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -25,9 +24,10 @@ public final class KherKeep extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
|
||||
// {tap}: Add {C}.
|
||||
// {T}: Add {C}.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
// {1}{R}, {tap}: Create a 0/1 red Kobold creature token named Kobolds of Kher Keep.
|
||||
|
||||
// {1}{R}, {T}: Create a 0/1 red Kobold creature token named Kobolds of Kher Keep.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KherKeepKoboldToken()), new ManaCostsImpl("{1}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -72,6 +72,6 @@ class KrenkoTinStreetKingpinEffect extends OneShotEffect {
|
|||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()).apply(game, source);
|
||||
game.getState().processAction(game);
|
||||
int xValue = permanent.getPower().getValue();
|
||||
return new CreateTokenEffect(new GoblinToken("WAR"), xValue).apply(game, source);
|
||||
return new CreateTokenEffect(new GoblinToken(), xValue).apply(game, source);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.l;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -29,7 +28,7 @@ public final class LlanowarMentor extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {G}, {tap}, Discard a card: Create a 1/1 green Elf Druid creature token named Llanowar Elves. It has "{tap}: Add {G}."
|
||||
// {G}, {T}, Discard a card: Create a 1/1 green Elf Druid creature token named Llanowar Elves. It has "{T}: Add {G}."
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LlanowarElvesToken()), new ManaCostsImpl("{G}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardCardCost());
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -42,8 +41,10 @@ public final class Mycologist extends CardImpl {
|
|||
|
||||
// At the beginning of your upkeep, put a spore counter on Mycologist.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.SPORE.createInstance()), TargetController.YOU, false));
|
||||
|
||||
// Remove three spore counters from Mycologist: Create a 1/1 green Saproling creature token.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new RemoveCountersSourceCost(CounterType.SPORE.createInstance(3))));
|
||||
|
||||
// Sacrifice a Saproling: You gain 2 life.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2),
|
||||
new SacrificeTargetCost(new TargetControlledPermanent(1, 1, filter, false))));
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -24,6 +23,7 @@ public final class PactOfTheTitan extends CardImpl {
|
|||
|
||||
// Create a 4/4 red Giant creature token.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new GiantToken()));
|
||||
|
||||
// At the beginning of your next upkeep, pay {4}{R}. If you don't, you lose the game.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new PactDelayedTriggeredAbility(new ManaCostsImpl("{4}{R}"))));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -27,6 +26,7 @@ public final class PenumbraSpider extends CardImpl {
|
|||
|
||||
// Reach
|
||||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
// When Penumbra Spider dies, create a 2/4 black Spider creature token with reach.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new PenumbraSpiderToken()), false));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -39,8 +38,10 @@ public final class RiftmarkedKnight extends CardImpl {
|
|||
// Protection from black; flanking
|
||||
this.addAbility(ProtectionAbility.from(ObjectColor.BLACK));
|
||||
this.addAbility(new FlankingAbility());
|
||||
|
||||
// Suspend 3-{1}{W}{W}
|
||||
this.addAbility(new SuspendAbility(3, new ManaCostsImpl("{1}{W}{W}"), this));
|
||||
|
||||
// When the last time counter is removed from Riftmarked Knight while it's exiled, put a 2/2 black Knight creature token with flanking, protection from white, and haste onto the battlefield.
|
||||
this.addAbility(new RiftmarkedKnightTriggeredAbility());
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -14,7 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.token.SliversmithToken;
|
||||
import mage.game.permanent.token.MetallicSliverToken;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -28,8 +27,8 @@ public final class Sliversmith extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
// {1}, {tap}, Discard a card: Create a 1/1 colorless Sliver artifact creature token named Metallic Sliver.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SliversmithToken()), new ManaCostsImpl("{1}"));
|
||||
// {1}, {T}, Discard a card: Create a 1/1 colorless Sliver artifact creature token named Metallic Sliver.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new MetallicSliverToken()), new ManaCostsImpl("{1}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardCardCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.u;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
|
@ -28,7 +27,8 @@ public final class UrzasFactory extends CardImpl {
|
|||
|
||||
// {tap}: Add {C}.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
// {7}, {tap}: Create a 2/2 colorless Assembly-Worker artifact creature token.
|
||||
|
||||
// {7}, {T}: Create a 2/2 colorless Assembly-Worker artifact creature token.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AssemblyWorkerToken()), new GenericManaCost(7));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -15,9 +17,12 @@ public final class AssemblyWorkerToken extends TokenImpl {
|
|||
super("Assembly-Worker", "2/2 Assembly-Worker artifact creature");
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
this.subtype.add(SubType.ASSEMBLY_WORKER);
|
||||
subtype.add(SubType.ASSEMBLY_WORKER);
|
||||
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("4ED", "ATQ", "DDF", "EMA", "MED", "TSR");
|
||||
}
|
||||
|
||||
public AssemblyWorkerToken(final AssemblyWorkerToken token) {
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class BearToken extends TokenImpl {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C15", "JUD", "LGN", "ODY", "ONS", "VMA", "MH1", "ELD", "KHM");
|
||||
availableImageSetCodes = Arrays.asList("C15", "JUD", "ODY", "ONS", "VMA", "MH1", "ELD", "KHM");
|
||||
}
|
||||
|
||||
public BearToken(final BearToken token) {
|
||||
|
|
|
@ -7,6 +7,8 @@ import mage.MageInt;
|
|||
import mage.abilities.common.CanBlockOnlyFlyingAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -15,15 +17,19 @@ public final class CloudSpriteToken extends TokenImpl {
|
|||
|
||||
public CloudSpriteToken() {
|
||||
super("Cloud Sprite", "1/1 blue Faerie creature token named Cloud Sprite. It has flying and \"Cloud Sprite can block only creatures with flying.\"");
|
||||
this.setOriginalExpansionSetCode("FUT");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
subtype.add(SubType.FAERIE);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Cloud Sprite can block only creatures with flying.
|
||||
this.addAbility(new CanBlockOnlyFlyingAbility());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("TSR");
|
||||
}
|
||||
|
||||
public CloudSpriteToken(final CloudSpriteToken token) {
|
||||
|
|
|
@ -6,27 +6,33 @@ import mage.constants.SubType;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.keyword.ShroudAbility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class DeadlyGrubToken extends TokenImpl {
|
||||
public final class DeadlyGrubInsectToken extends TokenImpl {
|
||||
|
||||
public DeadlyGrubToken() {
|
||||
public DeadlyGrubInsectToken() {
|
||||
super("Insect", "6/1 green Insect creature token with shroud");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
subtype.add(SubType.INSECT);
|
||||
power = new MageInt(6);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
// Shroud
|
||||
this.addAbility(ShroudAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("PLC", "TSR");
|
||||
}
|
||||
|
||||
public DeadlyGrubToken(final DeadlyGrubToken token) {
|
||||
public DeadlyGrubInsectToken(final DeadlyGrubInsectToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DeadlyGrubToken copy() {
|
||||
return new DeadlyGrubToken(this);
|
||||
public DeadlyGrubInsectToken copy() {
|
||||
return new DeadlyGrubInsectToken(this);
|
||||
}
|
||||
}
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
@ -14,26 +13,18 @@ import mage.abilities.mana.GreenManaAbility;
|
|||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class FreyaliseLlanowarsFuryToken extends TokenImpl {
|
||||
public final class ElfDruidToken extends TokenImpl {
|
||||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("C14", "CMA"));
|
||||
}
|
||||
|
||||
public FreyaliseLlanowarsFuryToken() {
|
||||
public ElfDruidToken() {
|
||||
this(null, 0);
|
||||
}
|
||||
|
||||
public FreyaliseLlanowarsFuryToken(String setCode) {
|
||||
public ElfDruidToken(String setCode) {
|
||||
this(setCode, 0);
|
||||
}
|
||||
|
||||
public FreyaliseLlanowarsFuryToken(String setCode, int tokenType) {
|
||||
public ElfDruidToken(String setCode, int tokenType) {
|
||||
super("Elf Druid", "1/1 green Elf Druid creature token with \"{T}: Add {G}.\"");
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
setOriginalExpansionSetCode(setCode);
|
||||
this.cardType.add(CardType.CREATURE);
|
||||
this.color = ObjectColor.GREEN;
|
||||
this.subtype.add(SubType.ELF);
|
||||
|
@ -44,13 +35,15 @@ public final class FreyaliseLlanowarsFuryToken extends TokenImpl {
|
|||
|
||||
// {T}: Add {G}.
|
||||
this.addAbility(new GreenManaAbility());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C14");
|
||||
}
|
||||
|
||||
public FreyaliseLlanowarsFuryToken(final FreyaliseLlanowarsFuryToken token) {
|
||||
public ElfDruidToken(final ElfDruidToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public FreyaliseLlanowarsFuryToken copy() {
|
||||
return new FreyaliseLlanowarsFuryToken(this);
|
||||
public ElfDruidToken copy() {
|
||||
return new ElfDruidToken(this);
|
||||
}
|
||||
}
|
|
@ -18,7 +18,6 @@ public final class FesteringGoblinToken extends TokenImpl {
|
|||
|
||||
public FesteringGoblinToken() {
|
||||
super("Festering Goblin", "1/1 black Zombie Goblin creature token named Festering Goblin with \"When Festering Goblin dies, target creature gets -1/-1 until end of turn.\"");
|
||||
this.setOriginalExpansionSetCode("FUT");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
subtype.add(SubType.ZOMBIE);
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -18,6 +20,8 @@ public final class GiantToken extends TokenImpl {
|
|||
color.setRed(true);
|
||||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("TSR");
|
||||
}
|
||||
|
||||
public GiantToken(final GiantToken token) {
|
||||
|
|
|
@ -14,16 +14,10 @@ import java.util.List;
|
|||
*/
|
||||
public final class GoblinToken extends TokenImpl {
|
||||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR",
|
||||
"MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "EVG", "MM2",
|
||||
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1"));
|
||||
}
|
||||
|
||||
public GoblinToken(boolean withHaste) {
|
||||
this();
|
||||
|
||||
// token image don't have haste info so it's ok to use same class for different versions
|
||||
if (withHaste) {
|
||||
addAbility(HasteAbility.getInstance());
|
||||
this.description = "1/1 red Goblin creature token with haste";
|
||||
|
@ -31,22 +25,16 @@ public final class GoblinToken extends TokenImpl {
|
|||
}
|
||||
|
||||
public GoblinToken() {
|
||||
this(null, 0);
|
||||
}
|
||||
|
||||
public GoblinToken(String setCode) {
|
||||
this(setCode, 0);
|
||||
}
|
||||
|
||||
public GoblinToken(String setCode, int tokenType) {
|
||||
super("Goblin", "1/1 red Goblin creature token");
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
setOriginalExpansionSetCode(setCode);
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.GOBLIN);
|
||||
color.setRed(true);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR",
|
||||
"MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "EVG", "MM2",
|
||||
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1", "TSR");
|
||||
}
|
||||
|
||||
public GoblinToken(final GoblinToken token) {
|
||||
|
|
|
@ -20,7 +20,6 @@ public final class GoldmeadowHarrierToken extends TokenImpl {
|
|||
|
||||
public GoldmeadowHarrierToken() {
|
||||
super("Goldmeadow Harrier", "1/1 white Kithkin Soldier creature token named Goldmeadow Harrier with \"{W}, {T}: Tap target creature.\"");
|
||||
this.setOriginalExpansionSetCode("FUT");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setWhite(true);
|
||||
subtype.add(SubType.KITHKIN);
|
||||
|
|
|
@ -19,9 +19,11 @@ public final class GriffinToken extends TokenImpl {
|
|||
subtype.add(SubType.GRIFFIN);
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("DDG", "DDH", "DDL", "TSP", "M21"));
|
||||
availableImageSetCodes = Arrays.asList("DDG", "DDH", "DDL", "TSP", "M21", "TSR");
|
||||
}
|
||||
|
||||
public GriffinToken(final GriffinToken token) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -18,6 +20,8 @@ public final class KherKeepKoboldToken extends TokenImpl {
|
|||
subtype.add(SubType.KOBOLD);
|
||||
power = new MageInt(0);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("TSR");
|
||||
}
|
||||
public KherKeepKoboldToken(final KherKeepKoboldToken token) {
|
||||
super(token);
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class KithkinSoldierToken extends TokenImpl {
|
|||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("CMD", "EVE", "FUT", "LRW", "MMA", "MOR", "SHM", "MMA", "KHC");
|
||||
availableImageSetCodes = Arrays.asList("CMD", "EVE", "LRW", "MMA", "MOR", "SHM", "MMA", "KHC");
|
||||
}
|
||||
|
||||
public KithkinSoldierToken(final KithkinSoldierToken token) {
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.mana.GreenManaAbility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -14,7 +15,6 @@ public final class LlanowarElvesToken extends TokenImpl {
|
|||
|
||||
public LlanowarElvesToken() {
|
||||
super("Llanowar Elves", "1/1 green Elf Druid creature token named Llanowar Elves with \"{T}: Add {G}.\"");
|
||||
this.setOriginalExpansionSetCode("FUT");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
subtype.add(SubType.ELF);
|
||||
|
@ -22,7 +22,10 @@ public final class LlanowarElvesToken extends TokenImpl {
|
|||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
// {T}: Add {G}.
|
||||
this.addAbility(new GreenManaAbility());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("TSR");
|
||||
}
|
||||
|
||||
public LlanowarElvesToken(final LlanowarElvesToken token) {
|
||||
|
|
|
@ -5,27 +5,30 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class SliversmithToken extends TokenImpl {
|
||||
public final class MetallicSliverToken extends TokenImpl {
|
||||
|
||||
public SliversmithToken() {
|
||||
public MetallicSliverToken() {
|
||||
super("Metallic Sliver", "1/1 colorless Sliver creature token named Metallic Sliver");
|
||||
cardType.add(CardType.CREATURE);
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
subtype.add(SubType.SLIVER);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
this.setOriginalExpansionSetCode("FUT");
|
||||
|
||||
availableImageSetCodes = Arrays.asList("TSR");
|
||||
}
|
||||
|
||||
public SliversmithToken(final SliversmithToken token) {
|
||||
public MetallicSliverToken(final MetallicSliverToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SliversmithToken copy() {
|
||||
return new SliversmithToken(this);
|
||||
public MetallicSliverToken copy() {
|
||||
return new MetallicSliverToken(this);
|
||||
}
|
||||
}
|
|
@ -22,7 +22,7 @@ public final class PegasusToken extends TokenImpl {
|
|||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C14", "C19", "CMD", "EXO", "GPT", "MIR", "TMP", "TPR", "TSP", "THB", "KHC");
|
||||
availableImageSetCodes = Arrays.asList("C14", "C19", "CMD", "EXO", "GPT", "MIR", "TMP", "TSP", "THB", "KHC");
|
||||
}
|
||||
|
||||
public PegasusToken(final PegasusToken token) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.constants.CardType;
|
||||
|
@ -6,6 +5,8 @@ import mage.constants.SubType;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -20,7 +21,10 @@ public final class PenumbraSpiderToken extends TokenImpl {
|
|||
subtype.add(SubType.SPIDER);
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(4);
|
||||
|
||||
addAbility(ReachAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("MMA", "PC2", "TSP", "TSR");
|
||||
}
|
||||
|
||||
public PenumbraSpiderToken(final PenumbraSpiderToken token) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -18,6 +20,8 @@ public final class PongifyApeToken extends TokenImpl {
|
|||
subtype.add(SubType.APE);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("10E", "C14", "GVL", "DDD", "DDG", "PLC", "ULG", "UNH", "TSR");
|
||||
}
|
||||
|
||||
public PongifyApeToken(final PongifyApeToken token) {
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class RatToken extends TokenImpl {
|
|||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C17", "CHK", "GTC", "SHM", "STH", "TPR", "ELD", "ZNC");
|
||||
availableImageSetCodes = Arrays.asList("C17", "CHK", "GTC", "SHM", "ELD", "ZNC");
|
||||
}
|
||||
|
||||
public RatToken(final RatToken token) {
|
||||
|
|
|
@ -7,6 +7,8 @@ import mage.MageInt;
|
|||
import mage.ObjectColor;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -15,14 +17,16 @@ public final class RenownedWeaverSpiderToken extends TokenImpl {
|
|||
|
||||
public RenownedWeaverSpiderToken() {
|
||||
super("Spider", "1/3 green Spider enchantment creature token with reach");
|
||||
this.setOriginalExpansionSetCode("JOU");
|
||||
cardType.add(CardType.ENCHANTMENT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setColor(ObjectColor.GREEN);
|
||||
subtype.add(SubType.SPIDER);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("JOU");
|
||||
}
|
||||
|
||||
public RenownedWeaverSpiderToken(final RenownedWeaverSpiderToken token) {
|
||||
|
|
|
@ -9,6 +9,8 @@ import mage.abilities.keyword.FlankingAbility;
|
|||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.ProtectionAbility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
|
@ -22,9 +24,12 @@ public final class RiftmarkedKnightToken extends TokenImpl {
|
|||
subtype.add(SubType.KNIGHT);
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
this.addAbility(ProtectionAbility.from(ObjectColor.WHITE));
|
||||
|
||||
this.addAbility(new FlankingAbility());
|
||||
this.addAbility(ProtectionAbility.from(ObjectColor.WHITE));
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("PLC", "TSR");
|
||||
}
|
||||
|
||||
public RiftmarkedKnightToken(final RiftmarkedKnightToken token) {
|
||||
|
|
|
@ -44,7 +44,8 @@ public final class SaprolingToken extends TokenImpl {
|
|||
"C20",
|
||||
"M21",
|
||||
"ZNC",
|
||||
"CMR"
|
||||
"CMR",
|
||||
"TSR"
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@ import mage.players.Player;
|
|||
import mage.target.Target;
|
||||
import mage.target.common.TargetCardInExile;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author spjspj
|
||||
*/
|
||||
|
@ -31,12 +33,18 @@ public final class SengirNosferatuBatToken extends TokenImpl {
|
|||
subtype.add(SubType.BAT);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// {1}{B}, Sacrifice this creature: Return an exiled card named Sengir Nosferatu to the battlefield under its owner’s control.
|
||||
ReturnSengirNosferatuEffect effect = new ReturnSengirNosferatuEffect();
|
||||
effect.setText("Return an exiled card named Sengir Nosferatu to the battlefield under its owner's control.");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("TSP", "TSR");
|
||||
}
|
||||
|
||||
public SengirNosferatuBatToken(final SengirNosferatuBatToken token) {
|
||||
|
|
|
@ -20,8 +20,9 @@ public final class SoldierToken extends TokenImpl {
|
|||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13", "MM2", "MMA", "RTR",
|
||||
"SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01", "DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC");
|
||||
availableImageSetCodes = Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13",
|
||||
"MM2", "MMA", "RTR", "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01",
|
||||
"DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC", "TSR");
|
||||
}
|
||||
|
||||
public SoldierToken(final SoldierToken token) {
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
@ -18,7 +16,6 @@ public final class SparkElementalToken extends TokenImpl {
|
|||
|
||||
public SparkElementalToken() {
|
||||
super("Spark Elemental", "3/1 red Elemental creature token named Spark Elemental with trample, haste, and \"At the beginning of the end step, sacrifice Spark Elemental.\"");
|
||||
this.setOriginalExpansionSetCode("FUT");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setRed(true);
|
||||
subtype.add(SubType.ELEMENTAL);
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class ThopterColorlessToken extends TokenImpl {
|
|||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C18", "EXO", "KLD", "MBS", "ORI", "TPR", "VMA", "M19", "ZNC", "KHC");
|
||||
availableImageSetCodes = Arrays.asList("C18", "EXO", "KLD", "MBS", "ORI", "VMA", "M19", "ZNC", "KHC");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue