From eb5eb757a51239cc7899140a176a576217cf4696 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 22 Nov 2023 19:40:20 -0500 Subject: [PATCH] wayta_trainer_prodigy.txt and support --- .../main/java/forge/game/ability/AbilityUtils.java | 11 +++++++++++ .../staticability/StaticAbilityPanharmonicon.java | 4 ++++ .../cardsfolder/upcoming/wayta_trainer_prodigy.txt | 11 +++++++++++ 3 files changed, 26 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/wayta_trainer_prodigy.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 618ce70369b..b286ac79f22 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -737,6 +737,17 @@ else if (calcX[0].startsWith("Returned")) { else if (calcX[0].startsWith("Targeted")) { list = sa.findTargetedCards(); } + else if (calcX[0].startsWith("AllTargeted")) { + CardCollection all = new CardCollection(); + SpellAbility loopSA = sa.getRootAbility(); + while (loopSA != null) { + if (loopSA.usesTargeting()) { + all.addAll(loopSA.findTargetedCards()); + } + loopSA = loopSA.getSubAbility(); + } + list = all; + } else if (calcX[0].startsWith("ParentTargeted")) { SpellAbility parent = sa.getParentTargetingCard(); if (parent != null) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java index d1d850e1da5..cdede75f7c9 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java @@ -156,6 +156,10 @@ public static boolean applyPanharmoniconAbility(final StaticAbility stAb, final if (!stAb.matchesValidParam("ValidActivator", sa.getActivatingPlayer())) { return false; } + } else if (trigMode.equals(TriggerType.DamageDone) || trigMode.equals(TriggerType.DamageDoneOnce)) { + if (!stAb.matchesValidParam("ValidTarget", runParams.get(AbilityKey.DamageTarget))) { + return false; + } } return true; diff --git a/forge-gui/res/cardsfolder/upcoming/wayta_trainer_prodigy.txt b/forge-gui/res/cardsfolder/upcoming/wayta_trainer_prodigy.txt new file mode 100644 index 00000000000..b4f55cc0c13 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wayta_trainer_prodigy.txt @@ -0,0 +1,11 @@ +Name:Wayta, Trainer Prodigy +ManaCost:R G W +Types:Legendary Creature Human Warrior +PT:1/5 +K:Haste +A:AB$ Pump | Cost$ 2 G T | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ DBFight | ReduceCost$ X | StackDescription$ None | SpellDescription$ Target creature you control fights another target creature. +SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature | TargetUnique$ True | TgtPrompt$ Select another target creature +SVar:X:Count$Compare Y EQ2.2.0 +SVar:Y:AllTargeted$Valid Creature.YouCtrl +S:Mode$ Panharmonicon | ValidMode$ DamageDoneOnce,DamageDone | ValidTarget$ Creature.YouCtrl | ValidCard$ Permanent.YouCtrl | Description$ If a creature you control being dealt damage causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time. +Oracle:Haste\n{2}{G}, {T}: Target creature you control fights another target creature. This ability costs {2} less to activate if it targets two creatures you control.\nIf a creature you control being dealt damage causes a triggered ability of a permanent you control to trigger, that ability triggers an additional time.