Updated Historical Standard validators

Made both actually test for having Stoneforge Mystic XOR Batterskull. Updated Super Standard Banlist.
This commit is contained in:
benjamin 2015-07-27 21:40:22 -04:00
parent 122ad7a74b
commit cc9bda92af
2 changed files with 23 additions and 10 deletions

View file

@ -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");
@ -135,6 +132,17 @@ public class HistoricalStandard extends Constructed {
boolean valid = false;
// first, check whether misty and batterskull are in the same deck.
Map<String, Integer> 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.
for (String[] sets : standards) {

View file

@ -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");
@ -99,6 +97,17 @@ public class SuperStandard extends Constructed {
boolean valid = false;
// first, check whether misty and batterskull are in the same deck.
Map<String, Integer> 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.
for (String[] sets : 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.