mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
reverting module refactoring changes
This commit is contained in:
3
forge-gui/src/main/config/forge.command
Executable file
3
forge-gui/src/main/config/forge.command
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd "`dirname \"$0\"`"
|
||||
java -Xmx1024m -jar $project.build.finalName$
|
||||
BIN
forge-gui/src/main/config/forge.ico
Normal file
BIN
forge-gui/src/main/config/forge.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 141 KiB |
3
forge-gui/src/main/config/forge.sh
Executable file
3
forge-gui/src/main/config/forge.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd "`dirname \"$0\"`"
|
||||
java -Xmx1024m -jar $project.build.finalName$
|
||||
@@ -77,7 +77,7 @@ public final class Singletons {
|
||||
|
||||
// Loads all cards (using progress bar).
|
||||
final CardStorageReader reader = new CardStorageReader(NewConstants.CARD_DATA_DIR, progressBarBridge, CardScriptInfo.readerObserver);
|
||||
magicDb = new StaticData(reader, NewConstants.EDITIONS_DIR, NewConstants.BLOCKDATA_DIR);
|
||||
magicDb = new StaticData(reader, "res/editions", "res/blockdata");
|
||||
model = FModel.getInstance(withUi);
|
||||
|
||||
if (withUi) {
|
||||
|
||||
@@ -21,7 +21,6 @@ import forge.Singletons;
|
||||
import forge.deck.CardPool;
|
||||
import forge.deck.generation.DeckGeneratorBase;
|
||||
import forge.error.BugReporter;
|
||||
import forge.properties.NewConstants;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
@@ -62,7 +61,7 @@ public class GenerateThemeDeck extends DeckGeneratorBase {
|
||||
public static final ArrayList<String> getThemeNames() {
|
||||
final ArrayList<String> ltNames = new ArrayList<String>();
|
||||
|
||||
final File file = new File(NewConstants._QUEST_DIR+"themes/");
|
||||
final File file = new File("res/quest/themes/");
|
||||
|
||||
if (!file.exists()) {
|
||||
throw new RuntimeException("GenerateThemeDeck : getThemeNames error -- file not found -- filename is "
|
||||
@@ -99,7 +98,7 @@ public class GenerateThemeDeck extends DeckGeneratorBase {
|
||||
String s = "";
|
||||
|
||||
// read theme file
|
||||
final String tFileName = NewConstants._QUEST_DIR+"themes/" + themeName + ".thm";
|
||||
final String tFileName = "res/quest/themes/" + themeName + ".thm";
|
||||
List<String> lines = FileUtil.readFile(tFileName);
|
||||
|
||||
final List<Grp> groups = readGroups(lines);
|
||||
|
||||
@@ -5,7 +5,6 @@ import forge.gui.toolbox.FLabel;
|
||||
import forge.gui.toolbox.FSkin;
|
||||
import forge.gui.toolbox.FSkin.SkinnedPanel;
|
||||
import forge.gui.toolbox.FSkin.SkinnedTextField;
|
||||
import forge.properties.NewConstants;
|
||||
import forge.quest.data.QuestPreferences;
|
||||
import forge.quest.data.QuestPreferences.QPref;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
@@ -62,7 +61,7 @@ public class QuestPreferencesHandler extends SkinnedPanel {
|
||||
pnlRewards.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
|
||||
|
||||
pnlRewards.add(new FLabel.Builder().text("Rewards")
|
||||
.icon(new FSkin.UnskinnedIcon(NewConstants.IMAGES_DIR+"icons/CoinIcon.png")).build(),
|
||||
.icon(new FSkin.UnskinnedIcon("res/images/icons/CoinIcon.png")).build(),
|
||||
"w 100%!, h 30px!, span 2 1");
|
||||
pnlRewards.add(lblErrRewards, "w 100%!, h 30px!, span 2 1");
|
||||
|
||||
@@ -103,7 +102,7 @@ public class QuestPreferencesHandler extends SkinnedPanel {
|
||||
pnlDifficulty.setOpaque(false);
|
||||
pnlDifficulty.setLayout(new MigLayout("insets 0, gap 0, wrap 5"));
|
||||
|
||||
pnlDifficulty.add(new FLabel.Builder().text("Difficulty Adjustments").icon(new FSkin.UnskinnedIcon(NewConstants.IMAGES_DIR+"icons/NotesIcon.png")).build(), "w 100%!, h 30px!, span 5 1");
|
||||
pnlDifficulty.add(new FLabel.Builder().text("Difficulty Adjustments").icon(new FSkin.UnskinnedIcon("res/images/icons/NotesIcon.png")).build(), "w 100%!, h 30px!, span 5 1");
|
||||
pnlDifficulty.add(lblErrDifficulty, "w 100%!, h 30px!, span 5 1");
|
||||
|
||||
constraints1 = "w 60px!, h 26px!";
|
||||
@@ -186,7 +185,7 @@ public class QuestPreferencesHandler extends SkinnedPanel {
|
||||
pnlBooster.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
|
||||
|
||||
pnlBooster.add(new FLabel.Builder().text("Booster Pack Ratios")
|
||||
.icon(new FSkin.UnskinnedIcon(NewConstants.IMAGES_DIR+"icons/BookIcon.png")).build(),
|
||||
.icon(new FSkin.UnskinnedIcon("res/images/icons/BookIcon.png")).build(),
|
||||
"w 100%!, h 30px!, span 2 1");
|
||||
pnlBooster.add(lblErrBooster, "w 100%!, h 30px!, span 2 1");
|
||||
|
||||
@@ -206,7 +205,7 @@ public class QuestPreferencesHandler extends SkinnedPanel {
|
||||
pnlShop.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
|
||||
|
||||
pnlShop.add(new FLabel.Builder().text("Shop Preferences")
|
||||
.icon(new FSkin.UnskinnedIcon(NewConstants.IMAGES_DIR+"icons/CoinIcon.png")).build(), "w 100%!, h 30px!, span 2 1");
|
||||
.icon(new FSkin.UnskinnedIcon("res/images/icons/CoinIcon.png")).build(), "w 100%!, h 30px!, span 2 1");
|
||||
pnlShop.add(lblErrShop, "w 100%!, h 30px!, span 2 1");
|
||||
|
||||
constraints1 = "w 60px, h 26px!";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package forge.gui.menus;
|
||||
|
||||
import forge.gui.toolbox.FOptionPane;
|
||||
import forge.properties.NewConstants;
|
||||
import forge.util.BuildInfo;
|
||||
import forge.util.FileUtil;
|
||||
|
||||
@@ -73,7 +72,7 @@ public final class HelpMenu {
|
||||
|
||||
private static JMenuItem getMenuItem_HowToPlayFile() {
|
||||
JMenuItem menuItem = new JMenuItem("How to Play");
|
||||
menuItem.addActionListener(getOpenFileAction(getFile(NewConstants._RES_ROOT+"howto.txt")));
|
||||
menuItem.addActionListener(getOpenFileAction(getFile("res\\howto.txt")));
|
||||
return menuItem;
|
||||
}
|
||||
|
||||
|
||||
@@ -1268,7 +1268,7 @@ public enum FSkin {
|
||||
}
|
||||
|
||||
private static final String
|
||||
FILE_SKINS_DIR = NewConstants._RES_ROOT+"skins/",
|
||||
FILE_SKINS_DIR = "res/skins/",
|
||||
FILE_ICON_SPRITE = "sprite_icons.png",
|
||||
FILE_FOIL_SPRITE = "sprite_foils.png",
|
||||
FILE_OLD_FOIL_SPRITE = "sprite_old_foils.png",
|
||||
|
||||
@@ -133,7 +133,7 @@ public final class BoosterDraft implements IBoosterDraft {
|
||||
break;
|
||||
|
||||
case Custom:
|
||||
final List<CustomLimited> myDrafts = draft.loadCustomDrafts(NewConstants._RES_ROOT+"draft/", ".draft");
|
||||
final List<CustomLimited> myDrafts = draft.loadCustomDrafts("res/draft/", ".draft");
|
||||
|
||||
if (myDrafts.isEmpty()) {
|
||||
FOptionPane.showMessageDialog("No custom draft files found.");
|
||||
|
||||
@@ -28,7 +28,6 @@ import forge.item.PaperCard;
|
||||
import forge.item.SealedProduct;
|
||||
import forge.model.CardBlock;
|
||||
import forge.model.UnOpenedMeta;
|
||||
import forge.properties.NewConstants;
|
||||
import forge.util.FileUtil;
|
||||
import forge.util.TextUtil;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
@@ -126,7 +125,7 @@ public class SealedCardPoolGenerator {
|
||||
final ArrayList<CustomLimited> customs = new ArrayList<CustomLimited>();
|
||||
|
||||
// get list of custom draft files
|
||||
final File dFolder = new File(NewConstants._RES_ROOT+"sealed/");
|
||||
final File dFolder = new File("res/sealed/");
|
||||
if (!dFolder.exists()) {
|
||||
throw new RuntimeException("GenerateSealed : folder not found -- folder is "
|
||||
+ dFolder.getAbsolutePath());
|
||||
@@ -140,7 +139,7 @@ public class SealedCardPoolGenerator {
|
||||
|
||||
for (final String element : dList) {
|
||||
if (element.endsWith(".sealed")) {
|
||||
final List<String> dfData = FileUtil.readFile(NewConstants._RES_ROOT+"sealed/" + element);
|
||||
final List<String> dfData = FileUtil.readFile("res/sealed/" + element);
|
||||
final CustomLimited cs = CustomLimited.parse(dfData, Singletons.getModel().getDecks().getCubes());
|
||||
if (cs.getSealedProductTemplate().getNumberOfCardsExpected() > 5) { // Do not allow too small cubes to be played as 'stand-alone'!
|
||||
customs.add(cs);
|
||||
|
||||
@@ -128,16 +128,16 @@ public class FModel {
|
||||
throw new RuntimeException(exn);
|
||||
}
|
||||
|
||||
this.formats = new GameFormat.Collection(new GameFormat.Reader(new File(NewConstants._RES_ROOT+"blockdata", "formats.txt")));
|
||||
this.formats = new GameFormat.Collection(new GameFormat.Reader(new File("res/blockdata", "formats.txt")));
|
||||
|
||||
this.blocks = new StorageBase<CardBlock>("Block definitions", new CardBlock.Reader(NewConstants._RES_ROOT+"blockdata/blocks.txt", Singletons.getMagicDb().getEditions()));
|
||||
this.blocks = new StorageBase<CardBlock>("Block definitions", new CardBlock.Reader("res/blockdata/blocks.txt", Singletons.getMagicDb().getEditions()));
|
||||
this.questPreferences = new QuestPreferences();
|
||||
this.gauntletData = new GauntletData();
|
||||
|
||||
|
||||
|
||||
this.fantasyBlocks = new StorageBase<CardBlock>("Custom blocks", new CardBlock.Reader(NewConstants._RES_ROOT+"blockdata/fantasyblocks.txt", Singletons.getMagicDb().getEditions()));
|
||||
this.worlds = new StorageBase<QuestWorld>("Quest worlds", new QuestWorld.Reader(NewConstants._RES_ROOT+"quest/world/worlds.txt"));
|
||||
this.fantasyBlocks = new StorageBase<CardBlock>("Custom blocks", new CardBlock.Reader("res/blockdata/fantasyblocks.txt", Singletons.getMagicDb().getEditions()));
|
||||
this.worlds = new StorageBase<QuestWorld>("Quest worlds", new QuestWorld.Reader("res/quest/world/worlds.txt"));
|
||||
// TODO - there's got to be a better place for this...oblivion?
|
||||
ForgePreferences.DEV_MODE = this.preferences.getPrefBoolean(FPref.DEV_MODE_ENABLED);
|
||||
|
||||
@@ -256,7 +256,7 @@ public class FModel {
|
||||
|
||||
/*
|
||||
* if (!MagicColor.Constant.loaded[0]) { ArrayList<String> lcListFile =
|
||||
* FileUtil.readFile(NewConstants._RES_ROOT+"gamedata/LandColorList");
|
||||
* FileUtil.readFile("res/gamedata/LandColorList");
|
||||
*
|
||||
* if (lcListFile.size() > 1) { for (int i=0; i<lcListFile.size(); i++)
|
||||
* { String s = lcListFile.get(i); if (s.length() > 1)
|
||||
|
||||
@@ -26,7 +26,6 @@ import forge.item.IPaperCard;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.SealedProduct;
|
||||
import forge.limited.CustomLimited;
|
||||
import forge.properties.NewConstants;
|
||||
import forge.util.FileUtil;
|
||||
|
||||
import java.io.File;
|
||||
@@ -185,7 +184,7 @@ public class MetaSet {
|
||||
case Combo: return UnOpenedMeta.selectAll(data);
|
||||
|
||||
case Cube:
|
||||
final File dFolder = new File(NewConstants._RES_ROOT+"sealed/");
|
||||
final File dFolder = new File("res/sealed/");
|
||||
|
||||
if (!dFolder.exists()) {
|
||||
throw new RuntimeException("GenerateSealed : folder not found -- folder is " + dFolder.getAbsolutePath());
|
||||
@@ -195,7 +194,7 @@ public class MetaSet {
|
||||
throw new RuntimeException("GenerateSealed : not a folder -- " + dFolder.getAbsolutePath());
|
||||
}
|
||||
|
||||
List<String> dfData = FileUtil.readFile(NewConstants._RES_ROOT+"sealed/" + data + ".sealed");
|
||||
List<String> dfData = FileUtil.readFile("res/sealed/" + data + ".sealed");
|
||||
final CustomLimited myCube = CustomLimited.parse(dfData, Singletons.getModel().getDecks().getCubes());
|
||||
|
||||
SealedProduct.Template fnPick = myCube.getSealedProductTemplate();
|
||||
|
||||
@@ -25,7 +25,7 @@ public final class NewConstants {
|
||||
public static final String PROFILE_TEMPLATE_FILE = PROFILE_FILE + ".example";
|
||||
|
||||
// data that is only in the program dir
|
||||
public static final String _RES_ROOT = NewConstants.class.getResource("/").getFile();
|
||||
private static final String _RES_ROOT = "res/";
|
||||
private static final String _LIST_DIR = _RES_ROOT + "lists/";
|
||||
public static final String KEYWORD_LIST_FILE = _LIST_DIR + "NonStackingKWList.txt";
|
||||
public static final String TYPE_LIST_FILE = _LIST_DIR + "TypeLists.txt";
|
||||
@@ -38,7 +38,7 @@ public final class NewConstants {
|
||||
public static final String IMAGE_LIST_QUEST_PRECONS_FILE = _LIST_DIR + "precon-images.txt";
|
||||
public static final String IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE = _LIST_DIR + "tournamentpack-images.txt";
|
||||
|
||||
public static final String _QUEST_DIR = _RES_ROOT + "quest/";
|
||||
private static final String _QUEST_DIR = _RES_ROOT + "quest/";
|
||||
public static final String TEXT_HOWTO_FILE = _RES_ROOT + "howto.txt";
|
||||
public static final String DRAFT_RANKINGS_FILE = _RES_ROOT + "draft/rankings.txt";
|
||||
public static final String PRICES_BOOSTER_FILE = _QUEST_DIR + "booster-prices.txt";
|
||||
@@ -47,10 +47,7 @@ public final class NewConstants {
|
||||
public static final String DECK_CUBE_DIR = _RES_ROOT + "cube";
|
||||
public static final String QUEST_WORLD_DIR = _QUEST_DIR + "worlds/";
|
||||
public static final String QUEST_PRECON_DIR = _QUEST_DIR + "precons/";
|
||||
public static final String EDITIONS_DIR = _RES_ROOT + "editions/";
|
||||
public static final String BLOCKDATA_DIR = _RES_ROOT + "blockdata/";
|
||||
public static final String IMAGES_DIR = _RES_ROOT + "images/";
|
||||
|
||||
|
||||
public static final String CARD_DATA_PETS_DIR = _QUEST_DIR + "bazaar/";
|
||||
public static final String DEFAULT_DUELS_DIR = _QUEST_DIR + "duels";
|
||||
public static final String DEFAULT_CHALLENGES_DIR = _QUEST_DIR + "challenges";
|
||||
|
||||
@@ -396,7 +396,7 @@ public class QuestController {
|
||||
*/
|
||||
public void resetDuelsManager() {
|
||||
QuestWorld world = getWorld();
|
||||
String path = world == null || world.getDuelsDir() == null ? NewConstants.DEFAULT_DUELS_DIR : NewConstants._RES_ROOT+"quest/world/" + world.getDuelsDir();
|
||||
String path = world == null || world.getDuelsDir() == null ? NewConstants.DEFAULT_DUELS_DIR : "res/quest/world/" + world.getDuelsDir();
|
||||
this.duelManager = new QuestEventDuelManager(new File(path));
|
||||
}
|
||||
|
||||
@@ -406,7 +406,7 @@ public class QuestController {
|
||||
*/
|
||||
public void resetChallengesManager() {
|
||||
QuestWorld world = getWorld();
|
||||
String path = world == null || world.getChallengesDir() == null ? NewConstants.DEFAULT_CHALLENGES_DIR : NewConstants._RES_ROOT+"quest/world/" + world.getChallengesDir();
|
||||
String path = world == null || world.getChallengesDir() == null ? NewConstants.DEFAULT_CHALLENGES_DIR : "res/quest/world/" + world.getChallengesDir();
|
||||
this.allChallenges = new StorageBase<QuestEventChallenge>("Quest Challenges", new QuestChallengeReader(new File(path)));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package forge.sound;
|
||||
|
||||
import forge.properties.NewConstants;
|
||||
|
||||
public interface IAudioClip {
|
||||
public static final String PathToSound = NewConstants._RES_ROOT+"sound";
|
||||
public static final String PathToSound = "res/sound";
|
||||
|
||||
public void play();
|
||||
public boolean isDone();
|
||||
|
||||
@@ -137,21 +137,21 @@ public enum FView {
|
||||
|
||||
final List<File> resDirs = new ArrayList<File>();
|
||||
for (String resDir : Lists.newArrayList("decks", "gauntlet", "layouts", "pics", "preferences", "quest/data")) {
|
||||
resDirs.add(new File(NewConstants._RES_ROOT, resDir));
|
||||
resDirs.add(new File("res", resDir));
|
||||
}
|
||||
|
||||
final Set<File> doNotDeleteDirs = new HashSet<File>();
|
||||
for (String dir : Lists.newArrayList("decks", "decks/constructed", "decks/draft", "decks/plane", "decks/scheme", "decks/sealed", "gauntlet", "layouts", "pics", "preferences", "quest/data")) {
|
||||
doNotDeleteDirs.add(new File(NewConstants._RES_ROOT, dir));
|
||||
doNotDeleteDirs.add(new File("res", dir));
|
||||
}
|
||||
|
||||
// if we have any data to migrate, pop up the migration dialog
|
||||
if (_addRemainingFiles(null, resDirs, profileDirs, doNotDeleteDirs)) {
|
||||
new ImportDialog(NewConstants._RES_ROOT, new Runnable() {
|
||||
new ImportDialog("res", new Runnable() {
|
||||
@Override public void run() {
|
||||
// remove known cruft files, yes this is ugly, but it's also temporary
|
||||
for (String cruftFile : Lists.newArrayList("decks/SkieraCube-cards_not_supported_yet.txt", "decks/cube/ArabianExtended.dck", "decks/cube/GtcGuildBoros.dck", "decks/cube/GtcGuildDimir.dck", "decks/cube/GtcGuildGruul.dck", "decks/cube/GtcGuildOrzhov.dck", "decks/cube/GtcGuildSimic.dck", "decks/cube/GtcPromoBoros.dck", "decks/cube/GtcPromoDimir.dck", "decks/cube/GtcPromoGruul.dck", "decks/cube/GtcPromoOrzhov.dck", "decks/cube/GtcPromoSimic.dck", "decks/cube/JuzamjediCube.dck", "decks/cube/RtRGuildAzorius.dck", "decks/cube/RtRGuildGolgari.dck", "decks/cube/RtRGuildIzzet.dck", "decks/cube/RtRGuildRakdos.dck", "decks/cube/RtRGuildSelesnya.dck", "decks/cube/RtRPromoAzorius.dck", "decks/cube/RtRPromoGolgari.dck", "decks/cube/RtRPromoIzzet.dck", "decks/cube/RtRPromoRakdos.dck", "decks/cube/RtRPromoSelesnya.dck", "decks/cube/SkieraCube.dck", "gauntlet/LOCKED_DotP Preconstructed.dat", "gauntlet/LOCKED_Swimming With Sharks.dat", "layouts/editor_default.xml", "layouts/home_default.xml", "layouts/match_default.xml", "pics/snow_covered_forest1.jpg", "pics/snow_covered_forest2.jpg", "pics/snow_covered_forest3.jpg", "pics/snow_covered_island1.jpg", "pics/snow_covered_island2.jpg", "pics/snow_covered_island3.jpg", "pics/snow_covered_mountain1.jpg", "pics/snow_covered_mountain2.jpg", "pics/snow_covered_mountain3.jpg", "pics/snow_covered_plains1.jpg", "pics/snow_covered_plains2.jpg", "pics/snow_covered_plains3.jpg", "pics/snow_covered_swamp1.jpg", "pics/snow_covered_swamp2.jpg", "pics/snow_covered_swamp3.jpg", "pics/VAN/Birds of Paradise Avatar.full.jpg", "pics/VAN/Erhnam Djinn Avatar.full.jpg", "pics/VAN/Goblin Warchief Avatar.full.jpg", "pics/VAN/Grinning Demon Avatar.full.jpg", "pics/VAN/Platinum Angel Avatar.full.jpg", "pics/VAN/Prodigal Sorcerer Avatar.full.jpg", "pics/VAN/Rith, the Awakener Avatar.full.jpg", "pics/VAN/Royal Assassin Avatar.full.jpg", "pics/VAN/Serra Angel Avatar.full.jpg", "pics/VAN/Tradewind Rider Avatar.full.jpg", "pics_product/10E.jpg", "pics_product/2ED.jpg", "pics_product/3ED.jpg", "pics_product/4ED.jpg", "pics_product/5DN.jpg", "pics_product/5ED.jpg", "pics_product/6ED.jpg", "pics_product/7ED.jpg", "pics_product/8ED.jpg", "pics_product/9ED.jpg", "pics_product/ALA.jpg", "pics_product/ALL.jpg", "pics_product/APC.jpg", "pics_product/ARB.jpg", "pics_product/ARN.jpg", "pics_product/ATQ.jpg", "pics_product/BOK.jpg", "pics_product/CFX.jpg", "pics_product/CHK.jpg", "pics_product/CHR.jpg", "pics_product/CSP.jpg", "pics_product/DIS.jpg", "pics_product/DKA.jpg", "pics_product/DRK.jpg", "pics_product/DST.jpg", "pics_product/EVE.jpg", "pics_product/EXO.jpg", "pics_product/FEM.jpg", "pics_product/FUT.jpg", "pics_product/GPT.jpg", "pics_product/HML.jpg", "pics_product/ICE.jpg", "pics_product/INV.jpg", "pics_product/ISD.jpg", "pics_product/JUD.jpg", "pics_product/LEA.jpg", "pics_product/LEB.jpg", "pics_product/LEG.jpg", "pics_product/LGN.jpg", "pics_product/LRW.jpg", "pics_product/M10.jpg", "pics_product/M11.jpg", "pics_product/M12.jpg", "pics_product/MBS.jpg", "pics_product/MIR.jpg", "pics_product/MMQ.jpg", "pics_product/MOR.jpg", "pics_product/MRD.jpg", "pics_product/NMS.jpg", "pics_product/NPH.jpg", "pics_product/ODY.jpg", "pics_product/ONS.jpg", "pics_product/PCY.jpg", "pics_product/PLC.jpg", "pics_product/PLS.jpg", "pics_product/PO2.jpg", "pics_product/POR.jpg", "pics_product/PTK.jpg", "pics_product/RAV.jpg", "pics_product/ROE.jpg", "pics_product/S99.jpg", "pics_product/SCG.jpg", "pics_product/SHM.jpg", "pics_product/SOK.jpg", "pics_product/SOM.jpg", "pics_product/STH.jpg", "pics_product/TMP.jpg", "pics_product/TOR.jpg", "pics_product/TSP.jpg", "pics_product/UDS.jpg", "pics_product/ULG.jpg", "pics_product/USG.jpg", "pics_product/VIS.jpg", "pics_product/WTH.jpg", "pics_product/WWK.jpg", "pics_product/ZEN.jpg", "pics_product/booster/7E.png", "pics_product/booster/AP.png", "pics_product/booster/DPA.png", "pics_product/booster/EX.png", "pics_product/booster/IN.png", "pics_product/booster/MI.png", "pics_product/booster/OD.png", "pics_product/booster/PS.png", "pics_product/booster/ST.png", "pics_product/booster/TE.png", "pics_product/booster/UD.png", "pics_product/booster/UL.png", "pics_product/booster/UZ.png", "pics_product/booster/VI.png", "pics_product/booster/WL.png", "preferences/.project", "preferences/editor.default.preferences", "preferences/main.properties", "quest/quest.preferences", "quest/quest.properties")) {
|
||||
new File(NewConstants._RES_ROOT, cruftFile).delete();
|
||||
new File("res", cruftFile).delete();
|
||||
}
|
||||
|
||||
// assemble a list of remaining files.
|
||||
|
||||
@@ -27,7 +27,7 @@ public class CardDatabaseHelper {
|
||||
|
||||
private static void initialize() {
|
||||
final CardStorageReader reader = new CardStorageReader( NewConstants.CARD_DATA_DIR, null, null );
|
||||
staticData = new StaticData( reader, NewConstants._RES_ROOT+"editions", NewConstants._RES_ROOT+"blockdata" );
|
||||
staticData = new StaticData( reader, "res/editions", "res/blockdata" );
|
||||
}
|
||||
|
||||
private static boolean hasBeenInitialized() {
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
Name:Acidic Slime
|
||||
ManaCost:3 G G
|
||||
Types:Creature Ooze
|
||||
PT:2/2
|
||||
K:Deathtouch
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy target artifact, enchantment, or land.
|
||||
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact,Enchantment,Land | TgtPrompt$ Select an artifact, enchantment, or land.
|
||||
SVar:PlayMain1:TRUE
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/acidic_slime.jpg
|
||||
Oracle:Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)\nWhen Acidic Slime enters the battlefield, destroy target artifact, enchantment, or land.
|
||||
@@ -1,7 +0,0 @@
|
||||
Name:Ajani's Sunstriker
|
||||
ManaCost:W W
|
||||
Types:Creature Cat Cleric
|
||||
PT:2/2
|
||||
K:Lifelink
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/ajanis_sunstriker.jpg
|
||||
Oracle:Lifelink (Damage dealt by this creature also causes you to gain that much life.)
|
||||
@@ -1,7 +0,0 @@
|
||||
Name:Assault Griffin
|
||||
ManaCost:3 W
|
||||
Types:Creature Griffin
|
||||
PT:3/2
|
||||
K:Flying
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/assault_griffin.jpg
|
||||
Oracle:Flying
|
||||
@@ -1,8 +0,0 @@
|
||||
Name:Auramancer
|
||||
ManaCost:2 W
|
||||
Types:Creature Human Wizard
|
||||
PT:2/2
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may return target enchantment card from your graveyard to your hand.
|
||||
SVar:TrigChangeZone:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Enchantment.YouCtrl
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/auramancer.jpg
|
||||
Oracle:When Auramancer enters the battlefield, you may return target enchantment card from your graveyard to your hand.
|
||||
@@ -1,13 +0,0 @@
|
||||
Name:Crown of Empires
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
A:AB$ Tap | Cost$ 3 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | ConditionCheckSVar$ M12Complete | ConditionSVarCompare$ EQ0 | SubAbility$ DBControl | SpellDescription$ Tap target creature. Gain control of that creature instead if you control artifacts named Scepter of Empires and Throne of Empires.
|
||||
SVar:DBControl:DB$ GainControl | Defined$ Targeted | ConditionCheckSVar$ M12Complete
|
||||
SVar:RemRandomDeck:True
|
||||
DeckHints:Name$Scepter of Empires|Throne of Empires
|
||||
SVar:M12Complete:Count$Compare AllM12Empires GT0.1.0
|
||||
SVar:AllM12Empires:SVar$X/Times.Y
|
||||
SVar:X:Count$Valid Artifact.namedScepter of Empires+YouCtrl
|
||||
SVar:Y:Count$Valid Artifact.namedThrone of Empires+YouCtrl
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/crown_of_empires.jpg
|
||||
Oracle:{3}, {T}: Tap target creature. Gain control of that creature instead if you control artifacts named Scepter of Empires and Throne of Empires.
|
||||
@@ -1,11 +0,0 @@
|
||||
Name:Griffin Rider
|
||||
ManaCost:1 W
|
||||
Types:Creature Human Knight
|
||||
PT:1/1
|
||||
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 3 | AddKeyword$ Flying | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you control a Griffin, CARDNAME gets +3/+3 and has flying.
|
||||
SVar:X:Count$Valid Griffin.YouCtrl
|
||||
SVar:BuffedBy:Griffin
|
||||
SVar:RemRandomDeck:True
|
||||
DeckHints:Type$Griffin
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/griffin_rider.jpg
|
||||
Oracle:As long as you control a Griffin creature, Griffin Rider gets +3/+3 and has flying.
|
||||
@@ -1,7 +0,0 @@
|
||||
Name:Llanowar Elves
|
||||
ManaCost:G
|
||||
Types:Creature Elf Druid
|
||||
PT:1/1
|
||||
A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G} to your mana pool.
|
||||
SVar:Picture:http://resources.wizards.com/magic/cards/9ed/en-us/card83515.jpg
|
||||
Oracle:{T}: Add {G} to your mana pool.
|
||||
@@ -1,10 +0,0 @@
|
||||
Name:Mwonvuli Beast Tracker
|
||||
ManaCost:1 G G
|
||||
Types:Creature Human Scout
|
||||
PT:2/1
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ ScoutSearch | TriggerDescription$ When CARDNAME enters the battlefield, search your library for a creature card with deathtouch, hexproof, reach or trample and reveal it. Shuffle your library, then put that card on top of it.
|
||||
SVar:ScoutSearch:DB$ ChangeZone | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | ChangeNum$ 1 | ChangeType$ Creature.withDeathtouch+YouCtrl,Creature.withHexproof+YouCtrl,Creature.withReach+YouCtrl,Creature.withTrample+YouCtrl
|
||||
SVar:RemRandomDeck:True
|
||||
DeckHints:Keyword$Deathtouch|Hexproof|Reach|Trample
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/mwonvuli_beast_tracker.jpg
|
||||
Oracle:When Mwonvuli Beast Tracker enters the battlefield, search your library for a creature card with deathtouch, hexproof, reach, or trample and reveal it. Shuffle your library and put that card on top of it.
|
||||
@@ -1,12 +0,0 @@
|
||||
Name:Scepter of Empires
|
||||
ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ DealDamage | Cost$ T | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ X | References$ X,Y,Z,AllM12Empires | SpellDescription$ CARDNAME deals 1 damage to target player. It deals 3 damage to that player instead if you control artifacts named Crown of Empires and Throne of Empires.
|
||||
SVar:X:Count$Compare AllM12Empires GT0.3.1
|
||||
SVar:AllM12Empires:SVar$Z/Times.Y
|
||||
SVar:Z:Count$Valid Artifact.namedCrown of Empires+YouCtrl
|
||||
SVar:Y:Count$Valid Artifact.namedThrone of Empires+YouCtrl
|
||||
SVar:RemRandomDeck:True
|
||||
DeckHints:Name$Throne of Empires|Crown of Empires
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/scepter_of_empires.jpg
|
||||
Oracle:{T}: Scepter of Empires deals 1 damage to target player. It deals 3 damage to that player instead if you control artifacts named Crown of Empires and Throne of Empires.
|
||||
@@ -1,12 +0,0 @@
|
||||
Name:Throne of Empires
|
||||
ManaCost:4
|
||||
Types:Artifact
|
||||
A:AB$ Token | Cost$ 1 T | TokenAmount$ X | References$ X,Y,Z,AllM12Empires | TokenName$ Soldier | TokenTypes$ Creature,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | SpellDescription$ Put a 1/1 white Soldier creature token onto the battlefield. Put five of those tokens onto the battlefield instead if you control artifacts named Crown of Empires and Scepter of Empires.
|
||||
SVar:X:Count$Compare AllM12Empires GT0.5.1
|
||||
SVar:AllM12Empires:SVar$Z/Times.Y
|
||||
SVar:Z:Count$Valid Artifact.namedCrown of Empires+YouCtrl
|
||||
SVar:Y:Count$Valid Artifact.namedScepter of Empires+YouCtrl
|
||||
SVar:RemRandomDeck:True
|
||||
DeckHints:Name$Scepter of Empires|Crown of Empires
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/throne_of_empires.jpg
|
||||
Oracle:{1}, {T}: Put a 1/1 white Soldier creature token onto the battlefield. Put five of those tokens onto the battlefield instead if you control artifacts named Crown of Empires and Scepter of Empires.
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:Unsummon
|
||||
ManaCost:U
|
||||
Types:Instant
|
||||
A:SP$ ChangeZone | Cost$ U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target creature to its owner's hand.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/unsummon.jpg
|
||||
Oracle:Return target creature to its owner's hand.
|
||||
@@ -1,9 +0,0 @@
|
||||
Name:Wurm's Tooth
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
T:Mode$ SpellCast | ValidCard$ Card.Green | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a green spell, you may gain 1 life.
|
||||
SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ 1
|
||||
SVar:RemRandomDeck:True
|
||||
DeckNeeds:Color$Green
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/wurms_tooth.jpg
|
||||
Oracle:Whenever a player casts a green spell, you may gain 1 life.
|
||||
Reference in New Issue
Block a user