mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Prevent incorrectly preventing certain information being correct when first opening match screen
This commit is contained in:
@@ -10,7 +10,6 @@ import forge.Forge;
|
|||||||
import forge.Graphics;
|
import forge.Graphics;
|
||||||
import forge.assets.FSkinColor;
|
import forge.assets.FSkinColor;
|
||||||
import forge.assets.FSkinColor.Colors;
|
import forge.assets.FSkinColor.Colors;
|
||||||
import forge.match.MatchUtil;
|
|
||||||
import forge.screens.match.MatchController;
|
import forge.screens.match.MatchController;
|
||||||
|
|
||||||
public abstract class FOverlay extends FContainer {
|
public abstract class FOverlay extends FContainer {
|
||||||
@@ -76,7 +75,7 @@ public abstract class FOverlay extends FContainer {
|
|||||||
|
|
||||||
if (visible0) {
|
if (visible0) {
|
||||||
//rotate overlay to face top human player if needed
|
//rotate overlay to face top human player if needed
|
||||||
setRotate180(MatchUtil.getGame() != null && MatchController.getView().isTopHumanPlayerActive());
|
setRotate180(MatchController.getView() != null && MatchController.getView().isTopHumanPlayerActive());
|
||||||
overlays.push(this);
|
overlays.push(this);
|
||||||
}
|
}
|
||||||
else if (!hidingAll) { //hiding all handles cleaning up overlay collection
|
else if (!hidingAll) { //hiding all handles cleaning up overlay collection
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ import forge.game.event.GameEventCombatChanged;
|
|||||||
import forge.game.event.GameEventCombatEnded;
|
import forge.game.event.GameEventCombatEnded;
|
||||||
import forge.game.event.GameEventGameFinished;
|
import forge.game.event.GameEventGameFinished;
|
||||||
import forge.game.event.GameEventGameOutcome;
|
import forge.game.event.GameEventGameOutcome;
|
||||||
import forge.game.event.GameEventGameStarted;
|
|
||||||
import forge.game.event.GameEventManaPool;
|
import forge.game.event.GameEventManaPool;
|
||||||
import forge.game.event.GameEventPlayerControl;
|
import forge.game.event.GameEventPlayerControl;
|
||||||
import forge.game.event.GameEventPlayerLivesChanged;
|
import forge.game.event.GameEventPlayerLivesChanged;
|
||||||
@@ -79,12 +78,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
ev.visit(this);
|
ev.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Void visit(GameEventGameStarted event) {
|
|
||||||
gameView.endUpdateDelay(); //allow views to update once game starts
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final AtomicBoolean phaseUpdPlanned = new AtomicBoolean(false);
|
private final AtomicBoolean phaseUpdPlanned = new AtomicBoolean(false);
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventTurnPhase ev) {
|
public Void visit(final GameEventTurnPhase ev) {
|
||||||
|
|||||||
@@ -182,7 +182,6 @@ public class MatchUtil {
|
|||||||
LocalGameView gameView = controller.getGameView();
|
LocalGameView gameView = controller.getGameView();
|
||||||
if (humanCount == 0) {
|
if (humanCount == 0) {
|
||||||
currentPlayer = p;
|
currentPlayer = p;
|
||||||
gameView.startUpdateDelay(); //delay updating views until game finishes initializing
|
|
||||||
}
|
}
|
||||||
game.subscribeToEvents(new FControlGameEventHandler(gameView, humanCount == 0));
|
game.subscribeToEvents(new FControlGameEventHandler(gameView, humanCount == 0));
|
||||||
gameViews.add(gameView);
|
gameViews.add(gameView);
|
||||||
@@ -194,7 +193,6 @@ public class MatchUtil {
|
|||||||
LocalGameView gameView = new WatchLocalGame(GuiBase.getInterface(), game);
|
LocalGameView gameView = new WatchLocalGame(GuiBase.getInterface(), game);
|
||||||
currentPlayer = sortedPlayers.get(0);
|
currentPlayer = sortedPlayers.get(0);
|
||||||
gameView.setLocalPlayer(currentPlayer);
|
gameView.setLocalPlayer(currentPlayer);
|
||||||
gameView.startUpdateDelay();
|
|
||||||
game.subscribeToEvents(new FControlGameEventHandler(gameView, true));
|
game.subscribeToEvents(new FControlGameEventHandler(gameView, true));
|
||||||
gameViews.add(gameView);
|
gameViews.add(gameView);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ public abstract class LocalGameView implements IGameView {
|
|||||||
protected final InputQueue inputQueue;
|
protected final InputQueue inputQueue;
|
||||||
protected final InputProxy inputProxy;
|
protected final InputProxy inputProxy;
|
||||||
private PlayerView localPlayerView;
|
private PlayerView localPlayerView;
|
||||||
private int updateDelays;
|
|
||||||
|
|
||||||
public LocalGameView(IGuiBase gui0, Game game0) {
|
public LocalGameView(IGuiBase gui0, Game game0) {
|
||||||
game = game0;
|
game = game0;
|
||||||
@@ -365,9 +364,7 @@ public abstract class LocalGameView implements IGameView {
|
|||||||
PlayerView view = MatchUtil.players.get(p.getId());
|
PlayerView view = MatchUtil.players.get(p.getId());
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
view = new PlayerView(p.getLobbyPlayer(), p.getId());
|
view = new PlayerView(p.getLobbyPlayer(), p.getId());
|
||||||
if (updateDelays == 0) {
|
|
||||||
writePlayerToView(p, view);
|
writePlayerToView(p, view);
|
||||||
}
|
|
||||||
MatchUtil.players.put(p, view);
|
MatchUtil.players.put(p, view);
|
||||||
}
|
}
|
||||||
return view;
|
return view;
|
||||||
@@ -408,26 +405,13 @@ public abstract class LocalGameView implements IGameView {
|
|||||||
CardView view = MatchUtil.cards.get(c.getId());
|
CardView view = MatchUtil.cards.get(c.getId());
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
view = new CardView(c.getId());
|
view = new CardView(c.getId());
|
||||||
if (updateDelays == 0) {
|
|
||||||
writeCardToView(c, view, MatchUtil.getGameView());
|
writeCardToView(c, view, MatchUtil.getGameView());
|
||||||
}
|
|
||||||
MatchUtil.cards.put(c, view);
|
MatchUtil.cards.put(c, view);
|
||||||
}
|
}
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startUpdateDelay() {
|
|
||||||
updateDelays++;
|
|
||||||
}
|
|
||||||
public void endUpdateDelay() {
|
|
||||||
if (updateDelays > 0 && --updateDelays == 0) {
|
|
||||||
updateViews();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateViews() {
|
public void updateViews() {
|
||||||
if (updateDelays > 0) { return; }
|
|
||||||
|
|
||||||
for (Player p : MatchUtil.players.getKeys()) {
|
for (Player p : MatchUtil.players.getKeys()) {
|
||||||
writePlayerToView(p, getPlayerView(p));
|
writePlayerToView(p, getPlayerView(p));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user