mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Merge branch 'newBranch' into 'master'
Improve Online Lobby (Mobile Port) Closes #659, #658, #172, and #914 See merge request core-developers/forge!2738
This commit is contained in:
@@ -71,7 +71,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
private int turn = 0;
|
private int turn = 0;
|
||||||
|
|
||||||
private final transient Stack<ExtraTurn> extraTurns = new Stack<>();
|
private final transient Stack<ExtraTurn> extraTurns = new Stack<>();
|
||||||
private final transient Map<PhaseType, Stack<PhaseType>> extraPhases = Maps.newEnumMap(PhaseType.class);
|
private final transient Map<PhaseType, Deque<PhaseType>> DextraPhases = Maps.newEnumMap(PhaseType.class);
|
||||||
|
|
||||||
private int nUpkeepsThisTurn = 0;
|
private int nUpkeepsThisTurn = 0;
|
||||||
private int nUpkeepsThisGame = 0;
|
private int nUpkeepsThisGame = 0;
|
||||||
@@ -151,12 +151,12 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
else {
|
else {
|
||||||
// If the phase that's ending has a stack of additional phases
|
// If the phase that's ending has a stack of additional phases
|
||||||
// Take the LIFO one and move to that instead of the normal one
|
// Take the LIFO one and move to that instead of the normal one
|
||||||
if (extraPhases.containsKey(phase)) {
|
if (DextraPhases.containsKey(phase)) {
|
||||||
PhaseType nextPhase = extraPhases.get(phase).pop();
|
PhaseType nextPhase = DextraPhases.get(phase).removeFirst();
|
||||||
// If no more additional phases are available, remove it from the map
|
// If no more additional phases are available, remove it from the map
|
||||||
// and let the next add, reput the key
|
// and let the next add, reput the key
|
||||||
if (extraPhases.get(phase).isEmpty()) {
|
if (DextraPhases.get(phase).isEmpty()) {
|
||||||
extraPhases.remove(phase);
|
DextraPhases.remove(phase);
|
||||||
}
|
}
|
||||||
setPhase(nextPhase);
|
setPhase(nextPhase);
|
||||||
}
|
}
|
||||||
@@ -918,10 +918,10 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
public final void addExtraPhase(final PhaseType afterPhase, final PhaseType extraPhase) {
|
public final void addExtraPhase(final PhaseType afterPhase, final PhaseType extraPhase) {
|
||||||
// 500.8. Some effects can add phases to a turn. They do this by adding the phases directly after the specified phase.
|
// 500.8. Some effects can add phases to a turn. They do this by adding the phases directly after the specified phase.
|
||||||
// If multiple extra phases are created after the same phase, the most recently created phase will occur first.
|
// If multiple extra phases are created after the same phase, the most recently created phase will occur first.
|
||||||
if (!extraPhases.containsKey(afterPhase)) {
|
if (!DextraPhases.containsKey(afterPhase)) {
|
||||||
extraPhases.put(afterPhase, new Stack<>());
|
DextraPhases.put(afterPhase, new ArrayDeque<>());
|
||||||
}
|
}
|
||||||
extraPhases.get(afterPhase).push(extraPhase);
|
DextraPhases.get(afterPhase).addFirst(extraPhase);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean isFirstCombat() {
|
public final boolean isFirstCombat() {
|
||||||
@@ -1159,7 +1159,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
|
|
||||||
public final void endTurnByEffect() {
|
public final void endTurnByEffect() {
|
||||||
endCombat();
|
endCombat();
|
||||||
extraPhases.clear();
|
DextraPhases.clear();
|
||||||
setPhase(PhaseType.CLEANUP);
|
setPhase(PhaseType.CLEANUP);
|
||||||
onPhaseBegin();
|
onPhaseBegin();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,8 +135,8 @@ public class RegisteredPlayer {
|
|||||||
start.planes = planes;
|
start.planes = planes;
|
||||||
}
|
}
|
||||||
if (appliedVariants.contains(GameType.Vanguard) || appliedVariants.contains(GameType.MomirBasic)
|
if (appliedVariants.contains(GameType.Vanguard) || appliedVariants.contains(GameType.MomirBasic)
|
||||||
|| appliedVariants.contains(GameType.MoJhoSto)) {
|
|| appliedVariants.contains(GameType.MoJhoSto)) { //fix the crash, if somehow the avatar is null, get it directly from the deck
|
||||||
start.setVanguardAvatars(vanguardAvatar.toFlatList());
|
start.setVanguardAvatars(vanguardAvatar == null ? deck.get(DeckSection.Avatar).toFlatList():vanguardAvatar.toFlatList());
|
||||||
}
|
}
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,9 +38,10 @@ import forge.util.Utils;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileFilter;
|
import java.io.FileFilter;
|
||||||
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Deque;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Stack;
|
|
||||||
|
|
||||||
public class Forge implements ApplicationListener {
|
public class Forge implements ApplicationListener {
|
||||||
public static final String CURRENT_VERSION = "1.6.33.001";
|
public static final String CURRENT_VERSION = "1.6.33.001";
|
||||||
@@ -57,7 +58,7 @@ public class Forge implements ApplicationListener {
|
|||||||
private static KeyInputAdapter keyInputAdapter;
|
private static KeyInputAdapter keyInputAdapter;
|
||||||
private static boolean exited;
|
private static boolean exited;
|
||||||
private static int continuousRenderingCount = 1; //initialize to 1 since continuous rendering is the default
|
private static int continuousRenderingCount = 1; //initialize to 1 since continuous rendering is the default
|
||||||
private static final Stack<FScreen> screens = new Stack<>();
|
private static final Deque<FScreen> Dscreens = new ArrayDeque<>();
|
||||||
private static boolean textureFiltering = false;
|
private static boolean textureFiltering = false;
|
||||||
private static boolean destroyThis = false;
|
private static boolean destroyThis = false;
|
||||||
public static String extrawide = "default";
|
public static String extrawide = "default";
|
||||||
@@ -259,13 +260,13 @@ public class Forge implements ApplicationListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean onHomeScreen() {
|
public static boolean onHomeScreen() {
|
||||||
return screens.size() == 1;
|
return Dscreens.size() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void back() {
|
public static void back() {
|
||||||
if(destroyThis && isLandscapeMode())
|
if(destroyThis && isLandscapeMode())
|
||||||
return;
|
return;
|
||||||
if (screens.size() < 2) {
|
if (Dscreens.size() < 2) {
|
||||||
exit(false); //prompt to exit if attempting to go back from home screen
|
exit(false); //prompt to exit if attempting to go back from home screen
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -273,8 +274,8 @@ public class Forge implements ApplicationListener {
|
|||||||
@Override
|
@Override
|
||||||
public void run(Boolean result) {
|
public void run(Boolean result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
screens.pop();
|
Dscreens.removeFirst();
|
||||||
setCurrentScreen(screens.lastElement());
|
setCurrentScreen(Dscreens.getFirst());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -282,12 +283,12 @@ public class Forge implements ApplicationListener {
|
|||||||
|
|
||||||
//set screen that will be gone to on pressing Back before going to current Back screen
|
//set screen that will be gone to on pressing Back before going to current Back screen
|
||||||
public static void setBackScreen(final FScreen screen0, boolean replace) {
|
public static void setBackScreen(final FScreen screen0, boolean replace) {
|
||||||
screens.remove(screen0); //remove screen from previous position in navigation history
|
Dscreens.remove(screen0); //remove screen from previous position in navigation history
|
||||||
int index = screens.size() - 1;
|
int index = Dscreens.size() - 1;
|
||||||
if (index > 0) {
|
if (index > 0) {
|
||||||
screens.add(index, screen0);
|
Dscreens.addLast(screen0);
|
||||||
if (replace) { //remove previous back screen if replacing back screen
|
if (replace) { //remove previous back screen if replacing back screen
|
||||||
screens.remove(index - 1);
|
Dscreens.removeFirst();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -349,7 +350,7 @@ public class Forge implements ApplicationListener {
|
|||||||
if (currentScreen == screen0) { return; }
|
if (currentScreen == screen0) { return; }
|
||||||
|
|
||||||
if (currentScreen == null) {
|
if (currentScreen == null) {
|
||||||
screens.push(screen0);
|
Dscreens.addFirst(screen0);
|
||||||
setCurrentScreen(screen0);
|
setCurrentScreen(screen0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -358,11 +359,11 @@ public class Forge implements ApplicationListener {
|
|||||||
@Override
|
@Override
|
||||||
public void run(Boolean result) {
|
public void run(Boolean result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
if (replaceBackScreen && !screens.isEmpty()) {
|
if (replaceBackScreen && !Dscreens.isEmpty()) {
|
||||||
screens.pop();
|
Dscreens.removeFirst();
|
||||||
}
|
}
|
||||||
if (screens.peek() != screen0) { //prevent screen being its own back screen
|
if (Dscreens.peekFirst() != screen0) { //prevent screen being its own back screen
|
||||||
screens.push(screen0);
|
Dscreens.addFirst(screen0);
|
||||||
}
|
}
|
||||||
setCurrentScreen(screen0);
|
setCurrentScreen(screen0);
|
||||||
}
|
}
|
||||||
@@ -505,7 +506,7 @@ public class Forge implements ApplicationListener {
|
|||||||
currentScreen.onClose(null);
|
currentScreen.onClose(null);
|
||||||
currentScreen = null;
|
currentScreen = null;
|
||||||
}
|
}
|
||||||
screens.clear();
|
Dscreens.clear();
|
||||||
graphics.dispose();
|
graphics.dispose();
|
||||||
SoundSystem.instance.dispose();
|
SoundSystem.instance.dispose();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ import forge.assets.FSkinFont;
|
|||||||
import forge.toolbox.FDisplayObject;
|
import forge.toolbox.FDisplayObject;
|
||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
import forge.util.TextBounds;
|
import forge.util.TextBounds;
|
||||||
import java.util.Stack;
|
|
||||||
|
import java.util.ArrayDeque;
|
||||||
|
import java.util.Deque;
|
||||||
|
|
||||||
public class Graphics {
|
public class Graphics {
|
||||||
private static final int GL_BLEND = GL20.GL_BLEND;
|
private static final int GL_BLEND = GL20.GL_BLEND;
|
||||||
@@ -27,13 +29,14 @@ public class Graphics {
|
|||||||
|
|
||||||
private final SpriteBatch batch = new SpriteBatch();
|
private final SpriteBatch batch = new SpriteBatch();
|
||||||
private final ShapeRenderer shapeRenderer = new ShapeRenderer();
|
private final ShapeRenderer shapeRenderer = new ShapeRenderer();
|
||||||
private final Stack<Matrix4> transforms = new Stack<>();
|
private final Deque<Matrix4> Dtransforms = new ArrayDeque<>();
|
||||||
private final Vector3 tmp = new Vector3();
|
private final Vector3 tmp = new Vector3();
|
||||||
private float regionHeight;
|
private float regionHeight;
|
||||||
private Rectangle bounds;
|
private Rectangle bounds;
|
||||||
private Rectangle visibleBounds;
|
private Rectangle visibleBounds;
|
||||||
private int failedClipCount;
|
private int failedClipCount;
|
||||||
private float alphaComposite = 1;
|
private float alphaComposite = 1;
|
||||||
|
private int transformCount = 0;
|
||||||
|
|
||||||
public Graphics() {
|
public Graphics() {
|
||||||
}
|
}
|
||||||
@@ -70,7 +73,7 @@ public class Graphics {
|
|||||||
batch.flush(); //must flush batch to prevent other things not rendering
|
batch.flush(); //must flush batch to prevent other things not rendering
|
||||||
|
|
||||||
Rectangle clip = new Rectangle(adjustX(x), adjustY(y, h), w, h);
|
Rectangle clip = new Rectangle(adjustX(x), adjustY(y, h), w, h);
|
||||||
if (!transforms.isEmpty()) { //transform position if needed
|
if (!Dtransforms.isEmpty()) { //transform position if needed
|
||||||
tmp.set(clip.x, clip.y, 0);
|
tmp.set(clip.x, clip.y, 0);
|
||||||
tmp.mul(batch.getTransformMatrix());
|
tmp.mul(batch.getTransformMatrix());
|
||||||
float minX = tmp.x;
|
float minX = tmp.x;
|
||||||
@@ -121,7 +124,7 @@ public class Graphics {
|
|||||||
|
|
||||||
final Rectangle parentBounds = bounds;
|
final Rectangle parentBounds = bounds;
|
||||||
bounds = new Rectangle(parentBounds.x + displayObj.getLeft(), parentBounds.y + displayObj.getTop(), displayObj.getWidth(), displayObj.getHeight());
|
bounds = new Rectangle(parentBounds.x + displayObj.getLeft(), parentBounds.y + displayObj.getTop(), displayObj.getWidth(), displayObj.getHeight());
|
||||||
if (!transforms.isEmpty()) { //transform screen position if needed by applying transform matrix to rectangle
|
if (!Dtransforms.isEmpty()) { //transform screen position if needed by applying transform matrix to rectangle
|
||||||
updateScreenPosForRotation(displayObj);
|
updateScreenPosForRotation(displayObj);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -542,7 +545,7 @@ public class Graphics {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void startShape(ShapeType shapeType) {
|
private void startShape(ShapeType shapeType) {
|
||||||
if (!transforms.isEmpty()) {
|
if (!Dtransforms.isEmpty()) {
|
||||||
//must copy matrix before starting shape if transformed
|
//must copy matrix before starting shape if transformed
|
||||||
shapeRenderer.setTransformMatrix(batch.getTransformMatrix());
|
shapeRenderer.setTransformMatrix(batch.getTransformMatrix());
|
||||||
}
|
}
|
||||||
@@ -624,7 +627,8 @@ public class Graphics {
|
|||||||
|
|
||||||
public void startRotateTransform(float originX, float originY, float rotation) {
|
public void startRotateTransform(float originX, float originY, float rotation) {
|
||||||
batch.end();
|
batch.end();
|
||||||
transforms.add(0, new Matrix4(batch.getTransformMatrix().idt())); //startshape is using this above as reference
|
Dtransforms.addFirst(new Matrix4(batch.getTransformMatrix().idt())); //startshape is using this above as reference
|
||||||
|
transformCount++;
|
||||||
batch.getTransformMatrix().idt().translate(adjustX(originX), adjustY(originY, 0), 0).rotate(Vector3.Z, rotation).translate(-adjustX(originX), -adjustY(originY, 0), 0);
|
batch.getTransformMatrix().idt().translate(adjustX(originX), adjustY(originY, 0), 0).rotate(Vector3.Z, rotation).translate(-adjustX(originX), -adjustY(originY, 0), 0);
|
||||||
batch.begin();
|
batch.begin();
|
||||||
}
|
}
|
||||||
@@ -632,7 +636,13 @@ public class Graphics {
|
|||||||
public void endTransform() {
|
public void endTransform() {
|
||||||
batch.end();
|
batch.end();
|
||||||
shapeRenderer.setTransformMatrix(batch.getTransformMatrix().idt());
|
shapeRenderer.setTransformMatrix(batch.getTransformMatrix().idt());
|
||||||
transforms.pop();
|
Dtransforms.removeFirst();
|
||||||
|
transformCount--;
|
||||||
|
if(transformCount != Dtransforms.size()) {
|
||||||
|
System.err.println(String.format("Stack count: %d, transformCount: %d", Dtransforms.size(), transformCount));
|
||||||
|
transformCount = 0;
|
||||||
|
Dtransforms.clear();
|
||||||
|
}
|
||||||
batch.getTransformMatrix().idt(); //reset
|
batch.getTransformMatrix().idt(); //reset
|
||||||
shapeRenderer.getTransformMatrix().idt(); //reset
|
shapeRenderer.getTransformMatrix().idt(); //reset
|
||||||
batch.begin();
|
batch.begin();
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import forge.toolbox.FOptionPane;
|
|||||||
import forge.util.Utils;
|
import forge.util.Utils;
|
||||||
|
|
||||||
public abstract class LaunchScreen extends FScreen {
|
public abstract class LaunchScreen extends FScreen {
|
||||||
private static final float MAX_START_BUTTON_HEIGHT = 2 * Utils.AVG_FINGER_HEIGHT;
|
private static final float MAX_START_BUTTON_HEIGHT = 1.75f * Utils.AVG_FINGER_HEIGHT;
|
||||||
private float START_BUTTON_RATIO = 0.f;
|
private float START_BUTTON_RATIO = 0.f;
|
||||||
private static final float PADDING = FOptionPane.PADDING;
|
private static final float PADDING = FOptionPane.PADDING;
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import forge.deck.FDeckChooser;
|
|||||||
import forge.net.server.FServerManager;
|
import forge.net.server.FServerManager;
|
||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
|
|
||||||
|
import forge.util.MyRandom;
|
||||||
|
import forge.util.TextUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
@@ -281,7 +283,10 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
@Override
|
@Override
|
||||||
protected void startMatch() {
|
protected void startMatch() {
|
||||||
for (int i = 0; i < getNumPlayers(); i++) {
|
for (int i = 0; i < getNumPlayers(); i++) {
|
||||||
updateDeck(i);//TODO: Investigate why AI names cannot be overriden?
|
if(!lobby.isAllowNetworking()) //on networkplay, update deck will be handled differently
|
||||||
|
updateDeck(i);
|
||||||
|
|
||||||
|
//TODO: Investigate why AI names cannot be overriden?
|
||||||
updateName(i, getPlayerName(i));
|
updateName(i, getPlayerName(i));
|
||||||
}
|
}
|
||||||
FThreads.invokeInBackgroundThread(new Runnable() { //must call startGame in background thread in case there are alerts
|
FThreads.invokeInBackgroundThread(new Runnable() { //must call startGame in background thread in case there are alerts
|
||||||
@@ -326,6 +331,15 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
String[] avatarPrefs = prefs.getPref(FPref.UI_AVATARS).split(",");
|
String[] avatarPrefs = prefs.getPref(FPref.UI_AVATARS).split(",");
|
||||||
for (int i = 0; i < avatarPrefs.length; i++) {
|
for (int i = 0; i < avatarPrefs.length; i++) {
|
||||||
int avatarIndex = Integer.parseInt(avatarPrefs[i]);
|
int avatarIndex = Integer.parseInt(avatarPrefs[i]);
|
||||||
|
if (avatarIndex < 0) {
|
||||||
|
int random = 0;
|
||||||
|
List<Integer> usedAvatars = getUsedAvatars();
|
||||||
|
do {
|
||||||
|
random = MyRandom.getRandom().nextInt(GuiBase.getInterface().getAvatarCount());
|
||||||
|
} while (usedAvatars.contains(random));
|
||||||
|
|
||||||
|
avatarIndex = random;
|
||||||
|
}
|
||||||
playerPanels.get(i).setAvatarIndex(avatarIndex);
|
playerPanels.get(i).setAvatarIndex(avatarIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,6 +347,15 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
String[] sleevePrefs = prefs.getPref(FPref.UI_SLEEVES).split(",");
|
String[] sleevePrefs = prefs.getPref(FPref.UI_SLEEVES).split(",");
|
||||||
for (int i = 0; i < sleevePrefs.length; i++) {
|
for (int i = 0; i < sleevePrefs.length; i++) {
|
||||||
int sleeveIndex = Integer.parseInt(sleevePrefs[i]);
|
int sleeveIndex = Integer.parseInt(sleevePrefs[i]);
|
||||||
|
if (sleeveIndex < 0) {
|
||||||
|
int random = 0;
|
||||||
|
List<Integer> usedSleeves = getUsedSleeves();
|
||||||
|
do {
|
||||||
|
random = MyRandom.getRandom().nextInt(GuiBase.getInterface().getSleevesCount());
|
||||||
|
} while (usedSleeves.contains(random));
|
||||||
|
|
||||||
|
sleeveIndex = random;
|
||||||
|
}
|
||||||
playerPanels.get(i).setSleeveIndex(sleeveIndex);
|
playerPanels.get(i).setSleeveIndex(sleeveIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,7 +580,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
slot.setIsDevMode(prefs.getPrefBoolean(FPref.DEV_MODE_ENABLED));
|
slot.setIsDevMode(slot.isDevMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
final LobbySlotType type = slot.getType();
|
final LobbySlotType type = slot.getType();
|
||||||
@@ -582,8 +605,21 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
panel.setMayEdit(lobby.mayEdit(i));
|
panel.setMayEdit(lobby.mayEdit(i));
|
||||||
panel.setMayControl(lobby.mayControl(i));
|
panel.setMayControl(lobby.mayControl(i));
|
||||||
panel.setMayRemove(lobby.mayRemove(i));
|
panel.setMayRemove(lobby.mayRemove(i));
|
||||||
|
if(allowNetworking) {
|
||||||
|
if(slot.getDeckName() != null)
|
||||||
|
panel.setDeckSelectorButtonText(slot.getDeckName());
|
||||||
|
|
||||||
if (fullUpdate && (type == LobbySlotType.LOCAL || type == LobbySlotType.AI)) {
|
if(slot.getPlanarDeckName()!= null)
|
||||||
|
panel.setPlanarDeckName(slot.getPlanarDeckName());
|
||||||
|
|
||||||
|
if(slot.getSchemeDeckName()!= null)
|
||||||
|
panel.setSchemeDeckName(slot.getSchemeDeckName());
|
||||||
|
|
||||||
|
if(slot.getAvatarVanguard()!= null)
|
||||||
|
panel.setVanguarAvatarName(slot.getAvatarVanguard());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fullUpdate && (type == LobbySlotType.LOCAL || type == LobbySlotType.AI) && !allowNetworking) {
|
||||||
updateDeck(i);
|
updateDeck(i);
|
||||||
}
|
}
|
||||||
if (isNewPanel) {
|
if (isNewPanel) {
|
||||||
@@ -606,35 +642,46 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
if (playerIndex >= getNumPlayers()) { return; }
|
if (playerIndex >= getNumPlayers()) { return; }
|
||||||
|
|
||||||
PlayerPanel playerPanel = playerPanels.get(playerIndex);
|
PlayerPanel playerPanel = playerPanels.get(playerIndex);
|
||||||
|
String deckName = "";
|
||||||
|
|
||||||
Deck deck;
|
Deck deck;
|
||||||
if (hasVariant(GameType.Commander)) {
|
if (hasVariant(GameType.Commander)) {
|
||||||
deck = playerPanel.getCommanderDeck();
|
deck = playerPanel.getCommanderDeck();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
playerPanel.getCommanderDeckChooser().saveState();
|
playerPanel.getCommanderDeckChooser().saveState();
|
||||||
|
deckName = localizer.getMessage("lblCommanderDeck") + ": "
|
||||||
|
+ playerPanel.getCommanderDeckChooser().getDeck().getName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (hasVariant(GameType.Oathbreaker)) {
|
else if (hasVariant(GameType.Oathbreaker)) {
|
||||||
deck = playerPanel.getOathbreakerDeck();
|
deck = playerPanel.getOathbreakerDeck();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
playerPanel.getOathbreakerDeckChooser().saveState();
|
playerPanel.getOathbreakerDeckChooser().saveState();
|
||||||
|
deckName = localizer.getMessage("lblOathbreakerDeck") + ": "
|
||||||
|
+ playerPanel.getOathbreakerDeckChooser().getDeck().getName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (hasVariant(GameType.TinyLeaders)) {
|
else if (hasVariant(GameType.TinyLeaders)) {
|
||||||
deck = playerPanel.getTinyLeadersDeck();
|
deck = playerPanel.getTinyLeadersDeck();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
playerPanel.getTinyLeadersDeckChooser().saveState();
|
playerPanel.getTinyLeadersDeckChooser().saveState();
|
||||||
|
deckName = localizer.getMessage("lblTinyLeadersDeck") + ": "
|
||||||
|
+ playerPanel.getTinyLeadersDeckChooser().getDeck().getName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (hasVariant(GameType.Brawl)) {
|
else if (hasVariant(GameType.Brawl)) {
|
||||||
deck = playerPanel.getBrawlDeck();
|
deck = playerPanel.getBrawlDeck();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
playerPanel.getBrawlDeckChooser().saveState();
|
playerPanel.getBrawlDeckChooser().saveState();
|
||||||
|
deckName = localizer.getMessage("lblBrawlDeck") + ": "
|
||||||
|
+ playerPanel.getBrawlDeckChooser().getDeck().getName();
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
deck = playerPanel.getDeck();
|
deck = playerPanel.getDeck();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
playerPanel.getDeckChooser().saveState();
|
playerPanel.getDeckChooser().saveState();
|
||||||
|
deckName = playerPanel.getDeckChooser().getSelectedDeckType().toString() + ": "
|
||||||
|
+ playerPanel.getDeckChooser().getDeck().getName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -642,18 +689,31 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//playerPanel.setDeckSelectorButtonText(deckName);
|
||||||
|
|
||||||
Deck playerDeck = deck;
|
Deck playerDeck = deck;
|
||||||
|
String VanguardAvatar = null;
|
||||||
|
String SchemeDeckName= null;
|
||||||
|
String PlanarDeckname= null;
|
||||||
if (hasVariant(GameType.Archenemy) || hasVariant(GameType.ArchenemyRumble)) {
|
if (hasVariant(GameType.Archenemy) || hasVariant(GameType.ArchenemyRumble)) {
|
||||||
if (playerDeck == deck) {
|
if (playerDeck == deck) {
|
||||||
playerDeck = new Deck(deck); //create copy that can be modified
|
playerDeck = new Deck(deck); //create copy that can be modified
|
||||||
}
|
}
|
||||||
playerDeck.putSection(DeckSection.Schemes, playerPanel.getSchemeDeck().get(DeckSection.Schemes));
|
playerDeck.putSection(DeckSection.Schemes, playerPanel.getSchemeDeck().get(DeckSection.Schemes));
|
||||||
|
if (!playerPanel.getSchemeDeck().getName().isEmpty()) {
|
||||||
|
SchemeDeckName = localizer.getMessage("lblSchemeDeck") + ": " + playerPanel.getSchemeDeck().getName();
|
||||||
|
playerPanel.setSchemeDeckName(SchemeDeckName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (hasVariant(GameType.Planechase)) {
|
if (hasVariant(GameType.Planechase)) {
|
||||||
if (playerDeck == deck) {
|
if (playerDeck == deck) {
|
||||||
playerDeck = new Deck(deck); //create copy that can be modified
|
playerDeck = new Deck(deck); //create copy that can be modified
|
||||||
}
|
}
|
||||||
playerDeck.putSection(DeckSection.Planes, playerPanel.getPlanarDeck().get(DeckSection.Planes));
|
playerDeck.putSection(DeckSection.Planes, playerPanel.getPlanarDeck().get(DeckSection.Planes));
|
||||||
|
if(!playerPanel.getPlanarDeck().getName().isEmpty()) {
|
||||||
|
PlanarDeckname = localizer.getMessage("lblPlanarDeck") + ": " + playerPanel.getPlanarDeck().getName();
|
||||||
|
playerPanel.setPlanarDeckName(PlanarDeckname);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (hasVariant(GameType.Vanguard)) {
|
if (hasVariant(GameType.Vanguard)) {
|
||||||
if (playerDeck == deck) {
|
if (playerDeck == deck) {
|
||||||
@@ -662,11 +722,14 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
CardPool avatarPool = new CardPool();
|
CardPool avatarPool = new CardPool();
|
||||||
avatarPool.add(playerPanel.getVanguardAvatar());
|
avatarPool.add(playerPanel.getVanguardAvatar());
|
||||||
playerDeck.putSection(DeckSection.Avatar, avatarPool);
|
playerDeck.putSection(DeckSection.Avatar, avatarPool);
|
||||||
|
VanguardAvatar = localizer.getMessage("lblVanguard") + ": " + playerPanel.getVanguardAvatar().getName();
|
||||||
|
playerPanel.setVanguarAvatarName(VanguardAvatar);
|
||||||
}
|
}
|
||||||
|
|
||||||
decks[playerIndex] = playerDeck;
|
decks[playerIndex] = playerDeck;
|
||||||
if (playerChangeListener != null) {
|
if (playerChangeListener != null) {
|
||||||
playerChangeListener.update(playerIndex, UpdateLobbyPlayerEvent.deckUpdate(playerDeck));
|
playerChangeListener.update(playerIndex, UpdateLobbyPlayerEvent.deckUpdate(playerDeck));
|
||||||
|
playerChangeListener.update(playerIndex, UpdateLobbyPlayerEvent.setDeckSchemePlaneVanguard(TextUtil.fastReplace(deckName," Generated Deck", ""), SchemeDeckName, PlanarDeckname, VanguardAvatar));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,6 +752,11 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setReady(final int index, final boolean ready) {
|
void setReady(final int index, final boolean ready) {
|
||||||
|
if (lobby.isAllowNetworking()){
|
||||||
|
updateDeck(index);
|
||||||
|
fireReady(index, ready);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (ready) {
|
if (ready) {
|
||||||
updateDeck(index);
|
updateDeck(index);
|
||||||
if (decks[index] == null) {
|
if (decks[index] == null) {
|
||||||
@@ -697,7 +765,6 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
firePlayerChangeListener(index);
|
firePlayerChangeListener(index);
|
||||||
}
|
}
|
||||||
void setDevMode(final int index) {
|
void setDevMode(final int index) {
|
||||||
@@ -714,7 +781,27 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView {
|
|||||||
playerChangeListener.update(index, getSlot(index));
|
playerChangeListener.update(index, getSlot(index));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void fireReady(final int index, boolean ready){
|
||||||
|
playerPanels.get(index).setIsReady(ready);
|
||||||
|
if (playerChangeListener != null) {
|
||||||
|
playerChangeListener.update(index, UpdateLobbyPlayerEvent.isReadyUpdate(ready));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void updatemyTeam(int index, int team) {
|
||||||
|
if (playerChangeListener != null) {
|
||||||
|
playerChangeListener.update(index, UpdateLobbyPlayerEvent.teamUpdate(team));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void updateMyDeck(int index) {
|
||||||
|
/* updateMyDeck is called via button handler when the user set their deck on network play*/
|
||||||
|
|
||||||
|
//safety check
|
||||||
|
if(playerPanels.size() < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
updateDeck(index);
|
||||||
|
//fireReady(index, playerPanels.get(index).isReady());
|
||||||
|
}
|
||||||
public void removePlayer(final int index) {
|
public void removePlayer(final int index) {
|
||||||
lobby.removeSlot(index);
|
lobby.removeSlot(index);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,9 +112,12 @@ public class PlayerPanel extends FContainer {
|
|||||||
deckChooser = new FDeckChooser(GameType.Constructed, isAi, new FEventHandler() {
|
deckChooser = new FDeckChooser(GameType.Constructed, isAi, new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
btnDeck.setEnabled(true);
|
btnDeck.setEnabled(mayEdit);
|
||||||
btnDeck.setText(deckChooser.getSelectedDeckType().toString() + ": " +
|
btnDeck.setText(deckChooser.getSelectedDeckType().toString() + ": " +
|
||||||
Lang.joinHomogenous(((DeckManager)e.getSource()).getSelectedItems(), DeckProxy.FN_GET_NAME));
|
Lang.joinHomogenous(((DeckManager)e.getSource()).getSelectedItems(), DeckProxy.FN_GET_NAME));
|
||||||
|
if (allowNetworking && btnDeck.isEnabled() && humanAiSwitch.isToggled()) { //if its ready but changed the deck, update it
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
lstCommanderDecks = new FDeckChooser(GameType.Commander, isAi, new FEventHandler() {
|
lstCommanderDecks = new FDeckChooser(GameType.Commander, isAi, new FEventHandler() {
|
||||||
@@ -123,6 +126,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstCommanderDecks.saveState();
|
lstCommanderDecks.saveState();
|
||||||
|
if (allowNetworking && btnCommanderDeck.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck"));
|
btnCommanderDeck.setText(localizer.getMessage("lblCommanderDeck"));
|
||||||
}
|
}
|
||||||
@@ -134,6 +140,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstOathbreakerDecks.saveState();
|
lstOathbreakerDecks.saveState();
|
||||||
|
if (allowNetworking && btnOathbreakDeck.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck"));
|
btnOathbreakDeck.setText(localizer.getMessage("lblOathbreakerDeck"));
|
||||||
}
|
}
|
||||||
@@ -145,6 +154,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstTinyLeadersDecks.saveState();
|
lstTinyLeadersDecks.saveState();
|
||||||
|
if (allowNetworking && btnTinyLeadersDeck.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck"));
|
btnTinyLeadersDeck.setText(localizer.getMessage("lblTinyLeadersDeck"));
|
||||||
}
|
}
|
||||||
@@ -156,6 +168,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null) {
|
||||||
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck") + ": " + ((DeckManager) e.getSource()).getSelectedItem().getName());
|
||||||
lstBrawlDecks.saveState();
|
lstBrawlDecks.saveState();
|
||||||
|
if (allowNetworking && btnBrawlDeck.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck"));
|
btnBrawlDeck.setText(localizer.getMessage("lblBrawlDeck"));
|
||||||
}
|
}
|
||||||
@@ -166,6 +181,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
||||||
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck") + ": " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck") + ": " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
||||||
|
if (allowNetworking && btnSchemeDeck.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck"));
|
btnSchemeDeck.setText(localizer.getMessage("lblSchemeDeck"));
|
||||||
}
|
}
|
||||||
@@ -176,6 +194,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
if( ((DeckManager)e.getSource()).getSelectedItem() != null){
|
||||||
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck") + ": " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck") + ": " + ((DeckManager)e.getSource()).getSelectedItem().getName());
|
||||||
|
if (allowNetworking && btnPlanarDeck.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck"));
|
btnPlanarDeck.setText(localizer.getMessage("lblPlanarDeck"));
|
||||||
}
|
}
|
||||||
@@ -185,6 +206,9 @@ public class PlayerPanel extends FContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
btnVanguardAvatar.setText(localizer.getMessage("lblVanguard") + ": " + ((CardManager)e.getSource()).getSelectedItem().getName());
|
btnVanguardAvatar.setText(localizer.getMessage("lblVanguard") + ": " + ((CardManager)e.getSource()).getSelectedItem().getName());
|
||||||
|
if (allowNetworking && btnVanguardAvatar.isEnabled() && humanAiSwitch.isToggled()) {
|
||||||
|
screen.updateMyDeck(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -512,7 +536,32 @@ public class PlayerPanel extends FContainer {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public void setDeckSelectorButtonText(String text) {
|
public void setDeckSelectorButtonText(String text) {
|
||||||
btnDeck.setText(text);
|
if (btnDeck.isVisible())
|
||||||
|
btnDeck.setText(text);
|
||||||
|
|
||||||
|
if (btnCommanderDeck.isVisible())
|
||||||
|
btnCommanderDeck.setText(text);
|
||||||
|
|
||||||
|
if (btnOathbreakDeck.isVisible())
|
||||||
|
btnOathbreakDeck.setText(text);
|
||||||
|
|
||||||
|
if (btnTinyLeadersDeck.isVisible())
|
||||||
|
btnTinyLeadersDeck.setText(text);
|
||||||
|
|
||||||
|
if (btnBrawlDeck.isVisible())
|
||||||
|
btnBrawlDeck.setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVanguarAvatarName(String text) {
|
||||||
|
btnVanguardAvatar.setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSchemeDeckName(String text) {
|
||||||
|
btnSchemeDeck.setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlanarDeckName(String text) {
|
||||||
|
btnPlanarDeck.setText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateVariantControlsVisibility() {
|
public void updateVariantControlsVisibility() {
|
||||||
@@ -525,6 +574,7 @@ public class PlayerPanel extends FContainer {
|
|||||||
boolean isArchenemyApplied = false;
|
boolean isArchenemyApplied = false;
|
||||||
boolean archenemyVisiblity = false;
|
boolean archenemyVisiblity = false;
|
||||||
boolean isDeckBuildingAllowed = mayEdit;
|
boolean isDeckBuildingAllowed = mayEdit;
|
||||||
|
boolean replacedbasicdeck = false;
|
||||||
|
|
||||||
for (GameType variant : screen.getLobby().getAppliedVariants()) {
|
for (GameType variant : screen.getLobby().getAppliedVariants()) {
|
||||||
switch (variant) {
|
switch (variant) {
|
||||||
@@ -540,18 +590,22 @@ public class PlayerPanel extends FContainer {
|
|||||||
case Commander:
|
case Commander:
|
||||||
isCommanderApplied = true;
|
isCommanderApplied = true;
|
||||||
isDeckBuildingAllowed = false; //Commander deck replaces basic deck, so hide that
|
isDeckBuildingAllowed = false; //Commander deck replaces basic deck, so hide that
|
||||||
|
replacedbasicdeck = true;
|
||||||
break;
|
break;
|
||||||
case Oathbreaker:
|
case Oathbreaker:
|
||||||
isOathbreakerApplied = true;
|
isOathbreakerApplied = true;
|
||||||
isDeckBuildingAllowed = false; //Oathbreaker deck replaces basic deck, so hide that
|
isDeckBuildingAllowed = false; //Oathbreaker deck replaces basic deck, so hide that
|
||||||
|
replacedbasicdeck = true;
|
||||||
break;
|
break;
|
||||||
case TinyLeaders:
|
case TinyLeaders:
|
||||||
isTinyLeadersApplied = true;
|
isTinyLeadersApplied = true;
|
||||||
isDeckBuildingAllowed = false; //Tiny Leaders deck replaces basic deck, so hide that
|
isDeckBuildingAllowed = false; //Tiny Leaders deck replaces basic deck, so hide that
|
||||||
|
replacedbasicdeck = true;
|
||||||
break;
|
break;
|
||||||
case Brawl:
|
case Brawl:
|
||||||
isBrawlApplied = true;
|
isBrawlApplied = true;
|
||||||
isDeckBuildingAllowed = false; //Tiny Leaders deck replaces basic deck, so hide that
|
isDeckBuildingAllowed = false; //Tiny Leaders deck replaces basic deck, so hide that
|
||||||
|
replacedbasicdeck = true;
|
||||||
break;
|
break;
|
||||||
case Planechase:
|
case Planechase:
|
||||||
isPlanechaseApplied = true;
|
isPlanechaseApplied = true;
|
||||||
@@ -562,24 +616,85 @@ public class PlayerPanel extends FContainer {
|
|||||||
default:
|
default:
|
||||||
if (variant.isAutoGenerated()) {
|
if (variant.isAutoGenerated()) {
|
||||||
isDeckBuildingAllowed = false;
|
isDeckBuildingAllowed = false;
|
||||||
|
replacedbasicdeck = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
btnDeck.setVisible(isDeckBuildingAllowed);
|
if(allowNetworking) {
|
||||||
btnCommanderDeck.setVisible(isCommanderApplied && mayEdit);
|
if (replacedbasicdeck) {
|
||||||
btnOathbreakDeck.setVisible(isOathbreakerApplied && mayEdit);
|
btnDeck.setVisible(false);
|
||||||
btnTinyLeadersDeck.setVisible(isTinyLeadersApplied && mayEdit);
|
} else {
|
||||||
btnBrawlDeck.setVisible(isBrawlApplied && mayEdit);
|
btnDeck.setVisible(true);
|
||||||
|
btnDeck.setEnabled(mayEdit);
|
||||||
|
}
|
||||||
|
if (isCommanderApplied) {
|
||||||
|
btnCommanderDeck.setVisible(true);
|
||||||
|
btnCommanderDeck.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnCommanderDeck.setVisible(false);
|
||||||
|
}
|
||||||
|
if (isOathbreakerApplied) {
|
||||||
|
btnOathbreakDeck.setVisible(true);
|
||||||
|
btnOathbreakDeck.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnOathbreakDeck.setVisible(false);
|
||||||
|
}
|
||||||
|
if (isTinyLeadersApplied) {
|
||||||
|
btnTinyLeadersDeck.setVisible(true);
|
||||||
|
btnTinyLeadersDeck.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnTinyLeadersDeck.setVisible(false);
|
||||||
|
}
|
||||||
|
if (isBrawlApplied) {
|
||||||
|
btnBrawlDeck.setVisible(true);
|
||||||
|
btnBrawlDeck.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnBrawlDeck.setVisible(false);
|
||||||
|
}
|
||||||
|
if (archenemyVisiblity) {
|
||||||
|
btnSchemeDeck.setVisible(true);
|
||||||
|
btnSchemeDeck.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnSchemeDeck.setVisible(false);
|
||||||
|
}
|
||||||
|
if (!isArchenemyApplied) {
|
||||||
|
cbTeam.setVisible(true);
|
||||||
|
cbTeam.setEnabled(mayEdit);
|
||||||
|
cbArchenemyTeam.setVisible(false);
|
||||||
|
} else {
|
||||||
|
cbTeam.setVisible(false);
|
||||||
|
cbArchenemyTeam.setVisible(true);
|
||||||
|
cbArchenemyTeam.setEnabled(mayEdit);
|
||||||
|
}
|
||||||
|
if (isPlanechaseApplied) {
|
||||||
|
btnPlanarDeck.setVisible(true);
|
||||||
|
btnPlanarDeck.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnPlanarDeck.setVisible(false);
|
||||||
|
}
|
||||||
|
if (isVanguardApplied) {
|
||||||
|
btnVanguardAvatar.setVisible(true);
|
||||||
|
btnVanguardAvatar.setEnabled(mayEdit);
|
||||||
|
} else {
|
||||||
|
btnVanguardAvatar.setVisible(false);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
btnDeck.setVisible(isDeckBuildingAllowed);
|
||||||
|
btnCommanderDeck.setVisible(isCommanderApplied && mayEdit);
|
||||||
|
btnOathbreakDeck.setVisible(isOathbreakerApplied && mayEdit);
|
||||||
|
btnTinyLeadersDeck.setVisible(isTinyLeadersApplied && mayEdit);
|
||||||
|
btnBrawlDeck.setVisible(isBrawlApplied && mayEdit);
|
||||||
|
|
||||||
btnSchemeDeck.setVisible(archenemyVisiblity && mayEdit);
|
btnSchemeDeck.setVisible(archenemyVisiblity && mayEdit);
|
||||||
|
|
||||||
cbTeam.setVisible(!isArchenemyApplied);
|
cbTeam.setVisible(!isArchenemyApplied);
|
||||||
cbArchenemyTeam.setVisible(isArchenemyApplied);
|
cbArchenemyTeam.setVisible(isArchenemyApplied);
|
||||||
|
|
||||||
btnPlanarDeck.setVisible(isPlanechaseApplied && mayEdit);
|
btnPlanarDeck.setVisible(isPlanechaseApplied && mayEdit);
|
||||||
btnVanguardAvatar.setVisible(isVanguardApplied && mayEdit);
|
btnVanguardAvatar.setVisible(isVanguardApplied && mayEdit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNetworkHost() {
|
public boolean isNetworkHost() {
|
||||||
@@ -626,6 +741,8 @@ public class PlayerPanel extends FContainer {
|
|||||||
pp.toggleIsPlayerArchenemy();
|
pp.toggleIsPlayerArchenemy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
screen.updatemyTeam(index, getTeam());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -823,6 +940,16 @@ public class PlayerPanel extends FContainer {
|
|||||||
if (devModeSwitch != null) {
|
if (devModeSwitch != null) {
|
||||||
devModeSwitch.setEnabled(mayEdit);
|
devModeSwitch.setEnabled(mayEdit);
|
||||||
}
|
}
|
||||||
|
if(allowNetworking) {
|
||||||
|
btnDeck.setEnabled(mayEdit);
|
||||||
|
btnCommanderDeck.setEnabled(mayEdit);
|
||||||
|
btnOathbreakDeck.setEnabled(mayEdit);
|
||||||
|
btnTinyLeadersDeck.setEnabled(mayEdit);
|
||||||
|
btnBrawlDeck.setEnabled(mayEdit);
|
||||||
|
btnSchemeDeck.setEnabled(mayEdit);
|
||||||
|
btnPlanarDeck.setEnabled(mayEdit);
|
||||||
|
cbArchenemyTeam.setEnabled(mayEdit);
|
||||||
|
}
|
||||||
updateVariantControlsVisibility();
|
updateVariantControlsVisibility();
|
||||||
|
|
||||||
//if panel has height already, ensure height updated to account for button visibility changes
|
//if panel has height already, ensure height updated to account for button visibility changes
|
||||||
|
|||||||
@@ -146,6 +146,7 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
view = new MatchScreen(playerPanels);
|
view = new MatchScreen(playerPanels);
|
||||||
|
view.resetFields();
|
||||||
|
|
||||||
if (noHumans) {
|
if (noHumans) {
|
||||||
//add special object that pauses game if screen touched
|
//add special object that pauses game if screen touched
|
||||||
@@ -215,6 +216,13 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
if (lbl != null) {
|
if (lbl != null) {
|
||||||
lbl.setActive(true);
|
lbl.setActive(true);
|
||||||
}
|
}
|
||||||
|
if(GuiBase.isNetworkplay())
|
||||||
|
checkStack();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void checkStack() {
|
||||||
|
view.getStack().checkEmptyStack();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -481,6 +481,20 @@ public class MatchScreen extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetFields() {
|
||||||
|
for (VPlayerPanel playerPanel : getPlayerPanels().values()) {
|
||||||
|
for (CardAreaPanel p : playerPanel.getField().getCardPanels()){
|
||||||
|
p.resetForNewGame();
|
||||||
|
p.reset();
|
||||||
|
}
|
||||||
|
playerPanel.getZoneTab(ZoneType.Hand).getDisplayArea().clear();
|
||||||
|
playerPanel.getZoneTab(ZoneType.Library).getDisplayArea().clear();
|
||||||
|
playerPanel.getZoneTab(ZoneType.Graveyard).getDisplayArea().clear();
|
||||||
|
playerPanel.getZoneTab(ZoneType.Exile).getDisplayArea().clear();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateZones(final Iterable<PlayerZoneUpdate> zonesToUpdate) {
|
public void updateZones(final Iterable<PlayerZoneUpdate> zonesToUpdate) {
|
||||||
for (final PlayerZoneUpdate update : zonesToUpdate) {
|
for (final PlayerZoneUpdate update : zonesToUpdate) {
|
||||||
final PlayerView owner = update.getPlayer();
|
final PlayerView owner = update.getPlayer();
|
||||||
@@ -566,6 +580,9 @@ public class MatchScreen extends FScreen {
|
|||||||
float y;
|
float y;
|
||||||
float w = getWidth();
|
float w = getWidth();
|
||||||
Color color = Color.CYAN;
|
Color color = Color.CYAN;
|
||||||
|
GameView game = MatchController.instance.getGameView();
|
||||||
|
CombatView combat = game.getCombat();
|
||||||
|
PlayerView currentPlayer = MatchController.instance.getCurrentPlayer();
|
||||||
|
|
||||||
//field separator lines
|
//field separator lines
|
||||||
if (!Forge.isLandscapeMode()) {
|
if (!Forge.isLandscapeMode()) {
|
||||||
@@ -592,8 +609,7 @@ public class MatchScreen extends FScreen {
|
|||||||
|
|
||||||
//Draw Priority Human Multiplayer 2 player
|
//Draw Priority Human Multiplayer 2 player
|
||||||
float oldAlphaComposite = g.getfloatAlphaComposite();
|
float oldAlphaComposite = g.getfloatAlphaComposite();
|
||||||
|
//TODO: support up to 4 players
|
||||||
|
|
||||||
if ((getPlayerPanels().keySet().size() == 2) && (countHuman() == 2)){
|
if ((getPlayerPanels().keySet().size() == 2) && (countHuman() == 2)){
|
||||||
for (VPlayerPanel playerPanel: playerPanelsList){
|
for (VPlayerPanel playerPanel: playerPanelsList){
|
||||||
midField = playerPanel.getTop();
|
midField = playerPanel.getTop();
|
||||||
@@ -606,28 +622,22 @@ public class MatchScreen extends FScreen {
|
|||||||
else
|
else
|
||||||
g.setAlphaComposite(0f);
|
g.setAlphaComposite(0f);
|
||||||
|
|
||||||
if(MatchController.instance.getGameView()!= null) {
|
if(game!= null) {
|
||||||
if(MatchController.instance.getGameView().getPhase()!=null)
|
if(combat!=null) {
|
||||||
{
|
//hide rectangle
|
||||||
if(MatchController.instance.getGameView().getPhase().isCombatPhase()){
|
if(playerPanel.getPlayer() == currentPlayer)
|
||||||
if(playerPanel.getPlayer() == MatchController.instance.getCurrentPlayer())
|
g.setAlphaComposite(0.8f);
|
||||||
g.setAlphaComposite(0.8f);
|
|
||||||
else
|
|
||||||
g.setAlphaComposite(0f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(MatchController.instance.getGameView().getCombat() != null) {
|
|
||||||
if(playerPanel.getPlayer() == MatchController.instance.getGameView().getPlayerTurn())
|
|
||||||
color = Color.RED;
|
|
||||||
else
|
else
|
||||||
color = Color.LIME;
|
g.setAlphaComposite(0f);
|
||||||
}
|
//color rectangle
|
||||||
else
|
if(playerPanel.getPlayer() == game.getPlayerTurn())
|
||||||
|
color = Color.RED; //attacking player
|
||||||
|
else
|
||||||
|
color = Color.LIME; //defending player
|
||||||
|
} else {
|
||||||
color = Color.CYAN;
|
color = Color.CYAN;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g.drawRect(4f, color, playerPanel.getField().getLeft(), adjustY, playerPanel.getField().getWidth(), adjustH);
|
g.drawRect(4f, color, playerPanel.getField().getLeft(), adjustY, playerPanel.getField().getWidth(), adjustH);
|
||||||
g.setAlphaComposite(oldAlphaComposite);
|
g.setAlphaComposite(oldAlphaComposite);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,15 @@ public class VStack extends FDropDown {
|
|||||||
restorablePlayerZones = null;
|
restorablePlayerZones = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void checkEmptyStack() { //sort the bug in client when desynch happens
|
||||||
|
final FCollectionView<StackItemView> stack = MatchController.instance.getGameView().getStack();
|
||||||
|
if(stack!=null)
|
||||||
|
if(isVisible() && stack.isEmpty()) { //visible stack but empty already
|
||||||
|
hide();
|
||||||
|
getMenuTab().setText(Localizer.getInstance().getMessage("lblStack") + " (" + 0 + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
activeItem = null;
|
activeItem = null;
|
||||||
|
|||||||
@@ -239,17 +239,20 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSpellAbilityCast event) {
|
public Void visit(final GameEventSpellAbilityCast event) {
|
||||||
needStackUpdate = true;
|
needStackUpdate = true;
|
||||||
processEvent();
|
if(GuiBase.getInterface().isLibgdxPort()) {
|
||||||
|
return processEvent(); //mobile port don't have notify stack addition like the desktop
|
||||||
final Runnable notifyStackAddition = new Runnable() {
|
} else {
|
||||||
@Override
|
processEvent();
|
||||||
public void run() {
|
|
||||||
matchController.notifyStackAddition(event);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
GuiBase.getInterface().invokeInEdtLater(notifyStackAddition);
|
|
||||||
|
|
||||||
|
final Runnable notifyStackAddition = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
matchController.notifyStackAddition(event);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
GuiBase.getInterface().invokeInEdtLater(notifyStackAddition);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,16 +265,19 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSpellRemovedFromStack event) {
|
public Void visit(final GameEventSpellRemovedFromStack event) {
|
||||||
needStackUpdate = true;
|
needStackUpdate = true;
|
||||||
processEvent();
|
if(GuiBase.getInterface().isLibgdxPort()) {
|
||||||
|
return processEvent(); //mobile port don't have notify stack addition like the desktop
|
||||||
final Runnable notifyStackAddition = new Runnable() {
|
} else {
|
||||||
@Override
|
processEvent();
|
||||||
public void run() {
|
|
||||||
matchController.notifyStackRemoval(event);
|
final Runnable notifyStackAddition = new Runnable() {
|
||||||
}
|
@Override
|
||||||
};
|
public void run() {
|
||||||
GuiBase.getInterface().invokeInEdtLater(notifyStackAddition);
|
matchController.notifyStackRemoval(event);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
GuiBase.getInterface().invokeInEdtLater(notifyStackAddition);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,14 +363,12 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardChangeZone event) {
|
public Void visit(final GameEventCardChangeZone event) {
|
||||||
if(event.to.getZoneType() == ZoneType.Battlefield)
|
if(GuiBase.getInterface().isLibgdxPort()) {
|
||||||
refreshFieldUpdate = true;
|
updateZone(event.from);
|
||||||
//pfps the change to the zones have already been performed with add and remove calls
|
return updateZone(event.to);
|
||||||
// this is only for playing a sound
|
} else {
|
||||||
// updateZone(event.from);
|
return processEvent();
|
||||||
//return updateZone(event.to);
|
}
|
||||||
return processEvent();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -399,10 +403,11 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventShuffle event) {
|
public Void visit(final GameEventShuffle event) {
|
||||||
//pfps the change to the library has already been performed by a setCards call
|
if (GuiBase.getInterface().isLibgdxPort()) {
|
||||||
// this is only for playing a sound
|
return updateZone(event.player.getZone(ZoneType.Library));
|
||||||
// return updateZone(event.player.getZone(ZoneType.Library));
|
} else {
|
||||||
return processEvent();
|
return processEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -22,6 +22,10 @@ public final class LobbySlot implements Serializable {
|
|||||||
private boolean isDevMode;
|
private boolean isDevMode;
|
||||||
private Deck deck;
|
private Deck deck;
|
||||||
private ImmutableSet<AIOption> aiOptions;
|
private ImmutableSet<AIOption> aiOptions;
|
||||||
|
private String AvatarVanguard;
|
||||||
|
private String SchemeDeckName;
|
||||||
|
private String PlanarDeckName;
|
||||||
|
private String DeckName;
|
||||||
|
|
||||||
public LobbySlot(final LobbySlotType type, final String name, final int avatarIndex, final int sleeveIndex, final int team, final boolean isArchenemy, final boolean isReady, final Set<AIOption> aiOptions) {
|
public LobbySlot(final LobbySlotType type, final String name, final int avatarIndex, final int sleeveIndex, final int team, final boolean isArchenemy, final boolean isReady, final Set<AIOption> aiOptions) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
@@ -79,6 +83,22 @@ public final class LobbySlot implements Serializable {
|
|||||||
} else if (oldDeck != null && data.getSection() != null && data.getCards() != null) {
|
} else if (oldDeck != null && data.getSection() != null && data.getCards() != null) {
|
||||||
oldDeck.putSection(data.getSection(), data.getCards());
|
oldDeck.putSection(data.getSection(), data.getCards());
|
||||||
}
|
}
|
||||||
|
if (data.getSchemeDeckName() != null) {
|
||||||
|
setSchemeDeckName(data.getSchemeDeckName());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (data.getAvatarVanguard() != null) {
|
||||||
|
setAvatarVanguard(data.getAvatarVanguard());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (data.getPlanarDeckName() != null) {
|
||||||
|
setPlanarDeckName(data.getPlanarDeckName());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
if (data.getDeckName() != null) {
|
||||||
|
setDeckName(data.getDeckName());
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,6 +136,16 @@ public final class LobbySlot implements Serializable {
|
|||||||
this.team = team;
|
this.team = team;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSchemeDeckName() { return SchemeDeckName; }
|
||||||
|
public String getAvatarVanguard() { return AvatarVanguard; }
|
||||||
|
public String getPlanarDeckName() { return PlanarDeckName; }
|
||||||
|
public String getDeckName() { return DeckName; }
|
||||||
|
|
||||||
|
public void setSchemeDeckName(String schemeDeckName) { this.SchemeDeckName = schemeDeckName; }
|
||||||
|
public void setAvatarVanguard(String avatarVanguard) { this.AvatarVanguard = avatarVanguard; }
|
||||||
|
public void setPlanarDeckName(String planarDeckName) { this.PlanarDeckName = planarDeckName; }
|
||||||
|
public void setDeckName(String DeckName) { this.DeckName = DeckName; }
|
||||||
|
|
||||||
public boolean isArchenemy() {
|
public boolean isArchenemy() {
|
||||||
return isArchenemy;
|
return isArchenemy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,10 @@ public final class UpdateLobbyPlayerEvent implements NetEvent {
|
|||||||
private DeckSection section = null;
|
private DeckSection section = null;
|
||||||
private CardPool cards = null;
|
private CardPool cards = null;
|
||||||
private Set<AIOption> aiOptions = null;
|
private Set<AIOption> aiOptions = null;
|
||||||
|
private String AvatarVanguard = null;
|
||||||
|
private String SchemeDeckName = null;
|
||||||
|
private String PlanarDeckName = null;
|
||||||
|
private String DeckName = null;
|
||||||
|
|
||||||
|
|
||||||
public static UpdateLobbyPlayerEvent create(final LobbySlotType type, final String name, final int avatarIndex, final int sleeveIndex, final int team, final boolean isArchenemy, final boolean isReady, final Set<AIOption> aiOptions) {
|
public static UpdateLobbyPlayerEvent create(final LobbySlotType type, final String name, final int avatarIndex, final int sleeveIndex, final int team, final boolean isArchenemy, final boolean isReady, final Set<AIOption> aiOptions) {
|
||||||
@@ -53,17 +57,39 @@ public final class UpdateLobbyPlayerEvent implements NetEvent {
|
|||||||
public static UpdateLobbyPlayerEvent sleeveUpdate(final int index) {
|
public static UpdateLobbyPlayerEvent sleeveUpdate(final int index) {
|
||||||
return new UpdateLobbyPlayerEvent(index, false);
|
return new UpdateLobbyPlayerEvent(index, false);
|
||||||
}
|
}
|
||||||
private UpdateLobbyPlayerEvent(int index, boolean avatar) {
|
public static UpdateLobbyPlayerEvent isReadyUpdate(final boolean isReady) {
|
||||||
|
return new UpdateLobbyPlayerEvent(isReady);
|
||||||
|
}
|
||||||
|
public static UpdateLobbyPlayerEvent teamUpdate(int team) {
|
||||||
|
return new UpdateLobbyPlayerEvent(team);
|
||||||
|
}
|
||||||
|
public static UpdateLobbyPlayerEvent setDeckSchemePlaneVanguard(final String DeckName, final String Scheme, final String Plane, final String Vanguard) {
|
||||||
|
return new UpdateLobbyPlayerEvent(DeckName, Scheme, Plane, Vanguard);
|
||||||
|
}
|
||||||
|
private UpdateLobbyPlayerEvent(final int index, final boolean avatar) {
|
||||||
if (avatar)
|
if (avatar)
|
||||||
this.avatarIndex = index;
|
this.avatarIndex = index;
|
||||||
else
|
else
|
||||||
this.sleeveIndex = index;
|
this.sleeveIndex = index;
|
||||||
}
|
}
|
||||||
|
private UpdateLobbyPlayerEvent(final int team) {
|
||||||
|
this.team = team;
|
||||||
|
}
|
||||||
|
private UpdateLobbyPlayerEvent(final String DeckName, final String Scheme, final String Plane, final String Vanguard) {
|
||||||
|
this.SchemeDeckName = Scheme;
|
||||||
|
this.PlanarDeckName = Plane;
|
||||||
|
this.AvatarVanguard = Vanguard;
|
||||||
|
this.DeckName = DeckName;
|
||||||
|
}
|
||||||
|
|
||||||
private UpdateLobbyPlayerEvent(final Deck deck) {
|
private UpdateLobbyPlayerEvent(final Deck deck) {
|
||||||
this.deck = deck;
|
this.deck = deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private UpdateLobbyPlayerEvent(final boolean isReady) {
|
||||||
|
this.isReady = isReady;
|
||||||
|
}
|
||||||
|
|
||||||
private UpdateLobbyPlayerEvent(final DeckSection section, final CardPool cards) {
|
private UpdateLobbyPlayerEvent(final DeckSection section, final CardPool cards) {
|
||||||
this.section = section;
|
this.section = section;
|
||||||
this.cards = cards;
|
this.cards = cards;
|
||||||
@@ -149,4 +175,8 @@ public final class UpdateLobbyPlayerEvent implements NetEvent {
|
|||||||
public Set<AIOption> getAiOptions() {
|
public Set<AIOption> getAiOptions() {
|
||||||
return aiOptions == null ? null : Collections.unmodifiableSet(aiOptions);
|
return aiOptions == null ? null : Collections.unmodifiableSet(aiOptions);
|
||||||
}
|
}
|
||||||
|
public String getAvatarVanguard() { return AvatarVanguard; }
|
||||||
|
public String getSchemeDeckName() { return SchemeDeckName; }
|
||||||
|
public String getPlanarDeckName() { return PlanarDeckName; }
|
||||||
|
public String getDeckName() { return DeckName; }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user