mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Merge branch 'newBranch' into 'master'
Update Win/Lose Overlay (mobile) Closes #1367 and #928 See merge request core-developers/forge!2760
This commit is contained in:
@@ -672,21 +672,25 @@ public class Game {
|
|||||||
// Rule 800.4 Losing a Multiplayer game
|
// Rule 800.4 Losing a Multiplayer game
|
||||||
CardCollectionView cards = this.getCardsInGame();
|
CardCollectionView cards = this.getCardsInGame();
|
||||||
boolean planarControllerLost = false;
|
boolean planarControllerLost = false;
|
||||||
|
boolean isMultiplayer = this.getPlayers().size() > 2;
|
||||||
|
|
||||||
for(Card c : cards) {
|
for(Card c : cards) {
|
||||||
if (c.getController().equals(p) && (c.isPlane() || c.isPhenomenon())) {
|
if (c.getController().equals(p) && (c.isPlane() || c.isPhenomenon())) {
|
||||||
planarControllerLost = true;
|
planarControllerLost = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c.getOwner().equals(p)) {
|
if(isMultiplayer) {
|
||||||
c.ceaseToExist();
|
if (c.getOwner().equals(p)) {
|
||||||
} else {
|
c.ceaseToExist();
|
||||||
c.removeTempController(p);
|
} else {
|
||||||
if (c.getController().equals(p)) {
|
c.removeTempController(p);
|
||||||
this.getAction().exile(c, null);
|
if (c.getController().equals(p)) {
|
||||||
|
this.getAction().exile(c, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
c.forceTurnFaceUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 901.6: If the current planar controller would leave the game, instead the next player
|
// 901.6: If the current planar controller would leave the game, instead the next player
|
||||||
|
|||||||
@@ -285,6 +285,12 @@ public class Match {
|
|||||||
if (null != cardsComplained) {
|
if (null != cardsComplained) {
|
||||||
rAICards.putAll(player, cardsComplained);
|
rAICards.putAll(player, cardsComplained);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
//reset cards to fix weird issues on netplay nextgame client
|
||||||
|
for (Card c : player.getCardsIn(ZoneType.Library)) {
|
||||||
|
c.setTapped(false);
|
||||||
|
c.resetActivationsPerTurn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myRemovedAnteCards != null && !myRemovedAnteCards.isEmpty()) {
|
if (myRemovedAnteCards != null && !myRemovedAnteCards.isEmpty()) {
|
||||||
|
|||||||
@@ -6331,6 +6331,12 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
getGame().getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
|
getGame().getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void forceTurnFaceUp() {
|
||||||
|
getGame().getTriggerHandler().suppressMode(TriggerType.TurnFaceUp);
|
||||||
|
turnFaceUp(false, false);
|
||||||
|
getGame().getTriggerHandler().clearSuppression(TriggerType.TurnFaceUp);
|
||||||
|
}
|
||||||
|
|
||||||
public final void addGoad(Long timestamp, final Player p) {
|
public final void addGoad(Long timestamp, final Player p) {
|
||||||
goad.put(timestamp, p);
|
goad.put(timestamp, p);
|
||||||
updateAbilityTextForView();
|
updateAbilityTextForView();
|
||||||
|
|||||||
@@ -886,12 +886,6 @@ public class CardView extends GameEntityView {
|
|||||||
}
|
}
|
||||||
public String getImageKey(Iterable<PlayerView> viewers) {
|
public String getImageKey(Iterable<PlayerView> viewers) {
|
||||||
if (canBeShownToAny(viewers)) {
|
if (canBeShownToAny(viewers)) {
|
||||||
// Morph cards can only be present on the battlefield and on stack, otherwise show a standard card back
|
|
||||||
if (getZone() != ZoneType.Battlefield && getZone() != ZoneType.Stack) {
|
|
||||||
if (isFaceDown() && get(TrackableProperty.ImageKey).equals(ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE))) {
|
|
||||||
return ImageKeys.getTokenKey(ImageKeys.HIDDEN_CARD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return get(TrackableProperty.ImageKey);
|
return get(TrackableProperty.ImageKey);
|
||||||
}
|
}
|
||||||
return ImageKeys.getTokenKey(ImageKeys.HIDDEN_CARD);
|
return ImageKeys.getTokenKey(ImageKeys.HIDDEN_CARD);
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ public enum TrackableProperty {
|
|||||||
Haunting(TrackableTypes.CardViewType),
|
Haunting(TrackableTypes.CardViewType),
|
||||||
MustBlockCards(TrackableTypes.CardViewCollectionType),
|
MustBlockCards(TrackableTypes.CardViewCollectionType),
|
||||||
PairedWith(TrackableTypes.CardViewType),
|
PairedWith(TrackableTypes.CardViewType),
|
||||||
CurrentState(TrackableTypes.CardStateViewType, FreezeMode.IgnoresFreezeIfUnset),
|
CurrentState(TrackableTypes.CardStateViewType, FreezeMode.IgnoresFreeze),
|
||||||
AlternateState(TrackableTypes.CardStateViewType),
|
AlternateState(TrackableTypes.CardStateViewType, FreezeMode.IgnoresFreeze),
|
||||||
HiddenId(TrackableTypes.IntegerType),
|
HiddenId(TrackableTypes.IntegerType),
|
||||||
ExertedThisTurn(TrackableTypes.BooleanType),
|
ExertedThisTurn(TrackableTypes.BooleanType),
|
||||||
|
|
||||||
|
|||||||
@@ -37,5 +37,9 @@ public abstract class CachedCardImage implements ImageFetcher.Callback {
|
|||||||
return ImageCache.getImage(key, true);
|
return ImageCache.getImage(key, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Texture getImage(String mykey) {
|
||||||
|
return ImageCache.getImage(mykey, true);
|
||||||
|
}
|
||||||
|
|
||||||
public abstract void onImageFetched();
|
public abstract void onImageFetched();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.badlogic.gdx.utils.Align;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.Graphics;
|
import forge.Graphics;
|
||||||
import forge.ImageKeys;
|
|
||||||
import forge.assets.FBufferedImage;
|
import forge.assets.FBufferedImage;
|
||||||
import forge.assets.FImage;
|
import forge.assets.FImage;
|
||||||
import forge.assets.FSkin;
|
import forge.assets.FSkin;
|
||||||
@@ -334,7 +333,7 @@ public class CardImageRenderer {
|
|||||||
|
|
||||||
public static void drawZoom(Graphics g, CardView card, GameView gameView, boolean altState, float x, float y, float w, float h, float dispW, float dispH, boolean isCurrentCard) {
|
public static void drawZoom(Graphics g, CardView card, GameView gameView, boolean altState, float x, float y, float w, float h, float dispW, float dispH, boolean isCurrentCard) {
|
||||||
boolean canshow = MatchController.instance.mayView(card);
|
boolean canshow = MatchController.instance.mayView(card);
|
||||||
final Texture image = ImageCache.getImage(card.getState(altState).getImageKey(MatchController.instance.getLocalPlayers()), true);
|
final Texture image = ImageCache.getImage(card.getState(altState).getImageKey(), true);
|
||||||
FImage sleeves = MatchController.getPlayerSleeve(card.getOwner());
|
FImage sleeves = MatchController.getPlayerSleeve(card.getOwner());
|
||||||
if (image == null) { //draw details if can't draw zoom
|
if (image == null) { //draw details if can't draw zoom
|
||||||
drawDetails(g, card, gameView, altState, x, y, w, h);
|
drawDetails(g, card, gameView, altState, x, y, w, h);
|
||||||
@@ -388,7 +387,7 @@ public class CardImageRenderer {
|
|||||||
} else
|
} else
|
||||||
g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, isAftermath ? 90 : -90);
|
g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, isAftermath ? 90 : -90);
|
||||||
} else {
|
} else {
|
||||||
if (Forge.enableUIMask && canshow && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getState(altState).getImageKey())) {
|
if (Forge.enableUIMask && canshow) {
|
||||||
if (ImageCache.isExtendedArt(card))
|
if (ImageCache.isExtendedArt(card))
|
||||||
g.drawImage(image, x, y, w, h);
|
g.drawImage(image, x, y, w, h);
|
||||||
else {
|
else {
|
||||||
@@ -396,7 +395,7 @@ public class CardImageRenderer {
|
|||||||
g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f-minusxy, y + radius / 2-minusxy, w * croppedArea, h * croppedArea);
|
g.drawImage(ImageCache.croppedBorderImage(image, fullborder), x + radius / 2.4f-minusxy, y + radius / 2-minusxy, w * croppedArea, h * croppedArea);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (canshow && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getState(altState).getImageKey()))
|
if (canshow)
|
||||||
g.drawImage(image, x, y, w, h);
|
g.drawImage(image, x, y, w, h);
|
||||||
else // sleeve
|
else // sleeve
|
||||||
g.drawImage(sleeves, x, y, w, h);
|
g.drawImage(sleeves, x, y, w, h);
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import forge.CachedCardImage;
|
|||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.FThreads;
|
import forge.FThreads;
|
||||||
import forge.Graphics;
|
import forge.Graphics;
|
||||||
import forge.ImageKeys;
|
|
||||||
import forge.StaticData;
|
import forge.StaticData;
|
||||||
import forge.assets.FImage;
|
import forge.assets.FImage;
|
||||||
import forge.assets.FImageComplex;
|
import forge.assets.FImageComplex;
|
||||||
@@ -482,8 +481,8 @@ public class CardRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void drawCard(Graphics g, CardView card, float x, float y, float w, float h, CardStackPosition pos, boolean rotate) {
|
public static void drawCard(Graphics g, CardView card, float x, float y, float w, float h, CardStackPosition pos, boolean rotate) {
|
||||||
boolean canshow = MatchController.instance.mayView(card) && !ImageKeys.getTokenKey(ImageKeys.MORPH_IMAGE).equals(card.getCurrentState().getImageKey());
|
boolean canshow = MatchController.instance.mayView(card);
|
||||||
Texture image = new RendererCachedCardImage(card, false).getImage();
|
Texture image = new RendererCachedCardImage(card, false).getImage(card.getCurrentState().getImageKey());
|
||||||
FImage sleeves = MatchController.getPlayerSleeve(card.getOwner());
|
FImage sleeves = MatchController.getPlayerSleeve(card.getOwner());
|
||||||
float radius = (h - w)/8;
|
float radius = (h - w)/8;
|
||||||
float croppedArea = isModernFrame(card) ? CROP_MULTIPLIER : 0.97f;
|
float croppedArea = isModernFrame(card) ? CROP_MULTIPLIER : 0.97f;
|
||||||
|
|||||||
@@ -226,6 +226,11 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
view.getStack().checkEmptyStack();
|
view.getStack().checkEmptyStack();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showWinlose() {
|
||||||
|
if (view.getViewWinLose() != null)
|
||||||
|
view.getViewWinLose().setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateTurn(final PlayerView player) {
|
public void updateTurn(final PlayerView player) {
|
||||||
}
|
}
|
||||||
@@ -254,7 +259,8 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
@Override
|
@Override
|
||||||
public void finishGame() {
|
public void finishGame() {
|
||||||
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
if (hasLocalPlayers() || getGameView().isMatchOver()) {
|
||||||
new ViewWinLose(getGameView()).setVisible(true);
|
view.setViewWinLose(new ViewWinLose(getGameView()));
|
||||||
|
view.getViewWinLose().setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
|
||||||
|
import forge.screens.match.winlose.ViewWinLose;
|
||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
|
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
@@ -78,6 +79,8 @@ public class MatchScreen extends FScreen {
|
|||||||
private VPlayerPanel bottomPlayerPanel, topPlayerPanel;
|
private VPlayerPanel bottomPlayerPanel, topPlayerPanel;
|
||||||
private AbilityEffect activeEffect;
|
private AbilityEffect activeEffect;
|
||||||
|
|
||||||
|
private ViewWinLose viewWinLose = null;
|
||||||
|
|
||||||
public MatchScreen(List<VPlayerPanel> playerPanels0) {
|
public MatchScreen(List<VPlayerPanel> playerPanels0) {
|
||||||
super(new FMenuBar());
|
super(new FMenuBar());
|
||||||
|
|
||||||
@@ -292,6 +295,14 @@ public class MatchScreen extends FScreen {
|
|||||||
return topPlayerPanel;
|
return topPlayerPanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setViewWinLose( ViewWinLose viewWinLose ){
|
||||||
|
this.viewWinLose = viewWinLose;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ViewWinLose getViewWinLose() {
|
||||||
|
return viewWinLose;
|
||||||
|
}
|
||||||
|
|
||||||
public VPlayerPanel getBottomPlayerPanel() {
|
public VPlayerPanel getBottomPlayerPanel() {
|
||||||
return bottomPlayerPanel;
|
return bottomPlayerPanel;
|
||||||
}
|
}
|
||||||
@@ -482,9 +493,9 @@ public class MatchScreen extends FScreen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void resetFields() {
|
public void resetFields() {
|
||||||
|
CardAreaPanel.resetForNewGame();
|
||||||
for (VPlayerPanel playerPanel : getPlayerPanels().values()) {
|
for (VPlayerPanel playerPanel : getPlayerPanels().values()) {
|
||||||
for (CardAreaPanel p : playerPanel.getField().getCardPanels()){
|
for (CardAreaPanel p : playerPanel.getField().getCardPanels()){
|
||||||
p.resetForNewGame();
|
|
||||||
p.reset();
|
p.reset();
|
||||||
}
|
}
|
||||||
playerPanel.getZoneTab(ZoneType.Hand).getDisplayArea().clear();
|
playerPanel.getZoneTab(ZoneType.Hand).getDisplayArea().clear();
|
||||||
|
|||||||
@@ -92,5 +92,11 @@ public class VGameMenu extends FDropDownMenu {
|
|||||||
SettingsScreen.show(false);
|
SettingsScreen.show(false);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
addItem(new FMenuItem("Show WinLose Overlay", null, new FEventHandler() {
|
||||||
|
@Override
|
||||||
|
public void handleEvent(FEvent e) {
|
||||||
|
MatchController.instance.showWinlose();
|
||||||
|
}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ public class VZoneDisplay extends VCardDisplayArea {
|
|||||||
|
|
||||||
private void setRevealedPanel(int idx) {
|
private void setRevealedPanel(int idx) {
|
||||||
try {
|
try {
|
||||||
revealedPanel = cardPanels.get(idx); //??? on network match, triggered by card ability
|
revealedPanel = cardPanels.get(idx); //on network match, when zoomed and cast a card would randomly trigger the bug
|
||||||
} catch (ArrayIndexOutOfBoundsException e) {
|
} catch (Exception e) { //before it was arrayindexoutofbounds, then indexoutofbounds, so just use a general exception
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package forge.screens.match.winlose;
|
package forge.screens.match.winlose;
|
||||||
|
|
||||||
|
import forge.Forge;
|
||||||
import forge.game.GameView;
|
import forge.game.GameView;
|
||||||
|
import forge.game.player.PlayerView;
|
||||||
import forge.screens.match.MatchController;
|
import forge.screens.match.MatchController;
|
||||||
import forge.toolbox.FEvent;
|
import forge.toolbox.FEvent;
|
||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
@@ -14,12 +16,18 @@ import forge.toolbox.FEvent.FEventHandler;
|
|||||||
public class ControlWinLose {
|
public class ControlWinLose {
|
||||||
private final ViewWinLose view;
|
private final ViewWinLose view;
|
||||||
protected final GameView lastGame;
|
protected final GameView lastGame;
|
||||||
|
private int humancount;
|
||||||
|
|
||||||
/** @param v   ViewWinLose
|
/** @param v   ViewWinLose
|
||||||
* @param match */
|
* @param match */
|
||||||
public ControlWinLose(final ViewWinLose v, GameView game) {
|
public ControlWinLose(final ViewWinLose v, GameView game) {
|
||||||
view = v;
|
view = v;
|
||||||
lastGame = game;
|
lastGame = game;
|
||||||
|
humancount = 0;
|
||||||
|
for(PlayerView p: game.getPlayers()){
|
||||||
|
if (!p.isAI())
|
||||||
|
humancount++;
|
||||||
|
}
|
||||||
addListeners();
|
addListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,6 +54,8 @@ public class ControlWinLose {
|
|||||||
view.getBtnQuit().setEnabled(false);
|
view.getBtnQuit().setEnabled(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if(humancount == 0)
|
||||||
|
view.getBtnRestart().setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Action performed when "continue" button is pressed in default win/lose UI. */
|
/** Action performed when "continue" button is pressed in default win/lose UI. */
|
||||||
@@ -72,6 +82,8 @@ public class ControlWinLose {
|
|||||||
try { MatchController.getHostedMatch().endCurrentGame();
|
try { MatchController.getHostedMatch().endCurrentGame();
|
||||||
} catch (NullPointerException e) {}
|
} catch (NullPointerException e) {}
|
||||||
view.hide();
|
view.hide();
|
||||||
|
if(humancount == 0)
|
||||||
|
Forge.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView<FButton> {
|
|||||||
private static final float GAP_Y_FACTOR = 0.02f;
|
private static final float GAP_Y_FACTOR = 0.02f;
|
||||||
|
|
||||||
private final FButton btnContinue, btnRestart, btnQuit;
|
private final FButton btnContinue, btnRestart, btnQuit;
|
||||||
private final FLabel lblTitle, lblLog, lblStats, btnCopyLog;
|
private final FLabel lblTitle, lblLog, lblStats, btnCopyLog, btnMinimize;
|
||||||
private final FTextArea txtLog;
|
private final FTextArea txtLog;
|
||||||
private final OutcomesPanel pnlOutcomes;
|
private final OutcomesPanel pnlOutcomes;
|
||||||
private final GameView game;
|
private final GameView game;
|
||||||
@@ -114,6 +114,12 @@ public class ViewWinLose extends FOverlay implements IWinLoseView<FButton> {
|
|||||||
}
|
}
|
||||||
}).build());
|
}).build());
|
||||||
|
|
||||||
|
btnMinimize = add(new FLabel.ButtonBuilder().text("Minimize").font(FSkinFont.get(12)).command(new FEventHandler() {
|
||||||
|
@Override
|
||||||
|
public void handleEvent(FEvent e) {
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
}).build());
|
||||||
lblTitle.setText(composeTitle(game0));
|
lblTitle.setText(composeTitle(game0));
|
||||||
|
|
||||||
showGameOutcomeSummary();
|
showGameOutcomeSummary();
|
||||||
@@ -200,6 +206,7 @@ public class ViewWinLose extends FOverlay implements IWinLoseView<FButton> {
|
|||||||
float y2 = height - dy - h;
|
float y2 = height - dy - h;
|
||||||
btnCopyLog.setBounds(width / 4, y2, width / 2, h);
|
btnCopyLog.setBounds(width / 4, y2, width / 2, h);
|
||||||
txtLog.setBounds(x, y, w, y2 - y - dy);
|
txtLog.setBounds(x, y, w, y2 - y - dy);
|
||||||
|
btnMinimize.setBounds(0, 0, width, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class OutcomesPanel extends FContainer {
|
private static class OutcomesPanel extends FContainer {
|
||||||
|
|||||||
@@ -182,6 +182,9 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards {
|
|||||||
return true; //if not in game, card can be shown
|
return true; //if not in game, card can be shown
|
||||||
}
|
}
|
||||||
if(GuiBase.getInterface().isLibgdxPort()){
|
if(GuiBase.getInterface().isLibgdxPort()){
|
||||||
|
if(gameView.isGameOver()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if(spectator!=null) { //workaround fix!! this is needed on above code or it will
|
if(spectator!=null) { //workaround fix!! this is needed on above code or it will
|
||||||
gameControllers.remove(spectator); //bug the UI! remove spectator here since its must not be here...
|
gameControllers.remove(spectator); //bug the UI! remove spectator here since its must not be here...
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -295,6 +295,7 @@ public class HostedMatch {
|
|||||||
|
|
||||||
public void endCurrentGame() {
|
public void endCurrentGame() {
|
||||||
if (game == null) { return; }
|
if (game == null) { return; }
|
||||||
|
boolean isMatchOver = game.getView().isMatchOver();
|
||||||
|
|
||||||
game = null;
|
game = null;
|
||||||
|
|
||||||
@@ -304,7 +305,10 @@ public class HostedMatch {
|
|||||||
humanController.getGui().clearAutoYields();
|
humanController.getGui().clearAutoYields();
|
||||||
}
|
}
|
||||||
|
|
||||||
humanController.getGui().afterGameEnd();
|
if (humanCount > 0) //conceded
|
||||||
|
humanController.getGui().afterGameEnd();
|
||||||
|
else if (!GuiBase.getInterface().isLibgdxPort()||!isMatchOver)
|
||||||
|
humanController.getGui().afterGameEnd();
|
||||||
}
|
}
|
||||||
humanControllers.clear();
|
humanControllers.clear();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user