mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
BoosterUtils moved to quest (because it is not used from other packages)
Predicates for edition's legality in formats moved to CardEdition, so that global references in FormatUtils were eliminated FileSection now trims its tree keys too, editions are parsed by FileSection class
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -11045,7 +11045,6 @@ src/main/java/forge/Untap.java -text
|
|||||||
src/main/java/forge/Upkeep.java svneol=native#text/plain
|
src/main/java/forge/Upkeep.java svneol=native#text/plain
|
||||||
src/main/java/forge/ZCTrigger.java svneol=native#text/plain
|
src/main/java/forge/ZCTrigger.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/BoosterGenerator.java svneol=native#text/plain
|
src/main/java/forge/card/BoosterGenerator.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/BoosterUtils.java svneol=native#text/plain
|
|
||||||
src/main/java/forge/card/CardBlock.java -text
|
src/main/java/forge/card/CardBlock.java -text
|
||||||
src/main/java/forge/card/CardCharacteristics.java -text
|
src/main/java/forge/card/CardCharacteristics.java -text
|
||||||
src/main/java/forge/card/CardColor.java -text
|
src/main/java/forge/card/CardColor.java -text
|
||||||
@@ -11370,6 +11369,7 @@ src/main/java/forge/properties/NewConstants.java svneol=native#text/plain
|
|||||||
src/main/java/forge/properties/Preferences.java svneol=native#text/plain
|
src/main/java/forge/properties/Preferences.java svneol=native#text/plain
|
||||||
src/main/java/forge/properties/SavePreferencesListener.java svneol=native#text/plain
|
src/main/java/forge/properties/SavePreferencesListener.java svneol=native#text/plain
|
||||||
src/main/java/forge/properties/package-info.java svneol=native#text/plain
|
src/main/java/forge/properties/package-info.java svneol=native#text/plain
|
||||||
|
src/main/java/forge/quest/BoosterUtils.java svneol=native#text/plain
|
||||||
src/main/java/forge/quest/ReadPriceList.java svneol=native#text/plain
|
src/main/java/forge/quest/ReadPriceList.java svneol=native#text/plain
|
||||||
src/main/java/forge/quest/SellRules.java -text
|
src/main/java/forge/quest/SellRules.java -text
|
||||||
src/main/java/forge/quest/data/PreconReader.java -text
|
src/main/java/forge/quest/data/PreconReader.java -text
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package forge.card;
|
package forge.card;
|
||||||
|
|
||||||
|
import forge.game.GameFormat;
|
||||||
import net.slightlymagic.braids.util.lambda.Lambda1;
|
import net.slightlymagic.braids.util.lambda.Lambda1;
|
||||||
import net.slightlymagic.maxmtg.Predicate;
|
import net.slightlymagic.maxmtg.Predicate;
|
||||||
|
|
||||||
@@ -352,6 +353,23 @@ public final class CardEdition implements Comparable<CardEdition> { // immutable
|
|||||||
return subject.canGenerateBooster();
|
return subject.canGenerateBooster();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public final static Predicate<CardEdition> isLegalInFormat(final GameFormat format) {
|
||||||
|
return new LegalInFormat(format);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class LegalInFormat extends Predicate<CardEdition> {
|
||||||
|
private final GameFormat format;
|
||||||
|
|
||||||
|
public LegalInFormat(final GameFormat fmt) {
|
||||||
|
this.format = fmt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isTrue(final CardEdition subject) {
|
||||||
|
return this.format.isSetLegal(subject.getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import java.util.TreeMap;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import forge.util.FileSection;
|
||||||
import forge.util.FileUtil;
|
import forge.util.FileUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -145,34 +146,23 @@ public final class EditionUtils {
|
|||||||
private List<CardEdition> loadSetData(final Map<String, CardEdition.BoosterData> boosters) {
|
private List<CardEdition> loadSetData(final Map<String, CardEdition.BoosterData> boosters) {
|
||||||
final ArrayList<String> fData = FileUtil.readFile("res/blockdata/setdata.txt");
|
final ArrayList<String> fData = FileUtil.readFile("res/blockdata/setdata.txt");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
final List<CardEdition> allSets = new ArrayList<CardEdition>();
|
final List<CardEdition> allSets = new ArrayList<CardEdition>();
|
||||||
for (final String s : fData) {
|
for (final String s : fData) {
|
||||||
if (StringUtils.isBlank(s)) {
|
if (StringUtils.isBlank(s)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String[] sParts = s.trim().split("\\|");
|
FileSection section = FileSection.parse(s, ":", "|");
|
||||||
String code = null, code2 = null, name = null;
|
String code = section.get("code3");
|
||||||
|
int index = section.getInt("index", -1);
|
||||||
|
String code2 = section.get("code2");
|
||||||
|
String name = section.get("name");
|
||||||
|
String alias = section.get("alias");
|
||||||
|
|
||||||
int index = -1;
|
|
||||||
String alias = null;
|
|
||||||
for (final String sPart : sParts) {
|
|
||||||
final String[] kv = sPart.split(":", 2);
|
|
||||||
final String key = kv[0].toLowerCase();
|
|
||||||
if ("code3".equals(key)) {
|
|
||||||
code = kv[1];
|
|
||||||
} else if ("code2".equals(key)) {
|
|
||||||
code2 = kv[1];
|
|
||||||
} else if ("name".equals(key)) {
|
|
||||||
name = kv[1];
|
|
||||||
} else if ("index".equals(key)) {
|
|
||||||
index = Integer.parseInt(kv[1]);
|
|
||||||
} else if ("alias".equals(key)) {
|
|
||||||
alias = kv[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
final CardEdition set = new CardEdition(index, name, code, code2, boosters.get(code));
|
final CardEdition set = new CardEdition(index, name, code, code2, boosters.get(code));
|
||||||
boosters.remove(code);
|
//boosters.remove(code);
|
||||||
setsByCode.put(code, set);
|
setsByCode.put(code, set);
|
||||||
if (alias != null) {
|
if (alias != null) {
|
||||||
setsByCode.put(alias, set);
|
setsByCode.put(alias, set);
|
||||||
|
|||||||
@@ -7,11 +7,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
import net.slightlymagic.maxmtg.Predicate;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import forge.Singletons;
|
|
||||||
import forge.game.GameFormat;
|
import forge.game.GameFormat;
|
||||||
import forge.util.FileUtil;
|
import forge.util.FileUtil;
|
||||||
|
|
||||||
@@ -92,37 +89,6 @@ public final class FormatUtils {
|
|||||||
formats.put(name, thisFormat);
|
formats.put(name, thisFormat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract static class Predicates {
|
|
||||||
|
|
||||||
public static final Predicate<CardEdition> isLegalInFormat(final GameFormat format) {
|
|
||||||
return new LegalInFormat(format);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class LegalInFormat extends Predicate<CardEdition> {
|
|
||||||
private final GameFormat format;
|
|
||||||
|
|
||||||
public LegalInFormat(final GameFormat fmt) {
|
|
||||||
this.format = fmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isTrue(final CardEdition subject) {
|
|
||||||
return this.format.isSetLegal(subject.getCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The Constant setsInT2. */
|
|
||||||
public static final Predicate<CardEdition> SETS_IN_STANDARD = Predicates
|
|
||||||
.isLegalInFormat(Singletons.getModel().getFormats().getStandard());
|
|
||||||
|
|
||||||
/** The Constant setsInExt. */
|
|
||||||
public static final Predicate<CardEdition> SETS_IN_EXT = Predicates.isLegalInFormat(Singletons.getModel().getFormats().getExtended());
|
|
||||||
|
|
||||||
/** The Constant setsInModern. */
|
|
||||||
public static final Predicate<CardEdition> SET_IN_MODERN = Predicates.isLegalInFormat(Singletons.getModel().getFormats().getModern());
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package forge.card;
|
package forge.quest;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -26,6 +26,8 @@ import net.slightlymagic.maxmtg.Predicate;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import forge.Constant;
|
import forge.Constant;
|
||||||
|
import forge.card.CardRarity;
|
||||||
|
import forge.card.CardRules;
|
||||||
import forge.item.CardDb;
|
import forge.item.CardDb;
|
||||||
import forge.item.CardPrinted;
|
import forge.item.CardPrinted;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
@@ -293,7 +295,7 @@ public final class BoosterUtils {
|
|||||||
* the color
|
* the color
|
||||||
* @return the card printed
|
* @return the card printed
|
||||||
*/
|
*/
|
||||||
public static CardPrinted findCardOfColor(final List<CardPrinted> in, final int color) {
|
private static CardPrinted findCardOfColor(final List<CardPrinted> in, final int color) {
|
||||||
final Predicate<CardRules> filter = CardRules.Predicates.Presets.COLORS.get(color);
|
final Predicate<CardRules> filter = CardRules.Predicates.Presets.COLORS.get(color);
|
||||||
if (null == filter) {
|
if (null == filter) {
|
||||||
return null;
|
return null;
|
||||||
@@ -25,9 +25,9 @@ import forge.CardList;
|
|||||||
import forge.CardUtil;
|
import forge.CardUtil;
|
||||||
import forge.Constant;
|
import forge.Constant;
|
||||||
import forge.Player;
|
import forge.Player;
|
||||||
import forge.card.BoosterUtils;
|
|
||||||
import forge.card.CardRarity;
|
import forge.card.CardRarity;
|
||||||
import forge.item.CardPrinted;
|
import forge.item.CardPrinted;
|
||||||
|
import forge.quest.BoosterUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import net.slightlymagic.braids.util.lambda.Lambda1;
|
|||||||
import net.slightlymagic.maxmtg.Predicate;
|
import net.slightlymagic.maxmtg.Predicate;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.card.BoosterGenerator;
|
import forge.card.BoosterGenerator;
|
||||||
import forge.card.BoosterUtils;
|
|
||||||
import forge.card.CardRarity;
|
import forge.card.CardRarity;
|
||||||
import forge.card.CardEdition;
|
import forge.card.CardEdition;
|
||||||
import forge.card.FormatUtils;
|
import forge.card.FormatUtils;
|
||||||
@@ -37,6 +36,7 @@ import forge.item.InventoryItem;
|
|||||||
import forge.item.ItemPool;
|
import forge.item.ItemPool;
|
||||||
import forge.item.ItemPoolView;
|
import forge.item.ItemPoolView;
|
||||||
import forge.item.PreconDeck;
|
import forge.item.PreconDeck;
|
||||||
|
import forge.quest.BoosterUtils;
|
||||||
import forge.quest.data.QuestPreferences.QPref;
|
import forge.quest.data.QuestPreferences.QPref;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
|
|
||||||
@@ -317,15 +317,16 @@ public final class QuestUtilCards {
|
|||||||
/**
|
/**
|
||||||
* Generate cards in shop.
|
* Generate cards in shop.
|
||||||
*/
|
*/
|
||||||
private final Predicate<CardEdition> filterExt = FormatUtils.Predicates.SETS_IN_EXT;
|
private final FormatUtils formats = Singletons.getModel().getFormats();
|
||||||
|
private final Predicate<CardEdition> filterExt = CardEdition.Predicates.isLegalInFormat(formats.getExtended());
|
||||||
|
|
||||||
/** The filter t2booster. */
|
/** The filter t2booster. */
|
||||||
private final Predicate<CardEdition> filterT2booster = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
private final Predicate<CardEdition> filterT2booster = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
||||||
FormatUtils.Predicates.SETS_IN_STANDARD);
|
CardEdition.Predicates.isLegalInFormat(formats.getStandard()));
|
||||||
|
|
||||||
/** The filter ext but t2. */
|
/** The filter ext but t2. */
|
||||||
private final Predicate<CardEdition> filterExtButT2 = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
private final Predicate<CardEdition> filterExtButT2 = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
||||||
Predicate.and(this.filterExt, Predicate.not(FormatUtils.Predicates.SETS_IN_STANDARD)));
|
Predicate.and(this.filterExt, Predicate.not(CardEdition.Predicates.isLegalInFormat(formats.getStandard()))));
|
||||||
|
|
||||||
/** The filter not ext. */
|
/** The filter not ext. */
|
||||||
private final Predicate<CardEdition> filterNotExt = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
private final Predicate<CardEdition> filterNotExt = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public class FileSection {
|
|||||||
|
|
||||||
for (final String dd : pairs) {
|
for (final String dd : pairs) {
|
||||||
final String[] v = splitter.split(dd, 2);
|
final String[] v = splitter.split(dd, 2);
|
||||||
result.lines.put(v[0], v.length > 1 ? v[1].trim() : "");
|
result.lines.put(v[0].trim(), v.length > 1 ? v[1].trim() : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@@ -36,7 +36,7 @@ public class FileSection {
|
|||||||
Pattern splitter = Pattern.compile(Pattern.quote(kvSeparator));
|
Pattern splitter = Pattern.compile(Pattern.quote(kvSeparator));
|
||||||
for (final String dd : lines) {
|
for (final String dd : lines) {
|
||||||
final String[] v = splitter.split(dd, 2);
|
final String[] v = splitter.split(dd, 2);
|
||||||
result.lines.put(v[0], v.length > 1 ? v[1].trim() : "");
|
result.lines.put(v[0].trim(), v.length > 1 ? v[1].trim() : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user