mirror of
https://github.com/magefree/mage.git
synced 2026-01-23 11:49:56 -08:00
GUI enchancements (themes, sound notification, deck validation) (#6755)
GUI enchancements (themes, sound notification, deck validation)
This commit is contained in:
parent
8c4c2728d6
commit
99d5eafc8a
128 changed files with 1988 additions and 11320 deletions
|
|
@ -81,7 +81,7 @@ public class AusHighlander extends Constructed {
|
|||
}
|
||||
|
||||
public AusHighlander() {
|
||||
this("Australian Highlander");
|
||||
super("Australian Highlander", "AU Highlander");
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
if (set.getSetType().isEternalLegal()) {
|
||||
setCodes.add(set.getCode());
|
||||
|
|
@ -89,13 +89,10 @@ public class AusHighlander extends Constructed {
|
|||
}
|
||||
}
|
||||
|
||||
public AusHighlander(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
|
||||
if (deck.getCards().size() != getDeckMinSize()) {
|
||||
invalid.put("Deck", "Must contain " + getDeckMinSize() + " singleton cards: has " + (deck.getCards().size()) + " cards");
|
||||
|
|
|
|||
|
|
@ -32,10 +32,6 @@ public class Brawl extends Constructed {
|
|||
banned.add("Winota, Joiner of Forces");
|
||||
}
|
||||
|
||||
public Brawl(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSideboardMinSize() {
|
||||
return 1;
|
||||
|
|
@ -44,6 +40,7 @@ public class Brawl extends Constructed {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
Card brawler = null;
|
||||
Card companion = null;
|
||||
FilterMana colorIdentity = new FilterMana();
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class CanadianHighlander extends Constructed {
|
|||
}
|
||||
|
||||
public CanadianHighlander() {
|
||||
this("Canadian Highlander");
|
||||
super("Canadian Highlander");
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
if (set.getSetType().isEternalLegal()) {
|
||||
setCodes.add(set.getCode());
|
||||
|
|
@ -71,13 +71,10 @@ public class CanadianHighlander extends Constructed {
|
|||
}
|
||||
}
|
||||
|
||||
public CanadianHighlander(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
|
||||
if (deck.getCards().size() < 100) {
|
||||
invalid.put("Deck", "Must contain 100 or more singleton cards: has " + (deck.getCards().size()) + " cards");
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public class Commander extends Constructed {
|
|||
protected boolean partnerAllowed = true;
|
||||
|
||||
public Commander() {
|
||||
this("Commander");
|
||||
super("Commander");
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
if (set.getSetType().isEternalLegal()) {
|
||||
setCodes.add(set.getCode());
|
||||
|
|
@ -80,6 +80,10 @@ public class Commander extends Constructed {
|
|||
super(name);
|
||||
}
|
||||
|
||||
public Commander(String name, String shortName) {
|
||||
super(name, shortName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDeckMinSize() {
|
||||
return 98;
|
||||
|
|
@ -93,6 +97,7 @@ public class Commander extends Constructed {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
FilterMana colorIdentity = new FilterMana();
|
||||
Set<Card> commanders = new HashSet<>();
|
||||
Card companion = null;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,14 @@ public class Freeform extends DeckValidator {
|
|||
super("Constructed - Freeform");
|
||||
}
|
||||
|
||||
public Freeform(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public Freeform(String name, String shortName) {
|
||||
super(name, shortName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDeckMinSize() {
|
||||
return 40;
|
||||
|
|
@ -25,6 +33,7 @@ public class Freeform extends DeckValidator {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
// http://magic.wizards.com/en/gameinfo/gameplay/formats/freeform
|
||||
if (deck.getCards().size() < getDeckMinSize()) {
|
||||
invalid.put("Deck", "Must contain at least " + getDeckMinSize() + " cards: has only " + deck.getCards().size() + " cards");
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public class FreeformCommander extends Constructed {
|
|||
private static final Map<String, Integer> pdAllowed = new HashMap<>();
|
||||
|
||||
public FreeformCommander() {
|
||||
this("Freeform Commander");
|
||||
super("Freeform Commander");
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
setCodes.add(set.getCode());
|
||||
}
|
||||
|
|
@ -36,6 +36,10 @@ public class FreeformCommander extends Constructed {
|
|||
super(name);
|
||||
}
|
||||
|
||||
public FreeformCommander(String name, String shortName) {
|
||||
super(name, shortName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDeckMinSize() {
|
||||
return 98;
|
||||
|
|
@ -49,6 +53,7 @@ public class FreeformCommander extends Constructed {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
FilterMana colorIdentity = new FilterMana();
|
||||
Set<Card> commanders = new HashSet<>();
|
||||
Card companion = null;
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ public class HistoricalType2 extends Constructed {
|
|||
Map<String, String> leastInvalid = null;
|
||||
|
||||
boolean valid = false;
|
||||
invalid.clear();
|
||||
|
||||
// first, check whether misty and batterskull are in the same deck.
|
||||
Map<String, Integer> counts = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -14,11 +14,7 @@ import java.util.List;
|
|||
public class Momir extends DeckValidator {
|
||||
|
||||
public Momir() {
|
||||
this("Momir Basic");
|
||||
}
|
||||
|
||||
public Momir(String name) {
|
||||
super(name);
|
||||
super("Momir Basic", "Momir");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -34,6 +30,7 @@ public class Momir extends DeckValidator {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
|
||||
if (deck.getCards().size() != getDeckMinSize()) {
|
||||
invalid.put("Deck", "Must contain " + getDeckMinSize() + " cards: has " + deck.getCards().size() + " cards");
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public class Oathbreaker extends Vintage {
|
|||
|
||||
public Oathbreaker() {
|
||||
super();
|
||||
this.name = "Oathbreaker";
|
||||
setName("Oathbreaker");
|
||||
|
||||
// banned = vintage + oathbreaker's list: https://oathbreakermtg.org/banned-list/
|
||||
// last updated 4/24/20 - Dark Ritual banned
|
||||
|
|
@ -82,6 +82,7 @@ public class Oathbreaker extends Vintage {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
|
||||
if (deck.getCards().size() + deck.getSideboard().size() != 60) {
|
||||
invalid.put("Deck", "Must contain " + 60 + " cards: has " + (deck.getCards().size() + deck.getSideboard().size()) + " cards");
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import mage.cards.ExpansionSet;
|
|||
import mage.cards.Sets;
|
||||
import mage.cards.decks.Constructed;
|
||||
import mage.cards.decks.Deck;
|
||||
import mage.cards.decks.PennyDreadfulLegalityUtil;
|
||||
import mage.filter.FilterMana;
|
||||
import mage.util.ManaUtil;
|
||||
|
||||
|
|
@ -23,10 +24,9 @@ public class PennyDreadfulCommander extends Constructed {
|
|||
|
||||
protected List<String> bannedCommander = new ArrayList<>();
|
||||
private static final Map<String, Integer> pdAllowed = new HashMap<>();
|
||||
private static boolean setupAllowed = false;
|
||||
|
||||
public PennyDreadfulCommander() {
|
||||
this("Penny Dreadful Commander");
|
||||
super("Penny Dreadful Commander", "Penny");
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
if (set.getSetType().isEternalLegal()) {
|
||||
setCodes.add(set.getCode());
|
||||
|
|
@ -34,10 +34,6 @@ public class PennyDreadfulCommander extends Constructed {
|
|||
}
|
||||
}
|
||||
|
||||
public PennyDreadfulCommander(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDeckMinSize() {
|
||||
return 98;
|
||||
|
|
@ -51,6 +47,7 @@ public class PennyDreadfulCommander extends Constructed {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
FilterMana colorIdentity = new FilterMana();
|
||||
Set<Card> commanders = new HashSet<>();
|
||||
Card companion = null;
|
||||
|
|
@ -110,7 +107,10 @@ public class PennyDreadfulCommander extends Constructed {
|
|||
countCards(counts, deck.getSideboard());
|
||||
valid = checkCounts(1, counts) && valid;
|
||||
|
||||
generatePennyDreadfulHash();
|
||||
if (pdAllowed.isEmpty()) {
|
||||
pdAllowed.putAll(PennyDreadfulLegalityUtil.getLegalCardList());
|
||||
}
|
||||
|
||||
for (String wantedCard : counts.keySet()) {
|
||||
if (!(pdAllowed.containsKey(wantedCard))) {
|
||||
invalid.put(wantedCard, "Banned");
|
||||
|
|
@ -199,22 +199,4 @@ public class PennyDreadfulCommander extends Constructed {
|
|||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
public void generatePennyDreadfulHash() {
|
||||
if (setupAllowed == false) {
|
||||
setupAllowed = true;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
Properties properties = new Properties();
|
||||
try {
|
||||
properties.load(PennyDreadfulCommander.class.getResourceAsStream("pennydreadful.properties"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
for (final Entry<Object, Object> entry : properties.entrySet()) {
|
||||
pdAllowed.put((String) entry.getKey(), 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ public class SuperType2 extends Constructed {
|
|||
Map<String, String> leastInvalid = null;
|
||||
|
||||
boolean valid = false;
|
||||
invalid.clear();
|
||||
|
||||
// first, check whether misty and batterskull are in the same deck.
|
||||
Map<String, Integer> counts = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public class TinyLeaders extends Constructed {
|
|||
protected List<String> bannedCommander = new ArrayList<>();
|
||||
|
||||
public TinyLeaders() {
|
||||
this("Tiny Leaders");
|
||||
super("Tiny Leaders");
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
if (set.getSetType().isEternalLegal()) {
|
||||
setCodes.add(set.getCode());
|
||||
|
|
@ -86,10 +86,6 @@ public class TinyLeaders extends Constructed {
|
|||
bannedCommander.add("Derevi, Empyrical Tactician");
|
||||
}
|
||||
|
||||
public TinyLeaders(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDeckMinSize() {
|
||||
return 49; // commander gives from deck name
|
||||
|
|
@ -107,6 +103,7 @@ public class TinyLeaders extends Constructed {
|
|||
@Override
|
||||
public boolean validate(Deck deck) {
|
||||
boolean valid = true;
|
||||
invalid.clear();
|
||||
|
||||
if (deck.getCards().size() != getDeckMinSize()) {
|
||||
invalid.put("Deck", "Must contain " + getDeckMinSize() + " cards: has " + deck.getCards().size() + " cards");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue