From e30eecead300bfdf6b14f0e25ee52db94abc9db2 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Mon, 4 Mar 2019 04:49:49 +0400 Subject: [PATCH] Refactor set's legality, Modern Horizons now available for modern formats; --- .../client/util/sets/ConstructedFormats.java | 51 +++++++++++-------- .../src/mage/deck/AusHighlander.java | 2 +- .../src/mage/deck/CanadianHighlander.java | 2 +- .../src/mage/deck/Commander.java | 4 +- .../src/mage/deck/Eternal.java | 3 +- .../src/mage/deck/Extended.java | 2 +- .../src/mage/deck/Frontier.java | 2 +- .../src/mage/deck/HistoricalType2.java | 3 +- .../src/mage/deck/Legacy.java | 4 +- .../src/mage/deck/Modern.java | 2 +- .../src/mage/deck/ModernNoBannedList.java | 3 +- .../src/mage/deck/Pauper.java | 2 +- .../src/mage/deck/PennyDreadfulCommander.java | 3 +- .../src/mage/deck/Standard.java | 2 +- .../src/mage/deck/SuperType2.java | 2 +- .../src/mage/deck/TinyLeaders.java | 3 +- .../src/mage/deck/Vintage.java | 4 +- .../DuelDecksAnthologyDivineVsDemonic.java | 3 +- Mage.Sets/src/mage/sets/ModernHorizons.java | 5 +- Mage.Sets/src/mage/sets/ModernMasters.java | 4 +- .../src/mage/sets/ModernMasters2015.java | 3 +- .../src/mage/sets/ModernMasters2017.java | 4 +- .../PremiumDeckSeriesFireAndLightning.java | 4 +- .../main/java/mage/cards/ExpansionSet.java | 14 ----- Mage/src/main/java/mage/cards/Sets.java | 6 +-- .../mage/cards/repository/CardRepository.java | 4 +- .../mage/cards/repository/CardScanner.java | 2 +- .../mage/cards/repository/ExpansionInfo.java | 7 ++- .../src/main/java/mage/constants/SetType.java | 25 ++++++++- 29 files changed, 86 insertions(+), 89 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java b/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java index 2147af97e80..37d050fc46e 100644 --- a/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java +++ b/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java @@ -95,41 +95,52 @@ public final class ConstructedFormats { return; } + // build formats list for deck validators for (ExpansionInfo set : ExpansionRepository.instance.getAll()) { expansionInfo.put(set.getName(), set); formats.add(set.getName()); + // full list underlyingSetCodesPerFormat.put(set.getName(), new ArrayList<>()); underlyingSetCodesPerFormat.get(set.getName()).add(set.getCode()); - // create the play formats - if (set.getType() == SetType.CUSTOM_SET) { + // custom + if (set.getType().isCustomSet()) { underlyingSetCodesPerFormat.get(CUSTOM).add(set.getCode()); continue; } - if (set.getType() == SetType.JOKESET) { + + // joke + if (set.getType().isJokeSet()) { underlyingSetCodesPerFormat.get(JOKE).add(set.getCode()); continue; } + + // vintage/legacy (any set, TODO: even ?custom set?) underlyingSetCodesPerFormat.get(VINTAGE_LEGACY).add(set.getCode()); - if (set.getType() == SetType.CORE || set.getType() == SetType.EXPANSION || set.getType() == SetType.SUPPLEMENTAL_STANDARD_LEGAL) { - if (STANDARD_CARDS.getSetCodes().contains(set.getCode())) { - underlyingSetCodesPerFormat.get(STANDARD).add(set.getCode()); - } - if (set.getType() != SetType.SUPPLEMENTAL_STANDARD_LEGAL) { - if (set.getReleaseDate().after(extendedDate) && (set.getType() == SetType.EXPANSION || set.getType() == SetType.CORE)) { - underlyingSetCodesPerFormat.get(EXTENDED).add(set.getCode()); - } - if (set.getReleaseDate().after(frontierDate) && (set.getType() == SetType.EXPANSION || set.getType() == SetType.CORE)) { - underlyingSetCodesPerFormat.get(FRONTIER).add(set.getCode()); - } - if (set.getReleaseDate().after(modernDate) && (set.getType() == SetType.EXPANSION || set.getType() == SetType.CORE)) { - underlyingSetCodesPerFormat.get(MODERN).add(set.getCode()); - } - } + + // standard (dependent on current date) + if (STANDARD_CARDS.getSetCodes().contains(set.getCode())) { + underlyingSetCodesPerFormat.get(STANDARD).add(set.getCode()); } - // Create the Block formats + // extended + if (set.getType().isStandardLegal() && set.getReleaseDate().after(extendedDate)) { + underlyingSetCodesPerFormat.get(EXTENDED).add(set.getCode()); + } + + // frontier + if (set.getType().isStandardLegal() && set.getReleaseDate().after(frontierDate)) { + underlyingSetCodesPerFormat.get(FRONTIER).add(set.getCode()); + } + + // modern + if (set.getType().isModernLegal() && set.getReleaseDate().after(modernDate)) { + underlyingSetCodesPerFormat.get(MODERN).add(set.getCode()); + } + + // BLOCKS formats + if (set.getType() == SetType.EXPANSION && set.getBlockName() != null) { String blockDisplayName = getBlockDisplayName(set.getBlockName()); underlyingSetCodesPerFormat.computeIfAbsent(blockDisplayName, k -> new ArrayList<>()); @@ -144,7 +155,6 @@ public final class ConstructedFormats { if (expansionInfo.get(blockDisplayName).getReleaseDate().after(set.getReleaseDate())) { expansionInfo.put(blockDisplayName, set); } - } if (set.getType() == SetType.SUPPLEMENTAL && set.getBlockName() != null) { @@ -235,6 +245,7 @@ public final class ConstructedFormats { } return expansionInfo1.getType().compareTo(expansionInfo2.getType()); }); + if (!formats.isEmpty()) { formats.add(0, CUSTOM); formats.add(0, JOKE); diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java index b427b1dfc2b..beb8c736bd4 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/AusHighlander.java @@ -81,7 +81,7 @@ public class AusHighlander extends Constructed { public AusHighlander() { this("Australian Highlander"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/CanadianHighlander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/CanadianHighlander.java index 5ec2856facd..6ee6c916bef 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/CanadianHighlander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/CanadianHighlander.java @@ -63,7 +63,7 @@ public class CanadianHighlander extends Constructed { public CanadianHighlander() { this("Canadian Highlander"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java index 45dcba803b2..a14bf538925 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java @@ -26,7 +26,7 @@ public class Commander extends Constructed { public Commander() { this("Commander"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } @@ -743,7 +743,7 @@ public class Commander extends Constructed { } edhPowerLevel += numberInfinitePieces * 12; - edhPowerLevel = (int) Math.round(edhPowerLevel / 10); + edhPowerLevel = Math.round(edhPowerLevel / 10); if (edhPowerLevel >= 100) { edhPowerLevel = 99; } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java index 9f84e84deaa..2b0ec13871f 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java @@ -1,4 +1,3 @@ - package mage.deck; import mage.cards.ExpansionSet; @@ -17,7 +16,7 @@ public class Eternal extends Constructed { public Eternal() { super("Constructed - Eternal"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java index 1d5e9938860..fccedcb81f5 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java @@ -22,7 +22,7 @@ public class Extended extends Constructed { cutoff = new GregorianCalendar(current.get(Calendar.YEAR) - 4, Calendar.SEPTEMBER, 1); } for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isStandardLegal() && set.getReleaseDate().after(cutoff.getTime())) { + if (set.getSetType().isStandardLegal() && set.getReleaseDate().after(cutoff.getTime())) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Frontier.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Frontier.java index 8c9a30a67fa..28aa7cc776f 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Frontier.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Frontier.java @@ -17,7 +17,7 @@ public class Frontier extends Constructed { Date cutoff = new GregorianCalendar(2014, 6, 18).getTime(); // M15 release date for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isStandardLegal() && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) { + if (set.getSetType().isStandardLegal() && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java index ed2a3f037ed..04a69570643 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java @@ -173,7 +173,8 @@ public class HistoricalType2 extends Constructed { // Get the sets in that time period. // (code taken from standard.java) for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isStandardLegal() && set.getReleaseDate().after(start.getTime()) + if (set.getSetType().isStandardLegal() + && set.getReleaseDate().after(start.getTime()) && set.getReleaseDate().before(end.getTime())) { setCodes.add(set.getCode()); } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Legacy.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Legacy.java index 0b9b55a451e..59df80af48d 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Legacy.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Legacy.java @@ -3,10 +3,8 @@ package mage.deck; import mage.cards.ExpansionSet; import mage.cards.Sets; import mage.cards.decks.Constructed; -import mage.constants.SetType; /** - * * LevelX2 */ public class Legacy extends Constructed { @@ -14,7 +12,7 @@ public class Legacy extends Constructed { public Legacy() { super("Constructed - Legacy"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java index 25bbe08afa6..44d2031e34b 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java @@ -17,7 +17,7 @@ public class Modern extends Constructed { Date cutoff = new GregorianCalendar(2003, 6, 28).getTime(); // Eight edition release date for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isStandardLegal() && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) { + if (set.getSetType().isModernLegal() && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/ModernNoBannedList.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/ModernNoBannedList.java index aa9db8f57f1..1718cc3b3a0 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/ModernNoBannedList.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/ModernNoBannedList.java @@ -17,8 +17,7 @@ public class ModernNoBannedList extends Constructed { Date cutoff = new GregorianCalendar(2003, 6, 28).getTime(); // Eight edition release date for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isStandardLegal() - && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) { + if (set.getSetType().isModernLegal() && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Pauper.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Pauper.java index d0425c8d8d1..7fdb3ca6a4a 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Pauper.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Pauper.java @@ -20,7 +20,7 @@ public class Pauper extends Constructed { //TODO: Add only Magic Online sets for pauper for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/PennyDreadfulCommander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/PennyDreadfulCommander.java index 164cf8c1cf4..56fc7e5d7d9 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/PennyDreadfulCommander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/PennyDreadfulCommander.java @@ -1,4 +1,3 @@ - package mage.deck; import mage.abilities.Ability; @@ -27,7 +26,7 @@ public class PennyDreadfulCommander extends Constructed { public PennyDreadfulCommander() { this("Penny Dreadful Commander"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java index bf8dac70f32..5f12cbd0ca0 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java @@ -55,7 +55,7 @@ public class Standard extends Constructed { for (ExpansionSet set : sets) { boolean isDateCompatible = earliestDate != null && !set.getReleaseDate().before(earliestDate) /*!set.getReleaseDate().after(current.getTime())*/; // no after date restrict for early tests and beta - if (set.isStandardLegal() && isDateCompatible) { + if (set.getSetType().isStandardLegal() && isDateCompatible) { codes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperType2.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperType2.java index b0624b5ec0c..8bf79d1f695 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperType2.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperType2.java @@ -154,7 +154,7 @@ public class SuperType2 extends Constructed { // Get the sets in that time period. // (code taken from standard.java) for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isStandardLegal() + if (set.getSetType().isStandardLegal() && set.getReleaseDate().after(start.getTime()) && set.getReleaseDate().before(end.getTime())) { setCodes.add(set.getCode()); diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java index f2250b79fb9..b26b2a59605 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java @@ -1,4 +1,3 @@ - package mage.deck; import mage.abilities.common.CanBeYourCommanderAbility; @@ -26,7 +25,7 @@ public class TinyLeaders extends Constructed { public TinyLeaders() { this("Tiny Leaders"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java index 6ce5836ca87..481479cbc2b 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java @@ -1,4 +1,3 @@ - package mage.deck; import mage.cards.ExpansionSet; @@ -13,7 +12,7 @@ public class Vintage extends Constructed { public Vintage() { super("Constructed - Vintage"); for (ExpansionSet set : Sets.getInstance().values()) { - if (set.isEternalLegal()) { + if (set.getSetType().isEternalLegal()) { setCodes.add(set.getCode()); } } @@ -89,6 +88,5 @@ public class Vintage extends Constructed { restricted.add("Wheel of Fortune"); restricted.add("Windfall"); restricted.add("Yawgmoth's Will"); - } } diff --git a/Mage.Sets/src/mage/sets/DuelDecksAnthologyDivineVsDemonic.java b/Mage.Sets/src/mage/sets/DuelDecksAnthologyDivineVsDemonic.java index c7ac43ed642..a25fdfb6e43 100644 --- a/Mage.Sets/src/mage/sets/DuelDecksAnthologyDivineVsDemonic.java +++ b/Mage.Sets/src/mage/sets/DuelDecksAnthologyDivineVsDemonic.java @@ -16,8 +16,7 @@ public final class DuelDecksAnthologyDivineVsDemonic extends ExpansionSet { } private DuelDecksAnthologyDivineVsDemonic() { - super("Duel Decks: Anthology, Divine vs. Demonic", "DD3DVD", ExpansionSet.buildDate(2014, 12, 5), - SetType.SUPPLEMENTAL); + super("Duel Decks: Anthology, Divine vs. Demonic", "DD3DVD", ExpansionSet.buildDate(2014, 12, 5), SetType.SUPPLEMENTAL); this.blockName = "Duel Decks: Anthology"; this.hasBasicLands = true; diff --git a/Mage.Sets/src/mage/sets/ModernHorizons.java b/Mage.Sets/src/mage/sets/ModernHorizons.java index b203f03c0cf..ed129a78a71 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons.java @@ -17,10 +17,10 @@ public final class ModernHorizons extends ExpansionSet { private ModernHorizons() { // TODO: update the set type closer to release (no point right now, the cards won't be legal for a while) - super("Modern Horizons", "MH1", ExpansionSet.buildDate(2019, 6, 14), SetType.SUPPLEMENTAL); + super("Modern Horizons", "MH1", ExpansionSet.buildDate(2019, 6, 14), SetType.SUPPLEMENTAL_MODERN_LEGAL); this.blockName = "Modern Horizons"; this.hasBasicLands = false; - this.hasBoosters = true; + this.hasBoosters = false; // TODO: enable after more cards will be available this.numBoosterLands = 0; this.numBoosterCommon = 11; this.numBoosterUncommon = 3; @@ -30,5 +30,4 @@ public final class ModernHorizons extends ExpansionSet { cards.add(new SetCardInfo("Cabal Therapist", 80, Rarity.RARE, mage.cards.c.CabalTherapist.class)); cards.add(new SetCardInfo("Serra the Benevolent", 26, Rarity.MYTHIC, mage.cards.s.SerraTheBenevolent.class)); } - } diff --git a/Mage.Sets/src/mage/sets/ModernMasters.java b/Mage.Sets/src/mage/sets/ModernMasters.java index 638fc63faae..9b87034f21c 100644 --- a/Mage.Sets/src/mage/sets/ModernMasters.java +++ b/Mage.Sets/src/mage/sets/ModernMasters.java @@ -1,4 +1,3 @@ - package mage.sets; import mage.cards.ExpansionSet; @@ -6,7 +5,6 @@ import mage.constants.Rarity; import mage.constants.SetType; /** - * * @author LevelX2 */ public final class ModernMasters extends ExpansionSet { @@ -18,7 +16,7 @@ public final class ModernMasters extends ExpansionSet { } private ModernMasters() { - super("Modern Masters", "MMA", ExpansionSet.buildDate(2013, 6, 7), SetType.SUPPLEMENTAL); + super("Modern Masters", "MMA", ExpansionSet.buildDate(2013, 6, 7), SetType.SUPPLEMENTAL_MODERN_LEGAL); this.blockName = "Reprint"; this.hasBasicLands = false; this.hasBoosters = true; diff --git a/Mage.Sets/src/mage/sets/ModernMasters2015.java b/Mage.Sets/src/mage/sets/ModernMasters2015.java index 32302982315..c577a996287 100644 --- a/Mage.Sets/src/mage/sets/ModernMasters2015.java +++ b/Mage.Sets/src/mage/sets/ModernMasters2015.java @@ -5,7 +5,6 @@ import mage.constants.Rarity; import mage.constants.SetType; /** - * * @author fireshoes */ public final class ModernMasters2015 extends ExpansionSet { @@ -17,7 +16,7 @@ public final class ModernMasters2015 extends ExpansionSet { } private ModernMasters2015() { - super("Modern Masters 2015", "MM2", ExpansionSet.buildDate(2015, 5, 22), SetType.SUPPLEMENTAL); + super("Modern Masters 2015", "MM2", ExpansionSet.buildDate(2015, 5, 22), SetType.SUPPLEMENTAL_MODERN_LEGAL); this.blockName = "Reprint"; this.hasBasicLands = false; this.hasBoosters = true; diff --git a/Mage.Sets/src/mage/sets/ModernMasters2017.java b/Mage.Sets/src/mage/sets/ModernMasters2017.java index 6686b061345..8137d6771d8 100644 --- a/Mage.Sets/src/mage/sets/ModernMasters2017.java +++ b/Mage.Sets/src/mage/sets/ModernMasters2017.java @@ -1,4 +1,3 @@ - package mage.sets; import mage.cards.ExpansionSet; @@ -6,7 +5,6 @@ import mage.constants.Rarity; import mage.constants.SetType; /** - * * @author fireshoes */ public final class ModernMasters2017 extends ExpansionSet { @@ -18,7 +16,7 @@ public final class ModernMasters2017 extends ExpansionSet { } private ModernMasters2017() { - super("Modern Masters 2017", "MM3", ExpansionSet.buildDate(2017, 3, 17), SetType.SUPPLEMENTAL); + super("Modern Masters 2017", "MM3", ExpansionSet.buildDate(2017, 3, 17), SetType.SUPPLEMENTAL_MODERN_LEGAL); this.blockName = "Reprint"; this.hasBasicLands = false; this.hasBoosters = true; diff --git a/Mage.Sets/src/mage/sets/PremiumDeckSeriesFireAndLightning.java b/Mage.Sets/src/mage/sets/PremiumDeckSeriesFireAndLightning.java index ec04e84bdd1..69f7688c0e3 100644 --- a/Mage.Sets/src/mage/sets/PremiumDeckSeriesFireAndLightning.java +++ b/Mage.Sets/src/mage/sets/PremiumDeckSeriesFireAndLightning.java @@ -1,4 +1,3 @@ - package mage.sets; import mage.cards.ExpansionSet; @@ -17,8 +16,7 @@ public final class PremiumDeckSeriesFireAndLightning extends ExpansionSet { } private PremiumDeckSeriesFireAndLightning() { - super("Premium Deck Series: Fire and Lightning", "PD2", ExpansionSet.buildDate(2010, 11, 1), - SetType.SUPPLEMENTAL); + super("Premium Deck Series: Fire and Lightning", "PD2", ExpansionSet.buildDate(2010, 11, 1), SetType.SUPPLEMENTAL); this.hasBasicLands = true; cards.add(new SetCardInfo("Ball Lightning", 12, Rarity.RARE, mage.cards.b.BallLightning.class)); diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index 50e6a7bfde9..855d42caed1 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -600,20 +600,6 @@ public abstract class ExpansionSet implements Serializable { return new ArrayList<>(); } - public boolean isCustomSet() { - return setType == SetType.CUSTOM_SET; - } - - public boolean isEternalLegal() { - // any official sets except un-sets - return setType != SetType.CUSTOM_SET && setType != SetType.JOKESET; - } - - public boolean isStandardLegal() { - // any official sets that was in standard - return setType == SetType.CORE || setType == SetType.EXPANSION || setType == SetType.SUPPLEMENTAL_STANDARD_LEGAL; - } - public void removeSavedCards() { savedCards.clear(); } diff --git a/Mage/src/main/java/mage/cards/Sets.java b/Mage/src/main/java/mage/cards/Sets.java index f52bbccb6e6..741acfd59c2 100644 --- a/Mage/src/main/java/mage/cards/Sets.java +++ b/Mage/src/main/java/mage/cards/Sets.java @@ -51,15 +51,11 @@ public class Sets extends HashMap { throw new IllegalArgumentException("Set code " + set.getCode() + " already exists."); } this.put(set.getCode(), set); - if (set.isCustomSet()) { + if (set.getSetType().isCustomSet()) { customSets.add(set.getCode()); } } - public static boolean isCustomSet(String setCode) { - return getInstance().customSets.contains(setCode); - } - /** * Generates card pool of cardsCount cards that have manacost of allowed * colors. diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 89434c8e8aa..d5cb2cb63cb 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -12,7 +12,6 @@ import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SetType; import mage.constants.SuperType; import mage.game.events.Listener; import mage.util.RandomUtil; @@ -407,8 +406,7 @@ public enum CardRepository { return cardinfo; } - if ((set.getType() == SetType.EXPANSION || set.getType() == SetType.CORE) - && (lastExpansionDate == null || set.getReleaseDate().after(lastExpansionDate))) { + if (set.getType().isStandardLegal() && (lastExpansionDate == null || set.getReleaseDate().after(lastExpansionDate))) { cardToUse = cardinfo; lastExpansionDate = set.getReleaseDate(); } diff --git a/Mage/src/main/java/mage/cards/repository/CardScanner.java b/Mage/src/main/java/mage/cards/repository/CardScanner.java index 2893f409df6..6660c6da847 100644 --- a/Mage/src/main/java/mage/cards/repository/CardScanner.java +++ b/Mage/src/main/java/mage/cards/repository/CardScanner.java @@ -80,7 +80,7 @@ public final class CardScanner { Collection sets = Sets.getInstance().values(); List cards = new ArrayList<>(); for (ExpansionSet set : sets) { - if (ignoreCustomSets && set.isCustomSet()) { + if (ignoreCustomSets && set.getSetType().isCustomSet()) { continue; } for (ExpansionSet.SetCardInfo setInfo : set.getSetCardInfo()) { diff --git a/Mage/src/main/java/mage/cards/repository/ExpansionInfo.java b/Mage/src/main/java/mage/cards/repository/ExpansionInfo.java index cc4f20166b6..8b17210ea50 100644 --- a/Mage/src/main/java/mage/cards/repository/ExpansionInfo.java +++ b/Mage/src/main/java/mage/cards/repository/ExpansionInfo.java @@ -3,12 +3,12 @@ package mage.cards.repository; import com.j256.ormlite.field.DataType; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; -import java.util.Date; import mage.cards.ExpansionSet; import mage.constants.SetType; +import java.util.Date; + /** - * * @author North */ @DatabaseTable(tableName = "expansion") @@ -16,7 +16,7 @@ public class ExpansionInfo { @DatabaseField(unique = true) protected String name; - @DatabaseField(id = true,unique = true) + @DatabaseField(id = true, unique = true) protected String code; @DatabaseField protected String blockName; @@ -74,5 +74,4 @@ public class ExpansionInfo { public String toString() { return name; } - } diff --git a/Mage/src/main/java/mage/constants/SetType.java b/Mage/src/main/java/mage/constants/SetType.java index ed23a233bba..c1d29222306 100644 --- a/Mage/src/main/java/mage/constants/SetType.java +++ b/Mage/src/main/java/mage/constants/SetType.java @@ -1,7 +1,6 @@ package mage.constants; /** - * * @author North */ public enum SetType { @@ -10,6 +9,7 @@ public enum SetType { MAGIC_ONLINE("Magic Online"), SUPPLEMENTAL("Supplemental"), SUPPLEMENTAL_STANDARD_LEGAL("Standard Legal Supplemental"), + SUPPLEMENTAL_MODERN_LEGAL("Modern Legal Supplemental"), PROMOTIONAL("Promotional"), JOKESET("Joke Set"), CUSTOM_SET("Unofficial Set"); @@ -24,4 +24,27 @@ public enum SetType { public String toString() { return text; } + + public boolean isCustomSet() { + return this == SetType.CUSTOM_SET; + } + + public boolean isJokeSet() { + return this == SetType.JOKESET; + } + + public boolean isEternalLegal() { + // any official sets except un-sets + return this != SetType.CUSTOM_SET && this != SetType.JOKESET; + } + + public boolean isStandardLegal() { + // any official sets that was in standard + return this == SetType.CORE || this == SetType.EXPANSION || this == SetType.SUPPLEMENTAL_STANDARD_LEGAL; + } + + public boolean isModernLegal() { + // any official sets that was in modern (standard + Modern Horizons) + return this.isStandardLegal() || this == SetType.SUPPLEMENTAL_MODERN_LEGAL; + } }