diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java index 7f1934014c..915ed43a5d 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java @@ -17,18 +17,17 @@ import static org.mage.plugins.card.utils.CardImageUtils.getImagesDir; */ public class DirectLinksForDownload implements Iterable { - private static final String backsideUrl = "https://upload.wikimedia.org/wikipedia/en/a/aa/Magic_the_gathering-card_back.jpg"; - private static final Map directLinks = new LinkedHashMap<>(); public static final String cardbackFilename = "cardback.jpg"; - public static final String tokenFrameFilename = "tokenFrame.png"; + public static final String foretellFilename = "foretell.jpg"; static { - directLinks.put(cardbackFilename, backsideUrl); + directLinks.put(cardbackFilename, "https://upload.wikimedia.org/wikipedia/en/a/aa/Magic_the_gathering-card_back.jpg"); + directLinks.put(foretellFilename, "https://api.scryfall.com/cards/tkhm/23/en?format=image"); } - private File outDir; + private final File outDir; public DirectLinksForDownload() { this.outDir = new File(getImagesDir() + Constants.RESOURCE_PATH_DEFAULT_IMAGES); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java index d6eb58640a..e5f6fa646e 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java @@ -496,6 +496,30 @@ public class ScryfallImageSupportTokens { put("CMR/Treasure", "https://api.scryfall.com/cards/tcmr/12/en?format=image"); put("CMR/Zombie", "https://api.scryfall.com/cards/tcmr/6/en?format=image"); + // KHM + put("KHM/Angel Warrior", "https://api.scryfall.com/cards/tkhm/2/en?format=image"); + put("KHM/Bear", "https://api.scryfall.com/cards/tkhm/13/en?format=image"); + put("KHM/Bird", "https://api.scryfall.com/cards/tkhm/5/en?format=image"); + put("KHM/Cat", "https://api.scryfall.com/cards/tkhm/14/en?format=image"); + put("KHM/Demon Berserker", "https://api.scryfall.com/cards/tkhm/10/en?format=image"); + put("KHM/Dragon", "https://api.scryfall.com/cards/tkhm/11/en?format=image"); + put("KHM/Dwarf Berserker", "https://api.scryfall.com/cards/tkhm/12/en?format=image"); + put("KHM/Elf Warrior", "https://api.scryfall.com/cards/tkhm/15/en?format=image"); + put("KHM/Giant Wizard", "https://api.scryfall.com/cards/tkhm/6/en?format=image"); + put("KHM/Human Warrior", "https://api.scryfall.com/cards/tkhm/3/en?format=image"); + put("KHM/Icy Manalith", "https://api.scryfall.com/cards/tkhm/17/en?format=image"); + put("KHM/Koma's Coil", "https://api.scryfall.com/cards/tkhm/7/en?format=image"); + put("KHM/Replicated Ring", "https://api.scryfall.com/cards/tkhm/18/en?format=image"); + put("KHM/Shapeshifter", "https://api.scryfall.com/cards/tkhm/8/en?format=image"); + put("KHM/Shard", "https://api.scryfall.com/cards/tkhm/1/en?format=image"); + put("KHM/Spirit", "https://api.scryfall.com/cards/tkhm/4/en?format=image"); + put("KHM/Treasure", "https://api.scryfall.com/cards/tkhm/19/en?format=image"); + put("KHM/Troll Warrior", "https://api.scryfall.com/cards/tkhm/16/en?format=image"); + put("KHM/Zombie Berserker", "https://api.scryfall.com/cards/tkhm/9/en?format=image"); + put("KHM/Emblem Kaya the Inexorable", "https://api.scryfall.com/cards/tkhm/20/en?format=image"); + 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"); + // generate supported sets supportedSets.clear(); for (String cardName : this.keySet()) { diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index 26ac45230c..3cb0cc1465 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -102,6 +102,9 @@ |Generate|EMBLEM:M21|Basri Ket||Emblem Basri|BasriKetEmblem| |Generate|EMBLEM:M21|Garruk, Unleashed||Emblem Garruk|GarrukUnleashedEmblem| |Generate|EMBLEM:M21|Liliana, Waker of the Dead||Emblem Liliana|LilianaWakerOfTheDeadEmblem| +|Generate|EMBLEM:KHM|Kaya the Inexorable||Emblem Kaya|KayaTheInexorableEmblem| +|Generate|EMBLEM:KHM|Tibalt Cosmic Imposter||Emblem Tibalt|TibaltCosmicImposterEmblem| +|Generate|EMBLEM:KHM|Tyvar Kell||Emblem Tyvar|TyvarKellEmblem| # Planes |Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane| @@ -279,7 +282,7 @@ |Generate|TOK:C13|Elemental|2||WalkerOfTheGroveToken| |Generate|TOK:C13|Elemental|3||RedElementalToken| |Generate|TOK:C13|Elephant|||ElephantToken| -|Generate|TOK:C13|Elf Warrior|||ElfToken| +|Generate|TOK:C13|Elf Warrior|||ElfWarriorToken| |Generate|TOK:C13|Goat|||GoatToken| |Generate|TOK:C13|Graveborn|||SekKuarDeathkeeperGravebornToken| |Generate|TOK:C13|Insect|||InsectToken| @@ -304,7 +307,7 @@ |Generate|TOK:C14|Elephant|||ElephantToken| |Generate|TOK:C14|Elf Druid|||FreyaliseLlanowarsFuryToken| |Generate|TOK:C14|Elf Druid|||LlanowarElvesToken| -|Generate|TOK:C14|Elf Warrior|||ElfToken| +|Generate|TOK:C14|Elf Warrior|||ElfWarriorToken| |Generate|TOK:C14|Equipment|||NahiriTheLithomancerEquipmentToken| |Generate|TOK:C14|Fish|||ReefWormFishToken| |Generate|TOK:C14|Gargoyle|||GargoyleToken| @@ -514,7 +517,7 @@ |Generate|TOK:DVD|Spirit|||SpiritWhiteToken| |Generate|TOK:DVD|Thrull|||BreedingPitBlackInsectToken| |Generate|TOK:DD3D|Elemental Shaman|| -|Generate|TOK:EVG|Elf Warrior|||ElfToken| +|Generate|TOK:EVG|Elf Warrior|||ElfWarriorToken| |Generate|TOK:EVG|Goblin|||GoblinToken| |Generate|TOK:GVL|Ape|||PongifyApeToken| |Generate|TOK:GVL|Bat|||BatToken| @@ -627,7 +630,7 @@ |Generate|TOK:EMA|Elemental|1||RedElementalToken| |Generate|TOK:EMA|Elemental|2||CallTheSkyBreakerElementalToken| |Generate|TOK:EMA|Elephant|||ElephantToken| -|Generate|TOK:EMA|Elf Warrior|||ElfToken| +|Generate|TOK:EMA|Elf Warrior|||ElfWarriorToken| |Generate|TOK:EMA|Goblin Soldier|||GoblinTrenchesToken| |Generate|TOK:EMA|Goblin|||GoblinToken| |Generate|TOK:EMA|Serf|||SerfToken| @@ -661,7 +664,7 @@ |Generate|TOK:EVE|Wolf|||WolfToken| |Generate|TOK:EVE|Worm|||WormHarvestToken| |Generate|TOK:EVG|Elemental|||VoiceOfTheWoodsElementalToken| -|Generate|TOK:EVG|Elf Warrior|||ElfToken| +|Generate|TOK:EVG|Elf Warrior|||ElfWarriorToken| |Generate|TOK:EVG|Goblin|||GoblinToken| |Generate|TOK:EXO|Pegasus|||PegasusToken| |Generate|TOK:EXO|Thopter|||ThopterColorlessToken| @@ -798,7 +801,7 @@ |Generate|TOK:LRW|Elemental Shaman|||ElementalShamanToken| |Generate|TOK:LRW|Elemental|1||WalkerOfTheGroveToken| |Generate|TOK:LRW|Elemental|2||WhiteElementalToken| -|Generate|TOK:LRW|Elf Warrior|||ElfToken| +|Generate|TOK:LRW|Elf Warrior|||ElfWarriorToken| |Generate|TOK:LRW|Goblin Rogue|||GoblinRogueToken| |Generate|TOK:LRW|Kithkin Soldier|||KithkinToken| |Generate|TOK:LRW|Merfolk Wizard|| @@ -952,7 +955,7 @@ |Generate|TOK:MMQ|Spirit|||SpiritWhiteToken| |Generate|TOK:MMQ|Zombie|||ZombieToken| |Generate|TOK:MOR|Elemental|||WalkerOfTheGroveToken| -|Generate|TOK:MOR|Elf Warrior|||ElfToken| +|Generate|TOK:MOR|Elf Warrior|||ElfWarriorToken| |Generate|TOK:MOR|Faerie Rogue|||FaerieRogueToken| |Generate|TOK:MOR|Giant Warrior|||GiantWarriorToken| |Generate|TOK:MOR|Goblin Rogue|||GoblinRogueToken| @@ -1011,7 +1014,7 @@ |Generate|TOK:ORI|Ashaya, the Awoken World|||NissaSageAnimistToken| |Generate|TOK:ORI|Demon|||DemonToken| |Generate|TOK:ORI|Elemental|||ZendikarsRoilElementalToken| -|Generate|TOK:ORI|Elf Warrior|||ElfToken| +|Generate|TOK:ORI|Elf Warrior|||ElfWarriorToken| |Generate|TOK:ORI|Goblin|||GoblinToken| |Generate|TOK:ORI|Knight|||KnightToken| |Generate|TOK:ORI|Soldier|||SoldierToken| @@ -1084,7 +1087,7 @@ |Generate|TOK:SHM|Elemental|2||RedElementalToken| |Generate|TOK:SHM|Elf Warrior|1| |Generate|TOK:SHM|Elf Warrior|2| -|Generate|TOK:SHM|Elf Warrior|1||ElfToken| +|Generate|TOK:SHM|Elf Warrior|1||ElfWarriorToken| |Generate|TOK:SHM|Elf Warrior|2||RhysTheRedeemedToken| |Generate|TOK:SHM|Faerie Rogue|||OonaQueenFaerieToken| |Generate|TOK:SHM|Giant Warrior|||GiantBaitingGiantWarriorToken| @@ -1315,7 +1318,7 @@ |Generate|TOK:M19|Cat|||CatToken2| |Generate|TOK:M19|Dragon|1||DragonEggDragonToken| |Generate|TOK:M19|Dragon|2||DragonToken2| -|Generate|TOK:M19|Elf Warrior|||ElfToken| +|Generate|TOK:M19|Elf Warrior|||ElfWarriorToken| |Generate|TOK:M19|Goblin|||GoblinToken| |Generate|TOK:M19|Knight|||KnightToken| |Generate|TOK:M19|Ox|||OxToken| @@ -1465,7 +1468,7 @@ |Generate|TOK:CMR|Cat|||CatToken| |Generate|TOK:CMR|Dragon|||DragonEggDragonToken| |Generate|TOK:CMR|Elephant|||ElephantToken| -|Generate|TOK:CMR|Elf Warrior|||ElfToken| +|Generate|TOK:CMR|Elf Warrior|||ElfWarriorToken| |Generate|TOK:CMR|Golem|||GolemToken| |Generate|TOK:CMR|Horror|||PhyrexianRebirthHorrorToken| |Generate|TOK:CMR|Illusion|||MelokuTheCloudedMirrorToken| @@ -1478,4 +1481,25 @@ |Generate|TOK:CMR|Spirit|||SpiritWhiteToken| |Generate|TOK:CMR|Thrull|||BreedingPitThrullToken| |Generate|TOK:CMR|Treasure|||TreasureToken| -|Generate|TOK:CMR|Zombie|||ZombieToken| \ No newline at end of file +|Generate|TOK:CMR|Zombie|||ZombieToken| + +# KHM +|Generate|TOK:KHM|Angel Warrior|||AngelWarriorVigilanceToken| +|Generate|TOK:KHM|Bear|||BearToken| +|Generate|TOK:KHM|Bird|||OwlToken| +|Generate|TOK:KHM|Cat|||GreenCat2Token| +|Generate|TOK:KHM|Demon Berserker|||DemonBerserkerToken| +|Generate|TOK:KHM|Dragon|||DragonToken2| +|Generate|TOK:KHM|Dwarf Berserker|||DwarfBerserkerToken| +|Generate|TOK:KHM|Elf Warrior|||ElfWarriorToken| +|Generate|TOK:KHM|Giant Wizard|||GiantWizardToken| +|Generate|TOK:KHM|Human Warrior|||HumanWarriorToken| +|Generate|TOK:KHM|Icy Manalith|||IcyManalithToken| +|Generate|TOK:KHM|Koma's Coil|||KomasCoilToken| +|Generate|TOK:KHM|Replicated Ring|||ReplicatedRingToken| +|Generate|TOK:KHM|Shapeshifter|||ShapeshifterBlueToken| +|Generate|TOK:KHM|Shard|||ShardToken| +|Generate|TOK:KHM|Spirit|||SpiritWhiteToken| +|Generate|TOK:KHM|Treasure|||TreasureToken| +|Generate|TOK:KHM|Troll Warrior|||TrollWarriorToken| +|Generate|TOK:KHM|Zombie Berserker|||ZombieBerserkerToken| \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/a/AmbassadorOak.java b/Mage.Sets/src/mage/cards/a/AmbassadorOak.java index 55ed4ebd87..70ebb4f2e4 100644 --- a/Mage.Sets/src/mage/cards/a/AmbassadorOak.java +++ b/Mage.Sets/src/mage/cards/a/AmbassadorOak.java @@ -1,7 +1,5 @@ - package mage.cards.a; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -9,22 +7,23 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author Loki */ public final class AmbassadorOak extends CardImpl { public AmbassadorOak(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); this.subtype.add(SubType.TREEFOLK); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(3); this.toughness = new MageInt(3); - this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfToken(), 1), false)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken(), 1), false)); } private AmbassadorOak(final AmbassadorOak card) { diff --git a/Mage.Sets/src/mage/cards/b/BattleForBretagard.java b/Mage.Sets/src/mage/cards/b/BattleForBretagard.java index 2588fb59bd..5daffe0912 100644 --- a/Mage.Sets/src/mage/cards/b/BattleForBretagard.java +++ b/Mage.Sets/src/mage/cards/b/BattleForBretagard.java @@ -17,7 +17,7 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.game.permanent.token.HumanWarriorToken; import mage.players.Player; import mage.target.TargetPermanent; @@ -45,7 +45,7 @@ public final class BattleForBretagard extends CardImpl { sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, new CreateTokenEffect(new HumanWarriorToken())); // II — Create a 1/1 green Elf Warrior creature token. - sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_II, new CreateTokenEffect(new ElfToken())); + sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_II, new CreateTokenEffect(new ElfWarriorToken())); // III — Choose any number of artifact tokens and/or creature tokens you control with different names. For each of them, create a token thats a copy of it. sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new BattleForBretagardEffect()); @@ -87,7 +87,7 @@ class BattleForBretagardEffect extends OneShotEffect { if (player == null) { return false; } - TargetPermanent target=new BattleForBretagardTarget(); + TargetPermanent target = new BattleForBretagardTarget(); player.choose(outcome, target, source.getSourceId(), game); for (UUID targetId : target.getTargets()) { new CreateTokenCopyTargetEffect() diff --git a/Mage.Sets/src/mage/cards/d/DwynensElite.java b/Mage.Sets/src/mage/cards/d/DwynensElite.java index 0f82ebb4bc..4dcce5b15c 100644 --- a/Mage.Sets/src/mage/cards/d/DwynensElite.java +++ b/Mage.Sets/src/mage/cards/d/DwynensElite.java @@ -1,4 +1,3 @@ - package mage.cards.d; import mage.MageInt; @@ -13,12 +12,11 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.AnotherPredicate; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; /** - * * @author fireshoes */ public final class DwynensElite extends CardImpl { @@ -38,7 +36,7 @@ public final class DwynensElite extends CardImpl { this.toughness = new MageInt(2); // When Dwynen's Elite enters the battlefield, if you control another Elf, create a 1/1 green Elf Warrior creature token. - TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfToken())); + TriggeredAbility triggeredAbility = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken())); this.addAbility(new ConditionalInterveningIfTriggeredAbility( triggeredAbility, new PermanentsOnTheBattlefieldCondition(filter), diff --git a/Mage.Sets/src/mage/cards/e/ElderleafMentor.java b/Mage.Sets/src/mage/cards/e/ElderleafMentor.java index 286650d5f8..3651e23545 100644 --- a/Mage.Sets/src/mage/cards/e/ElderleafMentor.java +++ b/Mage.Sets/src/mage/cards/e/ElderleafMentor.java @@ -7,7 +7,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; @@ -25,7 +25,7 @@ public final class ElderleafMentor extends CardImpl { this.toughness = new MageInt(2); // When Elderleaf Mentor enters the battlefield, create a 1/1 green Elf Warrior creature token. - this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfToken()))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken()))); } private ElderleafMentor(final ElderleafMentor card) { diff --git a/Mage.Sets/src/mage/cards/e/ElvenAmbush.java b/Mage.Sets/src/mage/cards/e/ElvenAmbush.java index 15090fa5d0..c4289e33ff 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenAmbush.java +++ b/Mage.Sets/src/mage/cards/e/ElvenAmbush.java @@ -1,7 +1,5 @@ package mage.cards.e; -import java.util.UUID; - import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; @@ -11,10 +9,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.common.FilterControlledPermanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author weirddan455 */ public final class ElvenAmbush extends CardImpl { @@ -33,7 +32,7 @@ public final class ElvenAmbush extends CardImpl { this.getSpellAbility().addHint(new ValueHint("Elves you control", elfCount)); // Create a 1/1 green Elf Warrior creature token for each Elf you control. - this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfToken(), elfCount)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfWarriorToken(), elfCount)); } private ElvenAmbush(final ElvenAmbush card) { diff --git a/Mage.Sets/src/mage/cards/e/ElvenBow.java b/Mage.Sets/src/mage/cards/e/ElvenBow.java index fc5a537814..b57c566529 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenBow.java +++ b/Mage.Sets/src/mage/cards/e/ElvenBow.java @@ -15,7 +15,7 @@ import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.SubType; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; @@ -31,7 +31,7 @@ public final class ElvenBow extends CardImpl { // When Elven Bow enters the battlefield, you may pay {2}. If you do, create a 1/1 green Elf Warrior creature token, then attach Elven Bow to it. this.addAbility(new EntersBattlefieldTriggeredAbility(new DoIfCostPaid( - new CreateTokenAttachSourceEffect(new ElfToken()), new GenericManaCost(2) + new CreateTokenAttachSourceEffect(new ElfWarriorToken()), new GenericManaCost(2) ))); // Equipped creature gets +1/+2 and has reach. diff --git a/Mage.Sets/src/mage/cards/e/ElvishPromenade.java b/Mage.Sets/src/mage/cards/e/ElvishPromenade.java index 751f2fe552..9770d198d0 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishPromenade.java +++ b/Mage.Sets/src/mage/cards/e/ElvishPromenade.java @@ -1,8 +1,5 @@ - package mage.cards.e; -import java.util.UUID; - import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; @@ -12,10 +9,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.common.FilterControlledPermanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author Loki */ public final class ElvishPromenade extends CardImpl { @@ -29,11 +27,11 @@ public final class ElvishPromenade extends CardImpl { private static final DynamicValue elfCount = new PermanentsOnBattlefieldCount(filter); public ElvishPromenade(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.SORCERY},"{3}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.SORCERY}, "{3}{G}"); this.subtype.add(SubType.ELF); this.getSpellAbility().addHint(new ValueHint("Elves you control", elfCount)); - this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfToken(), elfCount)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfWarriorToken(), elfCount)); } private ElvishPromenade(final ElvishPromenade card) { diff --git a/Mage.Sets/src/mage/cards/e/ElvishWarmaster.java b/Mage.Sets/src/mage/cards/e/ElvishWarmaster.java index a963b9c202..e83424af12 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishWarmaster.java +++ b/Mage.Sets/src/mage/cards/e/ElvishWarmaster.java @@ -1,6 +1,5 @@ package mage.cards.e; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; @@ -11,21 +10,22 @@ import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.keyword.DeathtouchAbility; -import mage.constants.Duration; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.events.GameEvent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.util.CardUtil; +import java.util.UUID; + /** - * * @author weirddan455 */ public final class ElvishWarmaster extends CardImpl { @@ -46,7 +46,7 @@ public final class ElvishWarmaster extends CardImpl { this.toughness = new MageInt(2); // Whenever one or more other Elves enters the battlefield under your control, create a 1/1 green Elf Warrior creature token. This ability triggers only once each turn. - this.addAbility(new ElvishWarmasterTriggeredAbility(new CreateTokenEffect(new ElfToken()), filter)); + this.addAbility(new ElvishWarmasterTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken()), filter)); // {5}{G}{G}: Elves you control get +2/+2 and gain deathtouch until end of turn. Ability ability = new SimpleActivatedAbility(new BoostControlledEffect( diff --git a/Mage.Sets/src/mage/cards/e/ExquisiteHuntmaster.java b/Mage.Sets/src/mage/cards/e/ExquisiteHuntmaster.java index 7bc0cf0bbc..0c70b03a48 100644 --- a/Mage.Sets/src/mage/cards/e/ExquisiteHuntmaster.java +++ b/Mage.Sets/src/mage/cards/e/ExquisiteHuntmaster.java @@ -9,7 +9,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; @@ -27,7 +27,7 @@ public final class ExquisiteHuntmaster extends CardImpl { this.toughness = new MageInt(2); // When Exquisite Huntmaster dies, create a 1/1 green Elf Warrior creature token. - this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new ElfToken()))); + this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken()))); // Encore {4}{B} this.addAbility(new EncoreAbility(new ManaCostsImpl<>("{4}{B}"))); diff --git a/Mage.Sets/src/mage/cards/e/EyeblightCullers.java b/Mage.Sets/src/mage/cards/e/EyeblightCullers.java index f09f5ec81b..7164acd8d0 100644 --- a/Mage.Sets/src/mage/cards/e/EyeblightCullers.java +++ b/Mage.Sets/src/mage/cards/e/EyeblightCullers.java @@ -9,7 +9,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; @@ -27,7 +27,7 @@ public final class EyeblightCullers extends CardImpl { this.toughness = new MageInt(3); // When Eyeblight Cullers dies, create three 1/1 green Elf Warrior creature tokens, then mill three cards. - Ability ability = new DiesSourceTriggeredAbility(new CreateTokenEffect(new ElfToken(), 3)); + Ability ability = new DiesSourceTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken(), 3)); ability.addEffect(new MillCardsControllerEffect(3).concatBy(", then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java b/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java index 457eb18afc..46494a5ed2 100644 --- a/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java +++ b/Mage.Sets/src/mage/cards/f/FlourishingDefenses.java @@ -1,7 +1,5 @@ - package mage.cards.f; -import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -11,18 +9,18 @@ import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author jeffwadsworth */ public final class FlourishingDefenses extends CardImpl { public FlourishingDefenses(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}"); // Whenever a -1/-1 counter is put on a creature, you may create a 1/1 green Elf Warrior creature token. this.addAbility(new FlourishingDefensesTriggeredAbility()); @@ -42,7 +40,7 @@ public final class FlourishingDefenses extends CardImpl { class FlourishingDefensesTriggeredAbility extends TriggeredAbilityImpl { FlourishingDefensesTriggeredAbility() { - super(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfToken()), true); + super(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfWarriorToken()), true); } FlourishingDefensesTriggeredAbility(final FlourishingDefensesTriggeredAbility ability) { @@ -63,9 +61,7 @@ class FlourishingDefensesTriggeredAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { if (event.getData().equals(CounterType.M1M1.getName())) { Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); - if (permanent != null && permanent.isCreature()) { - return true; - } + return permanent != null && permanent.isCreature(); } return false; } diff --git a/Mage.Sets/src/mage/cards/g/GiantsAmulet.java b/Mage.Sets/src/mage/cards/g/GiantsAmulet.java index e8aff45d03..88ce7c51bf 100644 --- a/Mage.Sets/src/mage/cards/g/GiantsAmulet.java +++ b/Mage.Sets/src/mage/cards/g/GiantsAmulet.java @@ -18,7 +18,7 @@ import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.game.permanent.token.GiantsAmuletToken; +import mage.game.permanent.token.GiantWizardToken; import java.util.UUID; @@ -34,7 +34,7 @@ public final class GiantsAmulet extends CardImpl { // When Giant's Amulet enters the battlefield, you may pay {3}{U}. If you do, create a 4/4 blue Giant Wizard creature token, then attach Giant's Amulet to it. this.addAbility(new EntersBattlefieldTriggeredAbility(new DoIfCostPaid( - new CreateTokenAttachSourceEffect(new GiantsAmuletToken()), new ManaCostsImpl<>("{3}{U}") + new CreateTokenAttachSourceEffect(new GiantWizardToken()), new ManaCostsImpl<>("{3}{U}") ))); // Equipped creature gets +0/+1 and has "This creature has hexproof as long as it's untapped." diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java b/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java index b3a45d3b57..d63476df9c 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafAmbush.java @@ -1,7 +1,5 @@ - package mage.cards.g; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; @@ -12,23 +10,24 @@ import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SubType; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author Styxo */ public final class GiltLeafAmbush extends CardImpl { public GiltLeafAmbush(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.INSTANT},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.INSTANT}, "{2}{G}"); this.subtype.add(SubType.ELF); // Create two 1/1 green Elf Warrior creature tokens into play. Clash with an opponent. If you win, those creatures gain deathtouch until end of turn @@ -65,7 +64,7 @@ class GiltLeafAmbushCreateTokenEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - CreateTokenEffect effect = new CreateTokenEffect(new ElfToken(), 2); + CreateTokenEffect effect = new CreateTokenEffect(new ElfWarriorToken(), 2); effect.apply(game, source); if (ClashEffect.getInstance().apply(game, source)) { for (UUID tokenId : effect.getLastAddedTokenIds()) { diff --git a/Mage.Sets/src/mage/cards/h/HuntingTriad.java b/Mage.Sets/src/mage/cards/h/HuntingTriad.java index f4e49a05a7..aad6b3a790 100644 --- a/Mage.Sets/src/mage/cards/h/HuntingTriad.java +++ b/Mage.Sets/src/mage/cards/h/HuntingTriad.java @@ -1,7 +1,5 @@ - package mage.cards.h; -import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.ReinforceAbility; @@ -9,19 +7,20 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author Loki */ public final class HuntingTriad extends CardImpl { public HuntingTriad(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.SORCERY},"{3}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.SORCERY}, "{3}{G}"); this.subtype.add(SubType.ELF); - this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfToken(), 3)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfWarriorToken(), 3)); this.addAbility(new ReinforceAbility(3, new ManaCostsImpl("{3}{G}"))); } diff --git a/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java b/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java index e35b21b1e9..5fd55ee922 100644 --- a/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java +++ b/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java @@ -1,7 +1,5 @@ - package mage.cards.i; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -14,10 +12,11 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author Loki */ public final class ImperiousPerfect extends CardImpl { @@ -29,14 +28,14 @@ public final class ImperiousPerfect extends CardImpl { } public ImperiousPerfect(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); this.subtype.add(SubType.ELF); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(2); this.toughness = new MageInt(2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfToken(), 1), new ColoredManaCost(ColoredManaSymbol.G)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfWarriorToken(), 1), new ColoredManaCost(ColoredManaSymbol.G)); ability.addCost(new TapSourceCost()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java b/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java index 2597179801..db2a2e8102 100644 --- a/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java +++ b/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java @@ -20,7 +20,7 @@ import mage.constants.SuperType; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.UntappedPredicate; import mage.game.Game; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.target.common.TargetControlledPermanent; import java.util.UUID; @@ -51,7 +51,7 @@ public final class LathrilBladeOfTheElves extends CardImpl { // Whenever Lathril, Blade of the Elves deals combat damage to a player, create that many 1/1 green Elf Warrior creature tokens. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new CreateTokenEffect( - new ElfToken(), LathrilBladeOfTheElvesValue.instance + new ElfWarriorToken(), LathrilBladeOfTheElvesValue.instance ).setText("create that many 1/1 green Elf Warrior creature tokens"), false, true)); // {T}, Tap ten untapped Elves you control: Each opponent loses 10 life and you gain 10 life. diff --git a/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java b/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java index d9f1ef1706..bec9a0cf48 100644 --- a/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java +++ b/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java @@ -1,7 +1,5 @@ - package mage.cards.l; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -10,10 +8,11 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.FilterSpell; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author Loki */ public final class LysAlanaHuntmaster extends CardImpl { @@ -25,13 +24,13 @@ public final class LysAlanaHuntmaster extends CardImpl { } public LysAlanaHuntmaster(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); this.subtype.add(SubType.ELF); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(3); this.toughness = new MageInt(3); - this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new ElfToken()), filter, true)); + this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken()), filter, true)); } private LysAlanaHuntmaster(final LysAlanaHuntmaster card) { diff --git a/Mage.Sets/src/mage/cards/n/NadierAgentOfTheDuskenel.java b/Mage.Sets/src/mage/cards/n/NadierAgentOfTheDuskenel.java index db050b6726..648faaf965 100644 --- a/Mage.Sets/src/mage/cards/n/NadierAgentOfTheDuskenel.java +++ b/Mage.Sets/src/mage/cards/n/NadierAgentOfTheDuskenel.java @@ -19,7 +19,7 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; @@ -91,7 +91,7 @@ class NadierAgentOfTheDuskenelEffect extends OneShotEffect { if (!permanent.isCreature() || permanent.getPower().getValue() < 1) { return false; } - return new ElfToken().putOntoBattlefield(permanent.getPower().getValue(), game, source, source.getControllerId() + return new ElfWarriorToken().putOntoBattlefield(permanent.getPower().getValue(), game, source, source.getControllerId() ); } } diff --git a/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java b/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java index 9eec711ac3..7e63e24184 100644 --- a/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java +++ b/Mage.Sets/src/mage/cards/n/NathOfTheGiltLeaf.java @@ -1,7 +1,5 @@ - package mage.cards.n; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; @@ -15,18 +13,18 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; import mage.constants.TargetController; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** - * * @author jeffwadsworth - * */ public final class NathOfTheGiltLeaf extends CardImpl { public NathOfTheGiltLeaf(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.ELF); this.subtype.add(SubType.WARRIOR); @@ -42,7 +40,7 @@ public final class NathOfTheGiltLeaf extends CardImpl { this.addAbility(ability); // Whenever an opponent discards a card, you may create a 1/1 green Elf Warrior creature token. - Effect effect2 = new CreateTokenEffect(new ElfToken()); + Effect effect2 = new CreateTokenEffect(new ElfWarriorToken()); effect2.setText("you may create a 1/1 green Elf Warrior creature token"); this.addAbility(new DiscardsACardOpponentTriggeredAbility(effect2, true)); diff --git a/Mage.Sets/src/mage/cards/p/PresenceOfGond.java b/Mage.Sets/src/mage/cards/p/PresenceOfGond.java index b984697f09..d3b4c0a294 100644 --- a/Mage.Sets/src/mage/cards/p/PresenceOfGond.java +++ b/Mage.Sets/src/mage/cards/p/PresenceOfGond.java @@ -1,7 +1,5 @@ - package mage.cards.p; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; @@ -12,24 +10,20 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.game.permanent.token.ElfToken; +import mage.constants.*; +import mage.game.permanent.token.ElfWarriorToken; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class PresenceOfGond extends CardImpl { public PresenceOfGond(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}"); this.subtype.add(SubType.AURA); @@ -41,7 +35,7 @@ public final class PresenceOfGond extends CardImpl { this.addAbility(ability); // Enchanted creature has "{tap}: Create a 1/1 green Elf Warrior creature token." - Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfToken()), new TapSourceCost()); + Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfWarriorToken()), new TapSourceCost()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(abilityToGain, AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted creature has \"{T}: Create a 1/1 green Elf Warrior creature token.\""))); } diff --git a/Mage.Sets/src/mage/cards/p/ProwessOfTheFair.java b/Mage.Sets/src/mage/cards/p/ProwessOfTheFair.java index bc1aede1f2..b9f4d4d5e1 100644 --- a/Mage.Sets/src/mage/cards/p/ProwessOfTheFair.java +++ b/Mage.Sets/src/mage/cards/p/ProwessOfTheFair.java @@ -1,7 +1,5 @@ - package mage.cards.p; -import java.util.UUID; import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.cards.CardImpl; @@ -12,10 +10,11 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author LoneFox */ public final class ProwessOfTheFair extends CardImpl { @@ -29,12 +28,12 @@ public final class ProwessOfTheFair extends CardImpl { } public ProwessOfTheFair(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.TRIBAL,CardType.ENCHANTMENT},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.ENCHANTMENT}, "{1}{B}"); this.subtype.add(SubType.ELF); // Whenever another nontoken Elf is put into your graveyard from the battlefield, you may create a 1/1 green Elf Warrior creature token. - this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new CreateTokenEffect(new ElfToken()), - true, filter, false, true)); + this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken()), + true, filter, false, true)); } private ProwessOfTheFair(final ProwessOfTheFair card) { diff --git a/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java b/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java index 2d400c528e..bc6eb45acd 100644 --- a/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java +++ b/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java @@ -13,7 +13,7 @@ import mage.constants.Zone; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; @@ -75,7 +75,7 @@ class ReturnUponTheTideEffect extends OneShotEffect { return false; } if (permanent.hasSubtype(SubType.ELF, game)) { - new ElfToken().putOntoBattlefield(2, game, source, player.getId()); + new ElfWarriorToken().putOntoBattlefield(2, game, source, player.getId()); } return true; } diff --git a/Mage.Sets/src/mage/cards/s/SkemfarElderhall.java b/Mage.Sets/src/mage/cards/s/SkemfarElderhall.java index 6e41005c3c..ecd3461e46 100644 --- a/Mage.Sets/src/mage/cards/s/SkemfarElderhall.java +++ b/Mage.Sets/src/mage/cards/s/SkemfarElderhall.java @@ -14,7 +14,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.filter.StaticFilters; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.target.TargetPermanent; import java.util.UUID; @@ -41,7 +41,7 @@ public final class SkemfarElderhall extends CardImpl { ); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); - ability.addEffect(new CreateTokenEffect(new ElfToken(), 2)); + ability.addEffect(new CreateTokenEffect(new ElfWarriorToken(), 2)); ability.addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL, false)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SylvanOffering.java b/Mage.Sets/src/mage/cards/s/SylvanOffering.java index c68c0868f5..c5789a1984 100644 --- a/Mage.Sets/src/mage/cards/s/SylvanOffering.java +++ b/Mage.Sets/src/mage/cards/s/SylvanOffering.java @@ -1,7 +1,5 @@ - package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -11,15 +9,16 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.game.Game; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.game.permanent.token.SylvanOfferingTreefolkToken; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SylvanOffering extends CardImpl { @@ -105,7 +104,7 @@ class SylvanOfferingEffect2 extends OneShotEffect { Player opponent = game.getPlayer(target.getFirstTarget()); if (opponent != null) { int xValue = source.getManaCostsToPay().getX(); - Effect effect = new CreateTokenTargetEffect(new ElfToken(), xValue); + Effect effect = new CreateTokenTargetEffect(new ElfWarriorToken(), xValue); effect.setTargetPointer(new FixedTarget(controller.getId())); effect.apply(game, source); effect.setTargetPointer(new FixedTarget(opponent.getId())); diff --git a/Mage.Sets/src/mage/cards/t/ThornLieutenant.java b/Mage.Sets/src/mage/cards/t/ThornLieutenant.java index bd338a93eb..6c53e67587 100644 --- a/Mage.Sets/src/mage/cards/t/ThornLieutenant.java +++ b/Mage.Sets/src/mage/cards/t/ThornLieutenant.java @@ -1,22 +1,22 @@ package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SubType; import mage.filter.StaticFilters; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; + +import java.util.UUID; /** - * * @author TheElk801 */ public final class ThornLieutenant extends CardImpl { @@ -31,7 +31,7 @@ public final class ThornLieutenant extends CardImpl { // Whenever Thorn Lieutenant becomes the target of a spell or ability an opponent controls, create a 1/1 green Elf Warrior creature token. this.addAbility(new BecomesTargetTriggeredAbility( - new CreateTokenEffect(new ElfToken()), + new CreateTokenEffect(new ElfWarriorToken()), StaticFilters.FILTER_SPELL_OR_ABILITY_OPPONENTS )); diff --git a/Mage.Sets/src/mage/cards/t/TyvarKell.java b/Mage.Sets/src/mage/cards/t/TyvarKell.java index b23f20d568..d8bb915daa 100644 --- a/Mage.Sets/src/mage/cards/t/TyvarKell.java +++ b/Mage.Sets/src/mage/cards/t/TyvarKell.java @@ -1,7 +1,5 @@ package mage.cards.t; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; @@ -14,20 +12,21 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.mana.BlackManaAbility; -import mage.constants.Duration; -import mage.constants.SubType; -import mage.constants.SuperType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.game.command.emblems.TyvarKellEmblem; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import mage.target.TargetPermanent; +import java.util.UUID; + /** - * * @author weirddan455 */ public final class TyvarKell extends CardImpl { @@ -57,7 +56,7 @@ public final class TyvarKell extends CardImpl { this.addAbility(ability); // 0: Create a 1/1 green Elf Warrior creature token. - this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new ElfToken()), 0)); + this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new ElfWarriorToken()), 0)); // −6: You get an emblem with "Whenever you cast an Elf spell, it gains haste until end of turn and you draw two cards." this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new TyvarKellEmblem()), -6)); diff --git a/Mage.Sets/src/mage/cards/w/WolverineRiders.java b/Mage.Sets/src/mage/cards/w/WolverineRiders.java index cb404ae00f..8c1143ca0c 100644 --- a/Mage.Sets/src/mage/cards/w/WolverineRiders.java +++ b/Mage.Sets/src/mage/cards/w/WolverineRiders.java @@ -17,7 +17,7 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.ElfToken; +import mage.game.permanent.token.ElfWarriorToken; import java.util.UUID; @@ -42,7 +42,7 @@ public final class WolverineRiders extends CardImpl { // At the beginning of each upkeep, create a 1/1 green Elf Warrior creature token. this.addAbility(new BeginningOfUpkeepTriggeredAbility( - new CreateTokenEffect(new ElfToken()), TargetController.EACH_PLAYER, false + new CreateTokenEffect(new ElfWarriorToken()), TargetController.EACH_PLAYER, false )); // Whenever another Elf enters the battlefield under your control, you gain life equal to its toughness. diff --git a/Mage/src/main/java/mage/game/command/emblems/TibaltCosmicImposterEmblem.java b/Mage/src/main/java/mage/game/command/emblems/TibaltCosmicImposterEmblem.java index d5ae5f4b53..4aba4a99b3 100644 --- a/Mage/src/main/java/mage/game/command/emblems/TibaltCosmicImposterEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/TibaltCosmicImposterEmblem.java @@ -1,6 +1,5 @@ package mage.game.command.emblems; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.AsThoughEffectImpl; @@ -14,18 +13,17 @@ import mage.game.Game; import mage.game.command.Emblem; import mage.util.CardUtil; +import java.util.UUID; + /** - * * @author jeffwadsworth */ public final class TibaltCosmicImposterEmblem extends Emblem { // You may play cards exiled with Tibalt, Cosmic Impostor, and you may spend mana as though it were mana of any color to cast those spells." public TibaltCosmicImposterEmblem() { - setName("Emblem Tibalt Cosmic Imposter"); - this.setExpansionSetCodeForImage("KHM"); - Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TibaltCosmicImposterPlayFromExileEffect()); - this.getAbilities().add(ability); + setName("Emblem Tibalt"); + this.getAbilities().add(new SimpleStaticAbility(Zone.COMMAND, new TibaltCosmicImposterPlayFromExileEffect())); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/AngelWarriorVigilanceToken.java b/Mage/src/main/java/mage/game/permanent/token/AngelWarriorVigilanceToken.java index f48fe04434..49984a4e93 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AngelWarriorVigilanceToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AngelWarriorVigilanceToken.java @@ -6,6 +6,8 @@ import mage.abilities.keyword.VigilanceAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + public final class AngelWarriorVigilanceToken extends TokenImpl { public AngelWarriorVigilanceToken() { @@ -16,8 +18,11 @@ public final class AngelWarriorVigilanceToken extends TokenImpl { subtype.add(SubType.WARRIOR); power = new MageInt(4); toughness = new MageInt(4); + addAbility(FlyingAbility.getInstance()); addAbility(VigilanceAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("KHM"); } private AngelWarriorVigilanceToken(final AngelWarriorVigilanceToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/BearToken.java b/Mage/src/main/java/mage/game/permanent/token/BearToken.java index ddf59b5449..8740baa4f1 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BearToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BearToken.java @@ -1,13 +1,12 @@ - - package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** - * * @author BetaSteward_at_googlemail.com */ public final class BearToken extends TokenImpl { @@ -19,6 +18,8 @@ public final class BearToken extends TokenImpl { subtype.add(SubType.BEAR); power = new MageInt(2); toughness = new MageInt(2); + + availableImageSetCodes = Arrays.asList("C15", "JUD", "LGN", "ODY", "ONS", "VMA", "MH1", "ELD", "KHM"); } public BearToken(final BearToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/DemonBerserkerToken.java b/Mage/src/main/java/mage/game/permanent/token/DemonBerserkerToken.java index 12dfc0d730..e83764d49c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DemonBerserkerToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DemonBerserkerToken.java @@ -5,20 +5,25 @@ import mage.abilities.keyword.MenaceAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ public final class DemonBerserkerToken extends TokenImpl { public DemonBerserkerToken() { - super("Demon", "2/3 red Demon Berserker creature token with menace"); + super("Demon Berserker", "2/3 red Demon Berserker creature token with menace"); cardType.add(CardType.CREATURE); color.setRed(true); subtype.add(SubType.DEMON); subtype.add(SubType.BERSERKER); power = new MageInt(2); toughness = new MageInt(3); + addAbility(new MenaceAbility()); + + availableImageSetCodes.addAll(Arrays.asList("KHM")); } private DemonBerserkerToken(final DemonBerserkerToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java b/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java index d6444d782d..a971abf756 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java @@ -5,35 +5,24 @@ import mage.abilities.keyword.FlyingAbility; import mage.constants.CardType; import mage.constants.SubType; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; /** * @author LoneFox */ public final class DragonToken2 extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("WWK", "10E", "BFZ", "C15", "CN2", "CMA", "C19")); - } - public DragonToken2() { - this((String) null); - } - - public DragonToken2(String setCode) { super("Dragon", "5/5 red Dragon creature token with flying"); - availableImageSetCodes = tokenImageSets; - setOriginalExpansionSetCode(setCode); cardType.add(CardType.CREATURE); color.setRed(true); subtype.add(SubType.DRAGON); power = new MageInt(5); toughness = new MageInt(5); + addAbility(FlyingAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("10E", "BFZ", "C15", "C19", "CMA", "CMD", "ONS", "ROE", "SCG", "WWK", "M19", "KHM"); } public DragonToken2(final DragonToken2 token) { @@ -43,4 +32,13 @@ public final class DragonToken2 extends TokenImpl { public DragonToken2 copy() { return new DragonToken2(this); } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) { + this.setTokenType(2); + } + } } diff --git a/Mage/src/main/java/mage/game/permanent/token/DwarfBerserkerToken.java b/Mage/src/main/java/mage/game/permanent/token/DwarfBerserkerToken.java index 326d671cba..2803ffe89e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DwarfBerserkerToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DwarfBerserkerToken.java @@ -4,6 +4,8 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + public final class DwarfBerserkerToken extends TokenImpl { public DwarfBerserkerToken() { @@ -14,6 +16,8 @@ public final class DwarfBerserkerToken extends TokenImpl { subtype.add(SubType.BERSERKER); power = new MageInt(2); toughness = new MageInt(1); + + availableImageSetCodes = Arrays.asList("KHM"); } public DwarfBerserkerToken(final DwarfBerserkerToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ElfToken.java b/Mage/src/main/java/mage/game/permanent/token/ElfWarriorToken.java similarity index 71% rename from Mage/src/main/java/mage/game/permanent/token/ElfToken.java rename to Mage/src/main/java/mage/game/permanent/token/ElfWarriorToken.java index dcd8d62e18..c94493e775 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElfToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElfWarriorToken.java @@ -9,9 +9,9 @@ import java.util.Arrays; /** * @author Loki */ -public final class ElfToken extends TokenImpl { +public final class ElfWarriorToken extends TokenImpl { - public ElfToken() { + public ElfWarriorToken() { super("Elf Warrior", "1/1 green Elf Warrior creature token"); cardType.add(CardType.CREATURE); color.setGreen(true); @@ -20,16 +20,16 @@ public final class ElfToken extends TokenImpl { power = new MageInt(1); toughness = new MageInt(1); - availableImageSetCodes = Arrays.asList("C13", "C14", "EVG", "EMA", "LRW", "MOR", "ORI", "SHM", "M19", "CMR"); + availableImageSetCodes = Arrays.asList("C13", "C14", "EVG", "EMA", "LRW", "MOR", "ORI", "SHM", "M19", "CMR", "KHM"); } - public ElfToken(final ElfToken token) { + public ElfWarriorToken(final ElfWarriorToken token) { super(token); } @Override - public ElfToken copy() { - return new ElfToken(this); + public ElfWarriorToken copy() { + return new ElfWarriorToken(this); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/GiantsAmuletToken.java b/Mage/src/main/java/mage/game/permanent/token/GiantWizardToken.java similarity index 59% rename from Mage/src/main/java/mage/game/permanent/token/GiantsAmuletToken.java rename to Mage/src/main/java/mage/game/permanent/token/GiantWizardToken.java index e5861ed5ae..4539874282 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GiantsAmuletToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GiantWizardToken.java @@ -4,9 +4,11 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; -public final class GiantsAmuletToken extends TokenImpl { +import java.util.Arrays; - public GiantsAmuletToken() { +public final class GiantWizardToken extends TokenImpl { + + public GiantWizardToken() { super("Giant Wizard", "4/4 blue Giant Wizard creature token"); cardType.add(CardType.CREATURE); color.setBlue(true); @@ -14,13 +16,15 @@ public final class GiantsAmuletToken extends TokenImpl { subtype.add(SubType.WIZARD); power = new MageInt(4); toughness = new MageInt(4); + + availableImageSetCodes = Arrays.asList("KHM"); } - public GiantsAmuletToken(final GiantsAmuletToken token) { + public GiantWizardToken(final GiantWizardToken token) { super(token); } - public GiantsAmuletToken copy() { - return new GiantsAmuletToken(this); + public GiantWizardToken copy() { + return new GiantWizardToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java b/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java index 157a995c27..7db5cdccbf 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java +++ b/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java @@ -19,7 +19,7 @@ public final class GreenCat2Token extends TokenImpl { power = new MageInt(2); toughness = new MageInt(2); - availableImageSetCodes.addAll(Arrays.asList("M21", "KHM")); + availableImageSetCodes = Arrays.asList("M21", "KHM"); } private GreenCat2Token(final GreenCat2Token token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/HumanWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/HumanWarriorToken.java index a437e546a9..6bd1cf9aaa 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HumanWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HumanWarriorToken.java @@ -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 HumanWarriorToken extends TokenImpl { subtype.add(SubType.WARRIOR); power = new MageInt(1); toughness = new MageInt(1); + + availableImageSetCodes = Arrays.asList("KHM"); } private HumanWarriorToken(final HumanWarriorToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/IcyManalithToken.java b/Mage/src/main/java/mage/game/permanent/token/IcyManalithToken.java index e41d463992..c079c1c552 100644 --- a/Mage/src/main/java/mage/game/permanent/token/IcyManalithToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/IcyManalithToken.java @@ -4,6 +4,8 @@ import mage.abilities.mana.AnyColorManaAbility; import mage.constants.CardType; import mage.constants.SuperType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -12,8 +14,11 @@ public final class IcyManalithToken extends TokenImpl { public IcyManalithToken() { super("Icy Manalith", "colorless snow artifact token named Icy Manalith with \"{T}: Add one mana of any color.\""); this.addSuperType(SuperType.SNOW); - cardType.add(CardType.ARTIFACT); + this.cardType.add(CardType.ARTIFACT); + this.addAbility(new AnyColorManaAbility()); + + availableImageSetCodes = Arrays.asList("KHM"); } private IcyManalithToken(final IcyManalithToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/KomasCoilToken.java b/Mage/src/main/java/mage/game/permanent/token/KomasCoilToken.java index 231d5abed7..a58dc5be58 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KomasCoilToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KomasCoilToken.java @@ -4,6 +4,8 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + public final class KomasCoilToken extends TokenImpl { public KomasCoilToken() { @@ -13,6 +15,8 @@ public final class KomasCoilToken extends TokenImpl { color.setBlue(true); power = new MageInt(3); toughness = new MageInt(3); + + availableImageSetCodes = Arrays.asList("KHM"); } private KomasCoilToken(final KomasCoilToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/OwlToken.java b/Mage/src/main/java/mage/game/permanent/token/OwlToken.java index 027eb9edec..bf3c342a92 100644 --- a/Mage/src/main/java/mage/game/permanent/token/OwlToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/OwlToken.java @@ -1,13 +1,13 @@ - - package mage.game.permanent.token; -import mage.constants.CardType; -import mage.constants.SubType; + 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 OwlToken extends TokenImpl { @@ -19,7 +19,10 @@ public final class OwlToken extends TokenImpl { subtype.add(SubType.BIRD); power = new MageInt(1); toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("EVE", "INV", "KHM"); } public OwlToken(final OwlToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ReplicatedRingToken.java b/Mage/src/main/java/mage/game/permanent/token/ReplicatedRingToken.java index 259b9b7ad3..0e91fce286 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ReplicatedRingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ReplicatedRingToken.java @@ -4,6 +4,8 @@ import mage.abilities.mana.AnyColorManaAbility; import mage.constants.CardType; import mage.constants.SuperType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -13,7 +15,10 @@ public final class ReplicatedRingToken extends TokenImpl { super("Replicated Ring", "colorless snow artifact token named Replicated Ring with \"{T}: Add one mana of any color.\""); this.addSuperType(SuperType.SNOW); cardType.add(CardType.ARTIFACT); + this.addAbility(new AnyColorManaAbility()); + + availableImageSetCodes = Arrays.asList("KHM"); } diff --git a/Mage/src/main/java/mage/game/permanent/token/ShapeshifterBlueToken.java b/Mage/src/main/java/mage/game/permanent/token/ShapeshifterBlueToken.java index 73acb67489..853ec5a8d4 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ShapeshifterBlueToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ShapeshifterBlueToken.java @@ -5,6 +5,8 @@ import mage.abilities.keyword.ChangelingAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -17,7 +19,10 @@ public final class ShapeshifterBlueToken extends TokenImpl { color.setBlue(true); power = new MageInt(2); toughness = new MageInt(2); + addAbility(new ChangelingAbility()); + + availableImageSetCodes = Arrays.asList("KHM"); } private ShapeshifterBlueToken(final ShapeshifterBlueToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ShardToken.java b/Mage/src/main/java/mage/game/permanent/token/ShardToken.java index 9c075b815d..2f338be839 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ShardToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ShardToken.java @@ -9,6 +9,8 @@ import mage.abilities.effects.keyword.ScryEffect; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -27,6 +29,8 @@ public final class ShardToken extends TokenImpl { cost.setText("Sacrifice this enchantment"); ability.addCost(cost); this.addAbility(ability); + + availableImageSetCodes = Arrays.asList("KHM"); } public ShardToken(final ShardToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java index 8a8e6d7b88..ece95a952f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java @@ -23,7 +23,7 @@ public final class SpiritWhiteToken extends TokenImpl { addAbility(FlyingAbility.getInstance()); availableImageSetCodes = Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM", - "SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR"); + "SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java index 21c973f9b9..ea35102dfc 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java @@ -29,7 +29,7 @@ public final class TreasureToken extends TokenImpl { ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); - availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR"); + availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM"); } public TreasureToken(final TreasureToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/TrollWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/TrollWarriorToken.java index 15143653ff..171c0bc88e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TrollWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TrollWarriorToken.java @@ -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 TrollWarriorToken extends TokenImpl { subtype.add(SubType.WARRIOR); power = new MageInt(4); toughness = new MageInt(4); + addAbility(TrampleAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("KHM"); } private TrollWarriorToken(final TrollWarriorToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieBerserkerToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieBerserkerToken.java index 22d729de59..ae2d8440ed 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieBerserkerToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieBerserkerToken.java @@ -1,13 +1,12 @@ - - package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** - * * @author TheElk801 */ public final class ZombieBerserkerToken extends TokenImpl { @@ -20,6 +19,8 @@ public final class ZombieBerserkerToken extends TokenImpl { subtype.add(SubType.BERSERKER); power = new MageInt(2); toughness = new MageInt(2); + + availableImageSetCodes = Arrays.asList("KHM"); } private ZombieBerserkerToken(final ZombieBerserkerToken token) {