From 5a4a4bafc6d75c0c81ca5ccfc7d13360e7b755a9 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Sun, 21 Apr 2024 15:09:46 +0200 Subject: [PATCH] CardFactoryUtil: fix Squad Trigger for Copy --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- forge-game/src/main/java/forge/game/card/CardProperty.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 59b1a65298c..b991cb0dc2e 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1806,7 +1806,7 @@ public class CardFactoryUtil { inst.addTrigger(parsedTrigger); } else if (keyword.startsWith("Squad")) { final String trigScript = "Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | " + - "ValidCard$ Card.Self+wasCast | CheckSVar$ SquadAmount | Secondary$ True | " + + "ValidCard$ Card.Self+linkedCastSA | CheckSVar$ SquadAmount | Secondary$ True | " + "TriggerDescription$ When this creature enters the battlefield, create that many tokens that " + "are copies of it."; final String abString = "DB$ CopyPermanent | Defined$ TriggeredCard | NumCopies$ SquadAmount"; diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index e7116463535..20c3a3ce852 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1810,6 +1810,13 @@ public class CardProperty { } else if (property.equals("couldAttackButNotAttacking")) { if (!game.getPhaseHandler().isPlayerTurn(controller)) return false; return CombatUtil.couldAttackButNotAttacking(combat, card); + } else if (property.equals("linkedCastSA")) { + if (card.getCastSA() == null) { + return false; + } + if (AbilityUtils.isUnlinkedFromCastSA(spellAbility, card)) { + return false; + } } else if (property.startsWith("kicked")) { // CR 607.2i check cost is linked if (AbilityUtils.isUnlinkedFromCastSA(spellAbility, card)) {