mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
* Images: added Commander 2021 tokens;
This commit is contained in:
parent
03b012bc1e
commit
6a3f2ff420
49 changed files with 362 additions and 303 deletions
|
@ -131,8 +131,11 @@ public class ScryfallImageSupportTokens {
|
|||
//KLD
|
||||
put("KLD/Beast", "https://api.scryfall.com/cards/tkld/1/en?format=image");
|
||||
put("KLD/Emblem Chandra", "https://api.scryfall.com/cards/tkld/10/en?format=image");
|
||||
// same construct images uses for different classes, so KLD have 4 instead 2 tokens
|
||||
put("KLD/Construct/1", "https://api.scryfall.com/cards/tkld/2/en?format=image");
|
||||
put("KLD/Construct/2", "https://api.scryfall.com/cards/tkld/3/en?format=image");
|
||||
put("KLD/Construct/3", "https://api.scryfall.com/cards/tkld/2/en?format=image");
|
||||
put("KLD/Construct/4", "https://api.scryfall.com/cards/tkld/3/en?format=image");
|
||||
put("KLD/Emblem Dovin", "https://api.scryfall.com/cards/tkld/12/en?format=image");
|
||||
put("KLD/Emblem Nissa", "https://api.scryfall.com/cards/tkld/11/en?format=image");
|
||||
put("KLD/Servo/1", "https://api.scryfall.com/cards/tkld/4/en?format=image");
|
||||
|
@ -547,6 +550,37 @@ public class ScryfallImageSupportTokens {
|
|||
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");
|
||||
|
||||
// C21
|
||||
put("C21/Beast/1", "https://api.scryfall.com/cards/tc21/10/en?format=image"); // 3/3
|
||||
put("C21/Beast/2", "https://api.scryfall.com/cards/tc21/11/en?format=image"); // 4/4
|
||||
put("C21/Boar", "https://api.scryfall.com/cards/tc21/12/en?format=image");
|
||||
put("C21/Champion of Wits", "https://api.scryfall.com/cards/tc21/6/en?format=image");
|
||||
put("C21/Construct/1", "https://api.scryfall.com/cards/tc21/22/en?format=image"); // x/x
|
||||
put("C21/Construct/2", "https://api.scryfall.com/cards/tc21/23/en?format=image"); // 0/0
|
||||
put("C21/Demon", "https://api.scryfall.com/cards/tc21/7/en?format=image");
|
||||
put("C21/Drake", "https://api.scryfall.com/cards/tc21/2/en?format=image");
|
||||
put("C21/Eldrazi", "https://api.scryfall.com/cards/tc21/1/en?format=image");
|
||||
put("C21/Elemental", "https://api.scryfall.com/cards/tc21/20/en?format=image");
|
||||
put("C21/Elephant", "https://api.scryfall.com/cards/tc21/13/en?format=image");
|
||||
put("C21/Fish", "https://api.scryfall.com/cards/tc21/3/en?format=image");
|
||||
put("C21/Food", "https://api.scryfall.com/cards/tc21/24/en?format=image");
|
||||
put("C21/Frog Lizard", "https://api.scryfall.com/cards/tc21/14/en?format=image");
|
||||
put("C21/Fungus Beast", "https://api.scryfall.com/cards/tc21/15/en?format=image");
|
||||
put("C21/Golem/1", "https://api.scryfall.com/cards/tc21/25/en?format=image"); // fly
|
||||
put("C21/Golem/2", "https://api.scryfall.com/cards/tc21/27/en?format=image"); // vigilance
|
||||
put("C21/Golem/3", "https://api.scryfall.com/cards/tc21/26/en?format=image"); // trample
|
||||
put("C21/Horror", "https://api.scryfall.com/cards/tc21/8/en?format=image");
|
||||
put("C21/Hydra", "https://api.scryfall.com/cards/tc21/16/en?format=image");
|
||||
put("C21/Insect", "https://api.scryfall.com/cards/tc21/17/en?format=image");
|
||||
put("C21/Kraken", "https://api.scryfall.com/cards/tc21/4/en?format=image");
|
||||
put("C21/Myr", "https://api.scryfall.com/cards/tc21/28/en?format=image");
|
||||
put("C21/Saproling", "https://api.scryfall.com/cards/tc21/18/en?format=image");
|
||||
put("C21/Spirit", "https://api.scryfall.com/cards/tc21/21/en?format=image");
|
||||
put("C21/Thopter", "https://api.scryfall.com/cards/tc21/29/en?format=image");
|
||||
put("C21/Whale", "https://api.scryfall.com/cards/tc21/5/en?format=image");
|
||||
put("C21/Wurm", "https://api.scryfall.com/cards/tc21/19/en?format=image");
|
||||
put("C21/Zombie", "https://api.scryfall.com/cards/tc21/9/en?format=image");
|
||||
|
||||
// generate supported sets
|
||||
supportedSets.clear();
|
||||
for (String cardName : this.keySet()) {
|
||||
|
|
|
@ -266,7 +266,7 @@
|
|||
|Generate|TOK:BNG|Centaur|||CentaurEnchantmentCreatureToken|
|
||||
|Generate|TOK:BNG|Elemental|||SatyrNyxSmithElementalToken|
|
||||
|Generate|TOK:BNG|Gold||
|
||||
|Generate|TOK:BNG|Kraken|||ReefWormKrakenToken|
|
||||
|Generate|TOK:BNG|Kraken|||Kraken99Token|
|
||||
|Generate|TOK:BNG|Soldier|||GodFavoredGeneralSoldierToken|
|
||||
|Generate|TOK:BNG|Wolf|||WolfToken|
|
||||
|Generate|TOK:BNG|Zombie|||ForlornPseudammaZombieToken|
|
||||
|
@ -303,7 +303,7 @@
|
|||
|Generate|TOK:C14|Beast|2||BeastToken2|
|
||||
|Generate|TOK:C14|Cat|||CatToken|
|
||||
|Generate|TOK:C14|Demon|1||DemonToken|
|
||||
|Generate|TOK:C14|Demon|2||ReignOfThePitToken|
|
||||
|Generate|TOK:C14|Demon|2||DemonFlyingToken|
|
||||
|Generate|TOK:C14|Elemental|||TitaniaProtectorOfArgothElementalToken|
|
||||
|Generate|TOK:C14|Elephant|||ElephantToken|
|
||||
|Generate|TOK:C14|Elf Druid|||ElfDruidToken|
|
||||
|
@ -317,7 +317,7 @@
|
|||
|Generate|TOK:C14|Goblin|||GoblinToken|
|
||||
|Generate|TOK:C14|Horror|||SpoilsOfBloodHorrorToken|
|
||||
|Generate|TOK:C14|Kor Soldier|||KorSoldierToken|
|
||||
|Generate|TOK:C14|Kraken|||ReefWormKrakenToken|
|
||||
|Generate|TOK:C14|Kraken|||Kraken99Token|
|
||||
|Generate|TOK:C14|Myr|||MyrToken|
|
||||
|Generate|TOK:C14|Pegasus|||PegasusToken|
|
||||
|Generate|TOK:C14|Pentavite|||PentaviteToken|
|
||||
|
@ -338,8 +338,8 @@
|
|||
|Generate|TOK:C15|Dragon|||DragonToken2|
|
||||
|Generate|TOK:C15|Drake|||DrakeToken|
|
||||
|Generate|TOK:C15|Elemental Shaman|||ElementalShamanToken|
|
||||
|Generate|TOK:C15|Elemental|||CallTheSkyBreakerElementalToken|
|
||||
|Generate|TOK:C15|Elemental|||LightningRagerToken|
|
||||
|Generate|TOK:C15|Elemental|1||CallTheSkyBreakerElementalToken|
|
||||
|Generate|TOK:C15|Elemental|2||LightningRagerToken|
|
||||
|Generate|TOK:C15|Elephant|||ElephantToken|
|
||||
|Generate|TOK:C15|Frog Lizard|||RapidHybridizationToken|
|
||||
|Generate|TOK:C15|Germ|||GermToken|
|
||||
|
@ -554,7 +554,7 @@
|
|||
|Generate|TOK:DDM|Assassin|||AssassinToken|
|
||||
|Generate|TOK:DDM|Illusion|||IllusionToken|
|
||||
|Generate|TOK:DDN|Goblin|||GoblinToken|
|
||||
|Generate|TOK:DDO|Kraken|||ReefWormKrakenToken|
|
||||
|Generate|TOK:DDO|Kraken|||Kraken99Token|
|
||||
|Generate|TOK:DDO|Soldier|||SoldierToken|
|
||||
|Generate|TOK:DDP|Eldrazi Spawn|1||EldraziSpawnToken|
|
||||
|Generate|TOK:DDP|Eldrazi Spawn|2||EldraziSpawnToken|
|
||||
|
@ -753,7 +753,9 @@
|
|||
|Generate|TOK:JUD|Wurm|||WurmToken|
|
||||
|Generate|TOK:KLD|Beast|||ArchitectOfTheUntamedBeastToken|
|
||||
|Generate|TOK:KLD|Construct|1||OviyaPashiriSageLifecrafterToken|
|
||||
|Generate|TOK:KLD|Construct|2||MetallurgicSummoningsConstructToken|
|
||||
|Generate|TOK:KLD|Construct|2||OviyaPashiriSageLifecrafterToken|
|
||||
|Generate|TOK:KLD|Construct|3||MetallurgicSummoningsConstructToken|
|
||||
|Generate|TOK:KLD|Construct|4||MetallurgicSummoningsConstructToken|
|
||||
|Generate|TOK:KLD|Servo|1||ServoToken|
|
||||
|Generate|TOK:KLD|Servo|2||ServoToken|
|
||||
|Generate|TOK:KLD|Servo|3||ServoToken|
|
||||
|
@ -1363,7 +1365,7 @@
|
|||
|Generate|TOK:C20|Goblin Warrior|||GoblinWarriorToken|
|
||||
|Generate|TOK:C20|Human|||HumanToken|
|
||||
|Generate|TOK:C20|Hydra|||ZaxaraTheExemplaryHydraToken|
|
||||
|Generate|TOK:C20|Insect|1||HornetQueenInsectToken|
|
||||
|Generate|TOK:C20|Insect|1||InsectDeathToken|
|
||||
|Generate|TOK:C20|Insect|2||TheLocustGodInsectToken|
|
||||
|Generate|TOK:C20|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:C20|Snake|||SnakeToken|
|
||||
|
@ -1496,3 +1498,38 @@
|
|||
|Generate|TOK:TSR|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:TSR|Soldier|||SoldierToken|
|
||||
|Generate|TOK:TSR|Spider|||PenumbraSpiderToken|
|
||||
|
||||
# C21
|
||||
|Generate|TOK:C21|Beast|1||BeastToken|
|
||||
|Generate|TOK:C21|Beast|2||BeastToken2|
|
||||
|Generate|TOK:C21|Fungus Beast|||FungusBeastToken|
|
||||
|Generate|TOK:C21|Boar|||Boar2Token|
|
||||
# no need tokens for Eternalize ability, but scryfall have it: https://scryfall.com/card/tc21/6/champion-of-wits
|
||||
# no need tokens for Copy, but scryfall have it: https://scryfall.com/card/tc21/30/copy
|
||||
|Generate|TOK:C21|Construct|1||MetallurgicSummoningsConstructToken|
|
||||
|Generate|TOK:C21|Construct|2||KarnConstructToken|
|
||||
|Generate|TOK:C21|Demon|||DemonFlyingToken|
|
||||
|Generate|TOK:C21|Drake|||DrakeToken|
|
||||
|Generate|TOK:C21|Eldrazi|||EldraziToken|
|
||||
|Generate|TOK:C21|Elemental|||CallTheSkyBreakerElementalToken|
|
||||
|Generate|TOK:C21|Elephant|||ElephantToken|
|
||||
|Generate|TOK:C21|Fish|||ReefWormFishToken|
|
||||
|Generate|TOK:C21|Food|||FoodToken|
|
||||
|Generate|TOK:C21|Frog Lizard|||FrogLizardToken|
|
||||
|Generate|TOK:C21|Golem|1||GolemFlyingToken|
|
||||
|Generate|TOK:C21|Golem|2||GolemVigilanceToken|
|
||||
|Generate|TOK:C21|Golem|3||GolemTrampleToken|
|
||||
|Generate|TOK:C21|Horror|||HorrorToken|
|
||||
|Generate|TOK:C21|Hydra|||HydraBroodmasterToken|
|
||||
|Generate|TOK:C21|Insect|||InsectDeathToken|
|
||||
|Generate|TOK:C21|Kraken|||Kraken99Token|
|
||||
|Generate|TOK:C21|Myr|||MyrToken|
|
||||
|Generate|TOK:C21|Saproling|||SaprolingToken|
|
||||
|Generate|TOK:C21|Spirit|||WhiteBlackSpiritToken|
|
||||
|Generate|TOK:C21|Thopter|||ThopterColorlessToken|
|
||||
|Generate|TOK:C21|Whale|||ReefWormWhaleToken|
|
||||
|Generate|TOK:C21|Wurm|||WurmToken|
|
||||
|Generate|TOK:C21|Zombie|||ZombieToken|
|
||||
|
||||
|
||||
#|Generate|TOK:C21|xxx|||xxxToken|
|
|
@ -1,13 +1,14 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.*;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
|
@ -15,8 +16,9 @@ import mage.game.Game;
|
|||
import mage.game.permanent.token.SaprolingToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class DruidicSatchel extends CardImpl {
|
||||
|
@ -24,6 +26,7 @@ public final class DruidicSatchel extends CardImpl {
|
|||
public DruidicSatchel(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
||||
// {2}, {T}: Reveal the top card of your library. If it’s a creature card, create a 1/1 green Saproling creature token. If it’s a land card, put that card onto the battlefield under your control. If it’s a noncreature, nonland card, you gain 2 life.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DruidicSatchelEffect(), new ManaCostsImpl("{2}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
|
||||
|
@ -11,14 +9,15 @@ import mage.abilities.keyword.DefenderAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.HornetNestInsectToken;
|
||||
import mage.game.permanent.token.InsectDeathToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class HornetNest extends CardImpl {
|
||||
|
@ -32,6 +31,7 @@ public final class HornetNest extends CardImpl {
|
|||
|
||||
// Defender
|
||||
this.addAbility(DefenderAbility.getInstance());
|
||||
|
||||
// Whenever Hornet Nest is dealt damage, create that many 1/1 green Insect creature tokens with flying and deathtouch.
|
||||
this.addAbility(new DealtDamageToSourceTriggeredAbility(new HornetNestDealDamageEffect(), false, false, true));
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ class HornetNestDealDamageEffect extends OneShotEffect {
|
|||
if (player != null) {
|
||||
int amount = (Integer) getValue("damage");
|
||||
if (amount > 0) {
|
||||
return new CreateTokenEffect(new HornetNestInsectToken(), amount).apply(game, source);
|
||||
return new CreateTokenEffect(new InsectDeathToken(), amount).apply(game, source);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
|
@ -11,10 +9,11 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.HornetQueenInsectToken;
|
||||
import mage.game.permanent.token.InsectDeathToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class HornetQueen extends CardImpl {
|
||||
|
@ -31,7 +30,7 @@ public final class HornetQueen extends CardImpl {
|
|||
// Deathtouch
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
// When Hornet Queen enters the battlefield, create four 1/1 green Insect creature tokens with flying and deathtouch.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new HornetQueenInsectToken(), 4), false));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new InsectDeathToken(), 4), false));
|
||||
}
|
||||
|
||||
private HornetQueen(final HornetQueen card) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
|
@ -15,6 +13,8 @@ import mage.game.permanent.token.HorrorToken;
|
|||
import mage.target.Target;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
*/
|
||||
|
@ -23,11 +23,12 @@ public final class HuntedLammasu extends CardImpl {
|
|||
public HuntedLammasu(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
this.subtype.add(SubType.LAMMASU);
|
||||
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When Hunted Lammasu enters the battlefield, create a 4/4 black Horror creature token under target opponent's control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenTargetEffect(new HorrorToken()), false);
|
||||
Target target = new TargetOpponent();
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BecomesMonstrousSourceTriggeredAbility;
|
||||
|
@ -11,14 +9,15 @@ import mage.abilities.keyword.MonstrosityAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.HydraBroodmasterToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class HydraBroodmaster extends CardImpl {
|
||||
|
@ -32,6 +31,7 @@ public final class HydraBroodmaster extends CardImpl {
|
|||
|
||||
// {X}{X}{G}: Monstrosity X
|
||||
this.addAbility(new MonstrosityAbility("{X}{X}{G}", Integer.MAX_VALUE));
|
||||
|
||||
// When Hydra Broodmaster becomes monstrous, create X X/X green Hydra creature tokens.
|
||||
this.addAbility(new BecomesMonstrousSourceTriggeredAbility(new HydraBroodmasterEffect()));
|
||||
}
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
|
@ -14,11 +9,7 @@ import mage.abilities.effects.common.CreateTokenEffect;
|
|||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.TappedPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -29,8 +20,12 @@ import mage.players.Player;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public final class MyrBattlesphere extends CardImpl {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.Effect;
|
||||
|
@ -15,11 +13,12 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.PromiseOfPowerDemonToken;
|
||||
import mage.game.permanent.token.DemonFlyingToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class PromiseOfPower extends CardImpl {
|
||||
|
@ -73,7 +72,7 @@ class PromiseOfPowerEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
return new CreateTokenEffect(new PromiseOfPowerDemonToken(controller.getHand().size())).apply(game, source);
|
||||
return new CreateTokenEffect(new DemonFlyingToken(controller.getHand().size())).apply(game, source);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
|
@ -14,12 +10,15 @@ import mage.constants.Outcome;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.ReignOfThePitToken;
|
||||
import mage.game.permanent.token.DemonFlyingToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public final class ReignOfThePit extends CardImpl {
|
||||
|
@ -86,7 +85,7 @@ class ReignOfThePitEffect extends OneShotEffect {
|
|||
}
|
||||
}
|
||||
}
|
||||
new CreateTokenEffect(new ReignOfThePitToken(totalPowerSacrificed)).apply(game, source);
|
||||
new CreateTokenEffect(new DemonFlyingToken(totalPowerSacrificed)).apply(game, source);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import mage.constants.SubType;
|
|||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.permanent.token.KioraKrakenToken;
|
||||
import mage.game.permanent.token.Kraken99Token;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -41,7 +41,7 @@ public final class SpawningKraken extends CardImpl {
|
|||
|
||||
// Whenever a Kraken, Leviathan, Octopus, or Serpent you control deals combat damage to a player, create a 9/9 blue Kraken creature token.
|
||||
this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility(
|
||||
new CreateTokenEffect(new KioraKrakenToken()), filter,
|
||||
new CreateTokenEffect(new Kraken99Token()), filter,
|
||||
false, SetTargetPointer.NONE, true
|
||||
));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import mage.MageInt;
|
||||
|
@ -40,8 +39,10 @@ public final class TeysaEnvoyOfGhosts extends CardImpl {
|
|||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// protection from creatures
|
||||
this.addAbility(new ProtectionAbility(FILTER_PERMANENT_CREATURES));
|
||||
|
||||
// Whenever a creature deals combat damage to you, destroy that creature. Create a 1/1 white and black Spirit creature token with flying.
|
||||
this.addAbility(new TeysaEnvoyOfGhostsTriggeredAbility());
|
||||
|
||||
|
@ -62,7 +63,6 @@ class TeysaEnvoyOfGhostsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public TeysaEnvoyOfGhostsTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new DestroyTargetEffect());
|
||||
this.addEffect(new CreateTokenEffect(new WhiteBlackSpiritToken(), 1));
|
||||
|
||||
}
|
||||
|
||||
public TeysaEnvoyOfGhostsTriggeredAbility(final TeysaEnvoyOfGhostsTriggeredAbility ability) {
|
||||
|
|
|
@ -14,7 +14,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.PromiseOfPowerDemonToken;
|
||||
import mage.game.permanent.token.DemonFlyingToken;
|
||||
import mage.players.Player;
|
||||
import mage.watchers.common.PlayerGainedLifeWatcher;
|
||||
|
||||
|
@ -91,7 +91,7 @@ class TivashGloomSummonerEffect extends OneShotEffect {
|
|||
)) {
|
||||
return false;
|
||||
}
|
||||
new PromiseOfPowerDemonToken(lifeGained).putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
new DemonFlyingToken(lifeGained).putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
|
@ -7,10 +6,9 @@ import mage.abilities.effects.common.CreateTokenEffect;
|
|||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.command.Emblem;
|
||||
import mage.game.permanent.token.KioraKrakenToken;
|
||||
import mage.game.permanent.token.Kraken99Token;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class KioraEmblem extends Emblem {
|
||||
|
@ -22,7 +20,7 @@ public final class KioraEmblem extends Emblem {
|
|||
|
||||
public KioraEmblem() {
|
||||
this.setName("Emblem Kiora");
|
||||
Ability ability = new BeginningOfEndStepTriggeredAbility(Zone.COMMAND, new CreateTokenEffect(new KioraKrakenToken()), TargetController.YOU, null, false);
|
||||
Ability ability = new BeginningOfEndStepTriggeredAbility(Zone.COMMAND, new CreateTokenEffect(new Kraken99Token()), TargetController.YOU, null, false);
|
||||
this.getAbilities().add(ability);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class BeastToken extends TokenImpl {
|
|||
|
||||
availableImageSetCodes = Arrays.asList("5DN", "C14", "C16", "C19", "CMA", "CMD", "CN2", "GVL",
|
||||
"DD3C", "DD3GVL", "DDD", "DDL", "DST", "E01", "EVE", "LRW", "M10", "M11", "M12",
|
||||
"M13", "M14", "M15", "MM3", "NPH", "PC2", "USG", "M19", "IKO", "M21", "CMR");
|
||||
"M13", "M14", "M15", "MM3", "NPH", "PC2", "USG", "M19", "IKO", "M21", "CMR", "C21");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -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");
|
||||
"E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21");
|
||||
}
|
||||
|
||||
public BeastToken2(final BeastToken2 token) {
|
||||
|
@ -59,5 +59,9 @@ public final class BeastToken2 extends TokenImpl {
|
|||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CMR")) {
|
||||
this.setTokenType(2);
|
||||
}
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
|
||||
this.setTokenType(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class Boar2Token extends TokenImpl {
|
|||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("THS", "KHC");
|
||||
availableImageSetCodes = Arrays.asList("THS", "KHC", "C21");
|
||||
}
|
||||
|
||||
public Boar2Token(final Boar2Token token) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author spjspj
|
||||
*/
|
||||
|
@ -18,7 +20,10 @@ public final class CallTheSkyBreakerElementalToken extends TokenImpl {
|
|||
subtype.add(SubType.ELEMENTAL);
|
||||
power = new MageInt(5);
|
||||
toughness = new MageInt(5);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C15", "CMD", "EMA", "EVE", "C21");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class DemonFlyingToken extends TokenImpl {
|
||||
|
||||
public DemonFlyingToken() {
|
||||
this(1);
|
||||
}
|
||||
|
||||
public DemonFlyingToken(int xValue) {
|
||||
super("Demon", "X/X black Demon creature token with flying");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
subtype.add(SubType.DEMON);
|
||||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C14", "C21");
|
||||
}
|
||||
|
||||
public DemonFlyingToken(final DemonFlyingToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public DemonFlyingToken copy() {
|
||||
return new DemonFlyingToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C14")) {
|
||||
setTokenType(2);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -24,7 +24,7 @@ public final class DrakeToken extends TokenImpl {
|
|||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("AKH", "C15", "C19", "M13", "C20", "ZNR");
|
||||
availableImageSetCodes = Arrays.asList("AKH", "C15", "C19", "M13", "C20", "ZNR", "C21");
|
||||
}
|
||||
|
||||
public DrakeToken(final DrakeToken token) {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class EldraziToken extends TokenImpl {
|
||||
|
@ -17,6 +17,8 @@ public final class EldraziToken extends TokenImpl {
|
|||
subtype.add(SubType.ELDRAZI);
|
||||
power = new MageInt(10);
|
||||
toughness = new MageInt(10);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("BFZ", "C19", "C21");
|
||||
}
|
||||
|
||||
public EldraziToken(final EldraziToken token) {
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class ElephantToken extends TokenImpl {
|
|||
toughness = new MageInt(3);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C13", "C14", "C15", "CMA", "CMD", "CNS", "GVL", "DDD",
|
||||
"EMA", "INV", "JUD", "MM2", "ODY", "ROE", "TSP", "VMA", "WWK", "MH1", "CMR");
|
||||
"EMA", "INV", "JUD", "MM2", "ODY", "ROE", "TSP", "VMA", "WWK", "MH1", "CMR", "C21");
|
||||
}
|
||||
|
||||
public ElephantToken(final ElephantToken token) {
|
||||
|
|
|
@ -23,13 +23,8 @@ public final class FoodToken extends TokenImpl {
|
|||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("ELD"));
|
||||
}
|
||||
|
||||
public FoodToken() {
|
||||
super("Food", "Food token");
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
subtype.add(SubType.FOOD);
|
||||
|
||||
|
@ -40,6 +35,8 @@ public final class FoodToken extends TokenImpl {
|
|||
cost.setText("Sacrifice this artifact");
|
||||
ability.addCost(cost);
|
||||
this.addAbility(ability);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("ELD", "C21");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -4,6 +4,8 @@ import mage.MageInt;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author spjspj
|
||||
*/
|
||||
|
@ -12,14 +14,13 @@ public final class FrogLizardToken extends TokenImpl {
|
|||
public FrogLizardToken() {
|
||||
super("Frog Lizard", "3/3 green Frog Lizard creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
|
||||
color.setGreen(true);
|
||||
|
||||
subtype.add(SubType.FROG);
|
||||
subtype.add(SubType.LIZARD);
|
||||
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("RNA", "C21");
|
||||
}
|
||||
|
||||
public FrogLizardToken(final FrogLizardToken token) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -18,7 +20,10 @@ public final class FungusBeastToken extends TokenImpl {
|
|||
subtype.add(SubType.BEAST);
|
||||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
|
||||
addAbility(TrampleAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C21");
|
||||
}
|
||||
|
||||
private FungusBeastToken(final FungusBeastToken token) {
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -17,7 +19,10 @@ public final class GolemFlyingToken extends TokenImpl {
|
|||
subtype.add(SubType.GOLEM);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C21");
|
||||
}
|
||||
|
||||
private GolemFlyingToken(final GolemFlyingToken token) {
|
||||
|
@ -27,4 +32,13 @@ public final class GolemFlyingToken extends TokenImpl {
|
|||
public GolemFlyingToken copy() {
|
||||
return new GolemFlyingToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
|
||||
setTokenType(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -17,7 +19,10 @@ public final class GolemTrampleToken extends TokenImpl {
|
|||
subtype.add(SubType.GOLEM);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
addAbility(TrampleAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C21");
|
||||
}
|
||||
|
||||
private GolemTrampleToken(final GolemTrampleToken token) {
|
||||
|
@ -27,4 +32,13 @@ public final class GolemTrampleToken extends TokenImpl {
|
|||
public GolemTrampleToken copy() {
|
||||
return new GolemTrampleToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
|
||||
setTokenType(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.VigilanceAbility;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -17,7 +19,10 @@ public final class GolemVigilanceToken extends TokenImpl {
|
|||
subtype.add(SubType.GOLEM);
|
||||
power = new MageInt(3);
|
||||
toughness = new MageInt(3);
|
||||
|
||||
addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C21");
|
||||
}
|
||||
|
||||
private GolemVigilanceToken(final GolemVigilanceToken token) {
|
||||
|
@ -27,4 +32,13 @@ public final class GolemVigilanceToken extends TokenImpl {
|
|||
public GolemVigilanceToken copy() {
|
||||
return new GolemVigilanceToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
|
||||
setTokenType(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class HornetNestInsectToken extends TokenImpl {
|
||||
|
||||
public HornetNestInsectToken() {
|
||||
super("Insect", "1/1 green Insect creature tokens with flying and deathtouch");
|
||||
setOriginalExpansionSetCode("M15");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
subtype.add(SubType.INSECT);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
}
|
||||
|
||||
public HornetNestInsectToken(final HornetNestInsectToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public HornetNestInsectToken copy() {
|
||||
return new HornetNestInsectToken(this);
|
||||
}
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class HorrorToken extends TokenImpl {
|
||||
|
@ -18,6 +18,8 @@ public final class HorrorToken extends TokenImpl {
|
|||
subtype.add(SubType.HORROR);
|
||||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("RAV", "C21");
|
||||
}
|
||||
|
||||
public HorrorToken(final HorrorToken token) {
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class HydraBroodmasterToken extends TokenImpl {
|
|||
this.power = new MageInt(power);
|
||||
this.toughness = new MageInt(toughness);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("JOU");
|
||||
availableImageSetCodes = Arrays.asList("JOU", "C21");
|
||||
}
|
||||
|
||||
public HydraBroodmasterToken(final HydraBroodmasterToken token) {
|
||||
|
|
|
@ -11,9 +11,9 @@ import java.util.Arrays;
|
|||
/**
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class HornetQueenInsectToken extends TokenImpl {
|
||||
public final class InsectDeathToken extends TokenImpl {
|
||||
|
||||
public HornetQueenInsectToken() {
|
||||
public InsectDeathToken() {
|
||||
super("Insect", "1/1 green Insect creature token with flying and deathtouch");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setGreen(true);
|
||||
|
@ -23,14 +23,14 @@ public final class HornetQueenInsectToken extends TokenImpl {
|
|||
addAbility(FlyingAbility.getInstance());
|
||||
addAbility(DeathtouchAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("M15", "C20");
|
||||
availableImageSetCodes = Arrays.asList("M15", "C20", "C21");
|
||||
}
|
||||
|
||||
public HornetQueenInsectToken(final HornetQueenInsectToken token) {
|
||||
public InsectDeathToken(final InsectDeathToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public HornetQueenInsectToken copy() {
|
||||
return new HornetQueenInsectToken(this);
|
||||
public InsectDeathToken copy() {
|
||||
return new InsectDeathToken(this);
|
||||
}
|
||||
}
|
|
@ -8,25 +8,17 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.util.RandomUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class KarnConstructToken extends TokenImpl {
|
||||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("DOM", "MH1"));
|
||||
}
|
||||
|
||||
public KarnConstructToken() {
|
||||
super("Construct", "0/0 colorless Construct artifact creature token with \"This creature gets +1/+1 for each artifact you control.\"");
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.CONSTRUCT);
|
||||
|
@ -37,6 +29,8 @@ public final class KarnConstructToken extends TokenImpl {
|
|||
new BoostSourceEffect(ArtifactYouControlCount.instance, ArtifactYouControlCount.instance, Duration.WhileOnBattlefield)
|
||||
.setText("This creature gets +1/+1 for each artifact you control")
|
||||
));
|
||||
|
||||
availableImageSetCodes = Arrays.asList("DOM", "MH1", "C21");
|
||||
}
|
||||
|
||||
public KarnConstructToken(final KarnConstructToken token) {
|
||||
|
@ -46,4 +40,13 @@ public final class KarnConstructToken extends TokenImpl {
|
|||
public KarnConstructToken copy() {
|
||||
return new KarnConstructToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
|
||||
setTokenType(RandomUtil.nextInt(2) + 1); // from 1 to 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class KioraKrakenToken extends TokenImpl {
|
||||
|
||||
public KioraKrakenToken() {
|
||||
super("Kraken", "9/9 blue Kraken creature token");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
subtype.add(SubType.KRAKEN);
|
||||
power = new MageInt(9);
|
||||
toughness = new MageInt(9);
|
||||
this.setOriginalExpansionSetCode("BNG");
|
||||
}
|
||||
|
||||
public KioraKrakenToken(final KioraKrakenToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public KioraKrakenToken copy() {
|
||||
return new KioraKrakenToken(this);
|
||||
}
|
||||
}
|
|
@ -1,31 +1,32 @@
|
|||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class ReefWormKrakenToken extends TokenImpl {
|
||||
public final class Kraken99Token extends TokenImpl {
|
||||
|
||||
public ReefWormKrakenToken() {
|
||||
public Kraken99Token() {
|
||||
super("Kraken", "9/9 blue Kraken creature token");
|
||||
setOriginalExpansionSetCode("C14");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
subtype.add(SubType.KRAKEN);
|
||||
power = new MageInt(9);
|
||||
toughness = new MageInt(9);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("BNG", "C14", "DDO", "C21");
|
||||
}
|
||||
|
||||
public ReefWormKrakenToken(final ReefWormKrakenToken token) {
|
||||
public Kraken99Token(final Kraken99Token token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ReefWormKrakenToken copy() {
|
||||
return new ReefWormKrakenToken(this);
|
||||
public Kraken99Token copy() {
|
||||
return new Kraken99Token(this);
|
||||
}
|
||||
}
|
|
@ -1,17 +1,17 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class LightningRagerToken extends TokenImpl {
|
||||
|
@ -19,15 +19,17 @@ public final class LightningRagerToken extends TokenImpl {
|
|||
public LightningRagerToken() {
|
||||
super("Lightning Rager", "5/1 red Elemental creature token named Lightning Rager."
|
||||
+ "It has trample, haste, and \"At the beginning of the end step, sacrifice this creature.\"");
|
||||
this.setOriginalExpansionSetCode("C15");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setRed(true);
|
||||
subtype.add(SubType.ELEMENTAL);
|
||||
power = new MageInt(5);
|
||||
toughness = new MageInt(1);
|
||||
addAbility(TrampleAbility.getInstance());
|
||||
addAbility(HasteAbility.getInstance());
|
||||
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.NEXT, false));
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C15");
|
||||
}
|
||||
|
||||
public LightningRagerToken(final LightningRagerToken token) {
|
||||
|
@ -37,4 +39,14 @@ public final class LightningRagerToken extends TokenImpl {
|
|||
public LightningRagerToken copy() {
|
||||
return new LightningRagerToken(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C15")) {
|
||||
this.setTokenType(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,30 +1,32 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.util.RandomUtil;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class MetallurgicSummoningsConstructToken extends TokenImpl {
|
||||
|
||||
public MetallurgicSummoningsConstructToken() {
|
||||
this (1);
|
||||
this(1);
|
||||
}
|
||||
|
||||
public MetallurgicSummoningsConstructToken(int xValue) {
|
||||
super("Construct", "X/X colorless Construct artifact creature token");
|
||||
setOriginalExpansionSetCode("KLD");
|
||||
setTokenType(RandomUtil.nextInt(2) + 1);
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.CONSTRUCT);
|
||||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("KLD", "C21");
|
||||
}
|
||||
|
||||
public MetallurgicSummoningsConstructToken(final MetallurgicSummoningsConstructToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
@ -32,4 +34,13 @@ public final class MetallurgicSummoningsConstructToken extends TokenImpl {
|
|||
public MetallurgicSummoningsConstructToken copy() {
|
||||
return new MetallurgicSummoningsConstructToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("KLD")) {
|
||||
setTokenType(RandomUtil.nextInt(2) + 3); // from 3 to 4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,32 +4,19 @@ import mage.MageInt;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public final class MyrToken extends TokenImpl {
|
||||
|
||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
||||
|
||||
static {
|
||||
tokenImageSets.addAll(Arrays.asList("C14", "MM2", "NPH", "SOM", "MH1"));
|
||||
}
|
||||
|
||||
public MyrToken() {
|
||||
this((String) null);
|
||||
}
|
||||
|
||||
public MyrToken(String expansionSetCode) {
|
||||
super("Myr", "1/1 colorless Myr artifact creature token");
|
||||
this.setOriginalExpansionSetCode(expansionSetCode);
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.MYR);
|
||||
power = new MageInt(1);
|
||||
toughness = new MageInt(1);
|
||||
|
||||
availableImageSetCodes = tokenImageSets;
|
||||
availableImageSetCodes = Arrays.asList("C13", "C14", "DST", "MBS", "MM2", "MRD", "NPH", "SOM", "MH1", "C21");
|
||||
}
|
||||
|
||||
public MyrToken(final MyrToken token) {
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.util.RandomUtil;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class OviyaPashiriSageLifecrafterToken extends TokenImpl {
|
||||
|
@ -24,10 +23,10 @@ public final class OviyaPashiriSageLifecrafterToken extends TokenImpl {
|
|||
cardType.add(CardType.ARTIFACT);
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.CONSTRUCT);
|
||||
setOriginalExpansionSetCode("KLD");
|
||||
setTokenType(RandomUtil.nextInt(2) + 1);
|
||||
power = new MageInt(number);
|
||||
toughness = new MageInt(number);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("KLD");
|
||||
}
|
||||
|
||||
public OviyaPashiriSageLifecrafterToken(final OviyaPashiriSageLifecrafterToken token) {
|
||||
|
@ -37,4 +36,13 @@ public final class OviyaPashiriSageLifecrafterToken extends TokenImpl {
|
|||
public OviyaPashiriSageLifecrafterToken copy() {
|
||||
return new OviyaPashiriSageLifecrafterToken(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExpansionSetCodeForImage(String code) {
|
||||
super.setExpansionSetCodeForImage(code);
|
||||
|
||||
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
|
||||
setTokenType(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ import mage.MageInt;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
|
@ -17,6 +19,8 @@ public final class PhyrexianBeastToken extends TokenImpl {
|
|||
subtype.add(SubType.BEAST);
|
||||
power = new MageInt(4);
|
||||
toughness = new MageInt(4);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C21");
|
||||
}
|
||||
|
||||
public PhyrexianBeastToken(final PhyrexianBeastToken token) {
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class PromiseOfPowerDemonToken extends TokenImpl {
|
||||
|
||||
public PromiseOfPowerDemonToken() {
|
||||
this(1);
|
||||
}
|
||||
|
||||
public PromiseOfPowerDemonToken(int xValue) {
|
||||
super("Demon", "X/X black Demon creature token with flying");
|
||||
setOriginalExpansionSetCode("C14");
|
||||
setTokenType(2);
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
subtype.add(SubType.DEMON);
|
||||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
|
||||
public PromiseOfPowerDemonToken(final PromiseOfPowerDemonToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public PromiseOfPowerDemonToken copy() {
|
||||
return new PromiseOfPowerDemonToken(this);
|
||||
}
|
||||
}
|
|
@ -1,21 +1,20 @@
|
|||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class ReefWormFishToken extends TokenImpl {
|
||||
|
||||
public ReefWormFishToken() {
|
||||
super("Fish", "3/3 blue Fish creature token with \"When this creature dies, create a 6/6 blue Whale creature token with \"When this creature dies, create a 9/9 blue Kraken creature token.\"\"");
|
||||
setOriginalExpansionSetCode("C14");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
subtype.add(SubType.FISH);
|
||||
|
@ -23,6 +22,8 @@ public final class ReefWormFishToken extends TokenImpl {
|
|||
toughness = new MageInt(3);
|
||||
|
||||
addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new ReefWormWhaleToken())));
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C14", "C21");
|
||||
}
|
||||
|
||||
public ReefWormFishToken(final ReefWormFishToken token) {
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
|
||||
package mage.game.permanent.token;
|
||||
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class ReefWormWhaleToken extends TokenImpl {
|
||||
|
||||
public ReefWormWhaleToken() {
|
||||
super("Whale", "6/6 blue Whale creature token with \"When this creature dies, create a 9/9 blue Kraken creature token.\"");
|
||||
setOriginalExpansionSetCode("C14");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlue(true);
|
||||
subtype.add(SubType.WHALE);
|
||||
power = new MageInt(6);
|
||||
toughness = new MageInt(6);
|
||||
|
||||
addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new ReefWormKrakenToken())));
|
||||
addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new Kraken99Token())));
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("C14", "C21"));
|
||||
}
|
||||
|
||||
public ReefWormWhaleToken(final ReefWormWhaleToken token) {
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
|
||||
|
||||
package mage.game.permanent.token;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author spjspj
|
||||
*/
|
||||
public final class ReignOfThePitToken extends TokenImpl {
|
||||
|
||||
public ReignOfThePitToken() {
|
||||
this(1);
|
||||
}
|
||||
public ReignOfThePitToken(int xValue) {
|
||||
super("Demon", "X/X black Demon creature token with flying");
|
||||
power = new MageInt(xValue);
|
||||
toughness = new MageInt(xValue);
|
||||
color.setBlack(true);
|
||||
subtype.add(SubType.DEMON);
|
||||
cardType.add(CardType.CREATURE);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
}
|
||||
public ReignOfThePitToken(final ReignOfThePitToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public ReignOfThePitToken copy() {
|
||||
return new ReignOfThePitToken(this);
|
||||
}
|
||||
|
||||
}
|
|
@ -45,7 +45,8 @@ public final class SaprolingToken extends TokenImpl {
|
|||
"M21",
|
||||
"ZNC",
|
||||
"CMR",
|
||||
"TSR"
|
||||
"TSR",
|
||||
"C21"
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class ThopterColorlessToken extends TokenImpl {
|
|||
|
||||
addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C18", "EXO", "KLD", "MBS", "ORI", "VMA", "M19", "ZNC", "KHC");
|
||||
availableImageSetCodes = Arrays.asList("C18", "EXO", "KLD", "MBS", "ORI", "VMA", "M19", "ZNC", "KHC", "C21");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class WhiteBlackSpiritToken extends TokenImpl {
|
|||
toughness = new MageInt(1);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
availableImageSetCodes.addAll(Arrays.asList("MH1"));
|
||||
availableImageSetCodes.addAll(Arrays.asList("MH1", "C21"));
|
||||
}
|
||||
|
||||
public WhiteBlackSpiritToken(final WhiteBlackSpiritToken token) {
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class WurmToken extends TokenImpl {
|
|||
power = new MageInt(6);
|
||||
toughness = new MageInt(6);
|
||||
|
||||
availableImageSetCodes = Arrays.asList("C19", "EMA", "GPT", "JUD", "M12", "M13", "MM3", "ODY", "VMA");
|
||||
availableImageSetCodes = Arrays.asList("C19", "EMA", "GPT", "JUD", "M12", "M13", "MM3", "ODY", "VMA", "C21");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class ZombieToken extends TokenImpl {
|
|||
"CNS", "MMA", "BNG", "KTK", "DTK", "ORI", "OGW",
|
||||
"SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01",
|
||||
"RNA", "WAR", "MH1", "M20", "C19", "THB", "M21",
|
||||
"CMR");
|
||||
"CMR", "C21");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue