diff --git a/src/main/java/forge/card/ability/effects/PumpEffect.java b/src/main/java/forge/card/ability/effects/PumpEffect.java index 2cbc637578b..92ec1fa6bde 100644 --- a/src/main/java/forge/card/ability/effects/PumpEffect.java +++ b/src/main/java/forge/card/ability/effects/PumpEffect.java @@ -27,16 +27,23 @@ public class PumpEffect extends SpellAbilityEffect { return; } final GameState game = sa.getActivatingPlayer().getGame(); + final long timestamp = game.getNextTimestamp(); + final ArrayList kws = new ArrayList(); + + for (String kw : keywords) { + if (kw.startsWith("HIDDEN")) { + applyTo.addHiddenExtrinsicKeyword(kw); + } else { + kws.add(kw); + if (kw.equals("Suspend")) { + applyTo.setSuspend(true); + } + } + } applyTo.addTempAttackBoost(a); applyTo.addTempDefenseBoost(d); - - for (int i = 0; i < keywords.size(); i++) { - applyTo.addExtrinsicKeyword(keywords.get(i)); - if (keywords.get(i).equals("Suspend")) { - applyTo.setSuspend(true); - } - } + applyTo.addChangedCardKeywords(kws, null, false, timestamp); if (!sa.hasParam("Permanent")) { // If not Permanent, remove Pumped at EOT @@ -49,9 +56,12 @@ public class PumpEffect extends SpellAbilityEffect { applyTo.addTempDefenseBoost(-1 * d); if (keywords.size() > 0) { - for (int i = 0; i < keywords.size(); i++) { - applyTo.removeExtrinsicKeyword(keywords.get(i)); + for (String kw : keywords) { + if (kw.startsWith("HIDDEN")) { + applyTo.removeHiddenExtrinsicKeyword(kw); + } } + applyTo.removeChangedCardKeywords(timestamp); } } };