mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Added UI elements required for Brawl variant
This commit is contained in:
@@ -183,6 +183,7 @@ public class FDeckChooser extends FScreen {
|
||||
break; //delay initialize for constructed until saved decks can be reloaded
|
||||
case Commander:
|
||||
case TinyLeaders:
|
||||
case Brawl:
|
||||
case Gauntlet:
|
||||
initialize(null, DeckType.CUSTOM_DECK);
|
||||
break;
|
||||
@@ -220,6 +221,9 @@ public class FDeckChooser extends FScreen {
|
||||
case TinyLeaders:
|
||||
lstDecks.setSelectedString(DeckPreferences.getTinyLeadersDeck());
|
||||
break;
|
||||
case Brawl:
|
||||
lstDecks.setSelectedString(DeckPreferences.getBrawlDeck());
|
||||
break;
|
||||
case Archenemy:
|
||||
lstDecks.setSelectedString(DeckPreferences.getSchemeDeck());
|
||||
break;
|
||||
@@ -389,6 +393,8 @@ public class FDeckChooser extends FScreen {
|
||||
return EditorType.Commander;
|
||||
case TinyLeaders:
|
||||
return EditorType.TinyLeaders;
|
||||
case Brawl:
|
||||
return EditorType.Brawl;
|
||||
case Archenemy:
|
||||
return EditorType.Archenemy;
|
||||
case Planechase:
|
||||
@@ -454,6 +460,7 @@ public class FDeckChooser extends FScreen {
|
||||
break;
|
||||
case Commander:
|
||||
case TinyLeaders:
|
||||
case Brawl:
|
||||
cmbDeckTypes.addItem(DeckType.CUSTOM_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
||||
if(FModel.isdeckGenMatrixLoaded()) {
|
||||
@@ -564,6 +571,10 @@ public class FDeckChooser extends FScreen {
|
||||
pool = DeckProxy.getAllTinyLeadersDecks();
|
||||
config = ItemManagerConfig.COMMANDER_DECKS;
|
||||
break;
|
||||
case Brawl:
|
||||
pool = DeckProxy.getAllBrawlDecks();
|
||||
config = ItemManagerConfig.COMMANDER_DECKS;
|
||||
break;
|
||||
case Archenemy:
|
||||
pool = DeckProxy.getAllSchemeDecks();
|
||||
config = ItemManagerConfig.SCHEME_DECKS;
|
||||
@@ -971,6 +982,12 @@ public class FDeckChooser extends FScreen {
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectedDeckType == DeckType.BRAWL_DECKS) {
|
||||
//cannot create gauntlet for tiny leaders decks, so just start single match
|
||||
testVariantDeck(userDeck, GameType.Brawl);
|
||||
return;
|
||||
}
|
||||
|
||||
GuiChoose.getInteger("How many opponents are you willing to face?", 1, 50, new Callback<Integer>() {
|
||||
@Override
|
||||
public void run(final Integer numOpponents) {
|
||||
|
||||
@@ -89,6 +89,12 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
return new Deck();
|
||||
}
|
||||
}), DeckFormat.TinyLeaders.isLegalCardPredicate()),
|
||||
Brawl(new DeckController<Deck>(FModel.getDecks().getCommander(), new Supplier<Deck>() {
|
||||
@Override
|
||||
public Deck get() {
|
||||
return new Deck();
|
||||
}
|
||||
}), Predicates.and(DeckFormat.Brawl.isLegalCardPredicate(),FModel.getFormats().getStandard().getFilterPrinted())),//include standard format requirement
|
||||
Archenemy(new DeckController<Deck>(FModel.getDecks().getScheme(), new Supplier<Deck>() {
|
||||
@Override
|
||||
public Deck get() {
|
||||
|
||||
@@ -122,6 +122,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
cbVariants.addItem(GameType.MomirBasic);
|
||||
cbVariants.addItem(GameType.Commander);
|
||||
cbVariants.addItem(GameType.TinyLeaders);
|
||||
cbVariants.addItem(GameType.Brawl);
|
||||
cbVariants.addItem(GameType.Planechase);
|
||||
cbVariants.addItem(GameType.Archenemy);
|
||||
cbVariants.addItem(GameType.ArchenemyRumble);
|
||||
@@ -154,13 +155,13 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
FThreads.invokeInBackgroundThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
playerPanels.get(0).initialize(FPref.CONSTRUCTED_P1_DECK_STATE, FPref.COMMANDER_P1_DECK_STATE, FPref.TINY_LEADER_P1_DECK_STATE, DeckType.PRECONSTRUCTED_DECK);
|
||||
playerPanels.get(1).initialize(FPref.CONSTRUCTED_P2_DECK_STATE, FPref.COMMANDER_P2_DECK_STATE, FPref.TINY_LEADER_P2_DECK_STATE, DeckType.COLOR_DECK);
|
||||
playerPanels.get(0).initialize(FPref.CONSTRUCTED_P1_DECK_STATE, FPref.COMMANDER_P1_DECK_STATE, FPref.TINY_LEADER_P1_DECK_STATE, FPref.BRAWL_P1_DECK_STATE, DeckType.PRECONSTRUCTED_DECK);
|
||||
playerPanels.get(1).initialize(FPref.CONSTRUCTED_P2_DECK_STATE, FPref.COMMANDER_P2_DECK_STATE, FPref.TINY_LEADER_P2_DECK_STATE, FPref.BRAWL_P2_DECK_STATE, DeckType.COLOR_DECK);
|
||||
if(getNumPlayers()>2) {
|
||||
playerPanels.get(2).initialize(FPref.CONSTRUCTED_P3_DECK_STATE, FPref.COMMANDER_P3_DECK_STATE, FPref.TINY_LEADER_P3_DECK_STATE, DeckType.COLOR_DECK);
|
||||
playerPanels.get(2).initialize(FPref.CONSTRUCTED_P3_DECK_STATE, FPref.COMMANDER_P3_DECK_STATE, FPref.TINY_LEADER_P3_DECK_STATE, FPref.BRAWL_P3_DECK_STATE, DeckType.COLOR_DECK);
|
||||
}
|
||||
if(getNumPlayers()>3) {
|
||||
playerPanels.get(3).initialize(FPref.CONSTRUCTED_P4_DECK_STATE, FPref.COMMANDER_P4_DECK_STATE, FPref.TINY_LEADER_P4_DECK_STATE, DeckType.COLOR_DECK);
|
||||
playerPanels.get(3).initialize(FPref.CONSTRUCTED_P4_DECK_STATE, FPref.COMMANDER_P4_DECK_STATE, FPref.TINY_LEADER_P4_DECK_STATE, FPref.BRAWL_P4_DECK_STATE, DeckType.COLOR_DECK);
|
||||
}
|
||||
/*playerPanels.get(4).initialize(FPref.CONSTRUCTED_P5_DECK_STATE, DeckType.COLOR_DECK);
|
||||
playerPanels.get(5).initialize(FPref.CONSTRUCTED_P6_DECK_STATE, DeckType.COLOR_DECK);
|
||||
@@ -346,6 +347,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
lstVariants.addItem(new Variant(GameType.MomirBasic));
|
||||
lstVariants.addItem(new Variant(GameType.Commander));
|
||||
lstVariants.addItem(new Variant(GameType.TinyLeaders));
|
||||
lstVariants.addItem(new Variant(GameType.Brawl));
|
||||
lstVariants.addItem(new Variant(GameType.Planechase));
|
||||
lstVariants.addItem(new Variant(GameType.Archenemy));
|
||||
lstVariants.addItem(new Variant(GameType.ArchenemyRumble));
|
||||
@@ -479,10 +481,10 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
else {
|
||||
panel = new PlayerPanel(this, allowNetworking, i, slot, lobby.mayEdit(i), lobby.hasControl());
|
||||
if(i==2) {
|
||||
panel.initialize(FPref.CONSTRUCTED_P3_DECK_STATE, FPref.COMMANDER_P3_DECK_STATE, FPref.TINY_LEADER_P3_DECK_STATE, DeckType.COLOR_DECK);
|
||||
panel.initialize(FPref.CONSTRUCTED_P3_DECK_STATE, FPref.COMMANDER_P3_DECK_STATE, FPref.TINY_LEADER_P3_DECK_STATE, FPref.BRAWL_P3_DECK_STATE, DeckType.COLOR_DECK);
|
||||
}
|
||||
if(i==3) {
|
||||
panel.initialize(FPref.CONSTRUCTED_P4_DECK_STATE, FPref.COMMANDER_P4_DECK_STATE, FPref.TINY_LEADER_P4_DECK_STATE, DeckType.COLOR_DECK);
|
||||
panel.initialize(FPref.CONSTRUCTED_P4_DECK_STATE, FPref.COMMANDER_P4_DECK_STATE, FPref.TINY_LEADER_P4_DECK_STATE, FPref.BRAWL_P4_DECK_STATE, DeckType.COLOR_DECK);
|
||||
}
|
||||
playerPanels.add(panel);
|
||||
playersScroll.add(panel);
|
||||
@@ -534,7 +536,10 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
||||
deck = playerPanel.getTinyLeadersDeck();
|
||||
playerPanel.getTinyLeadersDeckChooser().saveState();
|
||||
}
|
||||
else {
|
||||
else if (hasVariant(GameType.Brawl)) {
|
||||
deck = playerPanel.getBrawlDeck();
|
||||
playerPanel.getBrawlDeckChooser().saveState();
|
||||
}else {
|
||||
deck = playerPanel.getDeck();
|
||||
playerPanel.getDeckChooser().saveState();
|
||||
}
|
||||
|
||||
@@ -71,10 +71,11 @@ public class PlayerPanel extends FContainer {
|
||||
private final FLabel btnSchemeDeck = new FLabel.ButtonBuilder().text("Scheme Deck: Random Generated Deck").build();
|
||||
private final FLabel btnCommanderDeck = new FLabel.ButtonBuilder().text("Commander Deck: Random Generated Deck").build();
|
||||
private final FLabel btnTinyLeadersDeck = new FLabel.ButtonBuilder().text("Tiny Leaders Deck: Random Generated Deck").build();
|
||||
private final FLabel btnBrawlDeck = new FLabel.ButtonBuilder().text("Brawl Deck: Random Generated Deck").build();
|
||||
private final FLabel btnPlanarDeck = new FLabel.ButtonBuilder().text("Planar Deck: Random Generated Deck").build();
|
||||
private final FLabel btnVanguardAvatar = new FLabel.ButtonBuilder().text("Vanguard Avatar: Random").build();
|
||||
|
||||
private final FDeckChooser deckChooser, lstSchemeDecks, lstCommanderDecks, lstTinyLeadersDecks, lstPlanarDecks;
|
||||
private final FDeckChooser deckChooser, lstSchemeDecks, lstCommanderDecks, lstTinyLeadersDecks, lstBrawlDecks, lstPlanarDecks;
|
||||
private final FVanguardChooser lstVanguardAvatars;
|
||||
|
||||
public PlayerPanel(final LobbyScreen screen0, final boolean allowNetworking0, final int index0, final LobbySlot slot, final boolean mayEdit0, final boolean mayControl0) {
|
||||
@@ -128,6 +129,17 @@ public class PlayerPanel extends FContainer {
|
||||
}
|
||||
}
|
||||
});
|
||||
lstBrawlDecks = new FDeckChooser(GameType.Brawl, isAi, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||
btnTinyLeadersDeck.setText("Brawl Deck: " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||
lstTinyLeadersDecks.saveState();
|
||||
}else{
|
||||
btnTinyLeadersDeck.setText("Brawl Deck");
|
||||
}
|
||||
}
|
||||
});
|
||||
lstSchemeDecks = new FDeckChooser(GameType.Archenemy, isAi, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
@@ -235,10 +247,11 @@ public class PlayerPanel extends FContainer {
|
||||
cbTeam.setEnabled(true);
|
||||
}
|
||||
|
||||
public void initialize(FPref savedStateSetting, FPref savedStateSettingCommander, FPref savedStateSettingTinyLeader, DeckType defaultDeckType) {
|
||||
public void initialize(FPref savedStateSetting, FPref savedStateSettingCommander, FPref savedStateSettingTinyLeader, FPref savedStateSettingBrawl, DeckType defaultDeckType) {
|
||||
deckChooser.initialize(savedStateSetting, defaultDeckType);
|
||||
lstCommanderDecks.initialize(savedStateSettingCommander, DeckType.COMMANDER_DECK);
|
||||
lstTinyLeadersDecks.initialize(savedStateSettingTinyLeader, DeckType.TINY_LEADERS_DECKS);
|
||||
lstBrawlDecks.initialize(savedStateSettingBrawl, DeckType.BRAWL_DECKS);
|
||||
lstPlanarDecks.initialize(null, DeckType.RANDOM_DECK);
|
||||
lstSchemeDecks.initialize(null, DeckType.RANDOM_DECK);
|
||||
}
|
||||
@@ -404,6 +417,7 @@ public class PlayerPanel extends FContainer {
|
||||
public void updateVariantControlsVisibility() {
|
||||
boolean isCommanderApplied = false;
|
||||
boolean isTinyLeadersApplied = false;
|
||||
boolean isBrawlApplied = false;
|
||||
boolean isPlanechaseApplied = false;
|
||||
boolean isVanguardApplied = false;
|
||||
boolean isArchenemyApplied = false;
|
||||
@@ -429,6 +443,10 @@ public class PlayerPanel extends FContainer {
|
||||
isTinyLeadersApplied = true;
|
||||
isDeckBuildingAllowed = false; //Tiny Leaders deck replaces basic deck, so hide that
|
||||
break;
|
||||
case Brawl:
|
||||
isBrawlApplied = true;
|
||||
isDeckBuildingAllowed = false; //Tiny Leaders deck replaces basic deck, so hide that
|
||||
break;
|
||||
case Planechase:
|
||||
isPlanechaseApplied = true;
|
||||
break;
|
||||
@@ -693,6 +711,10 @@ public class PlayerPanel extends FContainer {
|
||||
return lstTinyLeadersDecks;
|
||||
}
|
||||
|
||||
public FDeckChooser getBrawlDeckChooser() {
|
||||
return lstBrawlDecks;
|
||||
}
|
||||
|
||||
|
||||
public Deck getDeck() {
|
||||
return deckChooser.getDeck();
|
||||
@@ -706,6 +728,10 @@ public class PlayerPanel extends FContainer {
|
||||
return lstTinyLeadersDecks.getDeck();
|
||||
}
|
||||
|
||||
public Deck getBrawlDeck() {
|
||||
return lstBrawlDecks.getDeck();
|
||||
}
|
||||
|
||||
public Deck getSchemeDeck() {
|
||||
return lstSchemeDecks.getDeck();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user