diff --git a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java index c768247e03e..81a5f72acc5 100644 --- a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java +++ b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java @@ -166,7 +166,14 @@ public class GameEntityCounterTable extends ForwardingTable, Ga for (Map.Entry, Map> e : values.entrySet()) { boolean remember = cause != null && cause.hasParam("RememberPut"); for (Map.Entry ec : e.getValue().entrySet()) { - gm.getKey().addCounterInternal(ec.getKey(), ec.getValue(), e.getKey().orNull(), true, result, runParams); + Integer value = ec.getValue(); + if (value == null) { + continue; + } + if (cause != null && cause.hasParam("MaxFromEffect")) { + value = Math.min(value, Integer.parseInt(cause.getParam("MaxFromEffect")) - gm.getKey().getCounters(ec.getKey())); + } + gm.getKey().addCounterInternal(ec.getKey(), value, e.getKey().orNull(), true, result, runParams); if (remember && ec.getValue() >= 1) { cause.getHostCard().addRemembered(gm.getKey()); }