mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Fix some issues with the new GUI code:
- Fix cards not showing up in image panel when hovering (both in match and deck editor) - Fix win/lose screen and related parts of the interface
This commit is contained in:
@@ -259,7 +259,7 @@ public class GuiDesktop implements IGuiBase {
|
||||
public void showSpellShop() {
|
||||
Singletons.getControl().setCurrentScreen(FScreen.QUEST_CARD_SHOP);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(
|
||||
new CEditorQuestCardShop(FModel.getQuest()));
|
||||
new CEditorQuestCardShop(FModel.getQuest(), CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -322,11 +322,12 @@ public class DualListBox<T> extends FDialog {
|
||||
return sourceListModel.model;
|
||||
}
|
||||
|
||||
private void showSelectedCard(Object obj) {
|
||||
private void showSelectedCard(final Object obj) {
|
||||
if (!showCard || null == obj) {
|
||||
return;
|
||||
}
|
||||
CardView card = null;
|
||||
|
||||
final CardView card;
|
||||
if (obj instanceof CardView) {
|
||||
card = (CardView) obj;
|
||||
} else if (obj instanceof CardStateView) {
|
||||
@@ -335,6 +336,8 @@ public class DualListBox<T> extends FDialog {
|
||||
card = ((SpellAbilityView) obj).getHostCard();
|
||||
} else if (obj instanceof PaperCard) {
|
||||
card = Card.getCardForUi((IPaperCard) obj).getView();
|
||||
} else {
|
||||
card = null;
|
||||
}
|
||||
|
||||
if (matchUI != null) {
|
||||
|
||||
@@ -258,7 +258,7 @@ public class GuiChoose {
|
||||
public static <T extends Comparable<? super T>> List<T> sideboard(final CMatchUI matchUI, final List<T> sideboard, final List<T> deck) {
|
||||
Collections.sort(deck);
|
||||
Collections.sort(sideboard);
|
||||
return order("Sideboard", "Main Deck", -1, -1, sideboard, deck, null, true);
|
||||
return order("Sideboard", "Main Deck", -1, -1, sideboard, deck, null, true, matchUI);
|
||||
}
|
||||
|
||||
public static <T> List<T> order(final String title, final String top, final int remainingObjectsMin, final int remainingObjectsMax,
|
||||
|
||||
@@ -236,7 +236,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
switch (this.gameType) {
|
||||
case Quest:
|
||||
screen = FScreen.DECK_EDITOR_QUEST;
|
||||
editorCtrl = new CEditorQuest(FModel.getQuest());
|
||||
editorCtrl = new CEditorQuest(FModel.getQuest(), getCDetailPicture());
|
||||
break;
|
||||
case Constructed:
|
||||
screen = FScreen.DECK_EDITOR_CONSTRUCTED;
|
||||
@@ -245,15 +245,15 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
|
||||
break;
|
||||
case Sealed:
|
||||
screen = FScreen.DECK_EDITOR_SEALED;
|
||||
editorCtrl = new CEditorLimited(FModel.getDecks().getSealed(), screen);
|
||||
editorCtrl = new CEditorLimited(FModel.getDecks().getSealed(), screen, getCDetailPicture());
|
||||
break;
|
||||
case Draft:
|
||||
screen = FScreen.DECK_EDITOR_DRAFT;
|
||||
editorCtrl = new CEditorLimited(FModel.getDecks().getDraft(), screen);
|
||||
editorCtrl = new CEditorLimited(FModel.getDecks().getDraft(), screen, getCDetailPicture());
|
||||
break;
|
||||
case Winston:
|
||||
screen = FScreen.DECK_EDITOR_DRAFT;
|
||||
editorCtrl = new CEditorLimited(FModel.getDecks().getWinston(), screen);
|
||||
editorCtrl = new CEditorLimited(FModel.getDecks().getWinston(), screen, getCDetailPicture());
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -71,6 +71,10 @@ public enum CDeckEditorUI implements ICDoc {
|
||||
this.vAllDecks.setCDetailPicture(cDetailPicture);
|
||||
}
|
||||
|
||||
public CDetailPicture getCDetailPicture() {
|
||||
return cDetailPicture;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Pack, for when Packs can be shown in the CardPicturePanel.
|
||||
* @param item
|
||||
@@ -318,7 +322,7 @@ public enum CDeckEditorUI implements ICDoc {
|
||||
setCurrentEditorController(screenChildController);
|
||||
}
|
||||
else if (screen == FScreen.DECK_EDITOR_CONSTRUCTED) {
|
||||
setEditorController(new CEditorConstructed()); //ensure Constructed deck editor controller initialized
|
||||
setEditorController(new CEditorConstructed(cDetailPicture)); //ensure Constructed deck editor controller initialized
|
||||
|
||||
String currentDeckStr = DeckPreferences.getCurrentDeck();
|
||||
if (currentDeckStr != null) {
|
||||
|
||||
@@ -72,7 +72,7 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
|
||||
private ItemManager<TItem> catalogManager;
|
||||
private ItemManager<TItem> deckManager;
|
||||
protected DeckSection sectionMode = DeckSection.Main;
|
||||
private final CDetailPicture cDetailPicture = new CDetailPicture();
|
||||
private final CDetailPicture cDetailPicture;
|
||||
|
||||
// card transfer buttons
|
||||
private final FLabel btnAdd = new FLabel.Builder()
|
||||
@@ -109,8 +109,9 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
|
||||
.icon(FSkin.getIcon(FSkinProp.ICO_EDIT))
|
||||
.iconScaleAuto(false).hoverable().build();
|
||||
|
||||
protected ACEditorBase(FScreen screen0) {
|
||||
protected ACEditorBase(final FScreen screen0, final CDetailPicture cDetailPicture) {
|
||||
this.screen = screen0;
|
||||
this.cDetailPicture = cDetailPicture;
|
||||
}
|
||||
|
||||
public FScreen getScreen() {
|
||||
|
||||
@@ -33,6 +33,7 @@ import forge.model.FModel;
|
||||
import forge.screens.deckeditor.SEditorIO;
|
||||
import forge.screens.deckeditor.views.VAllDecks;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.util.ItemPool;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -64,8 +65,8 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
|
||||
* This is the least restrictive mode;
|
||||
* all cards are available.
|
||||
*/
|
||||
public CEditorCommander() {
|
||||
super(FScreen.DECK_EDITOR_COMMANDER);
|
||||
public CEditorCommander(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DECK_EDITOR_COMMANDER, cDetailPicture);
|
||||
allSections.add(DeckSection.Main);
|
||||
allSections.add(DeckSection.Sideboard);
|
||||
allSections.add(DeckSection.Commander);
|
||||
|
||||
@@ -31,6 +31,7 @@ import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.model.FModel;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.screens.deckeditor.SEditorIO;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.util.ItemPool;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -58,8 +59,8 @@ public final class CEditorConstructed extends ACEditorBase<PaperCard, Deck> {
|
||||
* This is the least restrictive mode;
|
||||
* all cards are available.
|
||||
*/
|
||||
public CEditorConstructed() {
|
||||
super(FScreen.DECK_EDITOR_CONSTRUCTED);
|
||||
public CEditorConstructed(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DECK_EDITOR_CONSTRUCTED, cDetailPicture);
|
||||
|
||||
allSections.add(DeckSection.Main);
|
||||
allSections.add(DeckSection.Sideboard);
|
||||
|
||||
@@ -36,6 +36,7 @@ import forge.screens.deckeditor.views.VAllDecks;
|
||||
import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.home.sanctioned.CSubmenuDraft;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.util.ItemPool;
|
||||
import forge.util.MyRandom;
|
||||
@@ -63,8 +64,8 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
/**
|
||||
* Updates the deck editor UI as necessary draft selection mode.
|
||||
*/
|
||||
public CEditorDraftingProcess() {
|
||||
super(FScreen.DRAFTING_PROCESS);
|
||||
public CEditorDraftingProcess(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DRAFTING_PROCESS, cDetailPicture);
|
||||
|
||||
final CardManager catalogManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager deckManager = new CardManager(getCDetailPicture(), false);
|
||||
@@ -227,7 +228,7 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
|
||||
//open draft pool in Draft Deck Editor right away
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_DRAFT);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorLimited(FModel.getDecks().getDraft(), FScreen.DECK_EDITOR_DRAFT));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorLimited(FModel.getDecks().getDraft(), FScreen.DECK_EDITOR_DRAFT, getCDetailPicture()));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController().load(null, s);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.home.sanctioned.CSubmenuDraft;
|
||||
import forge.screens.home.sanctioned.CSubmenuSealed;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.util.storage.IStorage;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
@@ -58,8 +59,8 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
*
|
||||
* @param deckMap0   {@link forge.deck.DeckGroup}<{@link forge.util.storage.IStorage}>
|
||||
*/
|
||||
public CEditorLimited(final IStorage<DeckGroup> deckMap0, FScreen screen0) {
|
||||
super(screen0);
|
||||
public CEditorLimited(final IStorage<DeckGroup> deckMap0, final FScreen screen0, final CDetailPicture cDetailPicture) {
|
||||
super(screen0, cDetailPicture);
|
||||
|
||||
final CardManager catalogManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager deckManager = new CardManager(getCDetailPicture(), false);
|
||||
|
||||
@@ -39,6 +39,7 @@ import forge.screens.deckeditor.views.VAllDecks;
|
||||
import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.home.quest.CSubmenuQuestDecks;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.util.ItemPool;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -91,16 +92,16 @@ public final class CEditorQuest extends ACEditorBase<PaperCard, Deck> {
|
||||
*
|
||||
* @param questData0   {@link forge.quest.QuestController}
|
||||
*/
|
||||
public CEditorQuest(final QuestController questData0) {
|
||||
super(FScreen.DECK_EDITOR_QUEST);
|
||||
public CEditorQuest(final QuestController questData0, final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DECK_EDITOR_QUEST, cDetailPicture);
|
||||
|
||||
allSections.add(DeckSection.Main);
|
||||
allSections.add(DeckSection.Sideboard);
|
||||
|
||||
this.questData = questData0;
|
||||
|
||||
final CardManager catalogManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager deckManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture, false);
|
||||
|
||||
catalogManager.setCaption("Quest Inventory");
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import forge.quest.QuestController;
|
||||
import forge.quest.QuestSpellShop;
|
||||
import forge.screens.deckeditor.views.*;
|
||||
import forge.screens.home.quest.CSubmenuQuestDecks;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FSkin;
|
||||
import forge.util.ItemPool;
|
||||
@@ -94,8 +95,8 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
|
||||
* @param qd
|
||||
* a {@link forge.quest.data.QuestData} object.
|
||||
*/
|
||||
public CEditorQuestCardShop(final QuestController qd) {
|
||||
super(FScreen.QUEST_CARD_SHOP);
|
||||
public CEditorQuestCardShop(final QuestController qd, final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.QUEST_CARD_SHOP, cDetailPicture);
|
||||
|
||||
this.questData = qd;
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.home.quest.CSubmenuQuestDraft;
|
||||
import forge.screens.home.quest.VSubmenuQuestDraft;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.toolbox.FSkin;
|
||||
import forge.util.ItemPool;
|
||||
@@ -75,8 +76,8 @@ public class CEditorQuestDraftingProcess extends ACEditorBase<PaperCard, DeckGro
|
||||
/**
|
||||
* Updates the deck editor UI as necessary draft selection mode.
|
||||
*/
|
||||
public CEditorQuestDraftingProcess() {
|
||||
super(FScreen.DRAFTING_PROCESS);
|
||||
public CEditorQuestDraftingProcess(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DRAFTING_PROCESS, cDetailPicture);
|
||||
|
||||
final CardManager catalogManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager deckManager = new CardManager(getCDetailPicture(), false);
|
||||
|
||||
@@ -46,6 +46,7 @@ import forge.screens.deckeditor.views.VAllDecks;
|
||||
import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.home.quest.CSubmenuQuestDecks;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
|
||||
//import forge.quest.data.QuestBoosterPack;
|
||||
|
||||
@@ -91,17 +92,16 @@ public final class CEditorQuestLimited extends ACEditorBase<PaperCard, DeckGroup
|
||||
*
|
||||
* @param questData0   {@link forge.quest.QuestController}
|
||||
*/
|
||||
public CEditorQuestLimited(final QuestController questData0) {
|
||||
|
||||
super(FScreen.DECK_EDITOR_QUEST_TOURNAMENT);
|
||||
public CEditorQuestLimited(final QuestController questData0, final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DECK_EDITOR_QUEST_TOURNAMENT, cDetailPicture);
|
||||
|
||||
allSections.add(DeckSection.Main);
|
||||
allSections.add(DeckSection.Sideboard);
|
||||
|
||||
this.questData = questData0;
|
||||
|
||||
final CardManager catalogManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager deckManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture, false);
|
||||
|
||||
catalogManager.setCaption("Sideboard");
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import forge.properties.ForgePreferences.FPref;
|
||||
import forge.screens.deckeditor.SEditorIO;
|
||||
import forge.screens.deckeditor.views.VAllDecks;
|
||||
import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.util.ItemPool;
|
||||
import forge.util.storage.IStorage;
|
||||
|
||||
@@ -60,14 +61,14 @@ public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
|
||||
* This is the least restrictive mode;
|
||||
* all cards are available.
|
||||
*/
|
||||
public CEditorVariant(final IStorage<Deck> folder, final Predicate<PaperCard> poolCondition, final DeckSection deckSection0, final FScreen screen0) {
|
||||
super(screen0);
|
||||
public CEditorVariant(final IStorage<Deck> folder, final Predicate<PaperCard> poolCondition, final DeckSection deckSection0, final FScreen screen0, final CDetailPicture cDetailPicture) {
|
||||
super(screen0, cDetailPicture);
|
||||
|
||||
this.cardPoolCondition = poolCondition;
|
||||
this.sectionMode = deckSection0;
|
||||
|
||||
CardManager catalogManager = new CardManager(getCDetailPicture(), true);
|
||||
CardManager deckManager = new CardManager(getCDetailPicture(), true);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture, true);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture, true);
|
||||
|
||||
catalogManager.setCaption("Catalog");
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import forge.screens.deckeditor.views.VDeckgen;
|
||||
import forge.gui.framework.DragCell;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.screens.home.sanctioned.CSubmenuWinston;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
@@ -73,11 +74,11 @@ public class CEditorWinstonProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
/**
|
||||
* Updates the deck editor UI as necessary draft selection mode.
|
||||
*/
|
||||
public CEditorWinstonProcess() {
|
||||
super(FScreen.DRAFTING_PROCESS);
|
||||
public CEditorWinstonProcess(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DRAFTING_PROCESS, cDetailPicture);
|
||||
|
||||
final CardManager catalogManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager deckManager = new CardManager(getCDetailPicture(), false);
|
||||
final CardManager catalogManager = new CardManager(cDetailPicture, false);
|
||||
final CardManager deckManager = new CardManager(cDetailPicture, false);
|
||||
|
||||
//hide filters and options panel so more of pack is visible by default
|
||||
catalogManager.setHideViewOptions(1, true);
|
||||
@@ -237,7 +238,7 @@ public class CEditorWinstonProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
|
||||
//open draft pool in Draft Deck Editor right away
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_DRAFT);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorLimited(FModel.getDecks().getWinston(), FScreen.DECK_EDITOR_DRAFT));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorLimited(FModel.getDecks().getWinston(), FScreen.DECK_EDITOR_DRAFT, getCDetailPicture()));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController().load(null, s);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package forge.screens.home.quest;
|
||||
|
||||
import forge.UiCommand;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import forge.Singletons;
|
||||
import forge.UiCommand;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.gui.framework.FScreen;
|
||||
@@ -15,8 +17,6 @@ import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.deckeditor.controllers.CEditorQuest;
|
||||
import forge.screens.home.CHomeUI;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
/**
|
||||
* Controls the quest decks submenu in the home UI.
|
||||
*
|
||||
@@ -64,7 +64,7 @@ public enum CSubmenuQuestDecks implements ICDoc {
|
||||
return;
|
||||
}
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuest(FModel.getQuest()));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuest(FModel.getQuest(), CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
package forge.screens.home.quest;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.Singletons;
|
||||
import forge.UiCommand;
|
||||
@@ -33,18 +46,12 @@ import forge.screens.deckeditor.views.VCurrentDeck;
|
||||
import forge.screens.home.CHomeUI;
|
||||
import forge.screens.home.quest.VSubmenuQuestDraft.Mode;
|
||||
import forge.screens.home.sanctioned.CSubmenuDraft;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.toolbox.FSkin;
|
||||
import forge.toolbox.FSkin.SkinImage;
|
||||
import forge.toolbox.JXButtonPanel;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import java.awt.event.*;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Controls the quest draft submenu in the home UI.
|
||||
*
|
||||
@@ -486,7 +493,7 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
||||
QuestDraftUtils.completeDraft(finishedDraft);
|
||||
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST_TOURNAMENT);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuestLimited(FModel.getQuest()));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuestLimited(FModel.getQuest(), CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
|
||||
drafting = false;
|
||||
|
||||
@@ -496,9 +503,10 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
||||
}
|
||||
|
||||
private void editDeck() {
|
||||
VCurrentDeck.SINGLETON_INSTANCE.setItemManager(new DeckManager(GameType.Draft, null));
|
||||
final CDetailPicture cDetailPicture = CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture();
|
||||
VCurrentDeck.SINGLETON_INSTANCE.setItemManager(new DeckManager(GameType.Draft, cDetailPicture));
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST_TOURNAMENT);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuestLimited(FModel.getQuest()));
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuestLimited(FModel.getQuest(), cDetailPicture));
|
||||
FModel.getQuest().save();
|
||||
}
|
||||
|
||||
@@ -508,15 +516,15 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
||||
return;
|
||||
}
|
||||
|
||||
QuestEventDraft draftEvent = QuestUtil.getDraftEvent();
|
||||
final QuestEventDraft draftEvent = QuestUtil.getDraftEvent();
|
||||
|
||||
long creditsAvailable = FModel.getQuest().getAssets().getCredits();
|
||||
final long creditsAvailable = FModel.getQuest().getAssets().getCredits();
|
||||
if (draftEvent.canEnter()) {
|
||||
FOptionPane.showMessageDialog("You need " + NUMBER_FORMATTER.format(draftEvent.getEntryFee() - creditsAvailable) + " more credits to enter this tournament.", "Not Enough Credits", FSkin.getImage(FSkinProp.ICO_WARNING).scale(2.0));
|
||||
return;
|
||||
}
|
||||
|
||||
boolean okayToEnter = FOptionPane.showOptionDialog("This tournament costs " + draftEvent.getEntryFee() + " credits to enter.\nAre you sure you wish to enter?", "Enter Draft Tournament?", FSkin.getImage(FSkinProp.ICO_QUEST_GOLD), new String[] { "Yes", "No" }, 1) == 0;
|
||||
final boolean okayToEnter = FOptionPane.showOptionDialog("This tournament costs " + draftEvent.getEntryFee() + " credits to enter.\nAre you sure you wish to enter?", "Enter Draft Tournament?", FSkin.getImage(FSkinProp.ICO_QUEST_GOLD), new String[] { "Yes", "No" }, 1) == 0;
|
||||
|
||||
if (!okayToEnter) {
|
||||
return;
|
||||
@@ -524,9 +532,9 @@ public enum CSubmenuQuestDraft implements ICDoc {
|
||||
|
||||
drafting = true;
|
||||
|
||||
BoosterDraft draft = draftEvent.enter();
|
||||
final BoosterDraft draft = draftEvent.enter();
|
||||
|
||||
final CEditorQuestDraftingProcess draftController = new CEditorQuestDraftingProcess();
|
||||
final CEditorQuestDraftingProcess draftController = new CEditorQuestDraftingProcess(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
draftController.showGui(draft);
|
||||
|
||||
draftController.setDraftQuest(CSubmenuQuestDraft.this);
|
||||
|
||||
@@ -6,6 +6,7 @@ import forge.gui.framework.DragTab;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.itemmanager.DeckManager;
|
||||
import forge.itemmanager.ItemManagerContainer;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.home.EMenuGroup;
|
||||
import forge.screens.home.IVSubmenu;
|
||||
import forge.screens.home.LblHeader;
|
||||
@@ -36,7 +37,7 @@ public enum VSubmenuQuestDecks implements IVSubmenu<CSubmenuQuestDecks> {
|
||||
/** */
|
||||
private final LblHeader lblTitle = new LblHeader("Quest Decks");
|
||||
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Quest, null);
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Quest, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
|
||||
private final FLabel lblInfo = new FLabel.Builder()
|
||||
.fontAlign(SwingConstants.LEFT).fontSize(16).fontStyle(Font.BOLD)
|
||||
|
||||
@@ -1,15 +1,23 @@
|
||||
package forge.screens.home.sanctioned;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.UiCommand;
|
||||
import forge.Singletons;
|
||||
import forge.UiCommand;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckGroup;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.game.GameType;
|
||||
import forge.game.player.RegisteredPlayer;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.gui.SOverlayUtils;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
@@ -23,13 +31,6 @@ import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.deckeditor.controllers.CEditorDraftingProcess;
|
||||
import forge.toolbox.FOptionPane;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Controls the draft submenu in the home UI.
|
||||
*
|
||||
@@ -163,7 +164,7 @@ public enum CSubmenuDraft implements ICDoc {
|
||||
BoosterDraft draft = BoosterDraft.createDraft(poolType);
|
||||
if (draft == null) { return; }
|
||||
|
||||
final CEditorDraftingProcess draftController = new CEditorDraftingProcess();
|
||||
final CEditorDraftingProcess draftController = new CEditorDraftingProcess(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
draftController.showGui(draft);
|
||||
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DRAFTING_PROCESS);
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
package forge.screens.home.sanctioned;
|
||||
|
||||
import forge.UiCommand;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import forge.Singletons;
|
||||
import forge.deck.*;
|
||||
import forge.game.GameType;
|
||||
import forge.UiCommand;
|
||||
import forge.deck.DeckBase;
|
||||
import forge.deck.DeckGroup;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.game.GameType;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.item.InventoryItem;
|
||||
@@ -17,11 +24,6 @@ import forge.screens.deckeditor.controllers.ACEditorBase;
|
||||
import forge.screens.deckeditor.controllers.CEditorLimited;
|
||||
import forge.toolbox.FOptionPane;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Controls the sealed submenu in the home UI.
|
||||
*
|
||||
@@ -122,7 +124,7 @@ public enum CSubmenuSealed implements ICDoc {
|
||||
if (sealed == null) { return; }
|
||||
|
||||
final ACEditorBase<? extends InventoryItem, T> editor = (ACEditorBase<? extends InventoryItem, T>) new CEditorLimited(
|
||||
FModel.getDecks().getSealed(), FScreen.DECK_EDITOR_SEALED);
|
||||
FModel.getDecks().getSealed(), FScreen.DECK_EDITOR_SEALED, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_SEALED);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(editor);
|
||||
|
||||
@@ -1,35 +1,36 @@
|
||||
package forge.screens.home.sanctioned;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.UiCommand;
|
||||
import forge.Singletons;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckGroup;
|
||||
import forge.game.GameType;
|
||||
import forge.game.player.RegisteredPlayer;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.gui.SOverlayUtils;
|
||||
import forge.match.HostedMatch;
|
||||
import forge.model.FModel;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.screens.deckeditor.controllers.CEditorWinstonProcess;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.limited.LimitedPoolType;
|
||||
import forge.limited.WinstonDraft;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.Singletons;
|
||||
import forge.UiCommand;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckGroup;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.game.GameType;
|
||||
import forge.game.player.RegisteredPlayer;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.gui.SOverlayUtils;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.limited.LimitedPoolType;
|
||||
import forge.limited.WinstonDraft;
|
||||
import forge.match.HostedMatch;
|
||||
import forge.model.FModel;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.deckeditor.controllers.CEditorWinstonProcess;
|
||||
import forge.toolbox.FOptionPane;
|
||||
|
||||
/**
|
||||
* Controls the draft submenu in the home UI.
|
||||
*
|
||||
@@ -151,7 +152,7 @@ public enum CSubmenuWinston implements ICDoc {
|
||||
WinstonDraft draft = WinstonDraft.createDraft(poolType);
|
||||
if (draft == null) { return; }
|
||||
|
||||
final CEditorWinstonProcess draftController = new CEditorWinstonProcess();
|
||||
final CEditorWinstonProcess draftController = new CEditorWinstonProcess(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
draftController.showGui(draft);
|
||||
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DRAFTING_PROCESS);
|
||||
|
||||
@@ -860,26 +860,26 @@ public enum VSubmenuConstructed implements IVSubmenu<CSubmenuConstructed> {
|
||||
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_ARCHENEMY);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(
|
||||
new CEditorVariant(FModel.getDecks().getScheme(), predSchemes, DeckSection.Schemes, FScreen.DECK_EDITOR_ARCHENEMY));
|
||||
new CEditorVariant(FModel.getDecks().getScheme(), predSchemes, DeckSection.Schemes, FScreen.DECK_EDITOR_ARCHENEMY, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
}
|
||||
});
|
||||
|
||||
// Commander buttons
|
||||
cmdDeckSelectorBtn.setCommand(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
currentGameMode = vntTinyLeaders.isSelected() ? GameType.TinyLeaders : GameType.Commander;
|
||||
cmdDeckSelectorBtn.requestFocusInWindow();
|
||||
changePlayerFocus(index, currentGameMode);
|
||||
}
|
||||
@Override
|
||||
public void run() {
|
||||
currentGameMode = vntTinyLeaders.isSelected() ? GameType.TinyLeaders : GameType.Commander;
|
||||
cmdDeckSelectorBtn.requestFocusInWindow();
|
||||
changePlayerFocus(index, currentGameMode);
|
||||
}
|
||||
});
|
||||
|
||||
cmdDeckEditor.setCommand(new UiCommand() {
|
||||
@Override
|
||||
public void run() {
|
||||
currentGameMode = vntTinyLeaders.isSelected() ? GameType.TinyLeaders : GameType.Commander;
|
||||
@Override
|
||||
public void run() {
|
||||
currentGameMode = vntTinyLeaders.isSelected() ? GameType.TinyLeaders : GameType.Commander;
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_COMMANDER);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander());
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -906,7 +906,7 @@ public enum VSubmenuConstructed implements IVSubmenu<CSubmenuConstructed> {
|
||||
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_PLANECHASE);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(
|
||||
new CEditorVariant(FModel.getDecks().getPlane(), predPlanes, DeckSection.Planes, FScreen.DECK_EDITOR_PLANECHASE));
|
||||
new CEditorVariant(FModel.getDecks().getPlane(), predPlanes, DeckSection.Planes, FScreen.DECK_EDITOR_PLANECHASE, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
package forge.screens.home.sanctioned;
|
||||
|
||||
import java.awt.Font;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import forge.game.GameType;
|
||||
import forge.gui.framework.DragCell;
|
||||
import forge.gui.framework.DragTab;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.itemmanager.DeckManager;
|
||||
import forge.itemmanager.ItemManagerContainer;
|
||||
import forge.screens.home.*;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.home.EMenuGroup;
|
||||
import forge.screens.home.IVSubmenu;
|
||||
import forge.screens.home.LblHeader;
|
||||
import forge.screens.home.StartButton;
|
||||
import forge.screens.home.VHomeUI;
|
||||
import forge.screens.home.VHomeUI.PnlDisplay;
|
||||
import forge.toolbox.*;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import java.awt.*;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FRadioButton;
|
||||
import forge.toolbox.FSkin;
|
||||
import forge.toolbox.JXButtonPanel;
|
||||
|
||||
/**
|
||||
* Assembles Swing components of draft submenu singleton.
|
||||
@@ -34,7 +46,7 @@ public enum VSubmenuDraft implements IVSubmenu<CSubmenuDraft> {
|
||||
private final JPanel pnlStart = new JPanel();
|
||||
private final StartButton btnStart = new StartButton();
|
||||
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Draft, null);
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Draft, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
|
||||
private final JRadioButton radSingle = new FRadioButton("Play one opponent");
|
||||
private final JRadioButton radAll = new FRadioButton("Play all 7 opponents");
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
package forge.screens.home.sanctioned;
|
||||
|
||||
import java.awt.Font;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.text.SimpleAttributeSet;
|
||||
import javax.swing.text.StyleConstants;
|
||||
import javax.swing.text.StyledDocument;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import forge.assets.FSkinProp;
|
||||
import forge.game.GameType;
|
||||
import forge.gui.SOverlayUtils;
|
||||
@@ -8,24 +22,18 @@ import forge.gui.framework.DragTab;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.itemmanager.DeckManager;
|
||||
import forge.itemmanager.ItemManagerContainer;
|
||||
import forge.screens.home.*;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.home.EMenuGroup;
|
||||
import forge.screens.home.IVSubmenu;
|
||||
import forge.screens.home.LblHeader;
|
||||
import forge.screens.home.StartButton;
|
||||
import forge.screens.home.VHomeUI;
|
||||
import forge.screens.home.VHomeUI.PnlDisplay;
|
||||
import forge.toolbox.FButton;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FPanel;
|
||||
import forge.toolbox.FSkin;
|
||||
import forge.toolbox.FSkin.SkinnedTextPane;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.Border;
|
||||
import javax.swing.text.SimpleAttributeSet;
|
||||
import javax.swing.text.StyleConstants;
|
||||
import javax.swing.text.StyledDocument;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
/**
|
||||
* Assembles Swing components of sealed submenu singleton.
|
||||
@@ -44,7 +52,7 @@ public enum VSubmenuSealed implements IVSubmenu<CSubmenuSealed> {
|
||||
private final LblHeader lblTitle = new LblHeader("Sanctioned Format: Sealed Deck");
|
||||
|
||||
private final StartButton btnStart = new StartButton();
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Sealed, null);
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Sealed, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
|
||||
private final FLabel lblInfo = new FLabel.Builder()
|
||||
.fontAlign(SwingConstants.LEFT).fontSize(16).fontStyle(Font.BOLD)
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
package forge.screens.home.sanctioned;
|
||||
|
||||
import java.awt.Font;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.ListSelectionModel;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import forge.game.GameType;
|
||||
import forge.gui.framework.DragCell;
|
||||
import forge.gui.framework.DragTab;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.itemmanager.DeckManager;
|
||||
import forge.itemmanager.ItemManagerContainer;
|
||||
import forge.screens.home.*;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.home.EMenuGroup;
|
||||
import forge.screens.home.IVSubmenu;
|
||||
import forge.screens.home.LblHeader;
|
||||
import forge.screens.home.StartButton;
|
||||
import forge.screens.home.VHomeUI;
|
||||
import forge.screens.home.VHomeUI.PnlDisplay;
|
||||
import forge.toolbox.*;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FList;
|
||||
import forge.toolbox.FSkin;
|
||||
|
||||
/**
|
||||
* Assembles Swing components of draft submenu singleton.
|
||||
@@ -34,7 +46,7 @@ public enum VSubmenuWinston implements IVSubmenu<CSubmenuWinston> {
|
||||
private final JPanel pnlStart = new JPanel();
|
||||
private final StartButton btnStart = new StartButton();
|
||||
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Winston, null);
|
||||
private final DeckManager lstDecks = new DeckManager(GameType.Winston, CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture());
|
||||
private final JList<String> lstAI = new FList<String>();
|
||||
|
||||
private final JLabel lblInfo = new FLabel.Builder()
|
||||
|
||||
@@ -787,7 +787,11 @@ public final class CMatchUI
|
||||
|
||||
@Override
|
||||
public void afterGameEnd() {
|
||||
Singletons.getView().getNavigationBar().closeTab(screen);
|
||||
FThreads.invokeInEdtNowOrLater(new Runnable() {
|
||||
@Override public void run() {
|
||||
Singletons.getView().getNavigationBar().closeTab(screen);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -814,7 +818,7 @@ public final class CMatchUI
|
||||
System.err.println("Warning: GameObject passed to GUI! Printing stack trace.");
|
||||
Thread.dumpStack();
|
||||
}*/
|
||||
return GuiChoose.getChoices(message, min, max, choices, selected, display);
|
||||
return GuiChoose.getChoices(message, min, max, choices, selected, display, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -825,7 +829,7 @@ public final class CMatchUI
|
||||
System.err.println("Warning: GameObject passed to GUI! Printing stack trace.");
|
||||
Thread.dumpStack();
|
||||
}*/
|
||||
return GuiChoose.order(title, top, remainingObjectsMin, remainingObjectsMax, sourceChoices, destChoices, referenceCard, sideboardingMode);
|
||||
return GuiChoose.order(title, top, remainingObjectsMin, remainingObjectsMax, sourceChoices, destChoices, referenceCard, sideboardingMode, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -109,38 +109,34 @@ public class QuestDraftWinLose extends ControlWinLose {
|
||||
view.getBtnRestart().setEnabled(false);
|
||||
view.getBtnRestart().setVisible(false);
|
||||
|
||||
if (lastGame.isMatchOver()) {
|
||||
view.getBtnQuit().setEnabled(true);
|
||||
view.getBtnContinue().setEnabled(false);
|
||||
view.getBtnQuit().setText("Continue Tournament");
|
||||
for (final ActionListener listener : view.getBtnQuit().getActionListeners()) {
|
||||
view.getBtnQuit().removeActionListener(listener);
|
||||
}
|
||||
view.getBtnQuit().addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent e) {
|
||||
matchUI.getGameController().nextGameDecision(NextGameDecision.CONTINUE);
|
||||
final boolean isMatchOver = lastGame.isMatchOver();
|
||||
final String quitString, warningString, warningCaption;
|
||||
if (isMatchOver) {
|
||||
quitString = "Continue Tournament";
|
||||
warningString = null;
|
||||
warningCaption = null;
|
||||
} else {
|
||||
quitString = "Forfeit Tournament";
|
||||
warningString = "Quitting the match now will forfeit the tournament!\n\nReally quit?";
|
||||
warningCaption = "Really Quit Tournament?";
|
||||
}
|
||||
view.getBtnQuit().setEnabled(true);
|
||||
view.getBtnContinue().setEnabled(!isMatchOver);
|
||||
view.getBtnQuit().setText(quitString);
|
||||
for (final ActionListener listener : view.getBtnQuit().getActionListeners()) {
|
||||
view.getBtnQuit().removeActionListener(listener);
|
||||
}
|
||||
view.getBtnQuit().addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent e) {
|
||||
if (warningString == null ||
|
||||
FOptionPane.showOptionDialog(warningString, warningCaption, FSkin.getImage(FSkinProp.ICO_WARNING).scale(2), new String[] { "Yes", "No" }, 1) == 0) {
|
||||
matchUI.getGameController().nextGameDecision(NextGameDecision.QUIT);
|
||||
QuestDraftUtils.matchInProgress = false;
|
||||
QuestDraftUtils.continueMatches(matchUI);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
view.getBtnQuit().setEnabled(true);
|
||||
for (final ActionListener listener : view.getBtnQuit().getActionListeners()) {
|
||||
view.getBtnQuit().removeActionListener(listener);
|
||||
}
|
||||
view.getBtnQuit().setText("Forfeit Tournament");
|
||||
view.getBtnQuit().addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent e) {
|
||||
if (FOptionPane.showOptionDialog("Quitting the match now will forfeit the tournament!\n\nReally quit?", "Really Quit Tournament?", FSkin.getImage(FSkinProp.ICO_WARNING).scale(2), new String[] { "Yes", "No" }, 1) == 0) {
|
||||
matchUI.getGameController().nextGameDecision(NextGameDecision.QUIT);
|
||||
QuestDraftUtils.matchInProgress = false;
|
||||
QuestDraftUtils.continueMatches(matchUI);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
CSubmenuQuestDraft.SINGLETON_INSTANCE.update();
|
||||
VSubmenuQuestDraft.SINGLETON_INSTANCE.populate();
|
||||
|
||||
@@ -222,9 +222,11 @@ public class HostedMatch {
|
||||
match.startGame(game);
|
||||
|
||||
// After game is over...
|
||||
if (humanCount == 0) {
|
||||
if (match.isMatchOver()) {
|
||||
endCurrentGame();
|
||||
} else if (humanCount == 0) {
|
||||
// ... if no human players, let AI decide next game
|
||||
addNextGameDecision(null, match.isMatchOver() ? NextGameDecision.QUIT : NextGameDecision.CONTINUE);
|
||||
addNextGameDecision(null, NextGameDecision.CONTINUE);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1756,8 +1756,10 @@ public class PlayerControllerHuman
|
||||
|
||||
@Override
|
||||
public void concede() {
|
||||
this.player.concede();
|
||||
getGame().getAction().checkGameOverCondition();
|
||||
if (player != null) {
|
||||
player.concede();
|
||||
getGame().getAction().checkGameOverCondition();
|
||||
}
|
||||
}
|
||||
public boolean mayAutoPass() {
|
||||
return getGui().mayAutoPass(getLocalPlayerView());
|
||||
|
||||
Reference in New Issue
Block a user