* Images: added tokens from Modern Horizons (MH1);

This commit is contained in:
Oleg Agafonov 2019-06-30 20:26:16 +04:00
parent 4148a572cf
commit 9c2714da53
19 changed files with 134 additions and 91 deletions

View file

@ -70,6 +70,29 @@ public class ScryfallImageSupportTokens {
put("WAR/Zombie Warrior", "https://api.scryfall.com/cards/twar/11/en?format=image");
put("WAR/Zombie", "https://api.scryfall.com/cards/twar/7/en?format=image");
// MH1
put("MH1/Angel", "https://api.scryfall.com/cards/tmh1/2/en?format=image");
put("MH1/Bear", "https://api.scryfall.com/cards/tmh1/11/en?format=image");
put("MH1/Bird", "https://api.scryfall.com/cards/tmh1/3/en?format=image");
put("MH1/Construct", "https://api.scryfall.com/cards/tmh1/17/en?format=image");
put("MH1/Elemental/1", "https://api.scryfall.com/cards/tmh1/8/en?format=image");
put("MH1/Elemental/2", "https://api.scryfall.com/cards/tmh1/9/en?format=image");
put("MH1/Elephant", "https://api.scryfall.com/cards/tmh1/12/en?format=image");
put("MH1/Goblin", "https://api.scryfall.com/cards/tmh1/10/en?format=image");
put("MH1/Golem", "https://api.scryfall.com/cards/tmh1/18/en?format=image");
put("MH1/Illusion", "https://api.scryfall.com/cards/tmh1/5/en?format=image");
put("MH1/Marit Lage", "https://api.scryfall.com/cards/tmh1/6/en?format=image");
put("MH1/Myr", "https://api.scryfall.com/cards/tmh1/19/en?format=image");
put("MH1/Rhino", "https://api.scryfall.com/cards/tmh1/13/en?format=image");
put("MH1/Emblem Serra the Benevolent", "https://api.scryfall.com/cards/tmh1/20/en?format=image");
put("MH1/Shapeshifter", "https://api.scryfall.com/cards/tmh1/1/en?format=image");
put("MH1/Soldier", "https://api.scryfall.com/cards/tmh1/4/en?format=image");
put("MH1/Spider", "https://api.scryfall.com/cards/tmh1/14/en?format=image");
put("MH1/Spirit", "https://api.scryfall.com/cards/tmh1/16/en?format=image");
put("MH1/Squirrel", "https://api.scryfall.com/cards/tmh1/15/en?format=image");
put("MH1/Emblem Wrenn and Six", "https://api.scryfall.com/cards/tmh1/21/en?format=image");
put("MH1/Zombie", "https://api.scryfall.com/cards/tmh1/7/en?format=image");
// M20
put("M20/Ajani's Pridemate", "https://api.scryfall.com/cards/tm20/1/en?format=image");
put("M20/Emblem Chandra, Awakened Inferno", "https://api.scryfall.com/cards/tm20/11/en?format=image");

View file

@ -88,6 +88,8 @@
|Generate|EMBLEM:RIX|Huatli, Radiant Champion||Emblem Huatli|HuatliRadiantChampionEmblem|
|Generate|EMBLEM:RNA|Domri, Chaos Bringer||Emblem Domri|DomriChaosBringerEmblem|
|Generate|EMBLEM:WAR|Nissa, Who Shakes the World||Emblem Nissa|NissaWhoShakesTheWorldEmblem|
|Generate|EMBLEM:MH1|Serra the Benevolent||Emblem Serra|SerraTheBenevolentEmblem|
|Generate|EMBLEM:MH1|Wrenn and Six||Emblem Wrenn|WrennAndSixEmblem|
|Generate|EMBLEM:M20|Chandra, Awakened Inferno||Emblem Chandra|ChandraAwakenedInfernoEmblem|
|Generate|EMBLEM:M20|Mu Yanling, Sky Dancer||Emblem Yanling|MuYanlingSkyDancerEmblem|
|Generate|PLANE:PCA|Plane - Academy At Tolaria West|||AcademyAtTolariaWestPlane|
@ -1218,6 +1220,25 @@
|Generate|TOK:WAR|Zombie Army|1||ZombieArmyToken|
|Generate|TOK:WAR|Zombie Army|2||ZombieArmyToken|
|Generate|TOK:WAR|Zombie Army|3||ZombieArmyToken|
|Generate|TOK:MH1|Shapeshifter|||ShapeshifterToken|
|Generate|TOK:MH1|Angel|||AngelVigilanceToken|
|Generate|TOK:MH1|Bear|||BearToken|
|Generate|TOK:MH1|Bird|||BirdToken|
|Generate|TOK:MH1|Construct|||KarnConstructToken|
|Generate|TOK:MH1|Elemental|1||YoungPyromancerElementalToken|
|Generate|TOK:MH1|Elemental|2||AkoumStonewakerElementalToken|
|Generate|TOK:MH1|Elephant|||ElephantToken|
|Generate|TOK:MH1|Goblin|||GoblinToken|
|Generate|TOK:MH1|Golem|||GolemToken|
|Generate|TOK:MH1|Illusion|||MelokuTheCloudedMirrorToken|
|Generate|TOK:MH1|Marit Lage|||MaritLageToken|
|Generate|TOK:MH1|Myr|||MyrToken|
|Generate|TOK:MH1|Rhino|||RhinoToken|
|Generate|TOK:MH1|Soldier|||SoldierToken|
|Generate|TOK:MH1|Spider|||SpiderToken|
|Generate|TOK:MH1|Spirit|||WhiteBlackSpiritToken|
|Generate|TOK:MH1|Squirrel|||SquirrelToken|
|Generate|TOK:MH1|Zombie|||ZombieToken|
|Generate|TOK:M20|Ajani's Pridemate|||AjanisPridemateToken|
|Generate|TOK:M20|Demon|||DemonToken|
|Generate|TOK:M20|Elemental|||YoungPyromancerElementalToken|
@ -1228,9 +1249,3 @@
|Generate|TOK:M20|Treasure|||TreasureToken|
|Generate|TOK:M20|Wolf|||WolfToken|
|Generate|TOK:M20|Zombie|||ZombieToken|

View file

@ -1,26 +1,13 @@
package mage.cards.k;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.cards.*;
import mage.constants.*;
import mage.counters.CounterType;
import mage.filter.FilterCard;
import mage.filter.predicate.other.CounterCardPredicate;
@ -32,8 +19,12 @@ import mage.target.Target;
import mage.target.TargetCard;
import mage.target.common.TargetOpponent;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
/**
*
* @author spjspj
*/
public final class KarnScionOfUrza extends CardImpl {
@ -215,7 +206,7 @@ class KarnConstructEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
CreateTokenEffect effect = new CreateTokenEffect(new KarnConstructToken("DOM"), 1);
CreateTokenEffect effect = new CreateTokenEffect(new KarnConstructToken(), 1);
effect.apply(game, source);
return true;
}

View file

@ -1,15 +1,14 @@
package mage.game.permanent.token;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
*
* @author spjspj
*/
public final class AkoumStonewakerElementalToken extends TokenImpl {
@ -23,8 +22,11 @@ public final class AkoumStonewakerElementalToken extends TokenImpl {
toughness = new MageInt(1);
this.addAbility(TrampleAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
this.setOriginalExpansionSetCode("BFZ");
this.setTokenType(1);
availableImageSetCodes.addAll(Arrays.asList("BFZ", "MH1"));
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MH1")) {
setTokenType(2);
}
}
public AkoumStonewakerElementalToken(final AkoumStonewakerElementalToken token) {

View file

@ -1,16 +1,14 @@
package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public final class ElephantToken extends TokenImpl {
@ -18,7 +16,7 @@ public final class ElephantToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL", "MM3", "CMA"));
tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL", "MM3", "CMA", "MH1"));
}
public ElephantToken() {

View file

@ -19,7 +19,7 @@ public final class GoblinToken extends TokenImpl {
static {
tokenImageSets.addAll(Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR",
"MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "DD3EVG", "MM2",
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR"));
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1"));
}
public GoblinToken(boolean withHaste) {

View file

@ -16,7 +16,7 @@ public final class GolemToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM", "MM3", "M20"));
tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM", "MM3", "MH1", "M20"));
}
public GolemToken() {

View file

@ -1,24 +1,22 @@
package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static javax.management.Query.value;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* @author spjspj
*/
public final class KarnConstructToken extends TokenImpl {
@ -30,18 +28,14 @@ public final class KarnConstructToken extends TokenImpl {
}
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("DOM"));
tokenImageSets.addAll(Arrays.asList("DOM", "MH1"));
}
public KarnConstructToken() {
this("DOM");
}
public KarnConstructToken(String setCode) {
super("Construct", "0/0 colorless Construct artifact creature token with \"This creature gets +1/+1 for each artifact you control.\"");
availableImageSetCodes = tokenImageSets;
this.setOriginalExpansionSetCode(setCode);
cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
subtype.add(SubType.CONSTRUCT);

View file

@ -1,5 +1,3 @@
package mage.game.permanent.token;
import mage.MageInt;
@ -9,6 +7,8 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import java.util.Arrays;
/**
* @author spjspj
*/
@ -16,7 +16,6 @@ public final class MaritLageToken extends TokenImpl {
public MaritLageToken() {
super("Marit Lage", "Marit Lage, a legendary 20/20 black Avatar creature token with flying and indestructible");
this.setOriginalExpansionSetCode("CSP");
cardType.add(CardType.CREATURE);
subtype.add(SubType.AVATAR);
addSuperType(SuperType.LEGENDARY);
@ -28,6 +27,7 @@ public final class MaritLageToken extends TokenImpl {
this.addAbility(FlyingAbility.getInstance());
this.addAbility(IndestructibleAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("CSP", "MH1"));
}
public MaritLageToken(final MaritLageToken token) {

View file

@ -1,13 +1,13 @@
package mage.game.permanent.token;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
*
* @author spjspj
*/
public final class MelokuTheCloudedMirrorToken extends TokenImpl {
@ -20,6 +20,7 @@ public final class MelokuTheCloudedMirrorToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
addAbility(FlyingAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("CHK", "MMA", "MH1"));
}
public MelokuTheCloudedMirrorToken(final MelokuTheCloudedMirrorToken token) {

View file

@ -1,19 +1,19 @@
package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public final class MyrToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("C14", "MM2", "NPH", "SOM"));
tokenImageSets.addAll(Arrays.asList("C14", "MM2", "NPH", "SOM", "MH1"));
}
public MyrToken() {

View file

@ -1,13 +1,13 @@
package mage.game.permanent.token;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.TrampleAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
*
* @author spjspj
*/
public final class RhinoToken extends TokenImpl {
@ -20,6 +20,8 @@ public final class RhinoToken extends TokenImpl {
power = new MageInt(4);
toughness = new MageInt(4);
addAbility(TrampleAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("DGM", "RTR", "MH1"));
}
public RhinoToken(final RhinoToken token) {

View file

@ -5,13 +5,24 @@ import mage.abilities.keyword.ChangelingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author TheElk801
*/
public final class ShapeshifterToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("C15", "LRW", "MH1"));
}
public ShapeshifterToken() {
super("Shapeshifter", "2/2 colorless Shapeshifter creature token with changeling");
availableImageSetCodes = tokenImageSets;
cardType.add(CardType.CREATURE);
subtype.add(SubType.SHAPESHIFTER);
power = new MageInt(2);

View file

@ -18,7 +18,7 @@ public final class SoldierToken extends TokenImpl {
static {
tokenImageSets.addAll(Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13", "MM2", "MMA", "RTR",
"SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01", "DOM", "M20"));
"SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01", "DOM", "MH1", "M20"));
}
public SoldierToken() {

View file

@ -5,16 +5,16 @@
*/
package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt;
import mage.abilities.keyword.ReachAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* @author fireshoes
*/
public final class SpiderToken extends TokenImpl {
@ -22,7 +22,7 @@ public final class SpiderToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("ISD", "EMN", "C15", "SHM"));
tokenImageSets.addAll(Arrays.asList("ISD", "EMN", "C15", "SHM", "MH1"));
}
public SpiderToken() {

View file

@ -1,15 +1,14 @@
package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*
* @author North
*/
public final class SquirrelToken extends TokenImpl {
@ -17,7 +16,7 @@ public final class SquirrelToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Collections.singletonList("CNS"));
tokenImageSets.addAll(Arrays.asList("CNS", "MH1"));
}
public SquirrelToken() {

View file

@ -1,5 +1,3 @@
package mage.game.permanent.token;
import mage.MageInt;
@ -7,6 +5,8 @@ import mage.abilities.keyword.FlyingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author spjspj
*/
@ -21,6 +21,8 @@ public final class WhiteBlackSpiritToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
this.addAbility(FlyingAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("MH1"));
}
public WhiteBlackSpiritToken(final WhiteBlackSpiritToken token) {

View file

@ -6,7 +6,6 @@ import mage.constants.SubType;
import mage.util.RandomUtil;
/**
*
* @author spjspj
*/
public final class YoungPyromancerElementalToken extends TokenImpl {
@ -19,6 +18,12 @@ public final class YoungPyromancerElementalToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) {
setTokenType(1);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("SHM")) {
setTokenType(2);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MH1")) {
setTokenType(1);
}
cardType.add(CardType.CREATURE);
color.setRed(true);
subtype.add(SubType.ELEMENTAL);

View file

@ -18,7 +18,7 @@ public final class ZombieToken extends TokenImpl {
static {
tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "C17", "CNS",
"MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", "RNA", "WAR", "M20"));
"MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", "RNA", "WAR", "MH1", "M20"));
}
public ZombieToken() {