diff --git a/forge-ai/src/main/java/forge/ai/GameState.java b/forge-ai/src/main/java/forge/ai/GameState.java index 4b0a7f0274a..b7336ca66e8 100644 --- a/forge-ai/src/main/java/forge/ai/GameState.java +++ b/forge-ai/src/main/java/forge/ai/GameState.java @@ -15,7 +15,6 @@ import forge.card.MagicColor; import forge.card.mana.ManaAtom; import forge.game.Game; import forge.game.GameEntity; -import forge.game.GameObject; import forge.game.ability.AbilityFactory; import forge.game.ability.effects.DetachedCardEffect; import forge.game.card.Card; @@ -862,9 +861,7 @@ public abstract class GameState { } if (sa.hasParam("RememberTargets")) { - for (final GameObject o : sa.getTargets()) { - sa.getHostCard().addRemembered(o); - } + sa.getHostCard().addRemembered(sa.getTargets()); } } diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 99c6671a1be..6b6844288da 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1245,6 +1245,8 @@ public class GameAction { c.updateAbilityTextForView(); // only update keywords and text for view to avoid flickering } + // TODO filter out old copies from zone change + if (runEvents && !affectedCards.isEmpty()) { game.fireEvent(new GameEventCardStatsChanged(affectedCards)); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 927454d398e..7c1975016e1 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -503,7 +503,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { if (game != null) { // update Type, color and keywords again if they have changed if (!changedCardTypes.isEmpty()) { - currentState.getView().updateType(currentState); + updateTypesForView();; } updateColorForView();