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/ZCTrigger.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/CardCharacteristics.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/SavePreferencesListener.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/SellRules.java -text
|
||||
src/main/java/forge/quest/data/PreconReader.java -text
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
package forge.card;
|
||||
|
||||
import forge.game.GameFormat;
|
||||
import net.slightlymagic.braids.util.lambda.Lambda1;
|
||||
import net.slightlymagic.maxmtg.Predicate;
|
||||
|
||||
@@ -353,5 +354,22 @@ public final class CardEdition implements Comparable<CardEdition> { // immutable
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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 forge.util.FileSection;
|
||||
import forge.util.FileUtil;
|
||||
|
||||
/**
|
||||
@@ -145,34 +146,23 @@ public final class EditionUtils {
|
||||
private List<CardEdition> loadSetData(final Map<String, CardEdition.BoosterData> boosters) {
|
||||
final ArrayList<String> fData = FileUtil.readFile("res/blockdata/setdata.txt");
|
||||
|
||||
|
||||
|
||||
final List<CardEdition> allSets = new ArrayList<CardEdition>();
|
||||
for (final String s : fData) {
|
||||
if (StringUtils.isBlank(s)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final String[] sParts = s.trim().split("\\|");
|
||||
String code = null, code2 = null, name = null;
|
||||
FileSection section = FileSection.parse(s, ":", "|");
|
||||
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));
|
||||
boosters.remove(code);
|
||||
//boosters.remove(code);
|
||||
setsByCode.put(code, set);
|
||||
if (alias != null) {
|
||||
setsByCode.put(alias, set);
|
||||
|
||||
@@ -7,11 +7,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import net.slightlymagic.maxmtg.Predicate;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.Singletons;
|
||||
import forge.game.GameFormat;
|
||||
import forge.util.FileUtil;
|
||||
|
||||
@@ -92,37 +89,6 @@ public final class FormatUtils {
|
||||
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
|
||||
* 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.Collections;
|
||||
@@ -26,6 +26,8 @@ import net.slightlymagic.maxmtg.Predicate;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.Constant;
|
||||
import forge.card.CardRarity;
|
||||
import forge.card.CardRules;
|
||||
import forge.item.CardDb;
|
||||
import forge.item.CardPrinted;
|
||||
import forge.util.MyRandom;
|
||||
@@ -293,7 +295,7 @@ public final class BoosterUtils {
|
||||
* the color
|
||||
* @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);
|
||||
if (null == filter) {
|
||||
return null;
|
||||
@@ -25,9 +25,9 @@ import forge.CardList;
|
||||
import forge.CardUtil;
|
||||
import forge.Constant;
|
||||
import forge.Player;
|
||||
import forge.card.BoosterUtils;
|
||||
import forge.card.CardRarity;
|
||||
import forge.item.CardPrinted;
|
||||
import forge.quest.BoosterUtils;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -25,7 +25,6 @@ import net.slightlymagic.braids.util.lambda.Lambda1;
|
||||
import net.slightlymagic.maxmtg.Predicate;
|
||||
import forge.Singletons;
|
||||
import forge.card.BoosterGenerator;
|
||||
import forge.card.BoosterUtils;
|
||||
import forge.card.CardRarity;
|
||||
import forge.card.CardEdition;
|
||||
import forge.card.FormatUtils;
|
||||
@@ -37,6 +36,7 @@ import forge.item.InventoryItem;
|
||||
import forge.item.ItemPool;
|
||||
import forge.item.ItemPoolView;
|
||||
import forge.item.PreconDeck;
|
||||
import forge.quest.BoosterUtils;
|
||||
import forge.quest.data.QuestPreferences.QPref;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
@@ -317,15 +317,16 @@ public final class QuestUtilCards {
|
||||
/**
|
||||
* 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. */
|
||||
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. */
|
||||
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. */
|
||||
private final Predicate<CardEdition> filterNotExt = Predicate.and(CardEdition.Predicates.CAN_MAKE_BOOSTER,
|
||||
|
||||
@@ -25,7 +25,7 @@ public class FileSection {
|
||||
|
||||
for (final String dd : pairs) {
|
||||
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;
|
||||
@@ -36,7 +36,7 @@ public class FileSection {
|
||||
Pattern splitter = Pattern.compile(Pattern.quote(kvSeparator));
|
||||
for (final String dd : lines) {
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user