diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index 42724d99536..4df674a431f 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -610,6 +610,8 @@ public final class StaticAbilityContinuous { if (controllerMayPlay) { affectedCard.setMayPlay(controller, mayPlayWithoutManaCost, mayPlayIgnoreColor); } + + affectedCard.updateStateForView(); } return affectedCards; diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java index 853ea6f835e..bdbb20d8f55 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java @@ -60,20 +60,32 @@ public class TriggerHandler { game.forEachCardInGame(new Visitor() { @Override public void visit(Card c) { + boolean changed = false; for (int i = 0; i < c.getTriggers().size(); i++) { Trigger trigger = c.getTriggers().get(i); if (trigger.isTemporary()) { c.removeTrigger(trigger); + changed = true; i--; } } + if (changed) { + c.updateStateForView(); + } } }); game.forEachCardInGame(new Visitor() { @Override public void visit(Card c) { + boolean changed = false; for (int i = 0; i < c.getTriggers().size(); i++) { - c.getTriggers().get(i).setTemporarilySuppressed(false); + if (c.getTriggers().get(i).isSuppressed()) { + c.getTriggers().get(i).setTemporarilySuppressed(false); + changed = true; + } + } + if (changed) { + c.updateStateForView(); } } });