From ca9f6c2f8db86924abf9d5800c1f89fdb06947cf Mon Sep 17 00:00:00 2001 From: Chris H Date: Mon, 7 Oct 2024 22:23:00 -0400 Subject: [PATCH] Add Rampaging Soulrager --- .../main/java/forge/game/ability/AbilityUtils.java | 14 +++++++++++++- .../cardsfolder/upcoming/rampaging_soulrager.txt | 7 +++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/rampaging_soulrager.txt diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index bc9209c2e0e..2de0c3815ee 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -3,7 +3,6 @@ import com.google.common.base.Functions; import com.google.common.collect.*; import com.google.common.math.IntMath; - import forge.card.CardStateName; import forge.card.CardType; import forge.card.ColorSet; @@ -2510,6 +2509,19 @@ public static int xCount(Card c, final String s, final CardTraitBase ctb) { return doXMath(CardLists.getValidCardCount(game.getLeftGraveyardThisTurn(), validFilter, player, c, ctb), expr, c, ctb); } + // Count$UnlockedDoors + if (sq[0].startsWith("UnlockedDoors")) { + final String[] workingCopy = l[0].split(" ", 2); + final String validFilter = workingCopy[1]; + + int unlocked = 0; + for (Card doorCard : CardLists.getValidCards(player.getCardsIn(ZoneType.Battlefield), validFilter, player, c, ctb)) { + unlocked += doorCard.getUnlockedRooms().size(); + } + + return doXMath(unlocked, expr, c, ctb); + } + // Manapool if (sq[0].startsWith("ManaPool")) { final String color = l[0].split(":")[1]; diff --git a/forge-gui/res/cardsfolder/upcoming/rampaging_soulrager.txt b/forge-gui/res/cardsfolder/upcoming/rampaging_soulrager.txt new file mode 100644 index 00000000000..af9fc947061 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rampaging_soulrager.txt @@ -0,0 +1,7 @@ +Name:Rampaging Soulrager +ManaCost:2 R +Types:Creature Spirit +PT:1/4 +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | CheckSVar$ X | SVarCompare$ GE2 | Description$ CARDNAME gets +3/+0 as long as there are two or more unlocked doors among Rooms you control. +SVar:X:Count$UnlockedDoors Card.Room+YouCtrl +Oracle:Rampaging Soulrager gets +3/+0 as long as there are two or more unlocked doors among Rooms you control.