From 2c33bc7be9cd8a39aa24e23bc717fd868934e715 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Wed, 24 Jul 2024 10:34:31 +0200 Subject: [PATCH] Add ActivatorThisTurnCastEach (#5681) --- .../TriggerSpellAbilityCastOrCopy.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java index a4c6829cef9..8d4e8483f4b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java @@ -111,6 +111,27 @@ public class TriggerSpellAbilityCastOrCopy extends Trigger { return false; } } + if (hasParam("ActivatorThisTurnCastEach")) { + final String compare = getParam("ActivatorThisTurnCastEach"); + final String valid = getParamOrDefault("ValidCard", "Card"); + boolean found = false; + int right = Integer.parseInt(compare.substring(2)); + for (String v : valid.split(",")) { + if (!cast.isValid(v, getHostCard().getController(), getHostCard(), this)) { + continue; + } + List thisTurnCast = CardUtil.getThisTurnCast(v, getHostCard(), this, getHostCard().getController()); + thisTurnCast = CardLists.filterControlledByAsList(thisTurnCast, activator); + int left = thisTurnCast.size(); + if (Expressions.compare(left, compare, right)) { + found = true; + break; + } + } + if (!found) { + return false; + } + } } if (!matchesValidParam("ValidCard", cast)) { return false;