From 39d2362eb56e70c47e0b4964a7730a209b7e4bea Mon Sep 17 00:00:00 2001 From: Tim Mocny Date: Sun, 6 Feb 2022 04:57:10 +0000 Subject: [PATCH] some more getStackDescription improvements --- .../ability/effects/ChangeZoneEffect.java | 7 ---- .../game/ability/effects/PumpEffect.java | 32 +++++++++++++++---- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 25a6d66845b..d198fd92736 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -293,13 +293,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect { private static String changeKnownOriginStackDescription(final SpellAbility sa) { final StringBuilder sb = new StringBuilder(); final Card host = sa.getHostCard(); - - if (!(sa instanceof AbilitySub)) { - sb.append(host.getName()).append(" -"); - } - - sb.append(" "); - final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); ZoneType origin = null; if (sa.hasParam("Origin")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index 162572897cd..e6703bc7c29 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -22,6 +22,7 @@ import forge.game.card.CardUtil; import forge.game.event.GameEventCardStatsChanged; import forge.game.player.Player; import forge.game.player.PlayerCollection; +import forge.game.spellability.AbilitySub; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.util.Aggregates; @@ -158,12 +159,33 @@ public class PumpEffect extends SpellAbilityEffect { } if (tgts.size() > 0) { - for (final GameEntity c : tgts) { - sb.append(c).append(" "); + List keywords = Lists.newArrayList(); + if (sa.hasParam("KW")) { + if (sa.getParam("KW").equals("HIDDEN This card doesn't untap during your next untap step.")) { + if (sa instanceof AbilitySub) { + sb.append(tgts.size() == 1 ? "It doesn't " : "They don't "); + } else { + sb.append(Lang.joinHomogenous(tgts)).append(tgts.size() == 1 ? " doesn't " : " don't "); + } + sb.append("untap during "); + String whose = "your"; + for (GameEntity t : tgts) { + final Card c = (Card) t; + if (!(c.getOwner() == sa.getActivatingPlayer())) { + whose = (tgts.size() == 1 ? "its controller's" : "their controller's"); + break; + } + } + sb.append(whose).append(" next untap step."); + return sb.toString(); + } + keywords.addAll(Arrays.asList(sa.getParam("KW").split(" & "))); } + sb.append(Lang.joinHomogenous(tgts)).append(" "); + if (sa.hasParam("Radiance")) { - sb.append(" and each other ").append(sa.getParam("ValidTgts")) + sb.append("and each other ").append(sa.getParam("ValidTgts")) .append(" that shares a color with "); if (tgts.size() > 1) { sb.append("them "); @@ -172,10 +194,6 @@ public class PumpEffect extends SpellAbilityEffect { } } - List keywords = Lists.newArrayList(); - if (sa.hasParam("KW")) { - keywords.addAll(Arrays.asList(sa.getParam("KW").split(" & "))); - } final int atk = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumAtt"), sa, true); final int def = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumDef"), sa, true);