Fix Card Display on Network Client

Adventure, Flip, Transform, Manifest, Morph etc display properly on Client Side (fix #159)
Also Fix Aura Display

I don't encounter issue #512 anyomre but I leave it open (limited testing)
This commit is contained in:
Anthony Calosa
2020-04-30 06:20:05 +08:00
parent 2e3e3537fb
commit c5aa8cfae7
10 changed files with 97 additions and 14 deletions

View File

@@ -361,6 +361,21 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
return processCards(event.blockers, cardsUpdate);
}
@Override
public Void visit(final GameEventCombatUpdate event) {
if (!GuiBase.isNetworkplay())
return null; //not needed if single player only...
final CardCollection cards = new CardCollection();
cards.addAll(event.attackers);
cards.addAll(event.blockers);
refreshFieldUpdate = true;
processCards(cards, cardsRefreshDetails);
return processCards(cards, cardsUpdate);
}
@Override
public Void visit(final GameEventCardChangeZone event) {
if(GuiBase.getInterface().isLibgdxPort()) {
@@ -373,6 +388,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
@Override
public Void visit(final GameEventCardStatsChanged event) {
refreshFieldUpdate = true;
processCards(event.cards, cardsRefreshDetails);
return processCards(event.cards, cardsUpdate);
}
@@ -397,6 +413,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
@Override
public Void visit(final GameEventTokenStateUpdate event) {
refreshFieldUpdate = true;
processCards(event.cards, cardsRefreshDetails);
return processCards(event.cards, cardsUpdate);
}

View File

@@ -26,6 +26,7 @@ import forge.game.card.CardPredicates.Presets;
import forge.game.combat.AttackingBand;
import forge.game.combat.Combat;
import forge.game.combat.CombatUtil;
import forge.game.event.GameEventCombatUpdate;
import forge.game.keyword.Keyword;
import forge.game.player.Player;
import forge.game.player.PlayerView;
@@ -335,6 +336,9 @@ public class InputAttack extends InputSyncronizedBase {
updatePrompt();
if (combat != null)
getController().getGame().fireEvent(new GameEventCombatUpdate(combat.getAttackers(), combat.getAllBlockers()));
getController().getGui().showCombat(); // redraw sword icons
}
}

View File

@@ -26,6 +26,7 @@ import forge.game.card.CardView;
import forge.game.combat.Combat;
import forge.game.combat.CombatUtil;
import forge.game.event.GameEventCombatChanged;
import forge.game.event.GameEventCombatUpdate;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
import forge.player.PlayerControllerHuman;
@@ -89,6 +90,9 @@ public class InputBlock extends InputSyncronizedBase {
showMessage(message);
}
if (combat != null)
getController().getGame().fireEvent(new GameEventCombatUpdate(combat.getAttackers(), combat.getAllBlockers()));
getController().getGui().showCombat();
}