diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index cabed4c186a..1639ba7b241 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -213,14 +213,18 @@ public class GameAction { c.updateStateForView(); } + if (fromBattlefield && c.getCurrentStateName() != CardStateName.Original) { + // when a card leaves the battlefield, ensure it's in its original state + // (we need to do this on the object before copying it, or it won't work correctly e.g. + // on Transformed objects) + c.setState(CardStateName.Original, false); + } + copied = CardFactory.copyCard(c, false); copied.setUnearthed(c.isUnearthed()); copied.setTapped(false); - if (fromBattlefield) { - // when a card leaves the battlefield, ensure it's in its original state - copied.setState(CardStateName.Original, false); - } + for (final Trigger trigger : copied.getTriggers()) { trigger.setHostCard(copied); }