diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalStandard.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalStandard.java index 1c8ba55341f..ceb699b1247 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalStandard.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalStandard.java @@ -18,7 +18,7 @@ import java.util.Map; * * This class was originally made to work with the historical standard ruleset. * Data taken from http://thattournament.website/historic-tournament.php - * (site changed, originally thtp://mtgt.nfshost.com/historic-tournament.php) + * (site changed, originally http://mtgt.nfshost.com/historic-tournament.php) * * If there are any questions or corrections, feel free to contact me. * @@ -111,9 +111,6 @@ public class HistoricalStandard extends Constructed { // banned cards banned.add("Balance"); - // Not banned in the format, but it is either this or Misty, and most - // people choose Misty. - banned.add("Batterskull"); banned.add("Memory Jar"); banned.add("Mind Over Matter"); banned.add("Mind Twist"); @@ -134,6 +131,17 @@ public class HistoricalStandard extends Constructed { Map leastInvalid = null; boolean valid = false; + + // first, check whether misty and batterskull are in the same deck. + Map counts = new HashMap<>(); + countCards(counts, deck.getCards()); + countCards(counts, deck.getSideboard()); + if( counts.containsKey("Stoneforge Mystic") + && counts.containsKey("Batterskull")){ + + // if both, then skip all following tests by returning + return false; + } // up to Lorwyn/Alara, standards will have to be hard-coded. // iterate through the array of standards. diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperStandard.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperStandard.java index be6caf7dc1a..9b6a91dba0f 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperStandard.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/SuperStandard.java @@ -76,10 +76,8 @@ public class SuperStandard extends Constructed { super("Constructed - All Standards"); banned.add("Ancient Den"); - banned.add("Arcbound Ravager"); banned.add("Disciple of the Vault"); banned.add("Great Furnace"); - banned.add("Jace, the Mind Sculptor"); banned.add("Seat of the Synod"); banned.add("Skullclamp"); banned.add("Tree of Tales"); @@ -98,6 +96,17 @@ public class SuperStandard extends Constructed { Map leastInvalid = null; boolean valid = false; + + // first, check whether misty and batterskull are in the same deck. + Map counts = new HashMap<>(); + countCards(counts, deck.getCards()); + countCards(counts, deck.getSideboard()); + if( counts.containsKey("Stoneforge Mystic") + && counts.containsKey("Batterskull")){ + + // if both, then skip all following tests by returning + return false; + } // up to Lorwyn/Alara, standards will have to be hard-coded. // iterate through the array of standards. @@ -113,10 +122,8 @@ public class SuperStandard extends Constructed { // misty and darksteel citadel if( setCodes.contains("MRD") || setCodes.contains("SOM")){ banned.add("Darksteel Citadel"); - banned.add("Stoneforge Mystic"); }else{ banned.remove("Darksteel Citadel"); - banned.remove("Stoneforge Mystic"); } // validate it. If it validates, clear the invalid cards and break. @@ -174,10 +181,8 @@ public class SuperStandard extends Constructed { // misty and darksteel citadel if( setCodes.contains("MRD") || setCodes.contains("SOM")){ banned.add("Darksteel Citadel"); - banned.add("Stoneforge Mystic"); }else{ banned.remove("Darksteel Citadel"); - banned.remove("Stoneforge Mystic"); } // validate it. If it validates, clear the invalid cards and break.