always show unimplemented card data, remove option and AllCardNames.txt

master
melvinzhang 2016-12-14 21:19:38 +08:00
parent 4673cac98f
commit bb2e06ce8e
6 changed files with 19 additions and 16335 deletions

View File

@ -524,7 +524,6 @@ checks: \
check_requires_groovy_code \
check_script_name \
check_tokens \
check_all_cards \
check_unique_property \
check_required_property \
check_spells \
@ -634,11 +633,6 @@ check_unused_choice:
diff declared-choices used-choices | ${NO_OUTPUT}
rm declared-choices used-choices
check_all_cards:
diff \
<(grep "name=" `grep "token=\|^overlay" -Lr release/Magarena/scripts release/Magarena/scripts_missing` -h | sed 's/name=//' | sort | uniq) \
<(sort resources/magic/data/AllCardNames.txt)
check_mana_or_combat:
diff \
<(grep mana_or_combat -lr release/Magarena/scripts) \
@ -654,8 +648,8 @@ check_tap_tap:
grep "{T}, Tap" -ir release/Magarena/scripts | grep -v oracle | grep -iv "{T}, Tap another" | ${NO_OUTPUT}
check_no_extra_space:
grep "^[[:space:]]" resources/magic/data/AllCardNames.txt -r resources/magic/data/sets | ${NO_OUTPUT}
grep "[[:space:]]$$" resources/magic/data/AllCardNames.txt -r resources/magic/data/sets | ${NO_OUTPUT}
grep "^[[:space:]]" -r resources/magic/data/sets | ${NO_OUTPUT}
grep "[[:space:]]$$" -r resources/magic/data/sets | ${NO_OUTPUT}
crash.txt: $(wildcard *.log)
for i in `grep "^Excep" -l $^`; do \
@ -821,9 +815,6 @@ common_costs:
push: clean normalize_files checks debug
git push origin master
resources/magic/data/AllCardNames.txt:
grep "<name>" -r cards/cards.xml | sed 's/<[^>]*>//g;s/^ *//' | unaccent utf-8 | recode html..ascii | sort > $@
resources/magic/data/sets/%.txt:
curl https://mtgjson.com/json/$*.json | jq -r .cards[].name | LC_ALL=C sort | uniq > $@

File diff suppressed because it is too large Load Diff

View File

