diff --git a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java index 1e81b78a21b..ef0db0e993f 100644 --- a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java +++ b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java @@ -157,8 +157,13 @@ public class GameEntityCounterTable extends ForwardingTable, Ga // Apply counter after replacement effect 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); + if (remember && ec.getValue() >= 1) { + cause.getHostCard().addRemembered(gm.getKey()); + } + } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutAllEffect.java index 06a38c522e2..6c65684f5cf 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutAllEffect.java @@ -94,6 +94,13 @@ public class CountersPutAllEffect extends SpellAbilityEffect { } table.replaceCounterEffect(game, sa, true); + + //for cards like Agitator Ant/Spectacular Showdown that care if counters were actually put on, + // instead use "RememberPut" – this checks after replacement + if (sa.hasParam("RememberCards")) { // remembers whether counters actually placed or not + host.addRemembered(table.columnKeySet()); + } + } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index c6b275ab8d7..1725a655fdc 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -631,7 +631,9 @@ public class CountersPutEffect extends SpellAbilityEffect { } } } - if (sa.hasParam("RememberCards")) { + //for cards like Agitator Ant/Spectacular Showdown that care if counters were actually put on, + // instead use "RememberPut" – this checks after replacement + if (sa.hasParam("RememberCards")) { // remembers whether counters actually placed or not card.addRemembered(table.columnKeySet()); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/GoadEffect.java b/forge-game/src/main/java/forge/game/ability/effects/GoadEffect.java index 69efb0dfe33..ad5116f444e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/GoadEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/GoadEffect.java @@ -16,12 +16,13 @@ public class GoadEffect extends SpellAbilityEffect { @Override protected String getStackDescription(SpellAbility sa) { final Player player = sa.getActivatingPlayer(); - List tgt = getTargetCards(sa); - if (tgt.size() <= 0) { + List tgt = getDefinedCardsOrTargeted(sa, "Defined"); + String tgtString = sa.getParamOrDefault("DefinedDesc", Lang.joinHomogenous(tgt)); + if (tgtString.isEmpty()) { return ""; } else { final StringBuilder sb = new StringBuilder(); - sb.append(player).append(" goads ").append(Lang.joinHomogenous(tgt)).append("."); + sb.append(player).append(" goads ").append(tgtString).append("."); return sb.toString(); } } diff --git a/forge-gui/res/cardsfolder/a/agitator_ant.txt b/forge-gui/res/cardsfolder/a/agitator_ant.txt index d3575071925..8fc7d91cfc4 100644 --- a/forge-gui/res/cardsfolder/a/agitator_ant.txt +++ b/forge-gui/res/cardsfolder/a/agitator_ant.txt @@ -4,7 +4,7 @@ Types:Creature Insect PT:2/2 T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRepeat | TriggerDescription$ At the beginning of your end step, each player may put two +1/+1 counters on a creature they control. Goad each creature that had counters put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.) SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBPutCounter | SubAbility$ DBGoad -SVar:DBPutCounter:DB$ PutCounter | Chooser$ Remembered | Choices$ Creature.RememberedPlayerCtrl | ChoiceTitle$ You may choose a creature you control | ChoiceOptional$ True | CounterType$ P1P1 | CounterNum$ 2 | RememberCards$ True +SVar:DBPutCounter:DB$ PutCounter | Chooser$ Remembered | Choices$ Creature.RememberedPlayerCtrl | ChoiceTitle$ You may choose a creature you control | ChoiceOptional$ True | CounterType$ P1P1 | CounterNum$ 2 | RememberPut$ True SVar:DBGoad:DB$ Goad | Defined$ Remembered | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHas:Ability$Counters diff --git a/forge-gui/res/cardsfolder/upcoming/spectacular_showdown.txt b/forge-gui/res/cardsfolder/upcoming/spectacular_showdown.txt new file mode 100644 index 00000000000..15f6613efc6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/spectacular_showdown.txt @@ -0,0 +1,9 @@ +Name:Spectacular Showdown +ManaCost:1 R +Types:Sorcery +A:SP$ PutCounter | ValidTgts$ Creature | CounterType$ Double Strike | RememberPut$ True | SubAbility$ DBGoad | SpellDescription$ Put a double strike counter on target creature, then goad each creature that had a double strike counter put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.) +SVar:DBGoad:DB$ Goad | Defined$ Remembered | DefinedDesc$ each creature that had a double strike counter put on it this way | SubAbility$ DBCleanup +A:SP$ PutCounterAll | PrecostDesc$ Overload | Cost$ 4 R R R | ValidCards$ Creature | CounterType$ Double Strike | RememberPut$ True | SubAbility$ DBGoad | CostDesc$ {4}{R}{R}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Put a double strike counter on each creature. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Counters +Oracle:Put a double strike counter on target creature, then goad each creature that had a double strike counter put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)\nOverload {4}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change "target" in its text to "each.")