> sections = SectionUtil.parseSections(deckFileLines);
if (sections.isEmpty()) {
return null;
}
final Deck d = new Deck();
- final String firstLine = lines.get(0);
+ final String firstLine = deckFileLines.get(0);
if (!firstLine.startsWith("[") || firstLine.equalsIgnoreCase("[general]")) {
- readDeckOldMetadata(lines.iterator(), d);
+ readDeckOldMetadata(deckFileLines.iterator(), d);
} else {
readDeckMetadata(sections.get("metadata"), d);
}
diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorShop.java b/src/main/java/forge/gui/deckeditor/DeckEditorShop.java
index 1043bfa59ba..2b696f6d8a7 100644
--- a/src/main/java/forge/gui/deckeditor/DeckEditorShop.java
+++ b/src/main/java/forge/gui/deckeditor/DeckEditorShop.java
@@ -45,8 +45,9 @@ import forge.item.BoosterPack;
import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.ItemPoolView;
+import forge.item.PreconDeck;
+import forge.quest.ReadPriceList;
import forge.quest.data.QuestData;
-import forge.quest.data.ReadPriceList;
/**
*
@@ -295,6 +296,8 @@ public final class DeckEditorShop extends DeckEditorBase {
}
} else if (card instanceof BoosterPack) {
return 395;
+ } else if (card instanceof PreconDeck) {
+ return ((PreconDeck)card).getRecommendedDeals().getCost();
}
return 1337;
}
@@ -308,14 +311,17 @@ public final class DeckEditorShop extends DeckEditorBase {
final int value = this.getCardValue(item);
if (value <= this.questData.getCredits()) {
+
if (item instanceof CardPrinted) {
+ this.getTopTableWithCards().removeCard(item);
+
final CardPrinted card = (CardPrinted) item;
this.getBottomTableWithCards().addCard(card);
- this.getTopTableWithCards().removeCard(card);
-
this.questData.getCards().buyCard(card, value);
+
} else if (item instanceof BoosterPack) {
this.getTopTableWithCards().removeCard(item);
+
final BoosterPack booster = (BoosterPack) ((BoosterPack) item).clone();
this.questData.getCards().buyBooster(booster, value);
final List newCards = booster.getCards();
@@ -325,7 +331,18 @@ public final class DeckEditorShop extends DeckEditorBase {
final CardListViewer c = new CardListViewer(booster.getName(),
"You have found the following cards inside:", newCards);
c.show();
+ } else if ( item instanceof PreconDeck ) {
+ this.getTopTableWithCards().removeCard(item);
+ final PreconDeck deck = (PreconDeck)item;
+ this.questData.getCards().buyPreconDeck(deck, value);
+
+ for (final CardPrinted card : deck.getDeck().getMain().toFlatList()) {
+ this.getBottomTableWithCards().addCard(card);
+ }
+ JOptionPane.showMessageDialog(null, String.format("Deck '%s' was added to youd decklist.%n%nCards from it were also added to your pool.", deck.getName()), "Thanks for purchase!", JOptionPane.INFORMATION_MESSAGE);
+
}
+
this.creditsLabel.setText("Total credits: " + this.questData.getCredits());
} else {
diff --git a/src/main/java/forge/item/PreconDeck.java b/src/main/java/forge/item/PreconDeck.java
new file mode 100644
index 00000000000..a68c5555350
--- /dev/null
+++ b/src/main/java/forge/item/PreconDeck.java
@@ -0,0 +1,77 @@
+package forge.item;
+
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+
+import forge.SetUtils;
+import forge.deck.Deck;
+import forge.deck.DeckIO;
+import forge.quest.SellRules;
+import forge.util.FileUtil;
+import forge.util.SectionUtil;
+
+/**
+ * TODO: Write javadoc for this type.
+ *
+ */
+public class PreconDeck implements InventoryItemFromSet {
+
+ private final Deck deck;
+ private final String imageFilename;
+ private final String set;
+ private final SellRules recommendedDeals;
+
+ @Override
+ public String getName() {
+ return deck.getName();
+ }
+
+
+ @Override
+ public String getImageFilename() {
+ return "precons/" + this.imageFilename;
+ }
+
+
+ @Override
+ public String getType() {
+ return "Prebuilt Deck";
+ }
+
+ public PreconDeck(final File f)
+ {
+ List deckLines = FileUtil.readFile(f);
+ Map> sections = SectionUtil.parseSections(deckLines);
+ deck = DeckIO.readDeck(deckLines);
+
+ String filenameProxy = null;
+ String setProxy = "n/a";
+ List metadata = sections.get("metadata");
+ if ( null != metadata && !metadata.isEmpty() ) for(String s : metadata) {
+ String[] kv = s.split("=");
+ if( "Image".equalsIgnoreCase(kv[0]))
+ filenameProxy = kv[1];
+ if( "set".equalsIgnoreCase(kv[0]) && SetUtils.getSetByCode(kv[1].toUpperCase()) != null )
+ setProxy = kv[1];
+ }
+ imageFilename = filenameProxy;
+ set = setProxy;
+ recommendedDeals = new SellRules(sections.get("shop"));
+ }
+
+
+ public final Deck getDeck() {
+ return deck;
+ }
+
+
+ public final SellRules getRecommendedDeals() {
+ return recommendedDeals;
+ }
+
+ @Override
+ public String getSet() {
+ return set;
+ }
+}
diff --git a/src/main/java/forge/properties/NewConstants.java b/src/main/java/forge/properties/NewConstants.java
index 18fdca9b3de..a03fe37d299 100644
--- a/src/main/java/forge/properties/NewConstants.java
+++ b/src/main/java/forge/properties/NewConstants.java
@@ -49,6 +49,7 @@ public final class NewConstants {
public static final String BOOSTER_DECKS = "booster-decks";
/** Constant NEW_DECKS="decks-dir". */
public static final String NEW_DECKS = "decks-dir";
+
/** Constant TOKENS="tokens". */
public static final String TOKENS = "tokens";
@@ -206,6 +207,8 @@ public final class NewConstants {
/** The PET_TOKEN_IMAGES. */
public static final String PET_TOKEN_IMAGES = "quest/pet/tokens";
+
+ public static final String PRECONS = "quest/precons-dir";
}
/**
diff --git a/src/main/java/forge/quest/data/ReadPriceList.java b/src/main/java/forge/quest/ReadPriceList.java
similarity index 99%
rename from src/main/java/forge/quest/data/ReadPriceList.java
rename to src/main/java/forge/quest/ReadPriceList.java
index b489c46afd7..f944bde852e 100644
--- a/src/main/java/forge/quest/data/ReadPriceList.java
+++ b/src/main/java/forge/quest/ReadPriceList.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.data;
+package forge.quest;
import java.io.BufferedReader;
import java.io.File;
diff --git a/src/main/java/forge/quest/SellRules.java b/src/main/java/forge/quest/SellRules.java
new file mode 100644
index 00000000000..cefafb31238
--- /dev/null
+++ b/src/main/java/forge/quest/SellRules.java
@@ -0,0 +1,45 @@
+package forge.quest;
+
+import java.util.List;
+
+import forge.quest.data.QuestData;
+
+/**
+ * TODO: Write javadoc for this type.
+ *
+ */
+public class SellRules {
+
+ private int minWins = 0;
+ private int cost = 250;
+ private int minDifficulty = 0;
+ private int maxDifficulty = 5;
+
+ public SellRules(List questShop) {
+ if( null == questShop || questShop.isEmpty() ) return;
+
+ for( String s : questShop ) {
+ String[] kv = s.split("=");
+ if( "WinsToUnlock".equalsIgnoreCase(kv[0]) ) minWins = Integer.parseInt(kv[1]);
+ else if ("Credits".equalsIgnoreCase(kv[0])) cost = Integer.parseInt(kv[1]);
+ else if ("MaxDifficulty".equalsIgnoreCase(kv[0])) maxDifficulty = Integer.parseInt(kv[1]);
+ else if ("MinDifficulty".equalsIgnoreCase(kv[0])) minDifficulty = Integer.parseInt(kv[1]);
+ }
+ }
+
+ public boolean meetsRequiremnts(QuestData quest)
+ {
+ if( quest.getWin() < minWins ) return false;
+ if( quest.getDifficultyIndex() < minDifficulty || quest.getDifficultyIndex() > maxDifficulty ) return false;
+
+ return true;
+ }
+
+ public final int getCost() {
+ return cost;
+ }
+
+
+
+
+}
diff --git a/src/main/java/forge/quest/gui/main/QuestChallenge.java b/src/main/java/forge/quest/data/QuestChallenge.java
similarity index 99%
rename from src/main/java/forge/quest/gui/main/QuestChallenge.java
rename to src/main/java/forge/quest/data/QuestChallenge.java
index 7402ee71cc8..17b4166577e 100644
--- a/src/main/java/forge/quest/gui/main/QuestChallenge.java
+++ b/src/main/java/forge/quest/data/QuestChallenge.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.gui.main;
+package forge.quest.data;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/forge/quest/data/QuestData.java b/src/main/java/forge/quest/data/QuestData.java
index b3649ae0752..35b6d6d9219 100644
--- a/src/main/java/forge/quest/data/QuestData.java
+++ b/src/main/java/forge/quest/data/QuestData.java
@@ -155,6 +155,9 @@ public final class QuestData {
// complex
private transient QuestUtilCards myCards;
+ // This is used by shop. Had no idea where else to place this
+ private static transient QuestPreconManager preconManager = new QuestPreconManager(ForgeProps.getFile(NewConstants.Quest.PRECONS));
+
/** The Constant RANK_TITLES. */
public static final String[] RANK_TITLES = new String[] { "Level 0 - Confused Wizard", "Level 1 - Mana Mage",
"Level 2 - Death by Megrim", "Level 3 - Shattered the Competition", "Level 4 - Black Knighted",
@@ -681,6 +684,10 @@ public final class QuestData {
this.myDecks = myDecks0;
}
+ public static final QuestPreconManager getPreconManager() {
+ return preconManager;
+ }
+
/**
* Sets the inventory.
*
diff --git a/src/main/java/forge/quest/data/QuestDataIO.java b/src/main/java/forge/quest/data/QuestDataIO.java
index 4f7b038ac7f..3dbdd03e231 100644
--- a/src/main/java/forge/quest/data/QuestDataIO.java
+++ b/src/main/java/forge/quest/data/QuestDataIO.java
@@ -52,6 +52,7 @@ import forge.item.CardDb;
import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.ItemPool;
+import forge.item.PreconDeck;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
import forge.quest.data.item.QuestInventory;
@@ -283,6 +284,13 @@ public class QuestDataIO {
writer.endNode();
}
+ private void write(final PreconDeck deck, final Integer count, final HierarchicalStreamWriter writer) {
+ writer.startNode("precon");
+ writer.addAttribute("s", deck.getName());
+ writer.addAttribute("n", count.toString());
+ writer.endNode();
+ }
+
@Override
public void marshal(final Object source, final HierarchicalStreamWriter writer, final MarshallingContext context) {
@SuppressWarnings("unchecked")
@@ -294,6 +302,8 @@ public class QuestDataIO {
this.write((CardPrinted) item, count, writer);
} else if (item instanceof BoosterPack) {
this.write((BoosterPack) item, count, writer);
+ } else if (item instanceof PreconDeck) {
+ this.write((PreconDeck) item, count, writer);
}
}
@@ -314,12 +324,24 @@ public class QuestDataIO {
result.add(this.readCardPrinted(reader), cnt);
} else if ("booster".equals(nodename)) {
result.add(this.readBooster(reader), cnt);
+ } else if ("precon".equals(nodename)) {
+ PreconDeck toAdd = this.readPreconDeck(reader);
+ result.add(toAdd, cnt);
}
reader.moveUp();
}
return result;
}
+ private PreconDeck readPreconDeck(final HierarchicalStreamReader reader) {
+ final String name = reader.getAttribute("n");
+ for( PreconDeck d : QuestData.getPreconManager().getDecks() )
+ if ( name.equalsIgnoreCase( d.getName() ) )
+ return d;
+
+ return null;
+ }
+
private BoosterPack readBooster(final HierarchicalStreamReader reader) {
final String set = reader.getAttribute("s");
return new BoosterPack(set);
diff --git a/src/main/java/forge/quest/gui/main/QuestDuel.java b/src/main/java/forge/quest/data/QuestDuel.java
similarity index 97%
rename from src/main/java/forge/quest/gui/main/QuestDuel.java
rename to src/main/java/forge/quest/data/QuestDuel.java
index 0ba9f2f89ba..048433f8a1d 100644
--- a/src/main/java/forge/quest/gui/main/QuestDuel.java
+++ b/src/main/java/forge/quest/data/QuestDuel.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.gui.main;
+package forge.quest.data;
/**
*
diff --git a/src/main/java/forge/quest/gui/main/QuestEvent.java b/src/main/java/forge/quest/data/QuestEvent.java
similarity index 94%
rename from src/main/java/forge/quest/gui/main/QuestEvent.java
rename to src/main/java/forge/quest/data/QuestEvent.java
index 7d2a8ad3b95..752a4e65109 100644
--- a/src/main/java/forge/quest/gui/main/QuestEvent.java
+++ b/src/main/java/forge/quest/data/QuestEvent.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.gui.main;
+package forge.quest.data;
import forge.deck.Deck;
diff --git a/src/main/java/forge/quest/gui/main/QuestEventManager.java b/src/main/java/forge/quest/data/QuestEventManager.java
similarity index 97%
rename from src/main/java/forge/quest/gui/main/QuestEventManager.java
rename to src/main/java/forge/quest/data/QuestEventManager.java
index c0f9050c4b4..748d25bf684 100644
--- a/src/main/java/forge/quest/gui/main/QuestEventManager.java
+++ b/src/main/java/forge/quest/data/QuestEventManager.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.gui.main;
+package forge.quest.data;
import java.io.File;
import java.util.ArrayList;
@@ -25,11 +25,8 @@ import java.util.Random;
import forge.AllZone;
import forge.deck.DeckIO;
-import forge.deck.DeckManager;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestUtil;
import forge.util.FileUtil;
/**
@@ -75,10 +72,6 @@ public class QuestEventManager {
List contents;
QuestEvent tempEvent;
- final File file = ForgeProps.getFile(NewConstants.Quest.DECKS);
-
- final DeckManager manager = new DeckManager(file);
-
final File[] allFiles = ForgeProps.getFile(NewConstants.Quest.DECKS).listFiles(DeckIO.DCK_FILE_FILTER);
for (final File f : allFiles) {
@@ -97,7 +90,7 @@ public class QuestEventManager {
// Assemble metadata (may not be necessary later) and deck object.
this.assembleEventMetadata(contents, tempEvent);
- tempEvent.setEventDeck(manager.getDeck(tempEvent.getName()));
+ tempEvent.setEventDeck(DeckIO.readDeck(contents));
} // End for(allFiles)
this.assembleDuelDifficultyLists();
diff --git a/src/main/java/forge/quest/data/QuestPreconManager.java b/src/main/java/forge/quest/data/QuestPreconManager.java
new file mode 100644
index 00000000000..6e6a163a03c
--- /dev/null
+++ b/src/main/java/forge/quest/data/QuestPreconManager.java
@@ -0,0 +1,59 @@
+package forge.quest.data;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+import javax.swing.JOptionPane;
+
+import org.apache.commons.lang3.StringUtils;
+
+import forge.deck.DeckIO;
+import forge.item.PreconDeck;
+
+/**
+ * Very simple function - store all precons
+ *
+ */
+public class QuestPreconManager {
+
+ final List decks = new ArrayList();
+
+
+ public QuestPreconManager(File deckDir) {
+ final List decksThatFailedToLoad = new ArrayList();
+ File[] files = deckDir.listFiles(DeckIO.DCK_FILE_FILTER);
+ for (final File file : files) {
+ try {
+ decks.add(new PreconDeck(file));
+ } catch (final NoSuchElementException ex) {
+ final String message = String.format("%s failed to load because ---- %s", file.getName(), ex.getMessage());
+ decksThatFailedToLoad.add(message);
+ }
+ }
+
+ if (!decksThatFailedToLoad.isEmpty()) {
+ JOptionPane.showMessageDialog(null,
+ StringUtils.join(decksThatFailedToLoad, System.getProperty("line.separator")),
+ "Some of your decks were not loaded.", JOptionPane.WARNING_MESSAGE);
+ }
+ }
+
+
+ /**
+ * TODO: Write javadoc for this method.
+ * @param q
+ * @return
+ */
+ public List getDecksForCurrent(QuestData q) {
+
+ return decks;
+ }
+
+
+ public final List getDecks() {
+ return decks;
+ }
+
+}
diff --git a/src/main/java/forge/quest/data/QuestUtil.java b/src/main/java/forge/quest/data/QuestUtil.java
index 2abdc2928d3..1f8fa088bbf 100644
--- a/src/main/java/forge/quest/data/QuestUtil.java
+++ b/src/main/java/forge/quest/data/QuestUtil.java
@@ -28,8 +28,6 @@ import forge.Player;
import forge.card.BoosterUtils;
import forge.card.CardRarity;
import forge.item.CardPrinted;
-import forge.quest.gui.main.QuestChallenge;
-import forge.quest.gui.main.QuestEvent;
/**
*
@@ -63,7 +61,7 @@ public class QuestUtil {
* @param qd
* a {@link forge.quest.data.QuestData} object.
* @param qe
- * a {@link forge.quest.gui.main.QuestEvent} object.
+ * a {@link forge.quest.data.QuestEvent} object.
* @return a {@link forge.CardList} object.
*/
public static CardList getComputerStartingCards(final QuestData qd, final QuestEvent qe) {
@@ -114,7 +112,7 @@ public class QuestUtil {
* @param qd
* a {@link forge.quest.data.QuestData} object.
* @param qe
- * a {@link forge.quest.gui.main.QuestEvent} object.
+ * a {@link forge.quest.data.QuestEvent} object.
* @return a {@link forge.CardList} object.
*/
public static CardList getHumanStartingCards(final QuestData qd, final QuestEvent qe) {
diff --git a/src/main/java/forge/quest/data/QuestUtilCards.java b/src/main/java/forge/quest/data/QuestUtilCards.java
index 6a3843046ef..0cda96119ee 100644
--- a/src/main/java/forge/quest/data/QuestUtilCards.java
+++ b/src/main/java/forge/quest/data/QuestUtilCards.java
@@ -35,6 +35,7 @@ import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.ItemPool;
import forge.item.ItemPoolView;
+import forge.item.PreconDeck;
import forge.util.MyRandom;
/**
@@ -204,6 +205,15 @@ public final class QuestUtilCards {
}
}
+ public void buyPreconDeck(final PreconDeck precon, final int value) {
+ if (this.q.getCredits() >= value) {
+ this.q.setCredits(this.q.getCredits() - value);
+ this.q.getShopList().remove(precon);
+ this.q.addDeck(precon.getDeck());
+ this.addAllCards(precon.getDeck().getMain().toFlatList());
+ }
+ }
+
/**
* Sell card.
*
@@ -293,6 +303,30 @@ public final class QuestUtilCards {
/**
* Generate cards in shop.
*/
+ final Predicate filterExt = CardSet.Predicates.Presets.SETS_IN_EXT;
+ final Predicate filterT2booster = Predicate.and(CardSet.Predicates.CAN_MAKE_BOOSTER,
+ CardSet.Predicates.Presets.SETS_IN_STANDARD);
+ final Predicate filterExtButT2 = Predicate.and(CardSet.Predicates.CAN_MAKE_BOOSTER,
+ Predicate.and(filterExt, Predicate.not(CardSet.Predicates.Presets.SETS_IN_STANDARD)));
+ final Predicate filterNotExt = Predicate.and(CardSet.Predicates.CAN_MAKE_BOOSTER,
+ Predicate.not(filterExt));
+
+ public void generateBoostersInShop(int count)
+ {
+ for (int i = 0; i < count; i++) {
+ final int rollD100 = MyRandom.getRandom().nextInt(100);
+ final Predicate filter = rollD100 < 40 ? filterT2booster : (rollD100 < 75 ? filterExtButT2
+ : filterNotExt);
+ this.q.getShopList().addAllCards(filter.random(SetUtils.getAllSets(), 1, BoosterPack.FN_FROM_SET));
+ }
+ }
+
+ public void generatePreconsInShop(int count)
+ {
+ List validDecks = QuestData.getPreconManager().getDecksForCurrent(q);
+ this.q.getShopList().addAllCards(Predicate.getTrue(PreconDeck.class).random(validDecks, count));
+ }
+
public void generateCardsInShop() {
final BoosterGenerator pack = new BoosterGenerator(CardDb.instance().getAllCards());
@@ -300,24 +334,14 @@ public final class QuestUtilCards {
final int winPacks = this.q.getWin() / 10;
final int totalPacks = Math.min(levelPacks + winPacks, 6);
- final Predicate filterExt = CardSet.Predicates.Presets.SETS_IN_EXT;
- final Predicate filterT2booster = Predicate.and(CardSet.Predicates.CAN_MAKE_BOOSTER,
- CardSet.Predicates.Presets.SETS_IN_STANDARD);
- final Predicate filterExtButT2 = Predicate.and(CardSet.Predicates.CAN_MAKE_BOOSTER,
- Predicate.and(filterExt, Predicate.not(CardSet.Predicates.Presets.SETS_IN_STANDARD)));
- final Predicate filterNotExt = Predicate.and(CardSet.Predicates.CAN_MAKE_BOOSTER,
- Predicate.not(filterExt));
this.q.getShopList().clear();
for (int i = 0; i < totalPacks; i++) {
this.q.getShopList().addAllCards(pack.getBoosterPack(7, 3, 1, 0, 0, 0, 0, 0, 0));
-
- // add some boosters
- final int rollD100 = MyRandom.getRandom().nextInt(100);
- final Predicate filter = rollD100 < 40 ? filterT2booster : (rollD100 < 75 ? filterExtButT2
- : filterNotExt);
- this.q.getShopList().addAllCards(filter.random(SetUtils.getAllSets(), 1, BoosterPack.FN_FROM_SET));
}
+
+ generateBoostersInShop(totalPacks);
+ generatePreconsInShop(totalPacks);
this.addBasicLands(this.q.getShopList(), 10, 5);
}
diff --git a/src/main/java/forge/quest/gui/QuestMainPanel.java b/src/main/java/forge/quest/gui/QuestMainPanel.java
index d7a5986142c..493f79bc873 100644
--- a/src/main/java/forge/quest/gui/QuestMainPanel.java
+++ b/src/main/java/forge/quest/gui/QuestMainPanel.java
@@ -52,14 +52,14 @@ import forge.deck.Deck;
import forge.gui.GuiUtils;
import forge.gui.deckeditor.DeckEditorQuest;
import forge.gui.deckeditor.DeckEditorShop;
+import forge.quest.data.QuestChallenge;
import forge.quest.data.QuestData;
+import forge.quest.data.QuestDuel;
+import forge.quest.data.QuestEventManager;
import forge.quest.data.QuestUtil;
import forge.quest.data.item.QuestItemZeppelin;
-import forge.quest.gui.main.QuestChallenge;
import forge.quest.gui.main.QuestChallengePanel;
-import forge.quest.gui.main.QuestDuel;
import forge.quest.gui.main.QuestDuelPanel;
-import forge.quest.gui.main.QuestEventManager;
import forge.quest.gui.main.QuestSelectablePanel;
import forge.view.GuiTopLevel;
@@ -77,7 +77,7 @@ public class QuestMainPanel extends QuestAbstractPanel {
private static final long serialVersionUID = 6142934729724012402L;
private final forge.quest.data.QuestData questData;
- private forge.quest.gui.main.QuestEventManager qem;
+ private forge.quest.data.QuestEventManager qem;
/** The credits label. */
private final JLabel creditsLabel = new JLabel();
diff --git a/src/main/java/forge/quest/gui/QuestWinLoseHandler.java b/src/main/java/forge/quest/gui/QuestWinLoseHandler.java
index 11bff2b985f..ee97b42f40c 100644
--- a/src/main/java/forge/quest/gui/QuestWinLoseHandler.java
+++ b/src/main/java/forge/quest/gui/QuestWinLoseHandler.java
@@ -45,11 +45,11 @@ import forge.gui.GuiUtils;
import forge.gui.ListChooser;
import forge.item.CardPrinted;
import forge.model.FMatchState;
+import forge.quest.data.QuestChallenge;
import forge.quest.data.QuestData;
+import forge.quest.data.QuestEvent;
import forge.quest.data.QuestPreferences;
import forge.quest.data.QuestUtil;
-import forge.quest.gui.main.QuestChallenge;
-import forge.quest.gui.main.QuestEvent;
import forge.util.MyRandom;
import forge.view.GuiTopLevel;
import forge.view.match.ViewWinLose;
diff --git a/src/main/java/forge/quest/gui/main/QuestChallengePanel.java b/src/main/java/forge/quest/gui/main/QuestChallengePanel.java
index a4ba9931f14..26478faff07 100644
--- a/src/main/java/forge/quest/gui/main/QuestChallengePanel.java
+++ b/src/main/java/forge/quest/gui/main/QuestChallengePanel.java
@@ -20,6 +20,7 @@ package forge.quest.gui.main;
import javax.swing.JLabel;
import forge.gui.GuiUtils;
+import forge.quest.data.QuestChallenge;
/**
*
diff --git a/src/main/java/forge/quest/gui/main/QuestDuelPanel.java b/src/main/java/forge/quest/gui/main/QuestDuelPanel.java
index 66b66796856..725d8bf92ba 100644
--- a/src/main/java/forge/quest/gui/main/QuestDuelPanel.java
+++ b/src/main/java/forge/quest/gui/main/QuestDuelPanel.java
@@ -17,6 +17,8 @@
*/
package forge.quest.gui.main;
+import forge.quest.data.QuestDuel;
+
/**
*
* QuestDuelPanel.
diff --git a/src/main/java/forge/quest/gui/main/QuestSelectablePanel.java b/src/main/java/forge/quest/gui/main/QuestSelectablePanel.java
index 6be13e88a7c..8b5984a5148 100644
--- a/src/main/java/forge/quest/gui/main/QuestSelectablePanel.java
+++ b/src/main/java/forge/quest/gui/main/QuestSelectablePanel.java
@@ -34,6 +34,7 @@ import javax.swing.border.LineBorder;
import forge.gui.GuiUtils;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
+import forge.quest.data.QuestEvent;
/**
*
diff --git a/src/main/java/forge/view/home/ViewQuest.java b/src/main/java/forge/view/home/ViewQuest.java
index c51a44a0f26..aa9c636ec16 100644
--- a/src/main/java/forge/view/home/ViewQuest.java
+++ b/src/main/java/forge/view/home/ViewQuest.java
@@ -31,14 +31,14 @@ import forge.control.home.ControlQuest;
import forge.gui.GuiUtils;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
+import forge.quest.data.QuestChallenge;
import forge.quest.data.QuestData;
import forge.quest.data.QuestDataIO;
+import forge.quest.data.QuestDuel;
+import forge.quest.data.QuestEvent;
+import forge.quest.data.QuestEventManager;
import forge.quest.data.item.QuestItemZeppelin;
import forge.quest.data.pet.QuestPetAbstract;
-import forge.quest.gui.main.QuestChallenge;
-import forge.quest.gui.main.QuestDuel;
-import forge.quest.gui.main.QuestEvent;
-import forge.quest.gui.main.QuestEventManager;
import forge.view.toolbox.FList;
import forge.view.toolbox.FProgressBar;
import forge.view.toolbox.FScrollPane;