mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
Support playing against Net Decks through the Test Deck function
on mobile Forge.
This commit is contained in:
@@ -79,7 +79,7 @@ public enum CSubmenuGauntletQuick implements ICDoc {
|
|||||||
if (view.getBoxQuestDecks().isSelected()) { allowedDeckTypes.add(DeckType.QUEST_OPPONENT_DECK); }
|
if (view.getBoxQuestDecks().isSelected()) { allowedDeckTypes.add(DeckType.QUEST_OPPONENT_DECK); }
|
||||||
if (view.getBoxPreconDecks().isSelected()) { allowedDeckTypes.add(DeckType.PRECONSTRUCTED_DECK); }
|
if (view.getBoxPreconDecks().isSelected()) { allowedDeckTypes.add(DeckType.PRECONSTRUCTED_DECK); }
|
||||||
|
|
||||||
final GauntletData gd = GauntletUtil.createQuickGauntlet(view.getLstDecks().getPlayer().getDeck(), view.getSliOpponents().getValue(), allowedDeckTypes);
|
final GauntletData gd = GauntletUtil.createQuickGauntlet(view.getLstDecks().getPlayer().getDeck(), view.getSliOpponents().getValue(), allowedDeckTypes, null);
|
||||||
|
|
||||||
final List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
|
final List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
|
||||||
final RegisteredPlayer human = new RegisteredPlayer(gd.getUserDeck()).setPlayer(GamePlayerUtil.getGuiPlayer());
|
final RegisteredPlayer human = new RegisteredPlayer(gd.getUserDeck()).setPlayer(GamePlayerUtil.getGuiPlayer());
|
||||||
|
|||||||
@@ -971,9 +971,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
@Override
|
@Override
|
||||||
public void run(final Integer numOpponents) {
|
public void run(final Integer numOpponents) {
|
||||||
if (numOpponents == null) { return; }
|
if (numOpponents == null) { return; }
|
||||||
List<DeckType> deckTypes=null;
|
List<DeckType> deckTypes = Arrays.asList(
|
||||||
if(FModel.isdeckGenMatrixLoaded()) {
|
|
||||||
deckTypes=Arrays.asList(new DeckType[] {
|
|
||||||
DeckType.CUSTOM_DECK,
|
DeckType.CUSTOM_DECK,
|
||||||
DeckType.PRECONSTRUCTED_DECK,
|
DeckType.PRECONSTRUCTED_DECK,
|
||||||
DeckType.QUEST_OPPONENT_DECK,
|
DeckType.QUEST_OPPONENT_DECK,
|
||||||
@@ -982,29 +980,37 @@ public class FDeckChooser extends FScreen {
|
|||||||
DeckType.STANDARD_CARDGEN_DECK,
|
DeckType.STANDARD_CARDGEN_DECK,
|
||||||
DeckType.MODERN_COLOR_DECK,
|
DeckType.MODERN_COLOR_DECK,
|
||||||
DeckType.MODERN_CARDGEN_DECK,
|
DeckType.MODERN_CARDGEN_DECK,
|
||||||
DeckType.THEME_DECK
|
DeckType.THEME_DECK,
|
||||||
});
|
DeckType.NET_DECK
|
||||||
}else{
|
);
|
||||||
deckTypes=Arrays.asList(new DeckType[] {
|
if (!FModel.isdeckGenMatrixLoaded()) {
|
||||||
DeckType.CUSTOM_DECK,
|
deckTypes.remove(DeckType.STANDARD_CARDGEN_DECK);
|
||||||
DeckType.PRECONSTRUCTED_DECK,
|
deckTypes.remove(DeckType.MODERN_CARDGEN_DECK);
|
||||||
DeckType.QUEST_OPPONENT_DECK,
|
|
||||||
DeckType.COLOR_DECK,
|
|
||||||
DeckType.STANDARD_COLOR_DECK,
|
|
||||||
DeckType.MODERN_COLOR_DECK,
|
|
||||||
DeckType.THEME_DECK
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ListChooser<DeckType> chooser = new ListChooser<DeckType>(
|
ListChooser<DeckType> chooser = new ListChooser<DeckType>(
|
||||||
"Choose allowed deck types for opponents", 0, 7, deckTypes, null, new Callback<List<DeckType>>() {
|
"Choose allowed deck types for opponents", 0, deckTypes.size(), deckTypes, null, new Callback<List<DeckType>>() {
|
||||||
@Override
|
@Override
|
||||||
public void run(final List<DeckType> allowedDeckTypes) {
|
public void run(final List<DeckType> allowedDeckTypes) {
|
||||||
if (allowedDeckTypes == null || allowedDeckTypes.isEmpty()) { return; }
|
if (allowedDeckTypes == null || allowedDeckTypes.isEmpty()) { return; }
|
||||||
|
|
||||||
|
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
final NetDeckCategory netCat;
|
||||||
|
if (allowedDeckTypes.contains(DeckType.NET_DECK)) {
|
||||||
|
netCat = NetDeckCategory.selectAndLoad(GameType.Constructed);
|
||||||
|
} else {
|
||||||
|
netCat = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
FThreads.invokeInEdtLater(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
LoadingOverlay.show("Loading new game...", new Runnable() {
|
LoadingOverlay.show("Loading new game...", new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
GauntletData gauntlet = GauntletUtil.createQuickGauntlet(userDeck, numOpponents, allowedDeckTypes);
|
GauntletData gauntlet = GauntletUtil.createQuickGauntlet(userDeck, numOpponents, allowedDeckTypes, netCat);
|
||||||
FModel.setGauntletData(gauntlet);
|
FModel.setGauntletData(gauntlet);
|
||||||
|
|
||||||
List<RegisteredPlayer> players = new ArrayList<RegisteredPlayer>();
|
List<RegisteredPlayer> players = new ArrayList<RegisteredPlayer>();
|
||||||
@@ -1017,6 +1023,10 @@ public class FDeckChooser extends FScreen {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
chooser.show(null, true);
|
chooser.show(null, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class NewGauntletScreen extends LaunchScreen {
|
|||||||
public void run(Deck userDeck) {
|
public void run(Deck userDeck) {
|
||||||
if (userDeck == null) { return; }
|
if (userDeck == null) { return; }
|
||||||
|
|
||||||
GauntletData gauntlet = GauntletUtil.createQuickGauntlet(userDeck, numOpponents, allowedDeckTypes);
|
GauntletData gauntlet = GauntletUtil.createQuickGauntlet(userDeck, numOpponents, allowedDeckTypes, null);
|
||||||
launchGauntlet(gauntlet);
|
launchGauntlet(gauntlet);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
package forge.gauntlet;
|
package forge.gauntlet;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.DeckType;
|
import forge.deck.DeckType;
|
||||||
import forge.deck.DeckgenUtil;
|
import forge.deck.DeckgenUtil;
|
||||||
|
import forge.deck.NetDeckCategory;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
|
|
||||||
public class GauntletUtil {
|
public class GauntletUtil {
|
||||||
public static GauntletData createQuickGauntlet(final Deck userDeck, final int numOpponents, final List<DeckType> allowedDeckTypes) {
|
public static GauntletData createQuickGauntlet(final Deck userDeck, final int numOpponents, final List<DeckType> allowedDeckTypes, NetDeckCategory netDecks) {
|
||||||
GauntletData gauntlet = new GauntletData();
|
GauntletData gauntlet = new GauntletData();
|
||||||
setDefaultGauntletName(gauntlet, GauntletIO.PREFIX_QUICK);
|
setDefaultGauntletName(gauntlet, GauntletIO.PREFIX_QUICK);
|
||||||
FModel.setGauntletData(gauntlet);
|
FModel.setGauntletData(gauntlet);
|
||||||
@@ -22,6 +20,8 @@ public class GauntletUtil {
|
|||||||
final List<String> eventNames = new ArrayList<String>();
|
final List<String> eventNames = new ArrayList<String>();
|
||||||
final List<Deck> decks = new ArrayList<Deck>();
|
final List<Deck> decks = new ArrayList<Deck>();
|
||||||
|
|
||||||
|
final Object[] netDeckNames = netDecks != null ? netDecks.getItemNames().toArray() : null;
|
||||||
|
|
||||||
for (int i = 0; i < numOpponents; i++) {
|
for (int i = 0; i < numOpponents; i++) {
|
||||||
int randType = (int)Math.floor(Math.random() * allowedDeckTypes.size());
|
int randType = (int)Math.floor(Math.random() * allowedDeckTypes.size());
|
||||||
switch (allowedDeckTypes.get(randType)) {
|
switch (allowedDeckTypes.get(randType)) {
|
||||||
@@ -57,6 +57,11 @@ public class GauntletUtil {
|
|||||||
deck = DeckgenUtil.getRandomThemeDeck();
|
deck = DeckgenUtil.getRandomThemeDeck();
|
||||||
eventNames.add(deck.getName());
|
eventNames.add(deck.getName());
|
||||||
break;
|
break;
|
||||||
|
case NET_DECK:
|
||||||
|
int deckIndex = (int)Math.floor(Math.random() * netDeckNames.length);
|
||||||
|
deck = netDecks.get((String) netDeckNames[deckIndex]);
|
||||||
|
eventNames.add(deck.getName());
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user