From 8c2c45dfe963334062cee5d93cccf4bd76e15f7d Mon Sep 17 00:00:00 2001 From: friarsol Date: Wed, 31 Jan 2024 19:29:33 -0500 Subject: [PATCH] Always use the original SA params when building a token script --- forge-ai/src/main/java/forge/ai/ability/AmassAi.java | 2 +- forge-game/src/main/java/forge/game/CardTraitBase.java | 4 ++++ .../src/main/java/forge/game/ability/effects/AmassEffect.java | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/AmassAi.java b/forge-ai/src/main/java/forge/ai/ability/AmassAi.java index c69ab0841a9..60eefabbae4 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AmassAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AmassAi.java @@ -34,7 +34,7 @@ public class AmassAi extends SpellAbilityAi { } final String type = sa.getParam("Type"); StringBuilder sb = new StringBuilder("b_0_0_"); - sb.append(type.toLowerCase()).append("_army"); + sb.append(sa.getOriginalParam("Type").toLowerCase()).append("_army"); final String tokenScript = sb.toString(); final int amount = AbilityUtils.calculateAmount(host, sa.getParamOrDefault("Num", "1"), sa); diff --git a/forge-game/src/main/java/forge/game/CardTraitBase.java b/forge-game/src/main/java/forge/game/CardTraitBase.java index 146c4d872e5..427b2c1468a 100644 --- a/forge-game/src/main/java/forge/game/CardTraitBase.java +++ b/forge-game/src/main/java/forge/game/CardTraitBase.java @@ -86,6 +86,10 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView, return mapParams.get(key); } + public String getOriginalParam(String key) { + return originalMapParams.get(key); + } + public boolean hasParam(String key) { return mapParams.containsKey(key); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java index b3044562f03..c55c6d84a89 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AmassEffect.java @@ -63,7 +63,7 @@ public class AmassEffect extends TokenEffectBase { MutableBoolean combatChanged = new MutableBoolean(false); StringBuilder sb = new StringBuilder("b_0_0_"); - sb.append(type.toLowerCase()).append("_army"); + sb.append(sa.getOriginalParam("Type").toLowerCase()).append("_army"); final Card result = TokenInfo.getProtoType(sb.toString(), sa, activator, false); // need to alter the token to add the Type from the Parameter