lstEventRecords, final int len, final int num) {
FThreads.invokeInBackgroundThread(new Runnable() {
@@ -66,7 +67,7 @@ public class GauntletWinLose extends ControlWinLose {
sb.deleteCharAt(sb.length() - 1); //remove final new line character
}
- SOptionPane.showMessageDialog(sb.toString(), "Gauntlet Progress", icon);
+ SOptionPane.showMessageDialog(GuiBase.getInterface(), sb.toString(), "Gauntlet Progress", icon);
}
});
}
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java
index b2dcdc30581..7bd97056657 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java
@@ -17,8 +17,9 @@ package forge.screens.match.winlose;
* along with this program. If not, see .
*/
-import forge.game.Game;
+import forge.GuiBase;
import forge.limited.LimitedWinLoseController;
+import forge.view.IGameView;
/**
* The Win/Lose handler for 'gauntlet' type tournament
@@ -33,9 +34,9 @@ public class LimitedWinLose extends ControlWinLose {
* @param view0 {@link forge.gui.match.ViewWinLose}
* @param match {@link forge.game.Match}
*/
- public LimitedWinLose(final ViewWinLose view0, Game lastGame) {
+ public LimitedWinLose(final ViewWinLose view0, IGameView lastGame) {
super(view0, lastGame);
- controller = new LimitedWinLoseController(view0, lastGame) {
+ controller = new LimitedWinLoseController(view0, lastGame, GuiBase.getInterface()) {
@Override
protected void showOutcome(Runnable runnable) {
//invoke reward logic in background thread so dialogs can be shown
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java
index 42d2aaf0acd..0d9ccc4b9a2 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java
@@ -19,12 +19,13 @@ package forge.screens.match.winlose;
import java.util.List;
import forge.FThreads;
+import forge.GuiBase;
import forge.assets.FSkinProp;
-import forge.game.Game;
import forge.item.PaperCard;
-import forge.quest.*;
+import forge.quest.QuestWinLoseController;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
+import forge.view.IGameView;
/**
*
@@ -44,9 +45,9 @@ public class QuestWinLose extends ControlWinLose {
* @param view0 ViewWinLose object
* @param match2
*/
- public QuestWinLose(final ViewWinLose view0, Game lastGame) {
+ public QuestWinLose(final ViewWinLose view0, IGameView lastGame) {
super(view0, lastGame);
- controller = new QuestWinLoseController(lastGame) {
+ controller = new QuestWinLoseController(lastGame, GuiBase.getInterface()) {
@Override
protected void showRewards(Runnable runnable) {
//invoke reward logic in background thread so dialogs can be shown
@@ -55,12 +56,12 @@ public class QuestWinLose extends ControlWinLose {
@Override
protected void showCards(String title, List cards) {
- SGuiChoose.reveal(title, cards);
+ SGuiChoose.reveal(gui, title, cards);
}
@Override
protected void showMessage(String message, String title, FSkinProp icon) {
- SOptionPane.showMessageDialog(message, title, icon);
+ SOptionPane.showMessageDialog(gui, message, title, icon);
}
};
}
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java
index 9478cb91a63..92add105556 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/ViewWinLose.java
@@ -1,18 +1,18 @@
package forge.screens.match.winlose;
+import org.apache.commons.lang3.StringUtils;
+
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.Forge;
+import forge.GuiBase;
+import forge.LobbyPlayer;
import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors;
import forge.assets.FSkinFont;
-import forge.game.Game;
-import forge.game.GameLog;
import forge.game.GameLogEntry;
import forge.game.GameLogEntryType;
-import forge.game.GameOutcome;
-import forge.game.player.Player;
import forge.interfaces.IWinLoseView;
import forge.menu.FMagnifyView;
import forge.model.FModel;
@@ -25,6 +25,7 @@ import forge.toolbox.FLabel;
import forge.toolbox.FOverlay;
import forge.toolbox.FTextArea;
import forge.util.Utils;
+import forge.view.IGameView;
public class ViewWinLose extends FOverlay implements IWinLoseView {
private static final float INSETS_FACTOR = 0.025f;
@@ -34,9 +35,9 @@ public class ViewWinLose extends FOverlay implements IWinLoseView {
private final FLabel lblTitle, lblLog, lblStats, btnCopyLog;
private final FTextArea txtLog;
private final OutcomesPanel pnlOutcomes;
- private final Game game;
+ private final IGameView game;
- public ViewWinLose(final Game game0) {
+ public ViewWinLose(final IGameView game0) {
super(FSkinColor.get(Colors.CLR_OVERLAY).alphaColor(0.75f));
game = game0;
@@ -52,7 +53,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView {
// Control of the win/lose is handled differently for various game
// modes.
ControlWinLose control = null;
- switch (game0.getRules().getGameType()) {
+ switch (game0.getGameType()) {
case Quest:
control = new QuestWinLose(this, game0);
break;
@@ -60,7 +61,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView {
//control = new QuestDraftWinLose(this, game0);
break;
case Draft:
- if (!FModel.getGauntletMini().isGauntletDraft()) {
+ if (!FModel.getGauntletMini(GuiBase.getInterface()).isGauntletDraft()) {
break;
}
case Sealed:
@@ -82,10 +83,10 @@ public class ViewWinLose extends FOverlay implements IWinLoseView {
btnRestart.setFont(btnContinue.getFont());
btnQuit.setText("Quit Match");
btnQuit.setFont(btnContinue.getFont());
- btnContinue.setEnabled(!game0.getMatch().isMatchOver());
+ btnContinue.setEnabled(!game0.isMatchOver());
lblLog = add(new FLabel.Builder().text("Game Log").align(HAlignment.CENTER).font(FSkinFont.get(18)).build());
- txtLog = add(new FTextArea(true, game.getGameLog().getLogText(null).replace("[COMPUTER]", "[AI]")) {
+ txtLog = add(new FTextArea(true, StringUtils.join(game.getLogEntries(null), "\r\n").replace("[COMPUTER]", "[AI]")) {
@Override
public boolean tap(float x, float y, int count) {
if (txtLog.getMaxScrollTop() > 0) {
@@ -103,20 +104,20 @@ public class ViewWinLose extends FOverlay implements IWinLoseView {
}
}).build());
- lblTitle.setText(composeTitle(game0.getOutcome()));
+ lblTitle.setText(composeTitle(game0));
showGameOutcomeSummary();
showPlayerScores();
control.showRewards();
}
- private String composeTitle(GameOutcome outcome) {
- Player winner = outcome.getWinningPlayer();
- int winningTeam = outcome.getWinningTeam();
+ private String composeTitle(final IGameView game) {
+ final LobbyPlayer winner = game.getWinningPlayer();
+ final int winningTeam = game.getWinningTeam();
if (winner == null) {
return "It's a draw!";
} else if (winningTeam != -1) {
- return "Team " + winner.getTeam() + " Won!";
+ return "Team " + winningTeam + " Won!";
} else {
return winner.getName() + " Won!";
}
@@ -135,15 +136,13 @@ public class ViewWinLose extends FOverlay implements IWinLoseView {
}
private void showGameOutcomeSummary() {
- GameLog log = game.getGameLog();
- for (GameLogEntry o : log.getLogEntriesExact(GameLogEntryType.GAME_OUTCOME)) {
+ for (GameLogEntry o : game.getLogEntriesExact(GameLogEntryType.GAME_OUTCOME)) {
pnlOutcomes.add(new FLabel.Builder().text(o.message).font(FSkinFont.get(14)).build());
}
}
private void showPlayerScores() {
- GameLog log = game.getGameLog();
- for (GameLogEntry o : log.getLogEntriesExact(GameLogEntryType.MATCH_RESULTS)) {
+ for (GameLogEntry o : game.getLogEntriesExact(GameLogEntryType.MATCH_RESULTS)) {
lblStats.setText(removePlayerTypeFromLogMessage(o.message));
}
}
diff --git a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java
index 3a80b1133e9..95045ffe338 100644
--- a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java
@@ -15,6 +15,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.FThreads;
import forge.Forge;
import forge.Graphics;
+import forge.GuiBase;
import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors;
import forge.assets.FSkinFont;
@@ -179,14 +180,14 @@ public class LoadQuestScreen extends FScreen {
String questName;
String oldQuestName = quest.getName();
while (true) {
- questName = SOptionPane.showInputDialog("Enter new name for quest:", "Rename Quest", null, oldQuestName);
+ questName = SOptionPane.showInputDialog(GuiBase.getInterface(), "Enter new name for quest:", "Rename Quest", null, oldQuestName);
if (questName == null) { return; }
questName = QuestUtil.cleanString(questName);
if (questName.equals(oldQuestName)) { return; } //quit if chose same name
if (questName.isEmpty()) {
- SOptionPane.showMessageDialog("Please specify a quest name.");
+ SOptionPane.showMessageDialog(GuiBase.getInterface(), "Please specify a quest name.");
continue;
}
@@ -198,7 +199,7 @@ public class LoadQuestScreen extends FScreen {
}
}
if (exists) {
- SOptionPane.showMessageDialog("A quest already exists with that name. Please pick another quest name.");
+ SOptionPane.showMessageDialog(GuiBase.getInterface(), "A quest already exists with that name. Please pick another quest name.");
continue;
}
break;
@@ -215,7 +216,7 @@ public class LoadQuestScreen extends FScreen {
ThreadUtil.invokeInGameThread(new Runnable() {
@Override
public void run() {
- if (!SOptionPane.showConfirmDialog(
+ if (!SOptionPane.showConfirmDialog(GuiBase.getInterface(),
"Are you sure you want to delete '" + quest.getName() + "'?",
"Delete Quest", "Delete", "Cancel")) {
return;
diff --git a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java
index 0d4c1eccc60..c183242f0a6 100644
--- a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java
@@ -13,6 +13,7 @@ import org.apache.commons.lang3.text.WordUtils;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.FThreads;
+import forge.GuiBase;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.card.MagicColor;
@@ -427,7 +428,8 @@ public class NewQuestScreen extends FScreen {
case CustomFormat:
if (customFormatCodes.isEmpty()) {
- if (!SOptionPane.showConfirmDialog("You have defined a custom format that doesn't contain any sets.\nThis will start a game without restriction.\n\nContinue?")) {
+ if (!SOptionPane.showConfirmDialog(GuiBase.getInterface(),
+ "You have defined a custom format that doesn't contain any sets.\nThis will start a game without restriction.\n\nContinue?")) {
return;
}
}
@@ -439,7 +441,8 @@ public class NewQuestScreen extends FScreen {
case Cube:
dckStartPool = getSelectedDeck();
if (dckStartPool == null) {
- SOptionPane.showMessageDialog("You have not selected a deck to start.", "Cannot start a quest", SOptionPane.ERROR_ICON);
+ SOptionPane.showMessageDialog(GuiBase.getInterface(),
+ "You have not selected a deck to start.", "Cannot start a quest", SOptionPane.ERROR_ICON);
return;
}
break;
@@ -485,7 +488,8 @@ public class NewQuestScreen extends FScreen {
break;
case CustomFormat:
if (customPrizeFormatCodes.isEmpty()) {
- if (!SOptionPane.showConfirmDialog("You have defined custom format as containing no sets.\nThis will choose all editions without restriction as prized.\n\nContinue?")) {
+ if (!SOptionPane.showConfirmDialog(GuiBase.getInterface(),
+ "You have defined custom format as containing no sets.\nThis will choose all editions without restriction as prized.\n\nContinue?")) {
return;
}
}
@@ -501,17 +505,17 @@ public class NewQuestScreen extends FScreen {
String questName;
while (true) {
- questName = SOptionPane.showInputDialog("Poets will remember your quest as:", "Quest Name");
+ questName = SOptionPane.showInputDialog(GuiBase.getInterface(), "Poets will remember your quest as:", "Quest Name");
if (questName == null) { return; }
questName = QuestUtil.cleanString(questName);
if (questName.isEmpty()) {
- SOptionPane.showMessageDialog("Please specify a quest name.");
+ SOptionPane.showMessageDialog(GuiBase.getInterface(), "Please specify a quest name.");
continue;
}
if (FileUtil.doesFileExist(ForgeConstants.QUEST_SAVE_DIR + questName + ".dat")) {
- SOptionPane.showMessageDialog("A quest already exists with that name. Please pick another quest name.");
+ SOptionPane.showMessageDialog(GuiBase.getInterface(), "A quest already exists with that name. Please pick another quest name.");
continue;
}
break;
@@ -521,7 +525,7 @@ public class NewQuestScreen extends FScreen {
}
private void startNewQuest(final String questName, final GameFormat fmtPrizes, final Deck dckStartPool, final GameFormat fmtStartPool) {
- FThreads.invokeInEdtLater(new Runnable() {
+ FThreads.invokeInEdtLater(GuiBase.getInterface(), new Runnable() {
@Override
public void run() {
LoadingOverlay.show("Creating new quest...", new Runnable() {
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java
index 54d54085457..fef61ff6bdd 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java
@@ -8,9 +8,11 @@ import com.badlogic.gdx.math.Vector2;
import forge.Forge;
import forge.Graphics;
+import forge.GuiBase;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.assets.FSkinProp;
import forge.model.FModel;
import forge.quest.QuestController;
import forge.quest.QuestUtil;
@@ -77,7 +79,7 @@ public class QuestBazaarScreen extends TabPageScreen {
});
private BazaarPage(QuestStallDefinition stallDef0) {
- super(stallDef0.getName(), (FImage)stallDef0.getIcon());
+ super(stallDef0.getName(), (FImage)GuiBase.getInterface().getSkinIcon(stallDef0.getIcon()));
stallDef = stallDef0;
lblFluff.setFont(FSkinFont.get(12));
@@ -157,7 +159,8 @@ public class QuestBazaarScreen extends TabPageScreen {
lblName.setText(item.getPurchaseName());
lblDesc.setText(item.getPurchaseDescription(assets));
- lblIcon.setIcon((FImage)item.getIcon(assets));
+ final FSkinProp f = FSkinProp.valueOf(FSkinProp.class, item.getIcon(assets));
+ lblIcon.setIcon((FImage) GuiBase.getInterface().getSkinIcon(f));
lblCost.setText(String.valueOf(buyingPrice));
lblDesc.setFont(FSkinFont.get(12));
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java
index 8b389e0241a..6a2a70b04be 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java
@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.FThreads;
import forge.Forge;
+import forge.GuiBase;
import forge.assets.FSkinFont;
import forge.deck.DeckProxy;
import forge.deck.DeckgenUtil;
@@ -70,10 +71,10 @@ public class QuestDecksScreen extends FScreen {
ThreadUtil.invokeInGameThread(new Runnable() { //must run in game thread to prevent blocking UI thread
@Override
public void run() {
- if (!QuestUtil.checkActiveQuest("Create a Deck.")) {
+ if (!QuestUtil.checkActiveQuest(GuiBase.getInterface(), "Create a Deck.")) {
return;
}
- FThreads.invokeInEdtLater(new Runnable() {
+ FThreads.invokeInEdtLater(GuiBase.getInterface(), new Runnable() {
@Override
public void run() {
QuestDeckEditor editor = new QuestDeckEditor();
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java
index b99e1fef982..1e6b67412e9 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java
@@ -1,6 +1,8 @@
package forge.screens.quest;
import forge.FThreads;
+import forge.GuiBase;
+import forge.interfaces.IGuiBase;
import forge.model.FModel;
import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
@@ -27,14 +29,15 @@ public abstract class QuestLaunchScreen extends LaunchScreen {
FThreads.invokeInBackgroundThread(new Runnable() {
@Override
public void run() {
- if (QuestUtil.canStartGame()) {
- FThreads.invokeInEdtLater(new Runnable() {
+ final IGuiBase gui = GuiBase.getInterface();
+ if (QuestUtil.canStartGame(gui)) {
+ FThreads.invokeInEdtLater(gui, new Runnable() {
@Override
public void run() {
LoadingOverlay.show("Loading new game...", new Runnable() {
@Override
public void run() {
- QuestUtil.finishStartingGame();
+ QuestUtil.finishStartingGame(gui);
creatingMatch = false;
}
});
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java
index 74f3dbac8b8..80700f1697f 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java
@@ -4,6 +4,7 @@ import java.io.File;
import forge.FThreads;
import forge.Forge;
+import forge.GuiBase;
import forge.assets.FSkinImage;
import forge.deck.Deck;
import forge.deck.FDeckEditor.DeckController;
@@ -11,6 +12,7 @@ import forge.deck.FDeckEditor.EditorType;
import forge.interfaces.IButton;
import forge.interfaces.ICheckBox;
import forge.interfaces.IComboBox;
+import forge.interfaces.IGuiBase;
import forge.menu.FMenuItem;
import forge.menu.FPopupMenu;
import forge.model.FModel;
@@ -79,13 +81,14 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
}
});
private static final FMenuItem unlockSetsItem = new FMenuItem("Unlock Sets", FSkinImage.QUEST_MAP, new FEventHandler() {
+ final IGuiBase gui = GuiBase.getInterface();
@Override
public void handleEvent(FEvent e) {
ThreadUtil.invokeInGameThread(new Runnable() { //invoke in background thread so prompts can work
@Override
public void run() {
- QuestUtil.chooseAndUnlockEdition();
- FThreads.invokeInEdtLater(new Runnable() {
+ QuestUtil.chooseAndUnlockEdition(gui);
+ FThreads.invokeInEdtLater(gui, new Runnable() {
@Override
public void run() {
updateCurrentQuestScreen();
@@ -96,13 +99,14 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
}
});
private static final FMenuItem travelItem = new FMenuItem("Travel", FSkinImage.QUEST_MAP, new FEventHandler() {
+ final IGuiBase gui = GuiBase.getInterface();
@Override
public void handleEvent(FEvent e) {
ThreadUtil.invokeInGameThread(new Runnable() { //invoke in background thread so prompts can work
@Override
public void run() {
- QuestUtil.travelWorld();
- FThreads.invokeInEdtLater(new Runnable() {
+ QuestUtil.travelWorld(gui);
+ FThreads.invokeInEdtLater(gui, new Runnable() {
@Override
public void run() {
updateCurrentQuestScreen();
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java
index 2e3f40f6126..8932c6acf29 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java
@@ -8,6 +8,7 @@ import java.util.Map;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.FThreads;
+import forge.GuiBase;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
@@ -132,7 +133,7 @@ public class QuestSpellShopScreen extends TabPageScreen {
ItemPool items = new ItemPool(InventoryItem.class);
items.add(item, result);
activateItems(items);
- FThreads.invokeInEdtLater(new Runnable() {
+ FThreads.invokeInEdtLater(GuiBase.getInterface(), new Runnable() {
@Override
public void run() {
parentScreen.updateCreditsLabel();
@@ -180,7 +181,7 @@ public class QuestSpellShopScreen extends TabPageScreen {
@Override
protected void activateItems(ItemPool items) {
- QuestSpellShop.buy(items, itemManager, ((InventoryPage)parentScreen.tabPages[1]).itemManager, true);
+ QuestSpellShop.buy(GuiBase.getInterface(), items, itemManager, ((InventoryPage)parentScreen.tabPages[1]).itemManager, true);
}
@Override
@@ -210,7 +211,7 @@ public class QuestSpellShopScreen extends TabPageScreen {
@Override
public void run() {
QuestSpellShop.sellExtras(((SpellShopPage)parentScreen.tabPages[0]).itemManager, itemManager);
- FThreads.invokeInEdtLater(new Runnable() {
+ FThreads.invokeInEdtLater(GuiBase.getInterface(), new Runnable() {
@Override
public void run() {
parentScreen.updateCreditsLabel();
@@ -240,7 +241,7 @@ public class QuestSpellShopScreen extends TabPageScreen {
@Override
protected void activateItems(ItemPool items) {
- QuestSpellShop.sell(items, ((SpellShopPage)parentScreen.tabPages[0]).itemManager, itemManager, true);
+ QuestSpellShop.sell(GuiBase.getInterface(), items, ((SpellShopPage)parentScreen.tabPages[0]).itemManager, itemManager, true);
}
@Override
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java
index 8e304e8f8cb..d0ebd5aa224 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java
@@ -2,6 +2,7 @@ package forge.screens.quest;
import java.util.List;
+import forge.GuiBase;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.interfaces.IButton;
@@ -127,7 +128,7 @@ public class QuestStatsScreen extends FScreen {
lblZep.setCommand(new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
- if (!QuestUtil.checkActiveQuest("Launch a Zeppelin.")) {
+ if (!QuestUtil.checkActiveQuest(GuiBase.getInterface(), "Launch a Zeppelin.")) {
return;
}
FModel.getQuest().getAchievements().setCurrentChallenges(null);
diff --git a/forge-gui-mobile/src/forge/screens/sealed/SealedScreen.java b/forge-gui-mobile/src/forge/screens/sealed/SealedScreen.java
index 249b279f2fb..c9811c9b4ec 100644
--- a/forge-gui-mobile/src/forge/screens/sealed/SealedScreen.java
+++ b/forge-gui-mobile/src/forge/screens/sealed/SealedScreen.java
@@ -2,6 +2,7 @@ package forge.screens.sealed;
import forge.FThreads;
import forge.Forge;
+import forge.GuiBase;
import forge.assets.FSkinFont;
import forge.deck.DeckGroup;
import forge.deck.DeckProxy;
@@ -46,10 +47,10 @@ public class SealedScreen extends LaunchScreen {
ThreadUtil.invokeInGameThread(new Runnable() { //must run in game thread to prevent blocking UI thread
@Override
public void run() {
- final DeckGroup sealed = SealedCardPoolGenerator.generateSealedDeck(false);
+ final DeckGroup sealed = SealedCardPoolGenerator.generateSealedDeck(GuiBase.getInterface(), false);
if (sealed == null) { return; }
- FThreads.invokeInEdtLater(new Runnable() {
+ FThreads.invokeInEdtLater(GuiBase.getInterface(), new Runnable() {
@Override
public void run() {
DeckPreferences.setSealedDeck(sealed.getName());
@@ -115,7 +116,7 @@ public class SealedScreen extends LaunchScreen {
}
int matches = FModel.getDecks().getSealed().get(human.getName()).getAiDecks().size();
- FModel.getGauntletMini().launch(matches, human.getDeck(), GameType.Sealed);
+ FModel.getGauntletMini(GuiBase.getInterface()).launch(matches, human.getDeck(), GameType.Sealed);
return false; //prevent launching via launch screen since gauntlet handles it
}
}
diff --git a/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java b/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java
index 71264fe66c4..004ddeb6814 100644
--- a/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java
+++ b/forge-gui-mobile/src/forge/screens/settings/GuiDownloader.java
@@ -21,6 +21,7 @@ import java.net.Proxy;
import com.badlogic.gdx.Gdx;
+import forge.GuiBase;
import forge.UiCommand;
import forge.assets.FSkinFont;
import forge.download.GuiDownloadService;
@@ -82,7 +83,7 @@ public class GuiDownloader extends FDialog {
show();
- service.initialize(txtAddress, txtPort, progressBar, btnStart, cmdClose, new Runnable() {
+ service.initialize(GuiBase.getInterface(), txtAddress, txtPort, progressBar, btnStart, cmdClose, new Runnable() {
@Override
public void run() {
Gdx.graphics.setContinuousRendering(false);
diff --git a/forge-gui-mobile/src/forge/toolbox/FCardPanel.java b/forge-gui-mobile/src/forge/toolbox/FCardPanel.java
index aa30b8fdbf0..23b758ba77f 100644
--- a/forge-gui-mobile/src/forge/toolbox/FCardPanel.java
+++ b/forge-gui-mobile/src/forge/toolbox/FCardPanel.java
@@ -2,8 +2,8 @@ package forge.toolbox;
import forge.Graphics;
import forge.card.CardRenderer;
-import forge.game.card.Card;
import forge.util.Utils;
+import forge.view.CardView;
public class FCardPanel extends FDisplayObject {
public static final float TAPPED_ANGLE = -90;
@@ -12,7 +12,7 @@ public class FCardPanel extends FDisplayObject {
public static final float TARGET_ORIGIN_FACTOR_X = 0.15f;
public static final float TARGET_ORIGIN_FACTOR_Y = 0.5f;
- private Card card;
+ private CardView card;
private boolean tapped;
private float tappedAngle = 0;
private boolean highlighted;
@@ -20,14 +20,14 @@ public class FCardPanel extends FDisplayObject {
public FCardPanel() {
this(null);
}
- public FCardPanel(Card card0) {
+ public FCardPanel(CardView card0) {
card = card0;
}
- public Card getCard() {
+ public CardView getCard() {
return card;
}
- public void setCard(Card card0) {
+ public void setCard(CardView card0) {
card = card0;
}
diff --git a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java
index aad5254b33f..acbbfa080a1 100644
--- a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java
+++ b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java
@@ -22,6 +22,9 @@ import forge.screens.match.FControl;
import forge.screens.match.views.VAvatar;
import forge.screens.match.views.VStack;
import forge.util.Utils;
+import forge.view.CardView;
+import forge.view.PlayerView;
+import forge.view.SpellAbilityView;
public class FChoiceList extends FList {
public static final FSkinColor ITEM_COLOR = FSkinColor.get(Colors.CLR_ZEBRA);
@@ -347,18 +350,18 @@ public class FChoiceList extends FList {
@Override
public boolean tap(T value, float x, float y, int count) {
- return CardRenderer.cardListItemTap((Card)value, x, y, count, compactModeHandler.isCompactMode());
+ return CardRenderer.cardListItemTap((CardView)value, x, y, count, compactModeHandler.isCompactMode());
}
@Override
public boolean longPress(T value, float x, float y) {
- CardZoom.show((Card)value);
+ CardZoom.show((CardView)value);
return true;
}
@Override
public void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) {
- CardRenderer.drawCardListItem(g, font, foreColor, (Card)value, 0, null, x, y, w, h, compactModeHandler.isCompactMode());
+ CardRenderer.drawCardListItem(g, font, foreColor, (CardView)value, 0, null, x, y, w, h, compactModeHandler.isCompactMode());
}
}
//special renderer for SpellAbilities
@@ -378,7 +381,7 @@ public class FChoiceList extends FList {
@Override
public boolean tap(T value, float x, float y, int count) {
if (x <= VStack.CARD_WIDTH + 2 * FList.PADDING) {
- CardZoom.show(((SpellAbility)value).getHostCard());
+ CardZoom.show(((SpellAbilityView)value).getHostCard());
return true;
}
return false;
@@ -386,13 +389,13 @@ public class FChoiceList extends FList {
@Override
public boolean longPress(T value, float x, float y) {
- CardZoom.show(((SpellAbility)value).getHostCard());
+ CardZoom.show(((SpellAbilityView)value).getHostCard());
return true;
}
@Override
public void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) {
- SpellAbility spellAbility = (SpellAbility)value;
+ SpellAbilityView spellAbility = (SpellAbilityView)value;
CardRenderer.drawCardWithOverlays(g, spellAbility.getHostCard(), x, y, VStack.CARD_WIDTH, VStack.CARD_HEIGHT);
float dx = VStack.CARD_WIDTH + FList.PADDING;
@@ -424,7 +427,7 @@ public class FChoiceList extends FList {
@Override
public void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h) {
- Player player = (Player)value;
+ PlayerView player = (PlayerView)value;
g.drawImage(FControl.getPlayerAvatar(player), x - FList.PADDING, y - FList.PADDING, VAvatar.WIDTH, VAvatar.HEIGHT);
x += VAvatar.WIDTH;
w -= VAvatar.WIDTH;
diff --git a/forge-gui-mobile/src/forge/toolbox/FContainer.java b/forge-gui-mobile/src/forge/toolbox/FContainer.java
index 856d5abe86c..272b827fb56 100644
--- a/forge-gui-mobile/src/forge/toolbox/FContainer.java
+++ b/forge-gui-mobile/src/forge/toolbox/FContainer.java
@@ -6,6 +6,7 @@ import java.util.ConcurrentModificationException;
import com.badlogic.gdx.math.Vector2;
import forge.Graphics;
+import forge.GuiBase;
import forge.error.BugReporter;
public abstract class FContainer extends FDisplayObject {
@@ -74,7 +75,7 @@ public abstract class FContainer extends FDisplayObject {
//ignore concurrent modification exceptions during render
}
catch (Exception ex) {
- BugReporter.reportException(ex);
+ BugReporter.reportException(ex, GuiBase.getInterface());
}
}
diff --git a/forge-gui-mobile/src/forge/toolbox/FOptionPane.java b/forge-gui-mobile/src/forge/toolbox/FOptionPane.java
index 0354a3730be..a9afac095d6 100644
--- a/forge-gui-mobile/src/forge/toolbox/FOptionPane.java
+++ b/forge-gui-mobile/src/forge/toolbox/FOptionPane.java
@@ -11,11 +11,11 @@ import forge.assets.FSkinImage;
import forge.assets.ImageUtil;
import forge.card.CardRenderer;
import forge.card.CardZoom;
-import forge.game.card.Card;
import forge.screens.match.views.VPrompt;
import forge.toolbox.FEvent.*;
import forge.util.Callback;
import forge.util.Utils;
+import forge.view.CardView;
public class FOptionPane extends FDialog {
public static final FSkinImage QUESTION_ICON = FSkinImage.QUESTION;
@@ -89,7 +89,7 @@ public class FOptionPane extends FDialog {
optionPane.show();
}
- public static void showCardOptionDialog(final Card card, String message, String title, FImage icon, String[] options, int defaultOption, final Callback callback) {
+ public static void showCardOptionDialog(final CardView card, String message, String title, FImage icon, String[] options, int defaultOption, final Callback callback) {
final FDisplayObject cardDisplay;
if (card != null) {
cardDisplay = new FDisplayObject() {
@@ -110,7 +110,7 @@ public class FOptionPane extends FDialog {
float x = (getWidth() - w) / 2;
float y = 0;
- CardRenderer.drawCard(g, card, true, x, y, w, h);
+ CardRenderer.drawCard(g, card, x, y, w, h);
}
};
cardDisplay.setHeight(Utils.SCREEN_HEIGHT / 2);
diff --git a/forge-gui-mobile/src/forge/toolbox/GuiChoose.java b/forge-gui-mobile/src/forge/toolbox/GuiChoose.java
index b2056c82812..fad37d90746 100644
--- a/forge-gui-mobile/src/forge/toolbox/GuiChoose.java
+++ b/forge-gui-mobile/src/forge/toolbox/GuiChoose.java
@@ -3,14 +3,13 @@ package forge.toolbox;
import com.google.common.base.Function;
import com.google.common.collect.Iterables;
-import forge.game.card.Card;
import forge.util.Callback;
+import forge.view.CardView;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
-
public class GuiChoose {
/**
@@ -240,22 +239,22 @@ public class GuiChoose {
c.show(selected, false);
}
- public static void many(final String title, final String topCaption, int cnt, final List sourceChoices, Card referenceCard, final Callback> callback) {
+ public static void many(final String title, final String topCaption, int cnt, final List sourceChoices, CardView referenceCard, final Callback> callback) {
order(title, topCaption, cnt, cnt, sourceChoices, null, referenceCard, callback);
}
- public static void many(final String title, final String topCaption, int min, int max, final List sourceChoices, Card referenceCard, final Callback> callback) {
+ public static void many(final String title, final String topCaption, int min, int max, final List sourceChoices, CardView referenceCard, final Callback> callback) {
int m2 = min >= 0 ? sourceChoices.size() - min : -1;
int m1 = max >= 0 ? sourceChoices.size() - max : -1;
order(title, topCaption, m1, m2, sourceChoices, null, referenceCard, callback);
}
- public static void order(final String title, final String top, final List sourceChoices, Card referenceCard, final Callback> callback) {
+ public static void order(final String title, final String top, final List sourceChoices, CardView referenceCard, final Callback> callback) {
order(title, top, 0, 0, sourceChoices, null, referenceCard, callback);
}
public static void order(final String title, final String top, final int remainingObjectsMin, final int remainingObjectsMax,
- final List sourceChoices, final List destChoices, final Card referenceCard, final Callback> callback) {
+ final List sourceChoices, final List destChoices, final CardView referenceCard, final Callback> callback) {
// An input box for handling the order of choices.
DualListBox dual = new DualListBox(title, remainingObjectsMin, remainingObjectsMax, sourceChoices, destChoices, callback);
dual.setSecondColumnLabelText(top);
diff --git a/forge-gui-mobile/src/forge/toolbox/GuiDialog.java b/forge-gui-mobile/src/forge/toolbox/GuiDialog.java
index 15234a17f08..5a6a884ee90 100644
--- a/forge-gui-mobile/src/forge/toolbox/GuiDialog.java
+++ b/forge-gui-mobile/src/forge/toolbox/GuiDialog.java
@@ -1,7 +1,7 @@
package forge.toolbox;
-import forge.game.card.Card;
import forge.util.Callback;
+import forge.view.CardView;
import org.apache.commons.lang3.StringUtils;
@@ -12,18 +12,18 @@ import org.apache.commons.lang3.StringUtils;
public class GuiDialog {
private static final String[] defaultConfirmOptions = { "Yes", "No" };
- public static void confirm(final Card c, final String question, final Callback callback) {
+ public static void confirm(final CardView c, final String question, final Callback callback) {
GuiDialog.confirm(c, question, true, null, callback);
}
- public static void confirm(final Card c, final String question, final boolean defaultChoice, final Callback callback) {
+ public static void confirm(final CardView c, final String question, final boolean defaultChoice, final Callback callback) {
GuiDialog.confirm(c, question, defaultChoice, null, callback);
}
- public static void confirm(final Card c, final String question, String[] options, final Callback callback) {
+ public static void confirm(final CardView c, final String question, String[] options, final Callback callback) {
GuiDialog.confirm(c, question, true, options, callback);
}
- public static void confirm(final Card c, final String question, final boolean defaultIsYes, final String[] options, final Callback