@ -356,55 +356,15 @@ public class CardDefinitions {
}
}
/**
* Returns a list of card names which have yet to be implemented.
* <p>
* {@code cardsMap} contains a list of current playable cards.
* {@code AllCardsNames.txt} contains the name of every possible playable card.
* The difference is a list of unimplemented cards.
*/
public static List<String> getMissingCardNames() throws IOException {
final List<String> missingCardNames = new ArrayList<>();
final InputStream stream = MagicResources.getAllCardNames();
try (final Scanner sc = new Scanner(stream, FileIO.UTF8.name())) {
while (sc.hasNextLine()) {
final String cardName = sc.nextLine();
if (!allPlayableCardDefs.containsKey(getASCII(cardName))) {
missingCardNames.add(cardName);
}
}
}
return missingCardNames;
}
private static void loadMissingCards(final List<String> missingCardNames) {
final HashMap<String, MagicCardDefinition> missingScripts = new HashMap<>();
if (GeneralConfig.getInstance().showMissingCardData()) {
final File[] scriptFiles = getSortedMissingScriptFiles();
if (scriptFiles != null) {
for (final File file : scriptFiles) {
MagicCardDefinition cdef = prop2carddef(file, true);
missingScripts.put(cdef.getAsciiName(), cdef);
}
}
}
private static void loadMissingCards() {
missingCards = new HashMap<>();
for (String cardName : missingCardNames) {
final String cardKey = getASCII(cardName);
if (missingScripts.containsKey(cardKey)) {
missingCards.put(cardKey, missingScripts.get(cardKey));
} else {
final MagicCardDefinition card = new MagicCardDefinition();
card.setName(cardName);
card.setDistinctName(cardName);
card.setInvalid();
missingCards.put(cardKey, card);
final File[] scriptFiles = getSortedMissingScriptFiles();
if (scriptFiles != null) {
for (final File file : scriptFiles) {
MagicCardDefinition cdef = prop2carddef(file, true);
missingCards.put(cdef.getAsciiName(), cdef);
}
}
}
/**
@ -463,15 +423,20 @@ public class CardDefinitions {
public static synchronized Collection<MagicCardDefinition> getMissingCards() {
if (missingCards == null) {
try {
loadMissingCards(getMissingCardNames());
} catch (IOException e) {
throw new RuntimeException(e);
}
loadMissingCards();
}
return missingCards.values();
}
public static List<String> getMissingCardNames() {
List<String> names = new ArrayList<String>(missingCards.size());
for (final MagicCardDefinition cdef : getMissingCards()) {
names.add(cdef.getName());
}
return names;
}
private static void saveCardsSnapshotFile() {
MagicFileSystem.serializeStringList(getPlayableNonTokenCardNames(), CARDS_SNAPSHOT_FILE);
}

View File

@ -96,9 +96,6 @@ public class GeneralConfig {
private static final String CUSTOM_BACKGROUND = "customBackground";
private boolean isCustomBackground = false;
private static final String SHOW_MISSING_CARD_DATA = "showMissingCardData";
private boolean showMissingCardData = true;
private static final String CARD_IMAGES_PATH = "cardImagesPath";
private String cardImagesPath = "";
@ -402,14 +399,6 @@ public class GeneralConfig {
isMulliganScreenActive = b;
}
public boolean showMissingCardData() {
return showMissingCardData;
}
public void setShowMissingCardData(final boolean b) {
showMissingCardData = b;
CardDefinitions.resetMissingCardData();
}
public int getNewTurnAlertDuration() {
return newTurnAlertDuration;
}
@ -563,7 +552,6 @@ public class GeneralConfig {
isMulliganScreenActive = Boolean.parseBoolean(properties.getProperty(MULLIGAN_SCREEN, "" + isMulliganScreenActive));
mostRecentDeckFilename = properties.getProperty(RECENT_DECK, mostRecentDeckFilename).trim();
isCustomBackground = Boolean.parseBoolean(properties.getProperty(CUSTOM_BACKGROUND, "" + isCustomBackground));
showMissingCardData = Boolean.parseBoolean(properties.getProperty(SHOW_MISSING_CARD_DATA, "" + showMissingCardData));
cardImagesPath = properties.getProperty(CARD_IMAGES_PATH, cardImagesPath);
animateGameplay = Boolean.parseBoolean(properties.getProperty(ANIMATE_GAMEPLAY, "" + animateGameplay));
deckFileMaxLines = Integer.parseInt(properties.getProperty(DECK_FILE_MAX_LINES, ""+ deckFileMaxLines));
@ -619,7 +607,6 @@ public class GeneralConfig {
properties.setProperty(MULLIGAN_SCREEN, String.valueOf(isMulliganScreenActive));
properties.setProperty(RECENT_DECK, mostRecentDeckFilename);
properties.setProperty(CUSTOM_BACKGROUND, String.valueOf(isCustomBackground));
properties.setProperty(SHOW_MISSING_CARD_DATA, String.valueOf(showMissingCardData));
properties.setProperty(CARD_IMAGES_PATH, cardImagesPath);
properties.setProperty(ANIMATE_GAMEPLAY, String.valueOf(animateGameplay));
properties.setProperty(PROXY_SETTINGS, proxySettings);

View File

@ -32,7 +32,6 @@ class GeneralPanel extends JPanel {
private final TranslationPanel langPanel;
private final MCheckBox splitViewDeckEditorCheckBox;
private final MCheckBox previewCardOnSelectCheckBox;
private final MCheckBox missingCardDataCheckbox;
private final PreferredSizePanel preferredSizePanel;
private final DirectoryChooser imagesFolderChooser;
private final MCheckBox imagesOnDemandCheckbox;
@ -66,11 +65,6 @@ class GeneralPanel extends JPanel {
previewCardOnSelectCheckBox.setFocusable(false);
previewCardOnSelectCheckBox.addMouseListener(aListener);
missingCardDataCheckbox = new MCheckBox(MText.get(_S61), config.showMissingCardData());
missingCardDataCheckbox.setToolTipText(MText.get(_S62));
missingCardDataCheckbox.setFocusable(false);
missingCardDataCheckbox.addMouseListener(aListener);
setLayout(new MigLayout("flowy, gapy 4, insets 16"));
// lang
@ -85,7 +79,6 @@ class GeneralPanel extends JPanel {
add(getCaptionLabel(MText.get(_S64)), "gaptop 10");
add(splitViewDeckEditorCheckBox.component());
add(previewCardOnSelectCheckBox.component());
add(missingCardDataCheckbox.component());
}
void saveSettings() {
@ -94,7 +87,6 @@ class GeneralPanel extends JPanel {
config.setTranslation(langPanel.getSelectedLanguage());
config.setIsSplitViewDeckEditor(splitViewDeckEditorCheckBox.isSelected());
config.setPreviewCardOnSelect(previewCardOnSelectCheckBox.isSelected());
config.setShowMissingCardData(missingCardDataCheckbox.isSelected());
config.setImagesOnDemand(imagesOnDemandCheckbox.isSelected());
}

View File

@ -122,9 +122,7 @@ public class CardFilterPanel extends TexturedPanel
}
private boolean showUnsupportedFilter() {
return isNotDeckEditor()
&& GeneralConfig.getInstance().showMissingCardData()
&& MText.isEnglish();
return isNotDeckEditor() && MText.isEnglish();
}
private boolean isCardfiltered(final MagicCardDefinition aCard) {