Merge branch 'master' into 'master'

Fix local Multiplayer Phase Indicator

See merge request core-developers/forge!5491
This commit is contained in:
Michael Kamensky
2021-10-03 04:32:42 +00:00
3 changed files with 18 additions and 25 deletions

View File

@@ -51,7 +51,6 @@ import forge.player.PlayerZoneUpdates;
import forge.screens.match.views.VAssignCombatDamage; import forge.screens.match.views.VAssignCombatDamage;
import forge.screens.match.views.VAssignGenericAmount; import forge.screens.match.views.VAssignGenericAmount;
import forge.screens.match.views.VPhaseIndicator; import forge.screens.match.views.VPhaseIndicator;
import forge.screens.match.views.VPhaseIndicator.PhaseLabel;
import forge.screens.match.views.VPlayerPanel; import forge.screens.match.views.VPlayerPanel;
import forge.screens.match.views.VPlayerPanel.InfoTab; import forge.screens.match.views.VPlayerPanel.InfoTab;
import forge.screens.match.views.VPrompt; import forge.screens.match.views.VPrompt;
@@ -213,21 +212,8 @@ public class MatchController extends AbstractGuiGame {
@Override @Override
public void updatePhase(boolean saveState) { public void updatePhase(boolean saveState) {
final PlayerView p = getGameView().getPlayerTurn();
final PhaseType ph = getGameView().getPhase(); final PhaseType ph = getGameView().getPhase();
PhaseLabel lbl = null;
if(ph!=null) {
lbl = p == null ? null : view.getPlayerPanel(p).getPhaseIndicator().getLabel(ph);
} else {
System.err.println("getGameView().getPhase() returned 'null'");
}
view.resetAllPhaseButtons();
if (lbl != null) {
lbl.setActive(true);
}
if(GuiBase.isNetworkplay()) if(GuiBase.isNetworkplay())
checkStack(); checkStack();

View File

@@ -1,11 +1,7 @@
package forge.screens.match; package forge.screens.match;
import java.util.HashMap; import java.util.*;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set;
import forge.animation.ForgeAnimation; import forge.animation.ForgeAnimation;
import forge.assets.FImage; import forge.assets.FImage;
@@ -358,6 +354,15 @@ public class MatchScreen extends FScreen {
final GameView game = MatchController.instance.getGameView(); final GameView game = MatchController.instance.getGameView();
if (game == null) { return; } if (game == null) { return; }
if (game.getPlayerTurn() != null && game.getPhase() != null) {
//reset phase labels
resetAllPhaseButtons();
//set phaselabel
final PhaseLabel phaseLabel = getPlayerPanel(game.getPlayerTurn()).getPhaseIndicator().getLabel(game.getPhase());
if (phaseLabel != null)
phaseLabel.setActive(true);
}
if(gameMenu!=null) { if(gameMenu!=null) {
if(gameMenu.getChildCount()>3){ if(gameMenu.getChildCount()>3){
if(viewWinLose == null) { if(viewWinLose == null) {
@@ -395,9 +400,10 @@ public class MatchScreen extends FScreen {
for (CardView card : playerPanel.getField().getRow1().getOrderedCards()) { for (CardView card : playerPanel.getField().getRow1().getOrderedCards()) {
if (pairedCards.contains(card)) { continue; } //prevent arrows going both ways if (pairedCards.contains(card)) { continue; } //prevent arrows going both ways
CardView paired = card.getPairedWith(); if (card != null) {
if (paired != null) { if (card.getPairedWith() != null) {
TargetingOverlay.drawArrow(g, card, paired); TargetingOverlay.drawArrow(g, card, card.getPairedWith());
}
} }
} }
} }

View File

@@ -97,11 +97,12 @@ public class VStack extends FDropDown {
public void checkEmptyStack() { //sort the bug in client when desynch happens public void checkEmptyStack() { //sort the bug in client when desynch happens
final FCollectionView<StackItemView> stack = MatchController.instance.getGameView().getStack(); final FCollectionView<StackItemView> stack = MatchController.instance.getGameView().getStack();
if(stack!=null) if(stack!=null) {
if(isVisible() && stack.isEmpty()) { //visible stack but empty already if (isVisible() && stack.isEmpty()) { //visible stack but empty already
hide();
getMenuTab().setText(Localizer.getInstance().getMessage("lblStack") + " (" + 0 + ")"); getMenuTab().setText(Localizer.getInstance().getMessage("lblStack") + " (" + 0 + ")");
MatchController.getView().getStack().hide();
} }
}
} }
@Override @Override