From 1bf2d1782c0eb528f07d6468e6d83c9f466399ae Mon Sep 17 00:00:00 2001 From: fireshoes Date: Wed, 29 Mar 2017 10:42:43 -0500 Subject: [PATCH] [MPS-AKH] Added Amonkhet Masterpiece reprints. [MM3] Token updates --- .../src/main/resources/card-pictures-tok.txt | 24 ++++++ .../src/main/resources/image.url.properties | 2 +- Mage.Sets/src/mage/sets/Amonkhet.java | 6 +- .../src/mage/sets/MasterpieceSeries.java | 1 + .../mage/sets/MasterpieceSeriesAmonkhet.java | 81 +++++++++++++++++++ .../mage/game/permanent/token/AngelToken.java | 2 +- .../mage/game/permanent/token/BeastToken.java | 4 +- .../game/permanent/token/BeastToken2.java | 4 +- .../mage/game/permanent/token/BirdToken.java | 2 +- .../game/permanent/token/CentaurToken.java | 10 ++- .../game/permanent/token/DragonToken.java | 2 +- .../game/permanent/token/ElephantToken.java | 2 +- .../game/permanent/token/GoblinToken.java | 2 +- .../mage/game/permanent/token/GolemToken.java | 2 +- .../game/permanent/token/SaprolingToken.java | 2 +- .../game/permanent/token/SoldierToken.java | 4 +- .../token/SoldierTokenWithHaste.java | 28 ++++++- .../permanent/token/SpiritWhiteToken.java | 2 +- .../mage/game/permanent/token/WurmToken2.java | 10 ++- .../game/permanent/token/ZombieToken.java | 4 +- Utils/known-sets.txt | 1 + Utils/mtg-cards-data.txt | 41 ++++++---- Utils/mtg-sets-data.txt | 1 + 23 files changed, 198 insertions(+), 39 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index b242976bacb..b4ddbd99d1e 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -1,3 +1,27 @@ +|Generate|TOK:AKH|Trueheart Duelist|| + +|Generate|TOK:MM3|Angel|| +|Generate|TOK:MM3|Beast|1| +|Generate|TOK:MM3|Beast|2| +|Generate|TOK:MM3|Bird|| +|Generate|TOK:MM3|Centaur|| +|Generate|TOK:MM3|Dragon|| +|Generate|TOK:MM3|Elemental|| +|Generate|TOK:MM3|Elephant|| +|Generate|TOK:MM3|Giant Warrior|| +|Generate|TOK:MM3|Goblin|| +|Generate|TOK:MM3|Goblin Warrior|| +|Generate|TOK:MM3|Golem|| +|Generate|TOK:MM3|Ooze|| +|Generate|TOK:MM3|Saproling|| +|Generate|TOK:MM3|Soldier|1| +|Generate|TOK:MM3|Soldier|2| +|Generate|TOK:MM3|Spider|| +|Generate|TOK:MM3|Spirit|| +|Generate|TOK:MM3|Wurm|| +|Generate|TOK:MM3|Zombie|| +|Generate|EMBLEM!:MM3|Emblem Domri|| + |Generate|TOK:C16|Beast|| |Generate|TOK:C16|Bird|1| |Generate|TOK:C16|Bird|2| diff --git a/Mage.Client/src/main/resources/image.url.properties b/Mage.Client/src/main/resources/image.url.properties index 2d32397f850..9f5e89bcde7 100644 --- a/Mage.Client/src/main/resources/image.url.properties +++ b/Mage.Client/src/main/resources/image.url.properties @@ -74,6 +74,6 @@ dd3evg=ddaevg dd3gvl=ddagvl dd3jvc=ddajvc # Remove setname as soon as the images can be downloaded -ignore.urls=TOK,PCA,DDS,ANB,AKH,HOU +ignore.urls=TOK,PCA,ANB,HOU # sets ordered by release time (newest goes first) token.lookup.order=ANB,HOU,MM3,DDS,AKH,DD3DVD,DD3EVG,DD3GVL,DD3JVC,H09,AER,PCA,C16,V16,MPS,KLD,DDR,CN2,EMN,EMA,SOI,DDQ,CP,CMA,ARENA,SUS,APAC,EURO,UGIN,C15,OGW,EXP,DDP,BFZ,DRB,V09,V10,V11,V12,V13,V14,V15,TPR,MPRP,DD3,DDO,ORI,MM2,PTC,DTK,FRF,KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,DDE,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK,GRC \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/Amonkhet.java b/Mage.Sets/src/mage/sets/Amonkhet.java index 29ffcb331c4..ebabcdf6393 100644 --- a/Mage.Sets/src/mage/sets/Amonkhet.java +++ b/Mage.Sets/src/mage/sets/Amonkhet.java @@ -94,9 +94,9 @@ public class Amonkhet extends ExpansionSet { public List getSpecialLand() { if (savedSpecialLand.isEmpty()) { CardCriteria criteria = new CardCriteria(); - criteria.setCodes("MPS"); - criteria.minCardNumber(31); - criteria.maxCardNumber(54); + criteria.setCodes("MPS-AKH"); + criteria.minCardNumber(1); + criteria.maxCardNumber(30); savedSpecialLand.addAll(CardRepository.instance.findCards(criteria)); } diff --git a/Mage.Sets/src/mage/sets/MasterpieceSeries.java b/Mage.Sets/src/mage/sets/MasterpieceSeries.java index 16996b94917..affbb7260e2 100644 --- a/Mage.Sets/src/mage/sets/MasterpieceSeries.java +++ b/Mage.Sets/src/mage/sets/MasterpieceSeries.java @@ -47,6 +47,7 @@ public class MasterpieceSeries extends ExpansionSet { private MasterpieceSeries() { super("Masterpiece Series", "MPS", ExpansionSet.buildDate(2016, 9, 30), SetType.PROMOTIONAL); + this.blockName = "Masterpiece Series"; this.hasBoosters = false; this.hasBasicLands = false; CardGraphicInfo cardGraphicInfo = new CardGraphicInfo(FrameStyle.KLD_INVENTION, false); diff --git a/Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java b/Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java new file mode 100644 index 00000000000..aeb42eeb6d3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/MasterpieceSeriesAmonkhet.java @@ -0,0 +1,81 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets; + +import mage.cards.CardGraphicInfo; +import mage.cards.ExpansionSet; +import mage.cards.FrameStyle; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * + * @author fireshoes + */ +public class MasterpieceSeriesAmonkhet extends ExpansionSet { + + private static final MasterpieceSeriesAmonkhet instance = new MasterpieceSeriesAmonkhet(); + + public static MasterpieceSeriesAmonkhet getInstance() { + return instance; + } + + private MasterpieceSeriesAmonkhet() { + super("Masterpiece Series Amonkhet", "MPS-AKH", ExpansionSet.buildDate(2017, 4, 28), SetType.PROMOTIONAL); + this.blockName = "Masterpiece Series"; + this.hasBoosters = false; + this.hasBasicLands = false; + CardGraphicInfo cardGraphicInfo = new CardGraphicInfo(FrameStyle.KLD_INVENTION, false); + + cards.add(new SetCardInfo("Aggravated Assault", 25, Rarity.SPECIAL, mage.cards.a.AggravatedAssault.class)); + cards.add(new SetCardInfo("Attrition", 19, Rarity.SPECIAL, mage.cards.a.Attrition.class)); + cards.add(new SetCardInfo("Austere Command", 1, Rarity.SPECIAL, mage.cards.a.AustereCommand.class)); + cards.add(new SetCardInfo("Aven Mindcensor", 2, Rarity.SPECIAL, mage.cards.a.AvenMindcensor.class)); + cards.add(new SetCardInfo("Chain Lightning", 26, Rarity.SPECIAL, mage.cards.c.ChainLightning.class)); + cards.add(new SetCardInfo("Consecrated Sphinx", 8, Rarity.SPECIAL, mage.cards.c.ConsecratedSphinx.class)); + cards.add(new SetCardInfo("Containment Priest", 3, Rarity.SPECIAL, mage.cards.c.ContainmentPriest.class)); + cards.add(new SetCardInfo("Counterbalance", 9, Rarity.SPECIAL, mage.cards.c.Counterbalance.class)); + cards.add(new SetCardInfo("Counterspell", 10, Rarity.SPECIAL, mage.cards.c.Counterspell.class)); + cards.add(new SetCardInfo("Cryptic Command", 11, Rarity.SPECIAL, mage.cards.c.CrypticCommand.class)); + cards.add(new SetCardInfo("Dark Ritual", 21, Rarity.SPECIAL, mage.cards.d.DarkRitual.class)); + cards.add(new SetCardInfo("Daze", 12, Rarity.SPECIAL, mage.cards.d.Daze.class)); + cards.add(new SetCardInfo("Diabolic Intent", 22, Rarity.SPECIAL, mage.cards.d.DiabolicIntent.class)); + cards.add(new SetCardInfo("Divert", 13, Rarity.SPECIAL, mage.cards.d.Divert.class)); + cards.add(new SetCardInfo("Entomb", 23, Rarity.SPECIAL, mage.cards.e.Entomb.class)); + cards.add(new SetCardInfo("Force of Will", 14, Rarity.SPECIAL, mage.cards.f.ForceOfWill.class)); + cards.add(new SetCardInfo("Loyal Retainers", 4, Rarity.SPECIAL, mage.cards.l.LoyalRetainers.class)); + cards.add(new SetCardInfo("Maelstrom Pulse", 29, Rarity.SPECIAL, mage.cards.m.MaelstromPulse.class)); + cards.add(new SetCardInfo("Mind Twist", 24, Rarity.SPECIAL, mage.cards.m.MindTwist.class)); + cards.add(new SetCardInfo("Pact of Negation", 16, Rarity.SPECIAL, mage.cards.p.PactOfNegation.class)); + cards.add(new SetCardInfo("Spell Pierce", 17, Rarity.SPECIAL, mage.cards.s.SpellPierce.class)); + cards.add(new SetCardInfo("Stifle", 18, Rarity.SPECIAL, mage.cards.s.Stifle.class)); + cards.add(new SetCardInfo("Vindicate", 30, Rarity.SPECIAL, mage.cards.v.Vindicate.class)); + cards.add(new SetCardInfo("Worship", 6, Rarity.SPECIAL, mage.cards.w.Worship.class)); + cards.add(new SetCardInfo("Wrath of God", 7, Rarity.SPECIAL, mage.cards.w.WrathOfGod.class)); + } +} \ No newline at end of file diff --git a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java index 21b3ce59354..318d8c066b1 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java @@ -12,7 +12,7 @@ public class AngelToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CFX", "GTC", "ISD", "M14", "ORI", "SOI", "ZEN", "C15")); + tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CFX", "GTC", "ISD", "M14", "ORI", "SOI", "ZEN", "C15", "MM3")); } public AngelToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java index a2803df9f7e..939abf5b50c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java @@ -42,7 +42,7 @@ public class BeastToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE")); + tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE", "MM3")); } public BeastToken() { @@ -71,7 +71,7 @@ public class BeastToken extends Token { if (getOriginalExpansionSetCode().equals("M15")) { this.setTokenType(2); } - if (getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD")) { + if (getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("MM3")) { this.setTokenType(1); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java index ef82f2ace07..186e6c11281 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java @@ -42,7 +42,7 @@ public class BeastToken2 extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL")); + tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL", "MM3")); } public BeastToken2() { @@ -76,7 +76,7 @@ public class BeastToken2 extends Token { @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("DD3GVL")) { + if (getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("MM3")) { this.setTokenType(2); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java index 1cd2e04d631..6babfef8b3e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java @@ -47,7 +47,7 @@ public class BirdToken extends Token { power = new MageInt(1); toughness = new MageInt(1); addAbility(FlyingAbility.getInstance()); - availableImageSetCodes.addAll(Arrays.asList("BNG", "RTR", "ZEN", "C16")); + availableImageSetCodes.addAll(Arrays.asList("BNG", "RTR", "ZEN", "C16", "MM3", "DGM")); } public BirdToken(final BirdToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java b/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java index d36a2886ac7..57f0be773b5 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java @@ -28,6 +28,9 @@ package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mage.constants.CardType; import mage.MageInt; import mage.util.RandomUtil; @@ -38,6 +41,12 @@ import mage.util.RandomUtil; */ public class CentaurToken extends Token { + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); + } + public CentaurToken() { super("Centaur", "3/3 green Centaur creature token"); cardType.add(CardType.CREATURE); @@ -46,7 +55,6 @@ public class CentaurToken extends Token { subtype.add("Centaur"); power = new MageInt(3); toughness = new MageInt(3); - setOriginalExpansionSetCode("RTR"); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonToken.java b/Mage/src/main/java/mage/game/permanent/token/DragonToken.java index 0059cc6768b..579c9c89c77 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonToken.java @@ -44,7 +44,7 @@ public class DragonToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA")); + tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA", "MM3")); } public DragonToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java b/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java index a2827d76551..88b4593face 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java @@ -43,7 +43,7 @@ public class ElephantToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL")); + tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL", "MM3")); } public ElephantToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java index dbcc5450679..89cd0247c7b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java @@ -43,7 +43,7 @@ public class GoblinToken extends Token { static { tokenImageSets.addAll(Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR", - "MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "DD3EVG", "MM2")); + "MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "DD3EVG", "MM2", "MM3", "EMA", "C16")); } public GoblinToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/GolemToken.java b/Mage/src/main/java/mage/game/permanent/token/GolemToken.java index 4bbd644b703..83fcd2913de 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GolemToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GolemToken.java @@ -43,7 +43,7 @@ public class GolemToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM")); + tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM", "MM3")); } public GolemToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java index 01bd26a3efb..d90d0e7cb41 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java @@ -44,7 +44,7 @@ public class SaprolingToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("10E", "ALA", "DDE", "DDH", "DDJ", "M12", "M13", "M14", "MM2", "MMA", "RTR", "C15")); + tokenImageSets.addAll(Arrays.asList("10E", "ALA", "DDE", "DDH", "DDJ", "M12", "M13", "M14", "MM2", "MMA", "RTR", "C15", "MM3", "C16")); } public SaprolingToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java index 996b3ff6037..2fed39fb0df 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java @@ -44,7 +44,7 @@ public class SoldierToken extends Token { 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")); + "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3")); } public SoldierToken() { @@ -65,7 +65,7 @@ public class SoldierToken extends Token { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("THS")) { this.setTokenType(RandomUtil.nextInt(2) + 1); } - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CN2")) { + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CN2") || getOriginalExpansionSetCode().equals("MM3")) { setTokenType(1); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java index 458310b2ef8..7db5eb6c50e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java @@ -28,6 +28,9 @@ package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; @@ -38,6 +41,12 @@ import mage.abilities.keyword.HasteAbility; */ public class SoldierTokenWithHaste extends Token { + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("GTC", "MM3")); + } + public SoldierTokenWithHaste() { super("Soldier", "1/1 red and white Soldier creature token with haste"); cardType.add(CardType.CREATURE); @@ -47,6 +56,23 @@ public class SoldierTokenWithHaste extends Token { power = new MageInt(1); toughness = new MageInt(1); addAbility(HasteAbility.getInstance()); - setOriginalExpansionSetCode("GTC"); + } + + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MM3")) { + setTokenType(2); + } + } + + public SoldierTokenWithHaste(final SoldierTokenWithHaste token) { + super(token); + } + + @Override + public SoldierTokenWithHaste copy() { + return new SoldierTokenWithHaste(this); //To change body of generated methods, choose Tools | Templates. } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java index a1ff71d0a99..8dbe924221e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java @@ -42,7 +42,7 @@ public class SpiritWhiteToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM", "SOI", "EMA", "C16")); + tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM", "SOI", "EMA", "C16", "MM3")); } public SpiritWhiteToken() { diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java b/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java index e4b27e261dc..43fcceceb16 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java @@ -28,6 +28,9 @@ package mage.game.permanent.token; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import mage.constants.CardType; import mage.MageInt; import mage.abilities.keyword.TrampleAbility; @@ -38,6 +41,12 @@ import mage.abilities.keyword.TrampleAbility; */ public class WurmToken2 extends Token { + final static private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); + } + public WurmToken2() { super("Wurm", "5/5 green Wurm creature token with trample"); cardType.add(CardType.CREATURE); @@ -46,6 +55,5 @@ public class WurmToken2 extends Token { power = new MageInt(5); toughness = new MageInt(5); addAbility(TrampleAbility.getInstance()); - setOriginalExpansionSetCode("RTR"); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java index 0cd8b1b150e..19e1af1e7c2 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java @@ -44,8 +44,8 @@ public class ZombieToken extends Token { final static private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "CNS", - "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA")); + tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "CNS", + "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3")); } public ZombieToken() { diff --git a/Utils/known-sets.txt b/Utils/known-sets.txt index caa9156a522..f586453abb3 100644 --- a/Utils/known-sets.txt +++ b/Utils/known-sets.txt @@ -110,6 +110,7 @@ Magic Player Rewards|MagicPlayerRewards| Magic: The Gathering-Commander|Commander| Magic: The Gathering-Conspiracy|Conspiracy| Masterpiece Series|MasterpieceSeries| +Masterpiece Series Amonkhet|MasterpieceSeriesAmonkhet| Masters Edition|MastersEdition| Masters Edition II|MastersEditionII| Masters Edition III|MastersEditionIII| diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index f135e59b0fe..731900f9695 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -30005,22 +30005,31 @@ Sword of War and Peace|Masterpiece Series|51|M|{3}|Artifact|||Equipped creature Trinisphere|Masterpiece Series|52|M|{3}|Artifact|||As long as Trinisphere is untapped, each spell that would cost less than three mana to cast costs three mana to cast.| Vedalken Shackles|Masterpiece Series|53|M|{3}|Artifact|||You may choose not to untap Vedalken Shackles during your untap step.${2}, {T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped.| Wurmcoil Engine|Masterpiece Series|54|M|{6}|Artifact Creature - Wurm|6|6|Deathtouch, lifelink$When Wurmcoil Engine dies, create a 3/3 colorless Wurm artifact creature token with deathtouch and a 3/3 colorless Wurm artifact creature token with lifelink.| -Aven Mindcensor|Masterpiece Series|2|Special|{2}{W}|Creature - Bird Wizard|2|1|Flash$Flying$If an opponent would search a library, that player search the top four cards of that library instead.| -Loyal Retainers|Masterpiece Series|4|Special|{2}{W}|Creature - Human Advisor|1|1|Sacrifice Loyal Retainers: Return target legendary creature card from your graveyard to the battlefield. Activate this ability only during your turn, before attackers are declared.| -Worship|Masterpiece Series|6|Special|{3}{W}|Enchantment|||If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instant.| -Wrath of God|Masterpiece Series|7|Special|{2}{W}{W}|Sorcery|||Destroy all creatures. They can't be regenerated.| -Consecrated Sphinx|Masterpiece Series|8|Special|{4}{U}{U}|Creature - Sphinx|4|6|Flying$Whenever an opponent draws a card, you may draw two cards.| -Counterbalance|Masterpiece Series|9|Special|{U}{U}|Enchantment|||Whenever an opponent casts a spell, you may reveal the top card of your library. If you do, counter that spell if it has the same converted mana cost as the revealed card.| -Counterspell|Masterpiece Series|10|Special|{U}{U}|Instant|||Counter target spell.| -Cryptic Command|Masterpiece Series|11|Special|{1}{U}{U}{U}|Instant|||Choose two - Counter target spell.; Return target permanent to its owner's hand.; Tap all creatures your opponents control.; Draw a card.| -Daze|Masterpiece Series|12|Special|{1}{U}|Instant|||You may return an Island you control to its owner's hand rather than pay Daze's mana cost.$Counter target spell unless its controller pays {1}.| -Force of Will|Masterpiece Series|14|Special|{3}{U}{U}|Instant|||You may pay 1 life and exile a blue card from your hand rather than pay Force of Will's mana cost.$Counter target spell.| -Pact of Negation|Masterpiece Series|16|Special|{0}|Instant|||Counter target spell.$At the beginning of your next upkeep, pay {3}{U}{U}. If you don't, you lose the game.| -Dark Ritual|Masterpiece Series|21|Special|{B}|Instant|||Add {B}{B}{B} to your mana pool.| -Mind Twist|Masterpiece Series|24|Special|{X}{B}|Sorcery|||Target player discards X cards at random.| -Chain Lightning|Masterpiece Series|26|Special|{R}|Sorcery|||Chain Lightning deals 3 damage to target creature or player. Then that player or that creature's controller may pay {R}{R}. If the player does, he or she may copy this spell and may choose a new target for that copy.| -Maelstrom Pule|Masterpiece Series|29|Special|{1}{B}{G}|Sorcery|||Destroy target nonland permanent and all other permanents with the same name as that permanent.| -Vindicate|Masterpiece Series|30|{1}{W}{B}|Sorcery|||Destroy target permanent.| +Austere Command|Masterpiece Series Amonkhet|1|Special|{4}{W}{W}|Sorcery|||Choose two - Destroy all artifacts.; Destroy all enchantments.; Destroy all creatures with converted mana cost 3 or less.; Destroy all creatures with converted mana cost 4 or greater.| +Aven Mindcensor|Masterpiece Series Amonkhet|2|Special|{2}{W}|Creature - Bird Wizard|2|1|Flash$Flying$If an opponent would search a library, that player search the top four cards of that library instead.| +Containment Priest|Masterpiece Series Amonkhet|3|Special|{1}{W}|Creature - Human Cleric|2|2|Flash$If a nontoken creature would enter the battlefield and it wasn't cast, exile it instead.| +Loyal Retainers|Masterpiece Series Amonkhet|4|Special|{2}{W}|Creature - Human Advisor|1|1|Sacrifice Loyal Retainers: Return target legendary creature card from your graveyard to the battlefield. Activate this ability only during your turn, before attackers are declared.| +Worship|Masterpiece Series Amonkhet|6|Special|{3}{W}|Enchantment|||If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instant.| +Wrath of God|Masterpiece Series Amonkhet|7|Special|{2}{W}{W}|Sorcery|||Destroy all creatures. They can't be regenerated.| +Consecrated Sphinx|Masterpiece Series Amonkhet|8|Special|{4}{U}{U}|Creature - Sphinx|4|6|Flying$Whenever an opponent draws a card, you may draw two cards.| +Counterbalance|Masterpiece Series Amonkhet|9|Special|{U}{U}|Enchantment|||Whenever an opponent casts a spell, you may reveal the top card of your library. If you do, counter that spell if it has the same converted mana cost as the revealed card.| +Counterspell|Masterpiece Series Amonkhet|10|Special|{U}{U}|Instant|||Counter target spell.| +Cryptic Command|Masterpiece Series Amonkhet|11|Special|{1}{U}{U}{U}|Instant|||Choose two - Counter target spell.; Return target permanent to its owner's hand.; Tap all creatures your opponents control.; Draw a card.| +Daze|Masterpiece Series Amonkhet|12|Special|{1}{U}|Instant|||You may return an Island you control to its owner's hand rather than pay Daze's mana cost.$Counter target spell unless its controller pays {1}.| +Divert|Masterpiece Series Amonkhet|13|Special|{U}|Instant|||Change the target of target spell with a single target unless that spell's controller pays {2}.| +Force of Will|Masterpiece Series Amonkhet|14|Special|{3}{U}{U}|Instant|||You may pay 1 life and exile a blue card from your hand rather than pay Force of Will's mana cost.$Counter target spell.| +Pact of Negation|Masterpiece Series Amonkhet|16|Special|{0}|Instant|||Counter target spell.$At the beginning of your next upkeep, pay {3}{U}{U}. If you don't, you lose the game.| +Spell Pierce|Masterpiece Series Amonkhet|17|Special|{U}|Instant|||Counter target noncreature spell unless its controller pays {2}.| +Stifle|Masterpiece Series Amonkhet|18|Special|{U}|Instant|||Counter target activated or triggered ability.| +Attrition|Masterpiece Series Amonkhet|19|Special|{1}{B}{B}|Enchantment|||{B}, Sacrifice a creature: Destroy target nonblack creature.| +Dark Ritual|Masterpiece Series Amonkhet|21|Special|{B}|Instant|||Add {B}{B}{B} to your mana pool.| +Diabolic Intent|Masterpiece Series Amonkhet|22|Special|{1}{B}|Sorcery|||As an additional cost to cast Diabolic Intent, sacrifice a creature.$Search your library for a card and put that card into your hand. Then shuffle your library.| +Entomb|Masterpiece Series Amonkhet|23|Special|{B}|Instant|||Search your library for a card and put that card into your graveyard. Then shuffle your library.| +Mind Twist|Masterpiece Series Amonkhet|24|Special|{X}{B}|Sorcery|||Target player discards X cards at random.| +Aggravated Assault|Masterpiece Series Amonkhet|25|Special|{2}{R}|Enchantment|||{3}{R}{R}: Untap all creatures you control. After this main phase, there is an additional combat phase followed by an additional main phase. Activate this ability only any time you could cast a sorcery.| +Chain Lightning|Masterpiece Series Amonkhet|26|Special|{R}|Sorcery|||Chain Lightning deals 3 damage to target creature or player. Then that player or that creature's controller may pay {R}{R}. If the player does, he or she may copy this spell and may choose a new target for that copy.| +Maelstrom Pulse|Masterpiece Series Amonkhet|29|Special|{1}{B}{G}|Sorcery|||Destroy target nonland permanent and all other permanents with the same name as that permanent.| +Vindicate|Masterpiece Series Amonkhet|30|Special|{1}{W}{B}|Sorcery|||Destroy target permanent.| Duelist's Heritage|Commander 2016|1|R|{2}{W}|Enchantment|||Whenever one or more creatures attack, you may have target attacking creature gain double strike until end of turn.| Entrapment Maneuver|Commander 2016|2|R|{3}{W}|Instant|||Target player sacrifices an attacking creature. You create X 1/1 white Soldier creature tokens, where X is that creature's toughness.| Orzhov Advokist|Commander 2016|3|U|{2}{W}|Creature - Human Advisor|1|4|At the beginning of your upkeep, each player may put two +1/+1 counters on a creature he or she controls. If a player does, creatures that player controls can't attack you or a planeswalker you control until your next turn.| diff --git a/Utils/mtg-sets-data.txt b/Utils/mtg-sets-data.txt index ec33c790b97..e131cd91321 100644 --- a/Utils/mtg-sets-data.txt +++ b/Utils/mtg-sets-data.txt @@ -128,6 +128,7 @@ Mercadian Masques|MMQ| Morningtide|MOR| Magic Player Rewards|MPRP| Masterpiece Series|MPS| +Masterpiece Series Amonkhet|MPS-AKH| Mirrodin|MRD| Nemesis|NEM| New Phyrexia|NPH|