mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Fix up some stuff around deck editing & loading for tiny leaders format.
This commit is contained in:
@@ -70,6 +70,15 @@ public class FScreen {
|
||||
"Close Editor",
|
||||
ForgeConstants.EDITOR_LAYOUT_FILE,
|
||||
false);
|
||||
public static final FScreen DECK_EDITOR_TINY_LEADERS = new FScreen(
|
||||
VDeckEditorUI.SINGLETON_INSTANCE,
|
||||
CDeckEditorUI.SINGLETON_INSTANCE,
|
||||
"Tiny Leaders Deck Editor",
|
||||
FSkin.getImage(FSkinProp.IMG_PACK),
|
||||
true,
|
||||
"Close Editor",
|
||||
ForgeConstants.EDITOR_LAYOUT_FILE,
|
||||
false);
|
||||
public static final FScreen DECK_EDITOR_PLANECHASE = new FScreen(
|
||||
VDeckEditorUI.SINGLETON_INSTANCE,
|
||||
CDeckEditorUI.SINGLETON_INSTANCE,
|
||||
|
||||
@@ -167,7 +167,7 @@ public enum CCurrentDeck implements ICDoc {
|
||||
|
||||
} catch (final Exception ex) {
|
||||
//BugReporter.reportException(ex);
|
||||
throw new RuntimeException("Error importing deck." + ex);
|
||||
throw new RuntimeException("Error importing deck.", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
|
||||
* all cards are available.
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public CEditorCommander(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.DECK_EDITOR_COMMANDER, cDetailPicture);
|
||||
public CEditorCommander(final CDetailPicture cDetailPicture, boolean tinyLeaders) {
|
||||
super(tinyLeaders ? FScreen.DECK_EDITOR_TINY_LEADERS : FScreen.DECK_EDITOR_COMMANDER, cDetailPicture);
|
||||
allSections.add(DeckSection.Main);
|
||||
allSections.add(DeckSection.Sideboard);
|
||||
allSections.add(DeckSection.Commander);
|
||||
@@ -89,7 +89,7 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
|
||||
return new Deck();
|
||||
}
|
||||
};
|
||||
this.controller = new DeckController<Deck>(FModel.getDecks().getCommander(), this, newCreator);
|
||||
this.controller = new DeckController<Deck>(tinyLeaders ? FModel.getDecks().getTinyLeaders() :FModel.getDecks().getCommander(), this, newCreator);
|
||||
|
||||
getBtnAddBasicLands().setCommand(new UiCommand() {
|
||||
@Override
|
||||
|
||||
@@ -25,99 +25,43 @@ public class CLobby {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
private void addDecks(final Iterable<DeckProxy> commanderDecks, FList<Object> deckList, String... initialItems) {
|
||||
Vector<Object> listData = new Vector<Object>();
|
||||
for (String item : initialItems) {
|
||||
listData.add(item);
|
||||
}
|
||||
listData.add("Generate");
|
||||
if (!Iterables.isEmpty(commanderDecks)) {
|
||||
listData.add("Random");
|
||||
for (DeckProxy comDeck : commanderDecks) {
|
||||
listData.add(comDeck.getDeck());
|
||||
}
|
||||
}
|
||||
Object val = deckList.getSelectedValue();
|
||||
deckList.setListData(listData);
|
||||
if (null != val) {
|
||||
deckList.setSelectedValue(val, true);
|
||||
}
|
||||
if (-1 == deckList.getSelectedIndex()) {
|
||||
deckList.setSelectedIndex(0);
|
||||
}
|
||||
}
|
||||
|
||||
public void update() {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override public final void run() {
|
||||
final Iterable<DeckProxy> commanderDecks = DeckProxy.getAllCommanderDecks();
|
||||
final Iterable<DeckProxy> tinyLeadersDecks = DeckProxy.getAllTinyLeadersDecks();
|
||||
final Iterable<DeckProxy> planarDecks = DeckProxy.getAllPlanarDecks();
|
||||
final Iterable<DeckProxy> schemeDecks = DeckProxy.getAllSchemeDecks();
|
||||
FList<Object> deckList;
|
||||
Vector<Object> listData;
|
||||
Object val;
|
||||
final Iterable<DeckProxy> planarDecks = DeckProxy.getAllPlanarDecks();
|
||||
|
||||
for (int i = 0; i < VLobby.MAX_PLAYERS; i++) {
|
||||
// Commander: reinit deck list and restore last selections (if any)
|
||||
deckList = view.getCommanderDeckLists().get(i);
|
||||
listData = new Vector<Object>();
|
||||
listData.add("Generate");
|
||||
if (!Iterables.isEmpty(commanderDecks)) {
|
||||
listData.add("Random");
|
||||
for (DeckProxy comDeck : commanderDecks) {
|
||||
listData.add(comDeck.getDeck());
|
||||
}
|
||||
}
|
||||
val = deckList.getSelectedValue();
|
||||
deckList.setListData(listData);
|
||||
if (null != val) {
|
||||
deckList.setSelectedValue(val, true);
|
||||
}
|
||||
if (-1 == deckList.getSelectedIndex()) {
|
||||
deckList.setSelectedIndex(0);
|
||||
} // End Commander
|
||||
|
||||
// Tiny Leaders: reinit deck list and restore last selections (if any)
|
||||
deckList = view.getTinyLeadersDeckLists().get(i);
|
||||
listData = new Vector<Object>();
|
||||
listData.add("Generate");
|
||||
if (!Iterables.isEmpty(tinyLeadersDecks)) {
|
||||
listData.add("Random");
|
||||
for (DeckProxy tlDeck : tinyLeadersDecks) {
|
||||
listData.add(tlDeck.getDeck());
|
||||
}
|
||||
}
|
||||
val = deckList.getSelectedValue();
|
||||
deckList.setListData(listData);
|
||||
if (null != val) {
|
||||
deckList.setSelectedValue(val, true);
|
||||
}
|
||||
if (-1 == deckList.getSelectedIndex()) {
|
||||
deckList.setSelectedIndex(0);
|
||||
} // Tiny Leaders
|
||||
|
||||
// Archenemy: reinit deck list and restore last selections (if any)
|
||||
deckList = view.getSchemeDeckLists().get(i);
|
||||
listData = new Vector<Object>();
|
||||
listData.add("Use deck's scheme section (random if unavailable)");
|
||||
listData.add("Generate");
|
||||
if (!Iterables.isEmpty(schemeDecks)) {
|
||||
listData.add("Random");
|
||||
for (DeckProxy schemeDeck : schemeDecks) {
|
||||
listData.add(schemeDeck.getDeck());
|
||||
}
|
||||
}
|
||||
val = deckList.getSelectedValue();
|
||||
deckList.setListData(listData);
|
||||
if (null != val) {
|
||||
deckList.setSelectedValue(val, true);
|
||||
}
|
||||
if (-1 == deckList.getSelectedIndex()) {
|
||||
deckList.setSelectedIndex(0);
|
||||
} // End Archenemy
|
||||
|
||||
// Planechase: reinit deck lists and restore last selections (if any)
|
||||
deckList = view.getPlanarDeckLists().get(i);
|
||||
listData = new Vector<Object>();
|
||||
|
||||
listData.add("Use deck's planes section (random if unavailable)");
|
||||
listData.add("Generate");
|
||||
if (!Iterables.isEmpty(planarDecks)) {
|
||||
listData.add("Random");
|
||||
for (DeckProxy planarDeck : planarDecks) {
|
||||
listData.add(planarDeck.getDeck());
|
||||
}
|
||||
}
|
||||
|
||||
val = deckList.getSelectedValue();
|
||||
deckList.setListData(listData);
|
||||
if (null != val) {
|
||||
deckList.setSelectedValue(val, true);
|
||||
}
|
||||
|
||||
if (-1 == deckList.getSelectedIndex()) {
|
||||
deckList.setSelectedIndex(0);
|
||||
} // End Planechase
|
||||
|
||||
addDecks(commanderDecks, view.getCommanderDeckLists().get(i));
|
||||
addDecks(tinyLeadersDecks, view.getTinyLeadersDeckLists().get(i));
|
||||
addDecks(schemeDecks, view.getSchemeDeckLists().get(i),
|
||||
"Use deck's scheme section (random if unavailable)");
|
||||
addDecks(planarDecks, view.getPlanarDeckLists().get(i),
|
||||
"Use deck's planes section (random if unavailable)");
|
||||
view.updateVanguardList(i);
|
||||
}
|
||||
|
||||
|
||||
@@ -492,9 +492,15 @@ public class PlayerPanel extends FPanel {
|
||||
cmdDeckEditor.setCommand(new UiCommand() {
|
||||
@Override
|
||||
public void run() {
|
||||
lobby.setCurrentGameMode(lobby.hasVariant(GameType.TinyLeaders) ? GameType.TinyLeaders : GameType.Commander);
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_COMMANDER);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture()));
|
||||
if (lobby.hasVariant(GameType.TinyLeaders)) {
|
||||
lobby.setCurrentGameMode(GameType.TinyLeaders);
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_TINY_LEADERS);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture(), true));
|
||||
} else {
|
||||
lobby.setCurrentGameMode(GameType.Commander);
|
||||
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_COMMANDER);
|
||||
CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander(CDeckEditorUI.SINGLETON_INSTANCE.getCDetailPicture(), false));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -533,7 +533,7 @@ public class VLobby implements ILobbyView {
|
||||
return;
|
||||
}
|
||||
|
||||
final Object selected = getCommanderDeckLists().get(playerIndex).getSelectedValue();
|
||||
final Object selected = getTinyLeadersDeckLists().get(playerIndex).getSelectedValue();
|
||||
Deck deck = null;
|
||||
if (selected instanceof String) {
|
||||
if (selected.equals("Random")) {
|
||||
|
||||
Reference in New Issue
Block a user