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 e88d4af3292..8424f34c356 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -4661,6 +4661,8 @@ public class Card extends GameEntity implements Comparable, IHasSVars { getGame().getTriggerHandler().registerActiveTrigger(this, false); getGame().getTriggerHandler().runTrigger(TriggerType.PhaseIn, runParams, false); } + + game.updateLastStateForCard(this); return true; } diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index b477bcc6010..a6b61a78995 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -47,6 +47,11 @@ public class CardProperty { final Card lki = game.getChangeZoneLKIInfo(card); final Player controller = lki.getController(); + // CR 702.25b if card is phased out it will not count unless specifically asked for + if (card.isPhasedOut() && !property.contains("phasedOut")) { + return false; + } + // by name can also have color names, so needs to happen before colors. if (property.startsWith("named")) { String name = TextUtil.fastReplace(property.substring(5), ";", ","); // for some legendary cards diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 1d57962e6ab..f6181cdf596 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -253,6 +253,8 @@ public final class CardUtil { newCopy.setCounters(Maps.newHashMap(in.getCounters())); newCopy.setColor(in.determineColor().getColor()); + newCopy.setPhasedOut(in.isPhasedOut()); + newCopy.setReceivedDamageFromThisTurn(in.getReceivedDamageFromThisTurn()); newCopy.setDamageHistory(in.getDamageHistory()); for (Card c : in.getBlockedThisTurn()) {