mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
[KHM] added tokens and download support;
This commit is contained in:
parent
abe65411b6
commit
f7bc745f10
50 changed files with 267 additions and 194 deletions
|
@ -17,18 +17,17 @@ import static org.mage.plugins.card.utils.CardImageUtils.getImagesDir;
|
||||||
*/
|
*/
|
||||||
public class DirectLinksForDownload implements Iterable<DownloadJob> {
|
public class DirectLinksForDownload implements Iterable<DownloadJob> {
|
||||||
|
|
||||||
private static final String backsideUrl = "https://upload.wikimedia.org/wikipedia/en/a/aa/Magic_the_gathering-card_back.jpg";
|
|
||||||
|
|
||||||
private static final Map<String, String> directLinks = new LinkedHashMap<>();
|
private static final Map<String, String> directLinks = new LinkedHashMap<>();
|
||||||
|
|
||||||
public static final String cardbackFilename = "cardback.jpg";
|
public static final String cardbackFilename = "cardback.jpg";
|
||||||
public static final String tokenFrameFilename = "tokenFrame.png";
|
public static final String foretellFilename = "foretell.jpg";
|
||||||
|
|
||||||
static {
|
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() {
|
public DirectLinksForDownload() {
|
||||||
this.outDir = new File(getImagesDir() + Constants.RESOURCE_PATH_DEFAULT_IMAGES);
|
this.outDir = new File(getImagesDir() + Constants.RESOURCE_PATH_DEFAULT_IMAGES);
|
||||||
|
|
|
@ -496,6 +496,30 @@ public class ScryfallImageSupportTokens {
|
||||||
put("CMR/Treasure", "https://api.scryfall.com/cards/tcmr/12/en?format=image");
|
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");
|
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
|
// generate supported sets
|
||||||
supportedSets.clear();
|
supportedSets.clear();
|
||||||
for (String cardName : this.keySet()) {
|
for (String cardName : this.keySet()) {
|
||||||
|
|
|
@ -102,6 +102,9 @@
|
||||||
|Generate|EMBLEM:M21|Basri Ket||Emblem Basri|BasriKetEmblem|
|
|Generate|EMBLEM:M21|Basri Ket||Emblem Basri|BasriKetEmblem|
|
||||||
|Generate|EMBLEM:M21|Garruk, Unleashed||Emblem Garruk|GarrukUnleashedEmblem|
|
|Generate|EMBLEM:M21|Garruk, Unleashed||Emblem Garruk|GarrukUnleashedEmblem|
|
||||||
|Generate|EMBLEM:M21|Liliana, Waker of the Dead||Emblem Liliana|LilianaWakerOfTheDeadEmblem|
|
|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
|
# Planes
|
||||||
|Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane|
|
|Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane|
|
||||||
|
@ -279,7 +282,7 @@
|
||||||
|Generate|TOK:C13|Elemental|2||WalkerOfTheGroveToken|
|
|Generate|TOK:C13|Elemental|2||WalkerOfTheGroveToken|
|
||||||
|Generate|TOK:C13|Elemental|3||RedElementalToken|
|
|Generate|TOK:C13|Elemental|3||RedElementalToken|
|
||||||
|Generate|TOK:C13|Elephant|||ElephantToken|
|
|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|Goat|||GoatToken|
|
||||||
|Generate|TOK:C13|Graveborn|||SekKuarDeathkeeperGravebornToken|
|
|Generate|TOK:C13|Graveborn|||SekKuarDeathkeeperGravebornToken|
|
||||||
|Generate|TOK:C13|Insect|||InsectToken|
|
|Generate|TOK:C13|Insect|||InsectToken|
|
||||||
|
@ -304,7 +307,7 @@
|
||||||
|Generate|TOK:C14|Elephant|||ElephantToken|
|
|Generate|TOK:C14|Elephant|||ElephantToken|
|
||||||
|Generate|TOK:C14|Elf Druid|||FreyaliseLlanowarsFuryToken|
|
|Generate|TOK:C14|Elf Druid|||FreyaliseLlanowarsFuryToken|
|
||||||
|Generate|TOK:C14|Elf Druid|||LlanowarElvesToken|
|
|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|Equipment|||NahiriTheLithomancerEquipmentToken|
|
||||||
|Generate|TOK:C14|Fish|||ReefWormFishToken|
|
|Generate|TOK:C14|Fish|||ReefWormFishToken|
|
||||||
|Generate|TOK:C14|Gargoyle|||GargoyleToken|
|
|Generate|TOK:C14|Gargoyle|||GargoyleToken|
|
||||||
|
@ -514,7 +517,7 @@
|
||||||
|Generate|TOK:DVD|Spirit|||SpiritWhiteToken|
|
|Generate|TOK:DVD|Spirit|||SpiritWhiteToken|
|
||||||
|Generate|TOK:DVD|Thrull|||BreedingPitBlackInsectToken|
|
|Generate|TOK:DVD|Thrull|||BreedingPitBlackInsectToken|
|
||||||
|Generate|TOK:DD3D|Elemental Shaman||
|
|Generate|TOK:DD3D|Elemental Shaman||
|
||||||
|Generate|TOK:EVG|Elf Warrior|||ElfToken|
|
|Generate|TOK:EVG|Elf Warrior|||ElfWarriorToken|
|
||||||
|Generate|TOK:EVG|Goblin|||GoblinToken|
|
|Generate|TOK:EVG|Goblin|||GoblinToken|
|
||||||
|Generate|TOK:GVL|Ape|||PongifyApeToken|
|
|Generate|TOK:GVL|Ape|||PongifyApeToken|
|
||||||
|Generate|TOK:GVL|Bat|||BatToken|
|
|Generate|TOK:GVL|Bat|||BatToken|
|
||||||
|
@ -627,7 +630,7 @@
|
||||||
|Generate|TOK:EMA|Elemental|1||RedElementalToken|
|
|Generate|TOK:EMA|Elemental|1||RedElementalToken|
|
||||||
|Generate|TOK:EMA|Elemental|2||CallTheSkyBreakerElementalToken|
|
|Generate|TOK:EMA|Elemental|2||CallTheSkyBreakerElementalToken|
|
||||||
|Generate|TOK:EMA|Elephant|||ElephantToken|
|
|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 Soldier|||GoblinTrenchesToken|
|
||||||
|Generate|TOK:EMA|Goblin|||GoblinToken|
|
|Generate|TOK:EMA|Goblin|||GoblinToken|
|
||||||
|Generate|TOK:EMA|Serf|||SerfToken|
|
|Generate|TOK:EMA|Serf|||SerfToken|
|
||||||
|
@ -661,7 +664,7 @@
|
||||||
|Generate|TOK:EVE|Wolf|||WolfToken|
|
|Generate|TOK:EVE|Wolf|||WolfToken|
|
||||||
|Generate|TOK:EVE|Worm|||WormHarvestToken|
|
|Generate|TOK:EVE|Worm|||WormHarvestToken|
|
||||||
|Generate|TOK:EVG|Elemental|||VoiceOfTheWoodsElementalToken|
|
|Generate|TOK:EVG|Elemental|||VoiceOfTheWoodsElementalToken|
|
||||||
|Generate|TOK:EVG|Elf Warrior|||ElfToken|
|
|Generate|TOK:EVG|Elf Warrior|||ElfWarriorToken|
|
||||||
|Generate|TOK:EVG|Goblin|||GoblinToken|
|
|Generate|TOK:EVG|Goblin|||GoblinToken|
|
||||||
|Generate|TOK:EXO|Pegasus|||PegasusToken|
|
|Generate|TOK:EXO|Pegasus|||PegasusToken|
|
||||||
|Generate|TOK:EXO|Thopter|||ThopterColorlessToken|
|
|Generate|TOK:EXO|Thopter|||ThopterColorlessToken|
|
||||||
|
@ -798,7 +801,7 @@
|
||||||
|Generate|TOK:LRW|Elemental Shaman|||ElementalShamanToken|
|
|Generate|TOK:LRW|Elemental Shaman|||ElementalShamanToken|
|
||||||
|Generate|TOK:LRW|Elemental|1||WalkerOfTheGroveToken|
|
|Generate|TOK:LRW|Elemental|1||WalkerOfTheGroveToken|
|
||||||
|Generate|TOK:LRW|Elemental|2||WhiteElementalToken|
|
|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|Goblin Rogue|||GoblinRogueToken|
|
||||||
|Generate|TOK:LRW|Kithkin Soldier|||KithkinToken|
|
|Generate|TOK:LRW|Kithkin Soldier|||KithkinToken|
|
||||||
|Generate|TOK:LRW|Merfolk Wizard||
|
|Generate|TOK:LRW|Merfolk Wizard||
|
||||||
|
@ -952,7 +955,7 @@
|
||||||
|Generate|TOK:MMQ|Spirit|||SpiritWhiteToken|
|
|Generate|TOK:MMQ|Spirit|||SpiritWhiteToken|
|
||||||
|Generate|TOK:MMQ|Zombie|||ZombieToken|
|
|Generate|TOK:MMQ|Zombie|||ZombieToken|
|
||||||
|Generate|TOK:MOR|Elemental|||WalkerOfTheGroveToken|
|
|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|Faerie Rogue|||FaerieRogueToken|
|
||||||
|Generate|TOK:MOR|Giant Warrior|||GiantWarriorToken|
|
|Generate|TOK:MOR|Giant Warrior|||GiantWarriorToken|
|
||||||
|Generate|TOK:MOR|Goblin Rogue|||GoblinRogueToken|
|
|Generate|TOK:MOR|Goblin Rogue|||GoblinRogueToken|
|
||||||
|
@ -1011,7 +1014,7 @@
|
||||||
|Generate|TOK:ORI|Ashaya, the Awoken World|||NissaSageAnimistToken|
|
|Generate|TOK:ORI|Ashaya, the Awoken World|||NissaSageAnimistToken|
|
||||||
|Generate|TOK:ORI|Demon|||DemonToken|
|
|Generate|TOK:ORI|Demon|||DemonToken|
|
||||||
|Generate|TOK:ORI|Elemental|||ZendikarsRoilElementalToken|
|
|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|Goblin|||GoblinToken|
|
||||||
|Generate|TOK:ORI|Knight|||KnightToken|
|
|Generate|TOK:ORI|Knight|||KnightToken|
|
||||||
|Generate|TOK:ORI|Soldier|||SoldierToken|
|
|Generate|TOK:ORI|Soldier|||SoldierToken|
|
||||||
|
@ -1084,7 +1087,7 @@
|
||||||
|Generate|TOK:SHM|Elemental|2||RedElementalToken|
|
|Generate|TOK:SHM|Elemental|2||RedElementalToken|
|
||||||
|Generate|TOK:SHM|Elf Warrior|1|
|
|Generate|TOK:SHM|Elf Warrior|1|
|
||||||
|Generate|TOK:SHM|Elf Warrior|2|
|
|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|Elf Warrior|2||RhysTheRedeemedToken|
|
||||||
|Generate|TOK:SHM|Faerie Rogue|||OonaQueenFaerieToken|
|
|Generate|TOK:SHM|Faerie Rogue|||OonaQueenFaerieToken|
|
||||||
|Generate|TOK:SHM|Giant Warrior|||GiantBaitingGiantWarriorToken|
|
|Generate|TOK:SHM|Giant Warrior|||GiantBaitingGiantWarriorToken|
|
||||||
|
@ -1315,7 +1318,7 @@
|
||||||
|Generate|TOK:M19|Cat|||CatToken2|
|
|Generate|TOK:M19|Cat|||CatToken2|
|
||||||
|Generate|TOK:M19|Dragon|1||DragonEggDragonToken|
|
|Generate|TOK:M19|Dragon|1||DragonEggDragonToken|
|
||||||
|Generate|TOK:M19|Dragon|2||DragonToken2|
|
|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|Goblin|||GoblinToken|
|
||||||
|Generate|TOK:M19|Knight|||KnightToken|
|
|Generate|TOK:M19|Knight|||KnightToken|
|
||||||
|Generate|TOK:M19|Ox|||OxToken|
|
|Generate|TOK:M19|Ox|||OxToken|
|
||||||
|
@ -1465,7 +1468,7 @@
|
||||||
|Generate|TOK:CMR|Cat|||CatToken|
|
|Generate|TOK:CMR|Cat|||CatToken|
|
||||||
|Generate|TOK:CMR|Dragon|||DragonEggDragonToken|
|
|Generate|TOK:CMR|Dragon|||DragonEggDragonToken|
|
||||||
|Generate|TOK:CMR|Elephant|||ElephantToken|
|
|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|Golem|||GolemToken|
|
||||||
|Generate|TOK:CMR|Horror|||PhyrexianRebirthHorrorToken|
|
|Generate|TOK:CMR|Horror|||PhyrexianRebirthHorrorToken|
|
||||||
|Generate|TOK:CMR|Illusion|||MelokuTheCloudedMirrorToken|
|
|Generate|TOK:CMR|Illusion|||MelokuTheCloudedMirrorToken|
|
||||||
|
@ -1479,3 +1482,24 @@
|
||||||
|Generate|TOK:CMR|Thrull|||BreedingPitThrullToken|
|
|Generate|TOK:CMR|Thrull|||BreedingPitThrullToken|
|
||||||
|Generate|TOK:CMR|Treasure|||TreasureToken|
|
|Generate|TOK:CMR|Treasure|||TreasureToken|
|
||||||
|Generate|TOK:CMR|Zombie|||ZombieToken|
|
|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|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.a;
|
package mage.cards.a;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
@ -9,22 +7,23 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class AmbassadorOak extends CardImpl {
|
public final class AmbassadorOak extends CardImpl {
|
||||||
|
|
||||||
public AmbassadorOak(UUID ownerId, CardSetInfo setInfo) {
|
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.TREEFOLK);
|
||||||
this.subtype.add(SubType.WARRIOR);
|
this.subtype.add(SubType.WARRIOR);
|
||||||
|
|
||||||
this.power = new MageInt(3);
|
this.power = new MageInt(3);
|
||||||
this.toughness = 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) {
|
private AmbassadorOak(final AmbassadorOak card) {
|
||||||
|
|
|
@ -17,7 +17,7 @@ import mage.filter.predicate.Predicates;
|
||||||
import mage.filter.predicate.permanent.TokenPredicate;
|
import mage.filter.predicate.permanent.TokenPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
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.game.permanent.token.HumanWarriorToken;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
|
@ -45,7 +45,7 @@ public final class BattleForBretagard extends CardImpl {
|
||||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, new CreateTokenEffect(new HumanWarriorToken()));
|
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, new CreateTokenEffect(new HumanWarriorToken()));
|
||||||
|
|
||||||
// II — Create a 1/1 green Elf Warrior creature token.
|
// 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.
|
// 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());
|
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new BattleForBretagardEffect());
|
||||||
|
@ -87,7 +87,7 @@ class BattleForBretagardEffect extends OneShotEffect {
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
TargetPermanent target=new BattleForBretagardTarget();
|
TargetPermanent target = new BattleForBretagardTarget();
|
||||||
player.choose(outcome, target, source.getSourceId(), game);
|
player.choose(outcome, target, source.getSourceId(), game);
|
||||||
for (UUID targetId : target.getTargets()) {
|
for (UUID targetId : target.getTargets()) {
|
||||||
new CreateTokenCopyTargetEffect()
|
new CreateTokenCopyTargetEffect()
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
package mage.cards.d;
|
package mage.cards.d;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
@ -13,12 +12,11 @@ import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class DwynensElite extends CardImpl {
|
public final class DwynensElite extends CardImpl {
|
||||||
|
@ -38,7 +36,7 @@ public final class DwynensElite extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
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.
|
// 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(
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||||
triggeredAbility,
|
triggeredAbility,
|
||||||
new PermanentsOnTheBattlefieldCondition(filter),
|
new PermanentsOnTheBattlefieldCondition(filter),
|
||||||
|
|
|
@ -7,7 +7,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public final class ElderleafMentor extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Elderleaf Mentor enters the battlefield, create a 1/1 green Elf Warrior creature token.
|
// 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) {
|
private ElderleafMentor(final ElderleafMentor card) {
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package mage.cards.e;
|
package mage.cards.e;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mage.abilities.dynamicvalue.DynamicValue;
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
@ -11,10 +9,11 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class ElvenAmbush extends CardImpl {
|
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));
|
this.getSpellAbility().addHint(new ValueHint("Elves you control", elfCount));
|
||||||
|
|
||||||
// Create a 1/1 green Elf Warrior creature token for each Elf you control.
|
// 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) {
|
private ElvenAmbush(final ElvenAmbush card) {
|
||||||
|
|
|
@ -15,7 +15,7 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.AttachmentType;
|
import mage.constants.AttachmentType;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
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.
|
// 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(
|
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.
|
// Equipped creature gets +1/+2 and has reach.
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.e;
|
package mage.cards.e;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mage.abilities.dynamicvalue.DynamicValue;
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
@ -12,10 +9,11 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class ElvishPromenade extends CardImpl {
|
public final class ElvishPromenade extends CardImpl {
|
||||||
|
@ -29,11 +27,11 @@ public final class ElvishPromenade extends CardImpl {
|
||||||
private static final DynamicValue elfCount = new PermanentsOnBattlefieldCount(filter);
|
private static final DynamicValue elfCount = new PermanentsOnBattlefieldCount(filter);
|
||||||
|
|
||||||
public ElvishPromenade(UUID ownerId, CardSetInfo setInfo) {
|
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.subtype.add(SubType.ELF);
|
||||||
this.getSpellAbility().addHint(new ValueHint("Elves you control", elfCount));
|
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) {
|
private ElvishPromenade(final ElvishPromenade card) {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.e;
|
package mage.cards.e;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
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.BoostControlledEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||||
import mage.abilities.keyword.DeathtouchAbility;
|
import mage.abilities.keyword.DeathtouchAbility;
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.util.CardUtil;
|
import mage.util.CardUtil;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class ElvishWarmaster extends CardImpl {
|
public final class ElvishWarmaster extends CardImpl {
|
||||||
|
@ -46,7 +46,7 @@ public final class ElvishWarmaster extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
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.
|
// 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.
|
// {5}{G}{G}: Elves you control get +2/+2 and gain deathtouch until end of turn.
|
||||||
Ability ability = new SimpleActivatedAbility(new BoostControlledEffect(
|
Ability ability = new SimpleActivatedAbility(new BoostControlledEffect(
|
||||||
|
|
|
@ -9,7 +9,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public final class ExquisiteHuntmaster extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Exquisite Huntmaster dies, create a 1/1 green Elf Warrior creature token.
|
// 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}
|
// Encore {4}{B}
|
||||||
this.addAbility(new EncoreAbility(new ManaCostsImpl<>("{4}{B}")));
|
this.addAbility(new EncoreAbility(new ManaCostsImpl<>("{4}{B}")));
|
||||||
|
|
|
@ -9,7 +9,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public final class EyeblightCullers extends CardImpl {
|
||||||
this.toughness = new MageInt(3);
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
// When Eyeblight Cullers dies, create three 1/1 green Elf Warrior creature tokens, then mill three cards.
|
// 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"));
|
ability.addEffect(new MillCardsControllerEffect(3).concatBy(", then"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.f;
|
package mage.cards.f;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.TriggeredAbilityImpl;
|
import mage.abilities.TriggeredAbilityImpl;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -11,18 +9,18 @@ import mage.constants.Zone;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
import mage.game.events.GameEvent.EventType;
|
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*/
|
*/
|
||||||
public final class FlourishingDefenses extends CardImpl {
|
public final class FlourishingDefenses extends CardImpl {
|
||||||
|
|
||||||
public FlourishingDefenses(UUID ownerId, CardSetInfo setInfo) {
|
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.
|
// 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());
|
this.addAbility(new FlourishingDefensesTriggeredAbility());
|
||||||
|
@ -42,7 +40,7 @@ public final class FlourishingDefenses extends CardImpl {
|
||||||
class FlourishingDefensesTriggeredAbility extends TriggeredAbilityImpl {
|
class FlourishingDefensesTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
FlourishingDefensesTriggeredAbility() {
|
FlourishingDefensesTriggeredAbility() {
|
||||||
super(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfToken()), true);
|
super(Zone.BATTLEFIELD, new CreateTokenEffect(new ElfWarriorToken()), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
FlourishingDefensesTriggeredAbility(final FlourishingDefensesTriggeredAbility ability) {
|
FlourishingDefensesTriggeredAbility(final FlourishingDefensesTriggeredAbility ability) {
|
||||||
|
@ -63,9 +61,7 @@ class FlourishingDefensesTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
if (event.getData().equals(CounterType.M1M1.getName())) {
|
if (event.getData().equals(CounterType.M1M1.getName())) {
|
||||||
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId());
|
Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId());
|
||||||
if (permanent != null && permanent.isCreature()) {
|
return permanent != null && permanent.isCreature();
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ import mage.abilities.keyword.HexproofAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.game.permanent.token.GiantsAmuletToken;
|
import mage.game.permanent.token.GiantWizardToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
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.
|
// 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(
|
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."
|
// Equipped creature gets +0/+1 and has "This creature has hexproof as long as it's untapped."
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.effects.ContinuousEffect;
|
import mage.abilities.effects.ContinuousEffect;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
|
@ -12,23 +10,24 @@ import mage.abilities.keyword.DeathtouchAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Styxo
|
* @author Styxo
|
||||||
*/
|
*/
|
||||||
public final class GiltLeafAmbush extends CardImpl {
|
public final class GiltLeafAmbush extends CardImpl {
|
||||||
|
|
||||||
public GiltLeafAmbush(UUID ownerId, CardSetInfo setInfo) {
|
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);
|
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
|
// 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) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
CreateTokenEffect effect = new CreateTokenEffect(new ElfToken(), 2);
|
CreateTokenEffect effect = new CreateTokenEffect(new ElfWarriorToken(), 2);
|
||||||
effect.apply(game, source);
|
effect.apply(game, source);
|
||||||
if (ClashEffect.getInstance().apply(game, source)) {
|
if (ClashEffect.getInstance().apply(game, source)) {
|
||||||
for (UUID tokenId : effect.getLastAddedTokenIds()) {
|
for (UUID tokenId : effect.getLastAddedTokenIds()) {
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.keyword.ReinforceAbility;
|
import mage.abilities.keyword.ReinforceAbility;
|
||||||
|
@ -9,19 +7,20 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class HuntingTriad extends CardImpl {
|
public final class HuntingTriad extends CardImpl {
|
||||||
|
|
||||||
public HuntingTriad(UUID ownerId, CardSetInfo setInfo) {
|
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.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}")));
|
this.addAbility(new ReinforceAbility(3, new ManaCostsImpl("{3}{G}")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
@ -14,10 +12,11 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class ImperiousPerfect extends CardImpl {
|
public final class ImperiousPerfect extends CardImpl {
|
||||||
|
@ -29,14 +28,14 @@ public final class ImperiousPerfect extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ImperiousPerfect(UUID ownerId, CardSetInfo setInfo) {
|
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.ELF);
|
||||||
this.subtype.add(SubType.WARRIOR);
|
this.subtype.add(SubType.WARRIOR);
|
||||||
|
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
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());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ import mage.constants.SuperType;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.permanent.UntappedPredicate;
|
import mage.filter.predicate.permanent.UntappedPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
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.
|
// 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(
|
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));
|
).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.
|
// {T}, Tap ten untapped Elves you control: Each opponent loses 10 life and you gain 10 life.
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.l;
|
package mage.cards.l;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
@ -10,10 +8,11 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.FilterSpell;
|
import mage.filter.FilterSpell;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class LysAlanaHuntmaster extends CardImpl {
|
public final class LysAlanaHuntmaster extends CardImpl {
|
||||||
|
@ -25,13 +24,13 @@ public final class LysAlanaHuntmaster extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public LysAlanaHuntmaster(UUID ownerId, CardSetInfo setInfo) {
|
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.ELF);
|
||||||
this.subtype.add(SubType.WARRIOR);
|
this.subtype.add(SubType.WARRIOR);
|
||||||
|
|
||||||
this.power = new MageInt(3);
|
this.power = new MageInt(3);
|
||||||
this.toughness = 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) {
|
private LysAlanaHuntmaster(final LysAlanaHuntmaster card) {
|
||||||
|
|
|
@ -19,7 +19,7 @@ import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.permanent.TokenPredicate;
|
import mage.filter.predicate.permanent.TokenPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ class NadierAgentOfTheDuskenelEffect extends OneShotEffect {
|
||||||
if (!permanent.isCreature() || permanent.getPower().getValue() < 1) {
|
if (!permanent.isCreature() || permanent.getPower().getValue() < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return new ElfToken().putOntoBattlefield(permanent.getPower().getValue(), game, source, source.getControllerId()
|
return new ElfWarriorToken().putOntoBattlefield(permanent.getPower().getValue(), game, source, source.getControllerId()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.n;
|
package mage.cards.n;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||||
|
@ -15,18 +13,18 @@ import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
import mage.constants.TargetController;
|
import mage.constants.TargetController;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.target.common.TargetOpponent;
|
import mage.target.common.TargetOpponent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public final class NathOfTheGiltLeaf extends CardImpl {
|
public final class NathOfTheGiltLeaf extends CardImpl {
|
||||||
|
|
||||||
public NathOfTheGiltLeaf(UUID ownerId, CardSetInfo setInfo) {
|
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);
|
addSuperType(SuperType.LEGENDARY);
|
||||||
this.subtype.add(SubType.ELF);
|
this.subtype.add(SubType.ELF);
|
||||||
this.subtype.add(SubType.WARRIOR);
|
this.subtype.add(SubType.WARRIOR);
|
||||||
|
@ -42,7 +40,7 @@ public final class NathOfTheGiltLeaf extends CardImpl {
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Whenever an opponent discards a card, you may create a 1/1 green Elf Warrior creature token.
|
// 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");
|
effect2.setText("you may create a 1/1 green Elf Warrior creature token");
|
||||||
this.addAbility(new DiscardsACardOpponentTriggeredAbility(effect2, true));
|
this.addAbility(new DiscardsACardOpponentTriggeredAbility(effect2, true));
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.p;
|
package mage.cards.p;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
@ -12,24 +10,20 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||||
import mage.abilities.keyword.EnchantAbility;
|
import mage.abilities.keyword.EnchantAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.AttachmentType;
|
import mage.constants.*;
|
||||||
import mage.constants.CardType;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.permanent.token.ElfToken;
|
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class PresenceOfGond extends CardImpl {
|
public final class PresenceOfGond extends CardImpl {
|
||||||
|
|
||||||
public PresenceOfGond(UUID ownerId, CardSetInfo setInfo) {
|
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);
|
this.subtype.add(SubType.AURA);
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +35,7 @@ public final class PresenceOfGond extends CardImpl {
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Enchanted creature has "{tap}: Create a 1/1 green Elf Warrior creature token."
|
// 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,
|
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.\"")));
|
"Enchanted creature has \"{T}: Create a 1/1 green Elf Warrior creature token.\"")));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.p;
|
package mage.cards.p;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
|
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -12,10 +10,11 @@ import mage.filter.FilterPermanent;
|
||||||
import mage.filter.predicate.Predicates;
|
import mage.filter.predicate.Predicates;
|
||||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||||
import mage.filter.predicate.permanent.TokenPredicate;
|
import mage.filter.predicate.permanent.TokenPredicate;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LoneFox
|
* @author LoneFox
|
||||||
*/
|
*/
|
||||||
public final class ProwessOfTheFair extends CardImpl {
|
public final class ProwessOfTheFair extends CardImpl {
|
||||||
|
@ -29,11 +28,11 @@ public final class ProwessOfTheFair extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProwessOfTheFair(UUID ownerId, CardSetInfo setInfo) {
|
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);
|
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.
|
// 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()),
|
this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new CreateTokenEffect(new ElfWarriorToken()),
|
||||||
true, filter, false, true));
|
true, filter, false, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import mage.constants.Zone;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ class ReturnUponTheTideEffect extends OneShotEffect {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (permanent.hasSubtype(SubType.ELF, game)) {
|
if (permanent.hasSubtype(SubType.ELF, game)) {
|
||||||
new ElfToken().putOntoBattlefield(2, game, source, player.getId());
|
new ElfWarriorToken().putOntoBattlefield(2, game, source, player.getId());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@ -41,7 +41,7 @@ public final class SkemfarElderhall extends CardImpl {
|
||||||
);
|
);
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
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));
|
ability.addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL, false));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
|
@ -11,15 +9,16 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.game.permanent.token.SylvanOfferingTreefolkToken;
|
import mage.game.permanent.token.SylvanOfferingTreefolkToken;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.Target;
|
import mage.target.Target;
|
||||||
import mage.target.common.TargetOpponent;
|
import mage.target.common.TargetOpponent;
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class SylvanOffering extends CardImpl {
|
public final class SylvanOffering extends CardImpl {
|
||||||
|
@ -105,7 +104,7 @@ class SylvanOfferingEffect2 extends OneShotEffect {
|
||||||
Player opponent = game.getPlayer(target.getFirstTarget());
|
Player opponent = game.getPlayer(target.getFirstTarget());
|
||||||
if (opponent != null) {
|
if (opponent != null) {
|
||||||
int xValue = source.getManaCostsToPay().getX();
|
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.setTargetPointer(new FixedTarget(controller.getId()));
|
||||||
effect.apply(game, source);
|
effect.apply(game, source);
|
||||||
effect.setTargetPointer(new FixedTarget(opponent.getId()));
|
effect.setTargetPointer(new FixedTarget(opponent.getId()));
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
package mage.cards.t;
|
package mage.cards.t;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.BecomesTargetTriggeredAbility;
|
import mage.abilities.common.BecomesTargetTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class ThornLieutenant extends CardImpl {
|
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.
|
// 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(
|
this.addAbility(new BecomesTargetTriggeredAbility(
|
||||||
new CreateTokenEffect(new ElfToken()),
|
new CreateTokenEffect(new ElfWarriorToken()),
|
||||||
StaticFilters.FILTER_SPELL_OR_ABILITY_OPPONENTS
|
StaticFilters.FILTER_SPELL_OR_ABILITY_OPPONENTS
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package mage.cards.t;
|
package mage.cards.t;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.LoyaltyAbility;
|
import mage.abilities.LoyaltyAbility;
|
||||||
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
|
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.effects.common.counter.AddCountersTargetEffect;
|
||||||
import mage.abilities.keyword.DeathtouchAbility;
|
import mage.abilities.keyword.DeathtouchAbility;
|
||||||
import mage.abilities.mana.BlackManaAbility;
|
import mage.abilities.mana.BlackManaAbility;
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.game.command.emblems.TyvarKellEmblem;
|
import mage.game.command.emblems.TyvarKellEmblem;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class TyvarKell extends CardImpl {
|
public final class TyvarKell extends CardImpl {
|
||||||
|
@ -57,7 +56,7 @@ public final class TyvarKell extends CardImpl {
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// 0: Create a 1/1 green Elf Warrior creature token.
|
// 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."
|
// −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));
|
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new TyvarKellEmblem()), -6));
|
||||||
|
|
|
@ -17,7 +17,7 @@ import mage.filter.FilterPermanent;
|
||||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.ElfToken;
|
import mage.game.permanent.token.ElfWarriorToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
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.
|
// At the beginning of each upkeep, create a 1/1 green Elf Warrior creature token.
|
||||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
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.
|
// Whenever another Elf enters the battlefield under your control, you gain life equal to its toughness.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.game.command.emblems;
|
package mage.game.command.emblems;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.effects.AsThoughEffectImpl;
|
import mage.abilities.effects.AsThoughEffectImpl;
|
||||||
|
@ -14,18 +13,17 @@ import mage.game.Game;
|
||||||
import mage.game.command.Emblem;
|
import mage.game.command.Emblem;
|
||||||
import mage.util.CardUtil;
|
import mage.util.CardUtil;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*/
|
*/
|
||||||
public final class TibaltCosmicImposterEmblem extends Emblem {
|
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."
|
// 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() {
|
public TibaltCosmicImposterEmblem() {
|
||||||
setName("Emblem Tibalt Cosmic Imposter");
|
setName("Emblem Tibalt");
|
||||||
this.setExpansionSetCodeForImage("KHM");
|
this.getAbilities().add(new SimpleStaticAbility(Zone.COMMAND, new TibaltCosmicImposterPlayFromExileEffect()));
|
||||||
Ability ability = new SimpleStaticAbility(Zone.COMMAND, new TibaltCosmicImposterPlayFromExileEffect());
|
|
||||||
this.getAbilities().add(ability);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ import mage.abilities.keyword.VigilanceAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public final class AngelWarriorVigilanceToken extends TokenImpl {
|
public final class AngelWarriorVigilanceToken extends TokenImpl {
|
||||||
|
|
||||||
public AngelWarriorVigilanceToken() {
|
public AngelWarriorVigilanceToken() {
|
||||||
|
@ -16,8 +18,11 @@ public final class AngelWarriorVigilanceToken extends TokenImpl {
|
||||||
subtype.add(SubType.WARRIOR);
|
subtype.add(SubType.WARRIOR);
|
||||||
power = new MageInt(4);
|
power = new MageInt(4);
|
||||||
toughness = new MageInt(4);
|
toughness = new MageInt(4);
|
||||||
|
|
||||||
addAbility(FlyingAbility.getInstance());
|
addAbility(FlyingAbility.getInstance());
|
||||||
addAbility(VigilanceAbility.getInstance());
|
addAbility(VigilanceAbility.getInstance());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private AngelWarriorVigilanceToken(final AngelWarriorVigilanceToken token) {
|
private AngelWarriorVigilanceToken(final AngelWarriorVigilanceToken token) {
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.game.permanent.token;
|
package mage.game.permanent.token;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
*/
|
*/
|
||||||
public final class BearToken extends TokenImpl {
|
public final class BearToken extends TokenImpl {
|
||||||
|
@ -19,6 +18,8 @@ public final class BearToken extends TokenImpl {
|
||||||
subtype.add(SubType.BEAR);
|
subtype.add(SubType.BEAR);
|
||||||
power = new MageInt(2);
|
power = new MageInt(2);
|
||||||
toughness = new MageInt(2);
|
toughness = new MageInt(2);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("C15", "JUD", "LGN", "ODY", "ONS", "VMA", "MH1", "ELD", "KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
public BearToken(final BearToken token) {
|
public BearToken(final BearToken token) {
|
||||||
|
|
|
@ -5,20 +5,25 @@ import mage.abilities.keyword.MenaceAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class DemonBerserkerToken extends TokenImpl {
|
public final class DemonBerserkerToken extends TokenImpl {
|
||||||
|
|
||||||
public DemonBerserkerToken() {
|
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);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setRed(true);
|
color.setRed(true);
|
||||||
subtype.add(SubType.DEMON);
|
subtype.add(SubType.DEMON);
|
||||||
subtype.add(SubType.BERSERKER);
|
subtype.add(SubType.BERSERKER);
|
||||||
power = new MageInt(2);
|
power = new MageInt(2);
|
||||||
toughness = new MageInt(3);
|
toughness = new MageInt(3);
|
||||||
|
|
||||||
addAbility(new MenaceAbility());
|
addAbility(new MenaceAbility());
|
||||||
|
|
||||||
|
availableImageSetCodes.addAll(Arrays.asList("KHM"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private DemonBerserkerToken(final DemonBerserkerToken token) {
|
private DemonBerserkerToken(final DemonBerserkerToken token) {
|
||||||
|
|
|
@ -5,35 +5,24 @@ import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LoneFox
|
* @author LoneFox
|
||||||
*/
|
*/
|
||||||
public final class DragonToken2 extends TokenImpl {
|
public final class DragonToken2 extends TokenImpl {
|
||||||
|
|
||||||
static final private List<String> tokenImageSets = new ArrayList<>();
|
|
||||||
|
|
||||||
static {
|
|
||||||
tokenImageSets.addAll(Arrays.asList("WWK", "10E", "BFZ", "C15", "CN2", "CMA", "C19"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public DragonToken2() {
|
public DragonToken2() {
|
||||||
this((String) null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DragonToken2(String setCode) {
|
|
||||||
super("Dragon", "5/5 red Dragon creature token with flying");
|
super("Dragon", "5/5 red Dragon creature token with flying");
|
||||||
availableImageSetCodes = tokenImageSets;
|
|
||||||
setOriginalExpansionSetCode(setCode);
|
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setRed(true);
|
color.setRed(true);
|
||||||
subtype.add(SubType.DRAGON);
|
subtype.add(SubType.DRAGON);
|
||||||
power = new MageInt(5);
|
power = new MageInt(5);
|
||||||
toughness = new MageInt(5);
|
toughness = new MageInt(5);
|
||||||
|
|
||||||
addAbility(FlyingAbility.getInstance());
|
addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("10E", "BFZ", "C15", "C19", "CMA", "CMD", "ONS", "ROE", "SCG", "WWK", "M19", "KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
public DragonToken2(final DragonToken2 token) {
|
public DragonToken2(final DragonToken2 token) {
|
||||||
|
@ -43,4 +32,13 @@ public final class DragonToken2 extends TokenImpl {
|
||||||
public DragonToken2 copy() {
|
public DragonToken2 copy() {
|
||||||
return new DragonToken2(this);
|
return new DragonToken2(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setExpansionSetCodeForImage(String code) {
|
||||||
|
super.setExpansionSetCodeForImage(code);
|
||||||
|
|
||||||
|
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) {
|
||||||
|
this.setTokenType(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import mage.MageInt;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public final class DwarfBerserkerToken extends TokenImpl {
|
public final class DwarfBerserkerToken extends TokenImpl {
|
||||||
|
|
||||||
public DwarfBerserkerToken() {
|
public DwarfBerserkerToken() {
|
||||||
|
@ -14,6 +16,8 @@ public final class DwarfBerserkerToken extends TokenImpl {
|
||||||
subtype.add(SubType.BERSERKER);
|
subtype.add(SubType.BERSERKER);
|
||||||
power = new MageInt(2);
|
power = new MageInt(2);
|
||||||
toughness = new MageInt(1);
|
toughness = new MageInt(1);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
public DwarfBerserkerToken(final DwarfBerserkerToken token) {
|
public DwarfBerserkerToken(final DwarfBerserkerToken token) {
|
||||||
|
|
|
@ -9,9 +9,9 @@ import java.util.Arrays;
|
||||||
/**
|
/**
|
||||||
* @author Loki
|
* @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");
|
super("Elf Warrior", "1/1 green Elf Warrior creature token");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setGreen(true);
|
color.setGreen(true);
|
||||||
|
@ -20,16 +20,16 @@ public final class ElfToken extends TokenImpl {
|
||||||
power = new MageInt(1);
|
power = new MageInt(1);
|
||||||
toughness = 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);
|
super(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElfToken copy() {
|
public ElfWarriorToken copy() {
|
||||||
return new ElfToken(this);
|
return new ElfWarriorToken(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -4,9 +4,11 @@ import mage.MageInt;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
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");
|
super("Giant Wizard", "4/4 blue Giant Wizard creature token");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setBlue(true);
|
color.setBlue(true);
|
||||||
|
@ -14,13 +16,15 @@ public final class GiantsAmuletToken extends TokenImpl {
|
||||||
subtype.add(SubType.WIZARD);
|
subtype.add(SubType.WIZARD);
|
||||||
power = new MageInt(4);
|
power = new MageInt(4);
|
||||||
toughness = new MageInt(4);
|
toughness = new MageInt(4);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
public GiantsAmuletToken(final GiantsAmuletToken token) {
|
public GiantWizardToken(final GiantWizardToken token) {
|
||||||
super(token);
|
super(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GiantsAmuletToken copy() {
|
public GiantWizardToken copy() {
|
||||||
return new GiantsAmuletToken(this);
|
return new GiantWizardToken(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -19,7 +19,7 @@ public final class GreenCat2Token extends TokenImpl {
|
||||||
power = new MageInt(2);
|
power = new MageInt(2);
|
||||||
toughness = new MageInt(2);
|
toughness = new MageInt(2);
|
||||||
|
|
||||||
availableImageSetCodes.addAll(Arrays.asList("M21", "KHM"));
|
availableImageSetCodes = Arrays.asList("M21", "KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private GreenCat2Token(final GreenCat2Token token) {
|
private GreenCat2Token(final GreenCat2Token token) {
|
||||||
|
|
|
@ -4,6 +4,8 @@ import mage.MageInt;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
@ -17,6 +19,8 @@ public final class HumanWarriorToken extends TokenImpl {
|
||||||
subtype.add(SubType.WARRIOR);
|
subtype.add(SubType.WARRIOR);
|
||||||
power = new MageInt(1);
|
power = new MageInt(1);
|
||||||
toughness = new MageInt(1);
|
toughness = new MageInt(1);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private HumanWarriorToken(final HumanWarriorToken token) {
|
private HumanWarriorToken(final HumanWarriorToken token) {
|
||||||
|
|
|
@ -4,6 +4,8 @@ import mage.abilities.mana.AnyColorManaAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
@ -12,8 +14,11 @@ public final class IcyManalithToken extends TokenImpl {
|
||||||
public IcyManalithToken() {
|
public IcyManalithToken() {
|
||||||
super("Icy Manalith", "colorless snow artifact token named Icy Manalith with \"{T}: Add one mana of any color.\"");
|
super("Icy Manalith", "colorless snow artifact token named Icy Manalith with \"{T}: Add one mana of any color.\"");
|
||||||
this.addSuperType(SuperType.SNOW);
|
this.addSuperType(SuperType.SNOW);
|
||||||
cardType.add(CardType.ARTIFACT);
|
this.cardType.add(CardType.ARTIFACT);
|
||||||
|
|
||||||
this.addAbility(new AnyColorManaAbility());
|
this.addAbility(new AnyColorManaAbility());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private IcyManalithToken(final IcyManalithToken token) {
|
private IcyManalithToken(final IcyManalithToken token) {
|
||||||
|
|
|
@ -4,6 +4,8 @@ import mage.MageInt;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public final class KomasCoilToken extends TokenImpl {
|
public final class KomasCoilToken extends TokenImpl {
|
||||||
|
|
||||||
public KomasCoilToken() {
|
public KomasCoilToken() {
|
||||||
|
@ -13,6 +15,8 @@ public final class KomasCoilToken extends TokenImpl {
|
||||||
color.setBlue(true);
|
color.setBlue(true);
|
||||||
power = new MageInt(3);
|
power = new MageInt(3);
|
||||||
toughness = new MageInt(3);
|
toughness = new MageInt(3);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private KomasCoilToken(final KomasCoilToken token) {
|
private KomasCoilToken(final KomasCoilToken token) {
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.game.permanent.token;
|
package mage.game.permanent.token;
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author spjspj
|
* @author spjspj
|
||||||
*/
|
*/
|
||||||
public final class OwlToken extends TokenImpl {
|
public final class OwlToken extends TokenImpl {
|
||||||
|
@ -19,7 +19,10 @@ public final class OwlToken extends TokenImpl {
|
||||||
subtype.add(SubType.BIRD);
|
subtype.add(SubType.BIRD);
|
||||||
power = new MageInt(1);
|
power = new MageInt(1);
|
||||||
toughness = new MageInt(1);
|
toughness = new MageInt(1);
|
||||||
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("EVE", "INV", "KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
public OwlToken(final OwlToken token) {
|
public OwlToken(final OwlToken token) {
|
||||||
|
|
|
@ -4,6 +4,8 @@ import mage.abilities.mana.AnyColorManaAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SuperType;
|
import mage.constants.SuperType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @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.\"");
|
super("Replicated Ring", "colorless snow artifact token named Replicated Ring with \"{T}: Add one mana of any color.\"");
|
||||||
this.addSuperType(SuperType.SNOW);
|
this.addSuperType(SuperType.SNOW);
|
||||||
cardType.add(CardType.ARTIFACT);
|
cardType.add(CardType.ARTIFACT);
|
||||||
|
|
||||||
this.addAbility(new AnyColorManaAbility());
|
this.addAbility(new AnyColorManaAbility());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.ChangelingAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
@ -17,7 +19,10 @@ public final class ShapeshifterBlueToken extends TokenImpl {
|
||||||
color.setBlue(true);
|
color.setBlue(true);
|
||||||
power = new MageInt(2);
|
power = new MageInt(2);
|
||||||
toughness = new MageInt(2);
|
toughness = new MageInt(2);
|
||||||
|
|
||||||
addAbility(new ChangelingAbility());
|
addAbility(new ChangelingAbility());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private ShapeshifterBlueToken(final ShapeshifterBlueToken token) {
|
private ShapeshifterBlueToken(final ShapeshifterBlueToken token) {
|
||||||
|
|
|
@ -9,6 +9,8 @@ import mage.abilities.effects.keyword.ScryEffect;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
@ -27,6 +29,8 @@ public final class ShardToken extends TokenImpl {
|
||||||
cost.setText("Sacrifice this enchantment");
|
cost.setText("Sacrifice this enchantment");
|
||||||
ability.addCost(cost);
|
ability.addCost(cost);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShardToken(final ShardToken token) {
|
public ShardToken(final ShardToken token) {
|
||||||
|
|
|
@ -23,7 +23,7 @@ public final class SpiritWhiteToken extends TokenImpl {
|
||||||
addAbility(FlyingAbility.getInstance());
|
addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
availableImageSetCodes = Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM",
|
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
|
@Override
|
||||||
|
|
|
@ -29,7 +29,7 @@ public final class TreasureToken extends TokenImpl {
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
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) {
|
public TreasureToken(final TreasureToken token) {
|
||||||
|
|
|
@ -5,6 +5,8 @@ import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
@ -18,7 +20,10 @@ public final class TrollWarriorToken extends TokenImpl {
|
||||||
subtype.add(SubType.WARRIOR);
|
subtype.add(SubType.WARRIOR);
|
||||||
power = new MageInt(4);
|
power = new MageInt(4);
|
||||||
toughness = new MageInt(4);
|
toughness = new MageInt(4);
|
||||||
|
|
||||||
addAbility(TrampleAbility.getInstance());
|
addAbility(TrampleAbility.getInstance());
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private TrollWarriorToken(final TrollWarriorToken token) {
|
private TrollWarriorToken(final TrollWarriorToken token) {
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.game.permanent.token;
|
package mage.game.permanent.token;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class ZombieBerserkerToken extends TokenImpl {
|
public final class ZombieBerserkerToken extends TokenImpl {
|
||||||
|
@ -20,6 +19,8 @@ public final class ZombieBerserkerToken extends TokenImpl {
|
||||||
subtype.add(SubType.BERSERKER);
|
subtype.add(SubType.BERSERKER);
|
||||||
power = new MageInt(2);
|
power = new MageInt(2);
|
||||||
toughness = new MageInt(2);
|
toughness = new MageInt(2);
|
||||||
|
|
||||||
|
availableImageSetCodes = Arrays.asList("KHM");
|
||||||
}
|
}
|
||||||
|
|
||||||
private ZombieBerserkerToken(final ZombieBerserkerToken token) {
|
private ZombieBerserkerToken(final ZombieBerserkerToken token) {
|
||||||
|
|
Loading…
Reference in a new issue