diff --git a/.gitattributes b/.gitattributes
index 4a319d89936..f17d93ce7e6 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -11678,42 +11678,37 @@ 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/QuestChallenge.java svneol=native#text/plain
src/main/java/forge/quest/QuestController.java -text
src/main/java/forge/quest/QuestDeckMap.java -text
-src/main/java/forge/quest/QuestDuel.java svneol=native#text/plain
src/main/java/forge/quest/QuestEvent.java -text
+src/main/java/forge/quest/QuestEventChallenge.java svneol=native#text/plain
+src/main/java/forge/quest/QuestEventDifficulty.java -text
+src/main/java/forge/quest/QuestEventDuel.java svneol=native#text/plain
src/main/java/forge/quest/QuestEventManager.java svneol=native#text/plain
-src/main/java/forge/quest/QuestStallManager.java svneol=native#text/plain
+src/main/java/forge/quest/QuestMode.java -text
+src/main/java/forge/quest/QuestStartPool.java -text
src/main/java/forge/quest/QuestUtil.java svneol=native#text/plain
src/main/java/forge/quest/QuestUtilCards.java -text
src/main/java/forge/quest/SellRules.java -text
+src/main/java/forge/quest/bazaar/IQuestBazaarItem.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/QuestBazaarManager.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/QuestItemBasic.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/QuestItemElixir.java -text
+src/main/java/forge/quest/bazaar/QuestItemEstates.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/QuestItemPoundFlesh.java -text
+src/main/java/forge/quest/bazaar/QuestItemType.java -text
+src/main/java/forge/quest/bazaar/QuestItemZeppelin.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/QuestPetController.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/QuestPetStats.java -text
+src/main/java/forge/quest/bazaar/QuestPetStorage.java -text
+src/main/java/forge/quest/bazaar/QuestStallDefinition.java svneol=native#text/plain
+src/main/java/forge/quest/bazaar/package-info.java svneol=native#text/plain
src/main/java/forge/quest/data/QuestAchievements.java -text
src/main/java/forge/quest/data/QuestAssets.java -text
src/main/java/forge/quest/data/QuestData.java svneol=native#text/plain
-src/main/java/forge/quest/data/QuestDuelDifficulty.java -text
src/main/java/forge/quest/data/QuestItemCondition.java -text
-src/main/java/forge/quest/data/QuestMode.java -text
src/main/java/forge/quest/data/QuestPreferences.java svneol=native#text/plain
-src/main/java/forge/quest/data/QuestStallDefinition.java svneol=native#text/plain
-src/main/java/forge/quest/data/QuestStartPool.java -text
-src/main/java/forge/quest/data/item/IQuestStallPurchasable.java svneol=native#text/plain
-src/main/java/forge/quest/data/item/QuestItemElixir.java -text
-src/main/java/forge/quest/data/item/QuestItemEstates.java svneol=native#text/plain
-src/main/java/forge/quest/data/item/QuestItemPassive.java svneol=native#text/plain
-src/main/java/forge/quest/data/item/QuestItemPoundFlesh.java -text
-src/main/java/forge/quest/data/item/QuestItemType.java -text
-src/main/java/forge/quest/data/item/QuestItemZeppelin.java svneol=native#text/plain
-src/main/java/forge/quest/data/item/package-info.java svneol=native#text/plain
src/main/java/forge/quest/data/package-info.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetAbstract.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetBird.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetCrocodile.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetHound.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetManager.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetPlant.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/QuestPetWolf.java svneol=native#text/plain
-src/main/java/forge/quest/data/pet/package-info.java svneol=native#text/plain
src/main/java/forge/quest/io/PreconReader.java -text
src/main/java/forge/quest/io/QuestDataIO.java svneol=native#text/plain
src/main/java/forge/quest/io/ReadPriceList.java svneol=native#text/plain
@@ -11731,6 +11726,9 @@ src/main/java/forge/util/IItemSerializer.java -text
src/main/java/forge/util/IStorage.java -text
src/main/java/forge/util/IStorageView.java -text
src/main/java/forge/util/IgnoringXStream.java -text
+src/main/java/forge/util/Lambda.java svneol=native#text/plain
+src/main/java/forge/util/Lambda0.java -text
+src/main/java/forge/util/Lambda1.java svneol=native#text/plain
src/main/java/forge/util/LineReader.java -text
src/main/java/forge/util/MyRandom.java svneol=native#text/plain
src/main/java/forge/util/Predicate.java -text
@@ -11772,13 +11770,6 @@ src/main/java/net/slightlymagic/braids/util/generator/FindNonDirectoriesSkipDotD
src/main/java/net/slightlymagic/braids/util/generator/GeneratorFromArray.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/generator/GeneratorFunctions.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/generator/package-info.java svneol=native#text/plain
-src/main/java/net/slightlymagic/braids/util/lambda/Lambda.java svneol=native#text/plain
-src/main/java/net/slightlymagic/braids/util/lambda/Lambda0.java -text
-src/main/java/net/slightlymagic/braids/util/lambda/Lambda1.java svneol=native#text/plain
-src/main/java/net/slightlymagic/braids/util/lambda/Lambda2.java svneol=native#text/plain
-src/main/java/net/slightlymagic/braids/util/lambda/Lambda3.java svneol=native#text/plain
-src/main/java/net/slightlymagic/braids/util/lambda/Thunk.java svneol=native#text/plain
-src/main/java/net/slightlymagic/braids/util/lambda/package-info.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/package-info.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/progress_monitor/BaseProgressMonitor.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/progress_monitor/BraidsProgressMonitor.java svneol=native#text/plain
diff --git a/src/main/java/forge/CardFilter.java b/src/main/java/forge/CardFilter.java
index 58fa0a29e5e..17a559f0a2e 100644
--- a/src/main/java/forge/CardFilter.java
+++ b/src/main/java/forge/CardFilter.java
@@ -21,11 +21,11 @@ import java.util.List;
import net.slightlymagic.braids.util.UtilFunctions;
import net.slightlymagic.braids.util.generator.GeneratorFunctions;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import com.google.code.jyield.Generator;
import forge.card.EditionInfo;
+import forge.util.Lambda1;
/**
*
diff --git a/src/main/java/forge/NameChanger.java b/src/main/java/forge/NameChanger.java
index f6e3e129bd2..a925c05eab3 100644
--- a/src/main/java/forge/NameChanger.java
+++ b/src/main/java/forge/NameChanger.java
@@ -25,7 +25,6 @@ import java.util.StringTokenizer;
import java.util.TreeMap;
import net.slightlymagic.braids.util.generator.GeneratorFunctions;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import com.google.code.jyield.Generator;
import com.google.code.jyield.YieldUtils;
@@ -34,6 +33,7 @@ import forge.card.spellability.SpellAbility;
import forge.error.ErrorViewer;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
+import forge.util.Lambda1;
/**
*
diff --git a/src/main/java/forge/card/BoosterData.java b/src/main/java/forge/card/BoosterData.java
index 65a68fd3970..2bc781ae332 100644
--- a/src/main/java/forge/card/BoosterData.java
+++ b/src/main/java/forge/card/BoosterData.java
@@ -2,9 +2,9 @@ package forge.card;
import forge.item.CardPrinted;
import forge.util.FileSection;
+import forge.util.Lambda1;
import forge.util.Predicate;
import forge.util.StorageReaderFile;
-import net.slightlymagic.braids.util.lambda.Lambda1;
/**
* The Class BoosterData.
diff --git a/src/main/java/forge/card/BoosterGenerator.java b/src/main/java/forge/card/BoosterGenerator.java
index 5441f5e1d51..c537310354f 100644
--- a/src/main/java/forge/card/BoosterGenerator.java
+++ b/src/main/java/forge/card/BoosterGenerator.java
@@ -24,10 +24,10 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.item.CardDb;
import forge.item.CardPrinted;
import forge.item.ItemPoolView;
+import forge.util.Lambda1;
import forge.util.MyRandom;
import forge.util.Predicate;
diff --git a/src/main/java/forge/card/CardBlock.java b/src/main/java/forge/card/CardBlock.java
index 3c7ef258719..df877393612 100644
--- a/src/main/java/forge/card/CardBlock.java
+++ b/src/main/java/forge/card/CardBlock.java
@@ -20,8 +20,8 @@ package forge.card;
import java.util.ArrayList;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.item.CardPrinted;
+import forge.util.Lambda1;
import forge.util.Predicate;
import forge.util.StorageReaderFile;
diff --git a/src/main/java/forge/card/CardEdition.java b/src/main/java/forge/card/CardEdition.java
index 39eb027d4b9..e4fcdebc77b 100644
--- a/src/main/java/forge/card/CardEdition.java
+++ b/src/main/java/forge/card/CardEdition.java
@@ -17,10 +17,10 @@
*/
package forge.card;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.Singletons;
import forge.game.GameFormat;
import forge.util.FileSection;
+import forge.util.Lambda1;
import forge.util.Predicate;
import forge.util.StorageReaderFile;
diff --git a/src/main/java/forge/card/FatPackData.java b/src/main/java/forge/card/FatPackData.java
index 9830a74c111..6d1380edb2d 100644
--- a/src/main/java/forge/card/FatPackData.java
+++ b/src/main/java/forge/card/FatPackData.java
@@ -1,7 +1,7 @@
package forge.card;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.util.FileSection;
+import forge.util.Lambda1;
import forge.util.StorageReaderFile;
/**
diff --git a/src/main/java/forge/card/UnOpenedProduct.java b/src/main/java/forge/card/UnOpenedProduct.java
index c06b9713ced..15370099ea4 100644
--- a/src/main/java/forge/card/UnOpenedProduct.java
+++ b/src/main/java/forge/card/UnOpenedProduct.java
@@ -2,8 +2,8 @@ package forge.card;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.item.CardPrinted;
+import forge.util.Lambda1;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/card/cardfactory/AbstractCardFactory.java b/src/main/java/forge/card/cardfactory/AbstractCardFactory.java
index 8f213f93443..013ac4eb449 100644
--- a/src/main/java/forge/card/cardfactory/AbstractCardFactory.java
+++ b/src/main/java/forge/card/cardfactory/AbstractCardFactory.java
@@ -450,20 +450,9 @@ public abstract class AbstractCardFactory implements CardFactoryInterface {
return result;
}
- /**
- *
{
* blankCard
*/
Card getCard(String cardName, Player owner);
+ //Card getCard2(final String cardName, final Card o, final Player owner);
/**
* Fetch a random combination of cards without any duplicates.
diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java
index 87bde462207..64c9e735733 100644
--- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java
+++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java
@@ -4089,7 +4089,7 @@ public class CardFactoryUtil {
* a {@link java.lang.Object} object.
* @return a {@link forge.Card} object.
*/
- public static Card copyStats(final Object o) {
+ public static Card copyStats(final Card o) {
final Card sim = (Card) o;
final Card c = new Card();
diff --git a/src/main/java/forge/control/ControlBazaarUI.java b/src/main/java/forge/control/ControlBazaarUI.java
index eca1600456c..eda0db6840b 100644
--- a/src/main/java/forge/control/ControlBazaarUI.java
+++ b/src/main/java/forge/control/ControlBazaarUI.java
@@ -9,7 +9,7 @@ import javax.swing.SwingUtilities;
import com.google.common.collect.Iterables;
import forge.gui.toolbox.FLabel;
-import forge.quest.QuestStallManager;
+import forge.quest.bazaar.QuestBazaarManager;
import forge.view.ViewBazaarUI;
/**
@@ -19,14 +19,14 @@ import forge.view.ViewBazaarUI;
public class ControlBazaarUI {
private final ViewBazaarUI view;
private final ComponentListener cadResize;
- private final QuestStallManager model;
+ private final QuestBazaarManager model;
/**
* Controls top-level instance of bazaar.
* @param v0 {@link forge.view.ViewBazaarUI}
* @param bazaar
*/
- public ControlBazaarUI(ViewBazaarUI v0, QuestStallManager bazaar0) {
+ public ControlBazaarUI(ViewBazaarUI v0, QuestBazaarManager bazaar0) {
view = v0;
model = bazaar0;
diff --git a/src/main/java/forge/control/input/InputMulligan.java b/src/main/java/forge/control/input/InputMulligan.java
index 39a76c7de1c..6d6fc2ecc5d 100644
--- a/src/main/java/forge/control/input/InputMulligan.java
+++ b/src/main/java/forge/control/input/InputMulligan.java
@@ -38,7 +38,7 @@ import forge.card.abilityfactory.AbilityFactory;
import forge.card.spellability.SpellAbility;
import forge.game.GamePlayerRating;
import forge.quest.QuestController;
-import forge.quest.data.item.QuestItemType;
+import forge.quest.bazaar.QuestItemType;
/**
*
* InputMulligan class.
diff --git a/src/main/java/forge/deck/Deck.java b/src/main/java/forge/deck/Deck.java
index ed1d108b4e0..bc9756d1a2f 100644
--- a/src/main/java/forge/deck/Deck.java
+++ b/src/main/java/forge/deck/Deck.java
@@ -28,7 +28,6 @@ import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import org.apache.commons.lang3.StringUtils;
@@ -39,6 +38,7 @@ import forge.item.CardPrinted;
import forge.item.ItemPoolView;
import forge.util.FileSection;
import forge.util.FileUtil;
+import forge.util.Lambda1;
/**
*
diff --git a/src/main/java/forge/deck/DeckGroup.java b/src/main/java/forge/deck/DeckGroup.java
index 0bf2f5ff621..9386149ed34 100644
--- a/src/main/java/forge/deck/DeckGroup.java
+++ b/src/main/java/forge/deck/DeckGroup.java
@@ -20,10 +20,10 @@ package forge.deck;
import java.util.ArrayList;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.item.CardPrinted;
import forge.item.ItemPoolView;
+import forge.util.Lambda1;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/game/GameFormat.java b/src/main/java/forge/game/GameFormat.java
index f9add3029af..aa91b9cd994 100644
--- a/src/main/java/forge/game/GameFormat.java
+++ b/src/main/java/forge/game/GameFormat.java
@@ -20,9 +20,9 @@ package forge.game;
import java.util.Collections;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.card.CardRules;
import forge.item.CardPrinted;
+import forge.util.Lambda1;
import forge.util.Predicate;
/**
diff --git a/src/main/java/forge/game/limited/BoosterDraft.java b/src/main/java/forge/game/limited/BoosterDraft.java
index 0969352fc93..5ea83ce1aea 100644
--- a/src/main/java/forge/game/limited/BoosterDraft.java
+++ b/src/main/java/forge/game/limited/BoosterDraft.java
@@ -29,7 +29,6 @@ import java.util.TreeMap;
import javax.swing.JOptionPane;
import net.slightlymagic.braids.util.UtilFunctions;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.Card;
import forge.CardList;
import forge.Constant;
@@ -48,6 +47,7 @@ import forge.properties.ForgeProps;
import forge.properties.NewConstants;
import forge.util.FileUtil;
import forge.util.HttpUtil;
+import forge.util.Lambda1;
/**
*
diff --git a/src/main/java/forge/game/limited/SealedDeck.java b/src/main/java/forge/game/limited/SealedDeck.java
index e8921558b6a..1d0c638718d 100644
--- a/src/main/java/forge/game/limited/SealedDeck.java
+++ b/src/main/java/forge/game/limited/SealedDeck.java
@@ -24,7 +24,6 @@ import java.util.List;
import javax.swing.JOptionPane;
import net.slightlymagic.braids.util.UtilFunctions;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.AllZone;
import forge.Card;
import forge.CardList;
@@ -43,6 +42,7 @@ import forge.item.CardDb;
import forge.item.CardPrinted;
import forge.item.ItemPool;
import forge.util.FileUtil;
+import forge.util.Lambda1;
import forge.util.MyRandom;
/**
diff --git a/src/main/java/forge/gui/deckeditor/DeckController.java b/src/main/java/forge/gui/deckeditor/DeckController.java
index 721f0bbff74..1ca39dccb7d 100644
--- a/src/main/java/forge/gui/deckeditor/DeckController.java
+++ b/src/main/java/forge/gui/deckeditor/DeckController.java
@@ -20,12 +20,12 @@ package forge.gui.deckeditor;
import java.awt.Component;
import java.util.ArrayList;
-import net.slightlymagic.braids.util.lambda.Lambda0;
import org.apache.commons.lang3.StringUtils;
import forge.deck.DeckBase;
import forge.util.IStorage;
+import forge.util.Lambda0;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorConstructed.java b/src/main/java/forge/gui/deckeditor/DeckEditorConstructed.java
index 16381be3023..6b22dc13894 100644
--- a/src/main/java/forge/gui/deckeditor/DeckEditorConstructed.java
+++ b/src/main/java/forge/gui/deckeditor/DeckEditorConstructed.java
@@ -36,7 +36,6 @@ import javax.swing.JCheckBox;
import javax.swing.JLabel;
import net.miginfocom.swing.MigLayout;
-import net.slightlymagic.braids.util.lambda.Lambda0;
import forge.Command;
import forge.Singletons;
import forge.deck.Deck;
@@ -51,6 +50,7 @@ import forge.item.CardDb;
import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.ItemPool;
+import forge.util.Lambda0;
import forge.util.Predicate;
/**
diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java b/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java
index 613725fe7e0..dbcb3455efa 100644
--- a/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java
+++ b/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java
@@ -35,7 +35,6 @@ import javax.swing.JCheckBox;
import javax.swing.JLabel;
import net.miginfocom.swing.MigLayout;
-import net.slightlymagic.braids.util.lambda.Lambda0;
import forge.Command;
import forge.deck.Deck;
import forge.deck.DeckGroup;
@@ -49,6 +48,7 @@ import forge.gui.deckeditor.elements.TableView;
import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.util.IStorage;
+import forge.util.Lambda0;
import forge.util.Predicate;
/**
diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorQuest.java b/src/main/java/forge/gui/deckeditor/DeckEditorQuest.java
index b1bdb20a9eb..cf02f5d40ae 100644
--- a/src/main/java/forge/gui/deckeditor/DeckEditorQuest.java
+++ b/src/main/java/forge/gui/deckeditor/DeckEditorQuest.java
@@ -31,7 +31,6 @@ import java.util.List;
import javax.swing.JButton;
import javax.swing.JCheckBox;
-import net.slightlymagic.braids.util.lambda.Lambda0;
import forge.Command;
import forge.Constant;
import forge.deck.Deck;
@@ -47,6 +46,7 @@ import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.ItemPool;
import forge.quest.QuestController;
+import forge.util.Lambda0;
import forge.util.Predicate;
//import forge.quest.data.QuestBoosterPack;
diff --git a/src/main/java/forge/gui/deckeditor/PresetColumns.java b/src/main/java/forge/gui/deckeditor/PresetColumns.java
index e1af3a01f29..68f4944f389 100644
--- a/src/main/java/forge/gui/deckeditor/PresetColumns.java
+++ b/src/main/java/forge/gui/deckeditor/PresetColumns.java
@@ -20,7 +20,6 @@ package forge.gui.deckeditor;
import java.util.Map.Entry;
import java.util.regex.Pattern;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.Singletons;
import forge.card.CardColor;
import forge.card.CardEdition;
@@ -29,6 +28,7 @@ import forge.card.CardRarity;
import forge.item.CardPrinted;
import forge.item.InventoryItem;
import forge.item.InventoryItemFromSet;
+import forge.util.Lambda1;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/gui/deckeditor/QuestCardShop.java b/src/main/java/forge/gui/deckeditor/QuestCardShop.java
index 5c41bb8db70..59a98c2f554 100644
--- a/src/main/java/forge/gui/deckeditor/QuestCardShop.java
+++ b/src/main/java/forge/gui/deckeditor/QuestCardShop.java
@@ -33,7 +33,6 @@ import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.Command;
import forge.deck.Deck;
import forge.deck.DeckBase;
@@ -55,6 +54,7 @@ import forge.item.PreconDeck;
import forge.item.TournamentPack;
import forge.quest.QuestController;
import forge.quest.io.ReadPriceList;
+import forge.util.Lambda1;
import forge.util.Predicate;
/**
diff --git a/src/main/java/forge/gui/deckeditor/elements/TableColumnInfo.java b/src/main/java/forge/gui/deckeditor/elements/TableColumnInfo.java
index aed38206eed..22aadfd6975 100644
--- a/src/main/java/forge/gui/deckeditor/elements/TableColumnInfo.java
+++ b/src/main/java/forge/gui/deckeditor/elements/TableColumnInfo.java
@@ -21,7 +21,8 @@ import java.util.Map.Entry;
import javax.swing.table.TableCellRenderer;
-import net.slightlymagic.braids.util.lambda.Lambda1;
+import forge.util.Lambda1;
+
/**
* Holds single column set up for TableModel. Contains name, width + functions
diff --git a/src/main/java/forge/gui/deckeditor/elements/TableSorter.java b/src/main/java/forge/gui/deckeditor/elements/TableSorter.java
index f4ac07d146b..33534f4a0f6 100644
--- a/src/main/java/forge/gui/deckeditor/elements/TableSorter.java
+++ b/src/main/java/forge/gui/deckeditor/elements/TableSorter.java
@@ -20,8 +20,8 @@ package forge.gui.deckeditor.elements;
import java.util.Comparator;
import java.util.Map.Entry;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.item.CardPrinted;
+import forge.util.Lambda1;
/**
*
diff --git a/src/main/java/forge/gui/home/quest/CSubmenuChallenges.java b/src/main/java/forge/gui/home/quest/CSubmenuChallenges.java
index f16e26580ad..146ae8ed1d0 100644
--- a/src/main/java/forge/gui/home/quest/CSubmenuChallenges.java
+++ b/src/main/java/forge/gui/home/quest/CSubmenuChallenges.java
@@ -14,8 +14,9 @@ import forge.gui.home.EMenuItem;
import forge.gui.home.ICSubmenu;
import forge.gui.home.quest.SubmenuQuestUtil.SelectablePanel;
import forge.gui.toolbox.FLabel;
-import forge.quest.QuestChallenge;
+import forge.quest.QuestEventChallenge;
import forge.quest.QuestController;
+import forge.quest.bazaar.QuestPetController;
import forge.view.ViewHomeUI;
/**
@@ -76,28 +77,18 @@ public enum CSubmenuChallenges implements ICSubmenu {
view.getCbPlant().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
- quest.getAssets().getPetManager().setUsePlant(view.getCbPlant().isSelected());
- }
- });
-
- view.getCbZep().addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- quest.getAssets().getPetManager().setUsePlant(view.getCbZep().isSelected());
+ quest.selectPet(0, view.getCbPlant().isSelected() ? "Plant" : null);
}
});
view.getCbxPet().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
+ final int SLOT = 1;
final int index = view.getCbxPet().getSelectedIndex();
- if (index != -1 && index != 0) {
- final String pet = ((String) view.getCbxPet().getSelectedItem());
- quest.getAssets().getPetManager().setSelectedPet(pet.substring(7));
- }
- else {
- quest.getAssets().getPetManager().setSelectedPet(null);
- }
+ List pets = quest.getPetsStorage().getAvaliablePets(SLOT, quest.getAssets());
+ String petName = index <= 0 || index > pets.size() ? null : pets.get(index-1).getName();
+ quest.selectPet(SLOT, petName);
}
});
}
@@ -115,9 +106,9 @@ public enum CSubmenuChallenges implements ICSubmenu {
view.getLblTitle().setText("Challenges: " + AllZone.getQuest().getRank());
view.getPnlChallenges().removeAll();
- final List challenges = AllZone.getQuest().getEventManager().generateChallenges();
+ final List challenges = AllZone.getQuest().getEventManager().generateChallenges();
- for (final QuestChallenge c : challenges) {
+ for (final QuestEventChallenge c : challenges) {
final SelectablePanel temp = new SelectablePanel(c);
view.getPnlChallenges().add(temp, "w 96%!, h 86px!, gap 2% 0 5px 5px");
}
diff --git a/src/main/java/forge/gui/home/quest/CSubmenuDuels.java b/src/main/java/forge/gui/home/quest/CSubmenuDuels.java
index 3fe0739b57f..675998168fb 100644
--- a/src/main/java/forge/gui/home/quest/CSubmenuDuels.java
+++ b/src/main/java/forge/gui/home/quest/CSubmenuDuels.java
@@ -10,7 +10,8 @@ import forge.gui.home.EMenuItem;
import forge.gui.home.ICSubmenu;
import forge.gui.home.quest.SubmenuQuestUtil.SelectablePanel;
import forge.quest.QuestController;
-import forge.quest.QuestDuel;
+import forge.quest.QuestEventDuel;
+import forge.quest.bazaar.QuestPetController;
import forge.view.ViewHomeUI;
/**
@@ -70,28 +71,18 @@ public enum CSubmenuDuels implements ICSubmenu {
view.getCbPlant().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
- quest.getAssets().getPetManager().setUsePlant(view.getCbPlant().isSelected());
- }
- });
-
- view.getCbZep().addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- quest.getAssets().getPetManager().setUsePlant(view.getCbZep().isSelected());
+ quest.selectPet(0, view.getCbPlant().isSelected() ? "Plant" : null);
}
});
view.getCbxPet().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
+ final int SLOT = 1;
final int index = view.getCbxPet().getSelectedIndex();
- if (index != -1 && index != 0) {
- final String pet = ((String) view.getCbxPet().getSelectedItem());
- quest.getAssets().getPetManager().setSelectedPet(pet.substring(7));
- }
- else {
- quest.getAssets().getPetManager().setSelectedPet(null);
- }
+ List pets = quest.getPetsStorage().getAvaliablePets(SLOT, quest.getAssets());
+ String petName = index <= 0 || index > pets.size() ? null : pets.get(index-1).getName();
+ quest.selectPet(SLOT, petName);
}
});
}
@@ -109,9 +100,9 @@ public enum CSubmenuDuels implements ICSubmenu {
view.getLblTitle().setText("Duels: " + AllZone.getQuest().getRank());
view.getPnlDuels().removeAll();
- final List duels = AllZone.getQuest().getEventManager().generateDuels();
+ final List duels = AllZone.getQuest().getEventManager().generateDuels();
- for (final QuestDuel d : duels) {
+ for (final QuestEventDuel d : duels) {
final SelectablePanel temp = new SelectablePanel(d);
view.getPnlDuels().add(temp, "w 96%!, h 86px!, gap 2% 0 5px 5px");
}
diff --git a/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java b/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java
index b6b7c388c78..bd74b410d45 100644
--- a/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java
+++ b/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java
@@ -8,10 +8,10 @@ import forge.gui.home.ICSubmenu;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
import forge.quest.QuestController;
+import forge.quest.QuestMode;
+import forge.quest.QuestStartPool;
import forge.quest.data.QuestData;
-import forge.quest.data.QuestMode;
import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.data.QuestStartPool;
import forge.quest.io.QuestDataIO;
import javax.swing.*;
@@ -21,7 +21,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
-import static forge.quest.data.QuestStartPool.*;
+import static forge.quest.QuestStartPool.*;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/gui/home/quest/SubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SubmenuQuestUtil.java
index 37815ab3112..2892fe291cf 100644
--- a/src/main/java/forge/gui/home/quest/SubmenuQuestUtil.java
+++ b/src/main/java/forge/gui/home/quest/SubmenuQuestUtil.java
@@ -16,24 +16,25 @@ import forge.gui.toolbox.FSkin;
import forge.gui.toolbox.FTextArea;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
-import forge.quest.QuestChallenge;
+import forge.quest.QuestEventChallenge;
import forge.quest.QuestController;
import forge.quest.QuestEvent;
+import forge.quest.QuestMode;
import forge.quest.QuestUtil;
+import forge.quest.bazaar.QuestItemType;
+import forge.quest.bazaar.QuestPetController;
import forge.quest.data.QuestAchievements;
import forge.quest.data.QuestAssets;
-import forge.quest.data.QuestMode;
import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.data.item.QuestItemType;
-import forge.quest.data.pet.QuestPetAbstract;
import net.miginfocom.swing.MigLayout;
import org.apache.commons.lang3.StringUtils;
-import javax.swing.*;
import java.io.File;
-import java.util.Set;
+import java.util.List;
-import static forge.quest.QuestEvent.QuestEventType.CHALLENGE;
+import javax.swing.ImageIcon;
+import javax.swing.SwingUtilities;
+import javax.swing.SwingWorker;
/**
* Utilities for the quest submenu, all over the MVC spectrum.
@@ -66,11 +67,47 @@ public class SubmenuQuestUtil {
return (delta > 0) ? delta : 0;
}
+ private static void updatePlantAndPetForView(final IStatsAndPet view, final QuestController qCtrl) {
+ for( int iSlot = 0; iSlot < QuestController.MAX_PET_SLOTS; iSlot++ ) {
+ final List petList = qCtrl.getPetsStorage().getAvaliablePets(iSlot, qCtrl.getAssets());
+ final String currentPetName = qCtrl.getSelectedPet(iSlot);
+
+ if ( iSlot == 0 ) { // Plant visiblity
+ if (petList.isEmpty()) {
+ view.getCbPlant().setVisible(false);
+ }
+ else {
+ view.getCbPlant().setVisible(true);
+ view.getCbPlant().setSelected(qCtrl.getSelectedPet(iSlot) != null);
+ }
+ }
+ if ( iSlot == 1 ) {
+ view.getCbxPet().removeAllItems();
+ // Pet list visibility
+ if (petList.size() > 0) {
+ view.getCbxPet().setEnabled(true);
+ view.getCbxPet().addItem("Don't summon a pet");
+
+ for (final QuestPetController pet : petList) {
+ String name = "Summon " + pet.getName();
+ view.getCbxPet().addItem(name);
+ if ( pet.getName().equals(currentPetName) )
+ view.getCbxPet().setSelectedItem(name);
+ }
+ } else {
+ view.getCbxPet().setVisible(false);
+ }
+ }
+ }
+ view.getCbZep().setVisible(qCtrl.getAssets().hasItem(QuestItemType.ZEPPELIN));
+ }
+
+
/** Updates stats, pets panels for both duels and challenges. */
public static void updateStatsAndPet() {
- final QuestController qData = AllZone.getQuest();
- final QuestAchievements qA = qData.getAchievements();
- final QuestAssets qS = qData.getAssets();
+ final QuestController qCtrl = AllZone.getQuest();
+ final QuestAchievements qA = qCtrl.getAchievements();
+ final QuestAssets qS = qCtrl.getAssets();
if (qA == null) { return; }
@@ -88,7 +125,7 @@ public class SubmenuQuestUtil {
// Stats panel
view.getLblCredits().setText("Credits: " + qS.getCredits());
- view.getLblLife().setText("Life: " + qS.getLife(qData.getMode()));
+ view.getLblLife().setText("Life: " + qS.getLife(qCtrl.getMode()));
view.getLblWins().setText("Wins: " + qA.getWin());
view.getLblLosses().setText("Losses: " + qA.getLost());
view.updateCurrentDeckStatus();
@@ -106,34 +143,8 @@ public class SubmenuQuestUtil {
+ " (Best:" + qA.getWinStreakBest() + ")");
// Start panel: pet, plant, zep.
- if (qData.getMode() == QuestMode.Fantasy) {
- final Set petList = qS.getPetManager().getAvailablePetNames();
- final QuestPetAbstract currentPet = qS.getPetManager().getSelectedPet();
-
- view.getCbxPet().removeAllItems();
- // Pet list visibility
- if (petList.size() > 0) {
- view.getCbxPet().setEnabled(true);
- view.getCbxPet().addItem("Don't summon a pet");
- for (final String pet : petList) {
- view.getCbxPet().addItem("Summon " + pet);
- }
-
- if (currentPet != null) { view.getCbxPet().setSelectedItem("Summon " + currentPet.getName()); }
- } else {
- view.getCbxPet().setVisible(false);
- }
-
- // Plant visiblity
- if (qS.getPetManager().getPlant().getLevel() == 0) {
- view.getCbPlant().setVisible(false);
- }
- else {
- view.getCbPlant().setVisible(true);
- view.getCbPlant().setSelected(qS.getPetManager().shouldPlantBeUsed());
- }
-
- view.getCbZep().setVisible(qS.hasItem(QuestItemType.ZEPPELIN));
+ if (qCtrl.getMode() == QuestMode.Fantasy) {
+ updatePlantAndPetForView(view, qCtrl);
}
else {
// Classic mode display changes
@@ -215,8 +226,8 @@ public class SubmenuQuestUtil {
int baseLifeHuman = qData.getAssets().getLife(qData.getMode());
int extraLifeHuman = 0;
- if (selectedOpponent.getEvent().getEventType() == CHALLENGE) {
- lifeAI = ((QuestChallenge) event).getAILife();
+ if (selectedOpponent.getEvent() instanceof QuestEventChallenge) {
+ lifeAI = ((QuestEventChallenge) event).getAILife();
if (qData.getAssets().hasItem(QuestItemType.ZEPPELIN)
&& VSubmenuChallenges.SINGLETON_INSTANCE.getCbZep().isSelected()) {
@@ -227,7 +238,7 @@ public class SubmenuQuestUtil {
GameNew.newGame(
Constant.Runtime.HUMAN_DECK[0],
Constant.Runtime.COMPUTER_DECK[0],
- QuestUtil.getHumanStartingCards(qData.getAssets(), event),
+ QuestUtil.getHumanStartingCards(qData, event),
QuestUtil.getComputerStartingCards(event),
baseLifeHuman + extraLifeHuman,
lifeAI,
@@ -295,10 +306,10 @@ public class SubmenuQuestUtil {
// Name
final FLabel lblName = new FLabel.Builder().hoverable(false).build();
- if (event.getEventType() == CHALLENGE) {
+ if (event instanceof QuestEventChallenge) {
lblName.setText(event.getTitle() + ": "
+ StringUtils.capitalize(event.getDifficulty())
- + (((QuestChallenge) event).isRepeatable() ? ", Repeatable" : ""));
+ + (((QuestEventChallenge) event).isRepeatable() ? ", Repeatable" : ""));
}
else {
lblName.setText(event.getTitle() + ": "
diff --git a/src/main/java/forge/item/BoosterPack.java b/src/main/java/forge/item/BoosterPack.java
index f81e4da8f43..18a6ebcd60b 100644
--- a/src/main/java/forge/item/BoosterPack.java
+++ b/src/main/java/forge/item/BoosterPack.java
@@ -18,11 +18,11 @@
package forge.item;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.ImageCache;
import forge.Singletons;
import forge.card.BoosterData;
import forge.card.CardEdition;
+import forge.util.Lambda1;
/**
* TODO Write javadoc for this type.
diff --git a/src/main/java/forge/item/CardDb.java b/src/main/java/forge/item/CardDb.java
index 1897d55dfff..a899a9e719b 100644
--- a/src/main/java/forge/item/CardDb.java
+++ b/src/main/java/forge/item/CardDb.java
@@ -25,7 +25,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -35,6 +34,7 @@ import forge.Singletons;
import forge.card.CardInSet;
import forge.card.CardRules;
import forge.card.MtgDataParser;
+import forge.util.Lambda1;
import forge.util.Predicate;
/**
diff --git a/src/main/java/forge/item/CardPrinted.java b/src/main/java/forge/item/CardPrinted.java
index 3c757905809..5271b133922 100644
--- a/src/main/java/forge/item/CardPrinted.java
+++ b/src/main/java/forge/item/CardPrinted.java
@@ -20,7 +20,6 @@ package forge.item;
import java.util.Arrays;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import org.apache.commons.lang3.ArrayUtils;
@@ -30,6 +29,7 @@ import forge.CardUtil;
import forge.Player;
import forge.card.CardRarity;
import forge.card.CardRules;
+import forge.util.Lambda1;
import forge.util.Predicate;
import forge.util.PredicateString;
diff --git a/src/main/java/forge/item/FatPack.java b/src/main/java/forge/item/FatPack.java
index 99d425aa92a..c247163a137 100644
--- a/src/main/java/forge/item/FatPack.java
+++ b/src/main/java/forge/item/FatPack.java
@@ -20,11 +20,11 @@ package forge.item;
import java.util.ArrayList;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.ImageCache;
import forge.Singletons;
import forge.card.CardEdition;
import forge.card.FatPackData;
+import forge.util.Lambda1;
/**
* TODO Write javadoc for this type.
diff --git a/src/main/java/forge/item/ItemPoolView.java b/src/main/java/forge/item/ItemPoolView.java
index c78baaf050f..423b57826f8 100644
--- a/src/main/java/forge/item/ItemPoolView.java
+++ b/src/main/java/forge/item/ItemPoolView.java
@@ -24,9 +24,9 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.CardList;
import forge.card.CardRules;
+import forge.util.Lambda1;
/**
*
diff --git a/src/main/java/forge/item/PreconDeck.java b/src/main/java/forge/item/PreconDeck.java
index 7893c6acdcc..42905283f18 100644
--- a/src/main/java/forge/item/PreconDeck.java
+++ b/src/main/java/forge/item/PreconDeck.java
@@ -21,7 +21,6 @@ import java.io.File;
import java.util.List;
import java.util.Map;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.ImageCache;
import forge.Singletons;
@@ -29,6 +28,7 @@ import forge.deck.Deck;
import forge.quest.SellRules;
import forge.util.FileSection;
import forge.util.FileUtil;
+import forge.util.Lambda1;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/item/TournamentPack.java b/src/main/java/forge/item/TournamentPack.java
index b91a7260ad3..44c0ed48884 100644
--- a/src/main/java/forge/item/TournamentPack.java
+++ b/src/main/java/forge/item/TournamentPack.java
@@ -19,12 +19,12 @@ package forge.item;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.ImageCache;
import forge.Singletons;
import forge.card.BoosterData;
import forge.card.BoosterGenerator;
import forge.card.CardEdition;
+import forge.util.Lambda1;
/**
* TODO Write javadoc for this type.
diff --git a/src/main/java/forge/properties/NewConstants.java b/src/main/java/forge/properties/NewConstants.java
index 0afdc9e2f0e..28f6c9dbc82 100644
--- a/src/main/java/forge/properties/NewConstants.java
+++ b/src/main/java/forge/properties/NewConstants.java
@@ -58,57 +58,60 @@ public final class NewConstants {
/** Constant CARD_PICTURES="card-pictures". */
public static final String CARD_PICTURES = "card-pictures";
/** Constant CARD_PICTURES_A="card-pictures_a". */
- public static final String CARD_PICTURES_A = "card-pictures_a";
- /** Constant CARD_PICTURES_B="card-pictures_b". */
- public static final String CARD_PICTURES_B = "card-pictures_b";
- /** Constant CARD_PICTURES_C="card-pictures_c". */
- public static final String CARD_PICTURES_C = "card-pictures_c";
- /** Constant CARD_PICTURES_D="card-pictures_d". */
- public static final String CARD_PICTURES_D = "card-pictures_d";
- /** Constant CARD_PICTURES_E="card-pictures_e". */
- public static final String CARD_PICTURES_E = "card-pictures_e";
- /** Constant CARD_PICTURES_F="card-pictures_f". */
- public static final String CARD_PICTURES_F = "card-pictures_f";
- /** Constant CARD_PICTURES_G="card-pictures_g". */
- public static final String CARD_PICTURES_G = "card-pictures_g";
- /** Constant CARD_PICTURES_H="card-pictures_h". */
- public static final String CARD_PICTURES_H = "card-pictures_h";
- /** Constant CARD_PICTURES_I="card-pictures_i". */
- public static final String CARD_PICTURES_I = "card-pictures_i";
- /** Constant CARD_PICTURES_J="card-pictures_j". */
- public static final String CARD_PICTURES_J = "card-pictures_j";
- /** Constant CARD_PICTURES_K="card-pictures_k". */
- public static final String CARD_PICTURES_K = "card-pictures_k";
- /** Constant CARD_PICTURES_L="card-pictures_l". */
- public static final String CARD_PICTURES_L = "card-pictures_l";
- /** Constant CARD_PICTURES_M="card-pictures_m". */
- public static final String CARD_PICTURES_M = "card-pictures_m";
- /** Constant CARD_PICTURES_N="card-pictures_n". */
- public static final String CARD_PICTURES_N = "card-pictures_n";
- /** Constant CARD_PICTURES_O="card-pictures_o". */
- public static final String CARD_PICTURES_O = "card-pictures_o";
- /** Constant CARD_PICTURES_P="card-pictures_p". */
- public static final String CARD_PICTURES_P = "card-pictures_p";
- /** Constant CARD_PICTURES_Q="card-pictures_q". */
- public static final String CARD_PICTURES_Q = "card-pictures_q";
- /** Constant CARD_PICTURES_R="card-pictures_r". */
- public static final String CARD_PICTURES_R = "card-pictures_r";
- /** Constant CARD_PICTURES_S="card-pictures_s". */
- public static final String CARD_PICTURES_S = "card-pictures_s";
- /** Constant CARD_PICTURES_T="card-pictures_t". */
- public static final String CARD_PICTURES_T = "card-pictures_t";
- /** Constant CARD_PICTURES_U="card-pictures_u". */
- public static final String CARD_PICTURES_U = "card-pictures_u";
- /** Constant CARD_PICTURES_V="card-pictures_v". */
- public static final String CARD_PICTURES_V = "card-pictures_v";
- /** Constant CARD_PICTURES_W="card-pictures_w". */
- public static final String CARD_PICTURES_W = "card-pictures_w";
- /** Constant CARD_PICTURES_X="card-pictures_x". */
- public static final String CARD_PICTURES_X = "card-pictures_x";
- /** Constant CARD_PICTURES_Y="card-pictures_y". */
- public static final String CARD_PICTURES_Y = "card-pictures_y";
- /** Constant CARD_PICTURES_Z="card-pictures_z". */
- public static final String CARD_PICTURES_Z = "card-pictures_z";
+
+ public static final class CardPicturesByLetter {
+ public static final String CARD_PICTURES_A = "card-pictures_a";
+ /** Constant CARD_PICTURES_B="card-pictures_b". */
+ public static final String CARD_PICTURES_B = "card-pictures_b";
+ /** Constant CARD_PICTURES_C="card-pictures_c". */
+ public static final String CARD_PICTURES_C = "card-pictures_c";
+ /** Constant CARD_PICTURES_D="card-pictures_d". */
+ public static final String CARD_PICTURES_D = "card-pictures_d";
+ /** Constant CARD_PICTURES_E="card-pictures_e". */
+ public static final String CARD_PICTURES_E = "card-pictures_e";
+ /** Constant CARD_PICTURES_F="card-pictures_f". */
+ public static final String CARD_PICTURES_F = "card-pictures_f";
+ /** Constant CARD_PICTURES_G="card-pictures_g". */
+ public static final String CARD_PICTURES_G = "card-pictures_g";
+ /** Constant CARD_PICTURES_H="card-pictures_h". */
+ public static final String CARD_PICTURES_H = "card-pictures_h";
+ /** Constant CARD_PICTURES_I="card-pictures_i". */
+ public static final String CARD_PICTURES_I = "card-pictures_i";
+ /** Constant CARD_PICTURES_J="card-pictures_j". */
+ public static final String CARD_PICTURES_J = "card-pictures_j";
+ /** Constant CARD_PICTURES_K="card-pictures_k". */
+ public static final String CARD_PICTURES_K = "card-pictures_k";
+ /** Constant CARD_PICTURES_L="card-pictures_l". */
+ public static final String CARD_PICTURES_L = "card-pictures_l";
+ /** Constant CARD_PICTURES_M="card-pictures_m". */
+ public static final String CARD_PICTURES_M = "card-pictures_m";
+ /** Constant CARD_PICTURES_N="card-pictures_n". */
+ public static final String CARD_PICTURES_N = "card-pictures_n";
+ /** Constant CARD_PICTURES_O="card-pictures_o". */
+ public static final String CARD_PICTURES_O = "card-pictures_o";
+ /** Constant CARD_PICTURES_P="card-pictures_p". */
+ public static final String CARD_PICTURES_P = "card-pictures_p";
+ /** Constant CARD_PICTURES_Q="card-pictures_q". */
+ public static final String CARD_PICTURES_Q = "card-pictures_q";
+ /** Constant CARD_PICTURES_R="card-pictures_r". */
+ public static final String CARD_PICTURES_R = "card-pictures_r";
+ /** Constant CARD_PICTURES_S="card-pictures_s". */
+ public static final String CARD_PICTURES_S = "card-pictures_s";
+ /** Constant CARD_PICTURES_T="card-pictures_t". */
+ public static final String CARD_PICTURES_T = "card-pictures_t";
+ /** Constant CARD_PICTURES_U="card-pictures_u". */
+ public static final String CARD_PICTURES_U = "card-pictures_u";
+ /** Constant CARD_PICTURES_V="card-pictures_v". */
+ public static final String CARD_PICTURES_V = "card-pictures_v";
+ /** Constant CARD_PICTURES_W="card-pictures_w". */
+ public static final String CARD_PICTURES_W = "card-pictures_w";
+ /** Constant CARD_PICTURES_X="card-pictures_x". */
+ public static final String CARD_PICTURES_X = "card-pictures_x";
+ /** Constant CARD_PICTURES_Y="card-pictures_y". */
+ public static final String CARD_PICTURES_Y = "card-pictures_y";
+ /** Constant CARD_PICTURES_Z="card-pictures_z". */
+ public static final String CARD_PICTURES_Z = "card-pictures_z";
+ }
/** Constant CARD_PICTURES_OTHER="card-pictures_other". */
public static final String CARD_PICTURES_OTHER = "card-pictures_other";
/** Constant CARD_PICTURES_TOKEN_HQ="card-pictures_token_hq". */
@@ -220,6 +223,7 @@ public final class NewConstants {
public static final String PRECONS = "quest/precons-dir";
public static final String BAZAAR = "quest/bazaar";
+ public static final String BAZAAR_DIR = "quest/bazaar-dir";
}
/**
diff --git a/src/main/java/forge/quest/BoosterUtils.java b/src/main/java/forge/quest/BoosterUtils.java
index 1f9ff705c30..2ba653d0b5f 100644
--- a/src/main/java/forge/quest/BoosterUtils.java
+++ b/src/main/java/forge/quest/BoosterUtils.java
@@ -21,7 +21,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import forge.card.BoosterGenerator;
@@ -29,6 +28,7 @@ import forge.card.CardRules;
import forge.card.UnOpenedProduct;
import forge.item.CardDb;
import forge.item.CardPrinted;
+import forge.util.Lambda1;
import forge.util.MyRandom;
import forge.util.Predicate;
diff --git a/src/main/java/forge/quest/QuestController.java b/src/main/java/forge/quest/QuestController.java
index 950333a6c61..2c1cc10334a 100644
--- a/src/main/java/forge/quest/QuestController.java
+++ b/src/main/java/forge/quest/QuestController.java
@@ -18,7 +18,9 @@
package forge.quest;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import forge.Singletons;
import forge.deck.Deck;
@@ -26,12 +28,12 @@ import forge.item.CardPrinted;
import forge.item.PreconDeck;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
+import forge.quest.bazaar.QuestBazaarManager;
+import forge.quest.bazaar.QuestPetStorage;
import forge.quest.data.QuestAchievements;
import forge.quest.data.QuestAssets;
import forge.quest.data.QuestData;
-import forge.quest.data.QuestMode;
import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.data.QuestStartPool;
import forge.quest.io.PreconReader;
import forge.util.IStorage;
import forge.util.IStorageView;
@@ -70,7 +72,9 @@ public class QuestController {
private QuestEventManager eventManager = null;
- private QuestStallManager bazaar = null;
+ private QuestBazaarManager bazaar = null;
+
+ private QuestPetStorage pets = null;
// This is used by shop. Had no idea where else to place this
private static transient IStorageView preconManager = new StorageView(new PreconReader(
@@ -88,6 +92,19 @@ public class QuestController {
"What Do You Do With The Other Hand?", "Freelance Sorcerer, Works Weekends",
"Should We Hire Commentators?", "Saltblasted For Your Talent", "Serra Angel Is Your Girlfriend", };
+ public static final int MAX_PET_SLOTS = 2;
+
+ private Map selectedPets = new HashMap();
+
+ public void selectPet(Integer slot, String name) {
+ selectedPets.put(slot, name);
+ }
+
+ public String getSelectedPet(Integer slot) {
+ return selectedPets.get(slot);
+ }
+
+
// Cards - class uses data from here
/**
* Gets the cards.
@@ -288,9 +305,9 @@ public class QuestController {
*
* @return the bazaar
*/
- public final QuestStallManager getBazaar() {
+ public final QuestBazaarManager getBazaar() {
if (null == this.bazaar) {
- this.bazaar = new QuestStallManager(ForgeProps.getFile(NewConstants.Quest.BAZAAR));
+ this.bazaar = new QuestBazaarManager(ForgeProps.getFile(NewConstants.Quest.BAZAAR));
}
return this.bazaar;
}
@@ -306,5 +323,13 @@ public class QuestController {
}
return this.eventManager;
}
+
+ public QuestPetStorage getPetsStorage() {
+ if ( this.pets == null ) {
+ this.pets = new QuestPetStorage(ForgeProps.getFile(NewConstants.Quest.BAZAAR));
+ }
+
+ return this.pets;
+ }
}
diff --git a/src/main/java/forge/quest/QuestEvent.java b/src/main/java/forge/quest/QuestEvent.java
index ee1eadcb66b..a3e7650eb5d 100644
--- a/src/main/java/forge/quest/QuestEvent.java
+++ b/src/main/java/forge/quest/QuestEvent.java
@@ -27,12 +27,7 @@ import forge.deck.Deck;
* MODEL - A basic event instance in Quest mode. Can be extended for use in
* unique event types: battles, quests, and others.
*/
-public class QuestEvent {
- /** */
- public enum QuestEventType { /** */
- DUEL, /** */
- CHALLENGE
- }
+public abstract class QuestEvent {
// Default vals if none provided in the event file.
/** The event deck. */
private Deck eventDeck = null;
@@ -52,9 +47,6 @@ public class QuestEvent {
/** The name. */
private String name = "Noname";
- /** The event type. */
- private QuestEventType eventType = null;
-
/**
*
* getTitle.
@@ -99,17 +91,6 @@ public class QuestEvent {
return this.eventDeck;
}
- /**
- *
- * getEventDeck.
- *
- *
- * @return {@link forge.deck.Deck}
- */
- public final QuestEventType getEventType() {
- return this.eventType;
- }
-
/**
*
* getIconFilename.
@@ -132,16 +113,6 @@ public class QuestEvent {
return this.name;
}
- /**
- * Sets the event type.
- *
- * @param eventType0
- * the eventType to set
- */
- public void setEventType(final QuestEventType eventType0) {
- this.eventType = eventType0;
- }
-
/**
* Sets the name.
*
diff --git a/src/main/java/forge/quest/QuestChallenge.java b/src/main/java/forge/quest/QuestEventChallenge.java
similarity index 97%
rename from src/main/java/forge/quest/QuestChallenge.java
rename to src/main/java/forge/quest/QuestEventChallenge.java
index e599c19f987..823b584eba0 100644
--- a/src/main/java/forge/quest/QuestChallenge.java
+++ b/src/main/java/forge/quest/QuestEventChallenge.java
@@ -32,7 +32,7 @@ import forge.item.CardPrinted;
* quest-specific properties.
*
*/
-public class QuestChallenge extends QuestEvent {
+public class QuestEventChallenge extends QuestEvent {
// ID (default -1, should be explicitly set at later time.)
/** The id. */
private int id = -1;
@@ -66,9 +66,8 @@ public class QuestChallenge extends QuestEvent {
/**
* Instantiates a new quest challenge.
*/
- public QuestChallenge() {
+ public QuestEventChallenge() {
super();
- this.setEventType(QuestEventType.CHALLENGE);
}
/**
diff --git a/src/main/java/forge/quest/data/QuestDuelDifficulty.java b/src/main/java/forge/quest/QuestEventDifficulty.java
similarity index 57%
rename from src/main/java/forge/quest/data/QuestDuelDifficulty.java
rename to src/main/java/forge/quest/QuestEventDifficulty.java
index 10e36153005..9ec007f74ab 100644
--- a/src/main/java/forge/quest/data/QuestDuelDifficulty.java
+++ b/src/main/java/forge/quest/QuestEventDifficulty.java
@@ -1,10 +1,10 @@
-package forge.quest.data;
+package forge.quest;
/**
* TODO: Write javadoc for this type.
*
*/
-public enum QuestDuelDifficulty {
+public enum QuestEventDifficulty {
EASY,
MEDIUM,
HARD,
diff --git a/src/main/java/forge/quest/QuestDuel.java b/src/main/java/forge/quest/QuestEventDuel.java
similarity index 89%
rename from src/main/java/forge/quest/QuestDuel.java
rename to src/main/java/forge/quest/QuestEventDuel.java
index 722c606b601..bcb2f97ba1e 100644
--- a/src/main/java/forge/quest/QuestDuel.java
+++ b/src/main/java/forge/quest/QuestEventDuel.java
@@ -25,14 +25,13 @@ package forge.quest;
* MODEL - A single duel event data instance, including meta and deck.
*
*/
-public class QuestDuel extends QuestEvent {
+public class QuestEventDuel extends QuestEvent {
/**
* Instantiates a new quest duel.
*/
- public QuestDuel() {
+ public QuestEventDuel() {
super();
- this.setEventType(QuestEventType.DUEL);
}
}
diff --git a/src/main/java/forge/quest/QuestEventManager.java b/src/main/java/forge/quest/QuestEventManager.java
index 1b0d10f45ea..1594be72727 100644
--- a/src/main/java/forge/quest/QuestEventManager.java
+++ b/src/main/java/forge/quest/QuestEventManager.java
@@ -32,7 +32,6 @@ import forge.Singletons;
import forge.deck.Deck;
import forge.deck.io.DeckSerializer;
import forge.quest.data.QuestAchievements;
-import forge.quest.data.QuestDuelDifficulty;
import forge.quest.data.QuestPreferences;
import forge.quest.data.QuestPreferences.QPref;
import forge.util.FileSection;
@@ -46,12 +45,12 @@ import forge.util.FileUtil;
*/
public class QuestEventManager {
- private final Map> SortedDuels = new EnumMap>(QuestDuelDifficulty.class);
+ private final Map> SortedDuels = new EnumMap>(QuestEventDifficulty.class);
/** */
- public final List ALL_DUELS = new ArrayList();
+ public final List ALL_DUELS = new ArrayList();
/** */
- public final List ALL_CHALLENGES = new ArrayList();
+ public final List ALL_CHALLENGES = new ArrayList();
/** Instantiate all events and difficulty lists. */
public QuestEventManager(File dir) {
@@ -64,11 +63,11 @@ public class QuestEventManager {
if (contents.containsKey("quest")) {
tempEvent = readChallenge(contents.get("quest"));
- ALL_CHALLENGES.add((QuestChallenge) tempEvent);
+ ALL_CHALLENGES.add((QuestEventChallenge) tempEvent);
}
else {
tempEvent = readDuel(contents.get("metadata"));
- ALL_DUELS.add((QuestDuel) tempEvent);
+ ALL_DUELS.add((QuestEventDuel) tempEvent);
}
// Assemble metadata (may not be necessary later) and deck object.
@@ -93,7 +92,7 @@ public class QuestEventManager {
}
}
- for (final QuestChallenge q : ALL_CHALLENGES) {
+ for (final QuestEventChallenge q : ALL_CHALLENGES) {
if (q.getName().equals(s0)) {
return q;
}
@@ -106,7 +105,7 @@ public class QuestEventManager {
*
* @return an array of {@link java.lang.String} objects.
*/
- public final List generateDuels() {
+ public final List generateDuels() {
final QuestPreferences qpref = Singletons.getModel().getQuestPreferences();
if (AllZone.getQuest().getAchievements() == null) {
return null;
@@ -116,36 +115,36 @@ public class QuestEventManager {
final int cntWins = qCtrl.getAchievements().getWin();
final int index = qCtrl.getAchievements().getDifficulty();
- final List duelOpponents = new ArrayList();
+ final List duelOpponents = new ArrayList();
if (cntWins < qpref.getPreferenceInt(QPref.WINS_MEDIUMAI, index)) {
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.EASY).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.EASY).get(1));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.EASY).get(2));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.EASY).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.EASY).get(1));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.EASY).get(2));
} else if (cntWins == qpref.getPreferenceInt(QPref.WINS_MEDIUMAI, index)) {
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.EASY).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.MEDIUM).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.MEDIUM).get(1));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.EASY).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.MEDIUM).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.MEDIUM).get(1));
} else if (cntWins < qpref.getPreferenceInt(QPref.WINS_HARDAI, index)) {
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.MEDIUM).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.MEDIUM).get(1));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.MEDIUM).get(2));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.MEDIUM).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.MEDIUM).get(1));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.MEDIUM).get(2));
}
else if (cntWins == qpref.getPreferenceInt(QPref.WINS_HARDAI, index)) {
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.MEDIUM).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(1));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.MEDIUM).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(1));
}
else if (cntWins < qpref.getPreferenceInt(QPref.WINS_EXPERTAI, index)) {
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(1));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(2));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(1));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(2));
} else {
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(0));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.HARD).get(1));
- duelOpponents.add(SortedDuels.get(QuestDuelDifficulty.EXPERT).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(0));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.HARD).get(1));
+ duelOpponents.add(SortedDuels.get(QuestEventDifficulty.EXPERT).get(0));
}
return duelOpponents;
@@ -155,8 +154,8 @@ public class QuestEventManager {
*
* @return a {@link java.util.List} object.
*/
- public final List generateChallenges() {
- final List challengeOpponents = new ArrayList();
+ public final List generateChallenges() {
+ final List challengeOpponents = new ArrayList();
final QuestController qCtrl = AllZone.getQuest();
final QuestAchievements qData = qCtrl.getAchievements();
@@ -171,7 +170,7 @@ public class QuestEventManager {
final List unlockedChallengeIds = new ArrayList();
final List availableChallengeIds = new ArrayList();
- for (final QuestChallenge qc : ALL_CHALLENGES) {
+ for (final QuestEventChallenge qc : ALL_CHALLENGES) {
if ((qc.getWinsReqd() <= qData.getWin())
&& !qData.getCompletedChallenges().contains(qc.getId())) {
unlockedChallengeIds.add(qc.getId());
@@ -207,8 +206,8 @@ public class QuestEventManager {
* @param contents
* @param qd
*/
- private QuestDuel readDuel(final List contents) {
- final QuestDuel qd = new QuestDuel();
+ private QuestEventDuel readDuel(final List contents) {
+ final QuestEventDuel qd = new QuestEventDuel();
int eqpos;
String key, value;
@@ -240,11 +239,11 @@ public class QuestEventManager {
* @param contents
* @param qc
*/
- private QuestChallenge readChallenge(final List contents) {
+ private QuestEventChallenge readChallenge(final List contents) {
int eqpos;
String key, value;
- final QuestChallenge qc = new QuestChallenge();
+ final QuestEventChallenge qc = new QuestEventChallenge();
// Unique properties
for (final String s : contents) {
if (StringUtils.isBlank(s)) {
@@ -346,23 +345,23 @@ public class QuestEventManager {
*/
private void assembleDuelDifficultyLists() {
SortedDuels.clear();
- SortedDuels.put(QuestDuelDifficulty.EASY, new ArrayList());
- SortedDuels.put(QuestDuelDifficulty.MEDIUM, new ArrayList());
- SortedDuels.put(QuestDuelDifficulty.HARD, new ArrayList());
- SortedDuels.put(QuestDuelDifficulty.EXPERT, new ArrayList());
+ SortedDuels.put(QuestEventDifficulty.EASY, new ArrayList());
+ SortedDuels.put(QuestEventDifficulty.MEDIUM, new ArrayList());
+ SortedDuels.put(QuestEventDifficulty.HARD, new ArrayList());
+ SortedDuels.put(QuestEventDifficulty.EXPERT, new ArrayList());
String s;
- for (final QuestDuel qd : ALL_DUELS) {
+ for (final QuestEventDuel qd : ALL_DUELS) {
s = qd.getDifficulty();
if (s.equalsIgnoreCase("easy")) {
- SortedDuels.get(QuestDuelDifficulty.EASY).add(qd);
+ SortedDuels.get(QuestEventDifficulty.EASY).add(qd);
} else if (s.equalsIgnoreCase("medium")) {
- SortedDuels.get(QuestDuelDifficulty.MEDIUM).add(qd);
+ SortedDuels.get(QuestEventDifficulty.MEDIUM).add(qd);
} else if (s.equalsIgnoreCase("hard")) {
- SortedDuels.get(QuestDuelDifficulty.HARD).add(qd);
+ SortedDuels.get(QuestEventDifficulty.HARD).add(qd);
} else if (s.equalsIgnoreCase("very hard")) {
- SortedDuels.get(QuestDuelDifficulty.EXPERT).add(qd);
+ SortedDuels.get(QuestEventDifficulty.EXPERT).add(qd);
}
}
}
@@ -370,10 +369,10 @@ public class QuestEventManager {
public void randomizeOpponents() {
long seed = new Random().nextLong();
Random r = new Random(seed);
- Collections.shuffle(SortedDuels.get(QuestDuelDifficulty.EASY), r);
- Collections.shuffle(SortedDuels.get(QuestDuelDifficulty.MEDIUM), r);
- Collections.shuffle(SortedDuels.get(QuestDuelDifficulty.HARD), r);
- Collections.shuffle(SortedDuels.get(QuestDuelDifficulty.EXPERT), r);
+ Collections.shuffle(SortedDuels.get(QuestEventDifficulty.EASY), r);
+ Collections.shuffle(SortedDuels.get(QuestEventDifficulty.MEDIUM), r);
+ Collections.shuffle(SortedDuels.get(QuestEventDifficulty.HARD), r);
+ Collections.shuffle(SortedDuels.get(QuestEventDifficulty.EXPERT), r);
}
/**
@@ -386,8 +385,8 @@ public class QuestEventManager {
* @param n
* @return
*/
- private QuestChallenge getChallengeEventByNumber(final int n) {
- for (final QuestChallenge qc : ALL_CHALLENGES) {
+ private QuestEventChallenge getChallengeEventByNumber(final int n) {
+ for (final QuestEventChallenge qc : ALL_CHALLENGES) {
if (qc.getId() == n) {
return qc;
}
diff --git a/src/main/java/forge/quest/data/QuestMode.java b/src/main/java/forge/quest/QuestMode.java
similarity index 83%
rename from src/main/java/forge/quest/data/QuestMode.java
rename to src/main/java/forge/quest/QuestMode.java
index fcb80d2126a..c0aa3f67e5e 100644
--- a/src/main/java/forge/quest/data/QuestMode.java
+++ b/src/main/java/forge/quest/QuestMode.java
@@ -1,4 +1,4 @@
-package forge.quest.data;
+package forge.quest;
/**
* TODO: Write javadoc for this type.
diff --git a/src/main/java/forge/quest/data/QuestStartPool.java b/src/main/java/forge/quest/QuestStartPool.java
similarity index 76%
rename from src/main/java/forge/quest/data/QuestStartPool.java
rename to src/main/java/forge/quest/QuestStartPool.java
index 69a4e65ccec..cf344f3d1df 100644
--- a/src/main/java/forge/quest/data/QuestStartPool.java
+++ b/src/main/java/forge/quest/QuestStartPool.java
@@ -1,4 +1,4 @@
-package forge.quest.data;
+package forge.quest;
public enum QuestStartPool {
Complete,
diff --git a/src/main/java/forge/quest/QuestUtil.java b/src/main/java/forge/quest/QuestUtil.java
index dd3634be3b5..6cde05b2aca 100644
--- a/src/main/java/forge/quest/QuestUtil.java
+++ b/src/main/java/forge/quest/QuestUtil.java
@@ -22,12 +22,10 @@ import forge.Card;
import forge.CardList;
import forge.CardUtil;
import forge.Player;
-import forge.quest.data.QuestAssets;
+import forge.quest.bazaar.QuestPetController;
import java.util.List;
-import static forge.quest.QuestEvent.QuestEventType.CHALLENGE;
-
/**
*
* QuestUtil class.
@@ -66,8 +64,8 @@ public class QuestUtil {
public static CardList getComputerStartingCards(final QuestEvent qe) {
final CardList list = new CardList();
- if (qe.getEventType() == CHALLENGE) {
- final List extras = ((QuestChallenge) qe).getAIExtraCards();
+ if (qe instanceof QuestEventChallenge) {
+ final List extras = ((QuestEventChallenge) qe).getAIExtraCards();
for (final String s : extras) {
list.add(QuestUtil.readExtraCard(s, AllZone.getComputerPlayer()));
@@ -87,15 +85,22 @@ public class QuestUtil {
* a {@link forge.quest.data.QuestData} object.
* @return a {@link forge.CardList} object.
*/
- public static CardList getHumanStartingCards(final QuestAssets qd) {
+ public static CardList getHumanStartingCards(final QuestController qc) {
final CardList list = new CardList();
- if (qd.getPetManager().shouldPetBeUsed()) {
- list.add(qd.getPetManager().getSelectedPet().getPetCard());
- }
-
- if (qd.getPetManager().shouldPlantBeUsed()) {
- list.add(qd.getPetManager().getPlant().getPetCard());
+ for( int iSlot = 0; iSlot < QuestController.MAX_PET_SLOTS; iSlot++ )
+ {
+ String petName = qc.getSelectedPet(iSlot);
+ QuestPetController pet = qc.getPetsStorage().getPet(petName);
+ if (pet != null) {
+ Card c = pet.getPetCard(qc.getAssets());
+ if ( c != null ){
+ Card petCard = AllZone.getCardFactory().copyCard(c);
+ petCard.addController(AllZone.getHumanPlayer());
+ petCard.setToken(true);
+ list.add(petCard);
+ }
+ }
}
return list;
@@ -114,11 +119,11 @@ public class QuestUtil {
* a {@link forge.quest.QuestEvent} object.
* @return a {@link forge.CardList} object.
*/
- public static CardList getHumanStartingCards(final QuestAssets qa, final QuestEvent qe) {
- final CardList list = QuestUtil.getHumanStartingCards(qa);
+ public static CardList getHumanStartingCards(final QuestController qc, final QuestEvent qe) {
+ final CardList list = QuestUtil.getHumanStartingCards(qc);
- if (qe.getEventType() == CHALLENGE) {
- final List extras = ((QuestChallenge) qe).getHumanExtraCards();
+ if (qe instanceof QuestEventChallenge) {
+ final List extras = ((QuestEventChallenge) qe).getHumanExtraCards();
for (final String s : extras) {
list.add(QuestUtil.readExtraCard(s, AllZone.getHumanPlayer()));
diff --git a/src/main/java/forge/quest/QuestUtilCards.java b/src/main/java/forge/quest/QuestUtilCards.java
index c8d49bc6577..f8a78a3aad3 100644
--- a/src/main/java/forge/quest/QuestUtilCards.java
+++ b/src/main/java/forge/quest/QuestUtilCards.java
@@ -23,14 +23,13 @@ import forge.card.CardEdition;
import forge.card.FormatCollection;
import forge.deck.Deck;
import forge.item.*;
+import forge.quest.bazaar.QuestItemType;
import forge.quest.data.QuestAssets;
-import forge.quest.data.QuestMode;
import forge.quest.data.QuestPreferences;
import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.data.item.QuestItemType;
+import forge.util.Lambda1;
import forge.util.MyRandom;
import forge.util.Predicate;
-import net.slightlymagic.braids.util.lambda.Lambda1;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/forge/quest/data/item/IQuestStallPurchasable.java b/src/main/java/forge/quest/bazaar/IQuestBazaarItem.java
similarity index 94%
rename from src/main/java/forge/quest/data/item/IQuestStallPurchasable.java
rename to src/main/java/forge/quest/bazaar/IQuestBazaarItem.java
index bdcb25497c4..97a052900f1 100644
--- a/src/main/java/forge/quest/data/item/IQuestStallPurchasable.java
+++ b/src/main/java/forge/quest/bazaar/IQuestBazaarItem.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.item;
+package forge.quest.bazaar;
import javax.swing.ImageIcon;
@@ -27,7 +27,7 @@ import forge.quest.data.QuestAssets;
* @author Forge
* @version $Id$
*/
-public interface IQuestStallPurchasable extends Comparable