Fix up some stuff around deck editing & loading for tiny leaders format.

This commit is contained in:
Myrd
2015-12-26 06:10:51 +00:00
parent 5a762aa823
commit 3d1d6cff2a
9 changed files with 60 additions and 94 deletions

View File

@@ -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,

View File

@@ -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);
}
}
}

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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));
}
}
});

View File

@@ -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")) {