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.assets.FSkinColor;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
import forge.match.MatchUtil;
|
||||
import forge.screens.match.MatchController;
|
||||
|
||||
public abstract class FOverlay extends FContainer {
|
||||
@@ -76,7 +75,7 @@ public abstract class FOverlay extends FContainer {
|
||||
|
||||
if (visible0) {
|
||||
//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);
|
||||
}
|
||||
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.GameEventGameFinished;
|
||||
import forge.game.event.GameEventGameOutcome;
|
||||
import forge.game.event.GameEventGameStarted;
|
||||
import forge.game.event.GameEventManaPool;
|
||||
import forge.game.event.GameEventPlayerControl;
|
||||
import forge.game.event.GameEventPlayerLivesChanged;
|
||||
@@ -79,12 +78,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
||||
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);
|
||||
@Override
|
||||
public Void visit(final GameEventTurnPhase ev) {
|
||||
|
||||
@@ -182,7 +182,6 @@ public class MatchUtil {
|
||||
LocalGameView gameView = controller.getGameView();
|
||||
if (humanCount == 0) {
|
||||
currentPlayer = p;
|
||||
gameView.startUpdateDelay(); //delay updating views until game finishes initializing
|
||||
}
|
||||
game.subscribeToEvents(new FControlGameEventHandler(gameView, humanCount == 0));
|
||||
gameViews.add(gameView);
|
||||
@@ -194,7 +193,6 @@ public class MatchUtil {
|
||||
LocalGameView gameView = new WatchLocalGame(GuiBase.getInterface(), game);
|
||||
currentPlayer = sortedPlayers.get(0);
|
||||
gameView.setLocalPlayer(currentPlayer);
|
||||
gameView.startUpdateDelay();
|
||||
game.subscribeToEvents(new FControlGameEventHandler(gameView, true));
|
||||
gameViews.add(gameView);
|
||||
}
|
||||
|
||||
@@ -38,7 +38,6 @@ public abstract class LocalGameView implements IGameView {
|
||||
protected final InputQueue inputQueue;
|
||||
protected final InputProxy inputProxy;
|
||||
private PlayerView localPlayerView;
|
||||
private int updateDelays;
|
||||
|
||||
public LocalGameView(IGuiBase gui0, Game game0) {
|
||||
game = game0;
|
||||
@@ -365,9 +364,7 @@ public abstract class LocalGameView implements IGameView {
|
||||
PlayerView view = MatchUtil.players.get(p.getId());
|
||||
if (view == null) {
|
||||
view = new PlayerView(p.getLobbyPlayer(), p.getId());
|
||||
if (updateDelays == 0) {
|
||||
writePlayerToView(p, view);
|
||||
}
|
||||
writePlayerToView(p, view);
|
||||
MatchUtil.players.put(p, view);
|
||||
}
|
||||
return view;
|
||||
@@ -408,26 +405,13 @@ public abstract class LocalGameView implements IGameView {
|
||||
CardView view = MatchUtil.cards.get(c.getId());
|
||||
if (view == null) {
|
||||
view = new CardView(c.getId());
|
||||
if (updateDelays == 0) {
|
||||
writeCardToView(c, view, MatchUtil.getGameView());
|
||||
}
|
||||
writeCardToView(c, view, MatchUtil.getGameView());
|
||||
MatchUtil.cards.put(c, view);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
public void startUpdateDelay() {
|
||||
updateDelays++;
|
||||
}
|
||||
public void endUpdateDelay() {
|
||||
if (updateDelays > 0 && --updateDelays == 0) {
|
||||
updateViews();
|
||||
}
|
||||
}
|
||||
|
||||
public void updateViews() {
|
||||
if (updateDelays > 0) { return; }
|
||||
|
||||
for (Player p : MatchUtil.players.getKeys()) {
|
||||
writePlayerToView(p, getPlayerView(p));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user