mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 12:02:01 -08:00
Added Eternal format (Legacy without reserve list cards). Fixed Issues 1133 and 1521 (Pauper Deck legality check).
This commit is contained in:
parent
22c95f24a3
commit
d2fec6c61d
4 changed files with 703 additions and 26 deletions
|
|
@ -108,14 +108,16 @@ public class Constructed extends DeckValidator {
|
|||
if (!rarities.isEmpty()) {
|
||||
for (Card card : deck.getCards()) {
|
||||
if (!rarities.contains(card.getRarity())) {
|
||||
invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
|
||||
valid = false;
|
||||
if( !legalRarity(card) ){
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Card card : deck.getSideboard()) {
|
||||
if (!rarities.contains(card.getRarity())) {
|
||||
invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
|
||||
valid = false;
|
||||
if( !legalRarity(card) ){
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -123,34 +125,14 @@ public class Constructed extends DeckValidator {
|
|||
if (!setCodes.isEmpty()) {
|
||||
for (Card card : deck.getCards()) {
|
||||
if (!setCodes.contains(card.getExpansionSetCode())) {
|
||||
// check if card is legal if taken from other set
|
||||
boolean legal = false;
|
||||
List<CardInfo> cardInfos = CardRepository.instance.findCards(card.getName());
|
||||
for (CardInfo cardInfo : cardInfos) {
|
||||
if (setCodes.contains(cardInfo.getSetCode())) {
|
||||
legal = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!legal && !invalid.containsKey(card.getName())) {
|
||||
invalid.put(card.getName(), "Invalid set: " + card.getExpansionSetCode());
|
||||
if( !legalSets(card) ){
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Card card : deck.getSideboard()) {
|
||||
if (!setCodes.contains(card.getExpansionSetCode())) {
|
||||
// check if card is legal if taken from other set
|
||||
boolean legal = false;
|
||||
List<CardInfo> cardInfos = CardRepository.instance.findCards(card.getName());
|
||||
for (CardInfo cardInfo : cardInfos) {
|
||||
if (setCodes.contains(cardInfo.getSetCode())) {
|
||||
legal = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!legal && !invalid.containsKey(card.getName())) {
|
||||
invalid.put(card.getName(), "Invalid set: " + card.getExpansionSetCode());
|
||||
if( !legalSets(card) ){
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
|
|
@ -159,5 +141,36 @@ public class Constructed extends DeckValidator {
|
|||
logger.debug("DECK validate end: " + name + " deckname: " + deck.getName() + " invalids:" + invalid.size());
|
||||
return valid;
|
||||
}
|
||||
|
||||
protected boolean legalRarity(Card card){
|
||||
// check if card is legal if taken from other set
|
||||
boolean legal = false;
|
||||
List<CardInfo> cardInfos = CardRepository.instance.findCards(card.getName());
|
||||
for (CardInfo cardInfo : cardInfos) {
|
||||
if (rarities.contains(cardInfo.getRarity())) {
|
||||
legal = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!legal && !invalid.containsKey(card.getName())) {
|
||||
invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
|
||||
}
|
||||
return legal;
|
||||
}
|
||||
|
||||
protected boolean legalSets(Card card) {
|
||||
// check if card is legal if taken from other set
|
||||
boolean legal = false;
|
||||
List<CardInfo> cardInfos = CardRepository.instance.findCards(card.getName());
|
||||
for (CardInfo cardInfo : cardInfos) {
|
||||
if (setCodes.contains(cardInfo.getSetCode())) {
|
||||
legal = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!legal && !invalid.containsKey(card.getName())) {
|
||||
invalid.put(card.getName(), "Invalid set: " + card.getExpansionSetCode());
|
||||
}
|
||||
return legal;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue