From e0fec88cf27eef7f90ddff5912ddf805b371917e Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Thu, 19 Jan 2023 20:15:06 +0100 Subject: [PATCH] Fix Verrak --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 1 + .../src/main/java/forge/game/ability/AbilityUtils.java | 5 ----- .../forge/game/trigger/TriggerSpellAbilityCastOrCopy.java | 1 + forge-gui/res/cardsfolder/v/verrak_warped_sengir.txt | 2 +- .../src/main/java/forge/player/HumanPlaySpellAbility.java | 1 + 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index abfc9e97348..ec6b6636151 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -128,6 +128,7 @@ public class ComputerUtil { if (!sa.isCopied()) { sa.resetPaidHash(); + sa.setPaidLife(0); } sa = GameActionUtil.addExtraKeywordCost(sa); 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 f50ef6a651e..9df276d0a21 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1802,11 +1802,6 @@ public class AbilityUtils { final SpellAbility root = (SpellAbility) sa.getRootAbility().getTriggeringObject(AbilityKey.SpellAbility); return root == null ? 0 : root.getTotalManaSpent(); } - // Count$TriggeredLifeSpent - if (sq[0].equals("TriggeredLifeSpent")) { - final SpellAbility root = (SpellAbility) sa.getRootAbility().getTriggeringObject(AbilityKey.SpellAbility); - return root == null ? 0 : root.getAmountLifePaid(); - } // Count$ManaColorsPaid if (sq[0].equals("ManaColorsPaid")) { 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 fc8b0cc7160..56f6c3a0947 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java @@ -287,6 +287,7 @@ public class TriggerSpellAbilityCastOrCopy extends Trigger { } sa.setTriggeringObject(AbilityKey.SpellAbilityTargets, saTargets); } + sa.setTriggeringObject(AbilityKey.LifeAmount, castSA.getAmountLifePaid()); sa.setTriggeringObjectsFrom( runParams, AbilityKey.Player, diff --git a/forge-gui/res/cardsfolder/v/verrak_warped_sengir.txt b/forge-gui/res/cardsfolder/v/verrak_warped_sengir.txt index e6a3ae81777..89c4ee547fb 100644 --- a/forge-gui/res/cardsfolder/v/verrak_warped_sengir.txt +++ b/forge-gui/res/cardsfolder/v/verrak_warped_sengir.txt @@ -7,5 +7,5 @@ K:Deathtouch K:Lifelink T:Mode$ AbilityCast | ValidActivatingPlayer$ You | ValidSA$ SpellAbility.nonManaAbility | Condition$ LifePaid | TriggerZones$ Battlefield | Execute$ TrigCopySpell | TriggerDescription$ Whenever you activate an ability that isn't a mana ability, if life was paid to activate it, you may pay that much life again. If you do, copy that ability. You may choose new targets for the copy. SVar:TrigCopySpell:AB$ CopySpellAbility | Cost$ PayLife | Defined$ TriggeredSpellAbility | MayChooseTarget$ True -SVar:X:Count$TriggeredLifeSpent +SVar:X:TriggerCount$LifeAmount Oracle:Flying, deathtouch, lifelink\nWhenever you activate an ability that isn't a mana ability, if life was paid to activate it, you may pay that much life again. If you do, copy that ability. You may choose new targets for the copy. diff --git a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java index f5010b2f039..69d53309c7e 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java +++ b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java @@ -94,6 +94,7 @@ public class HumanPlaySpellAbility { if (!ability.isCopied()) { ability.resetPaidHash(); + ability.setPaidLife(0); } ability = GameActionUtil.addExtraKeywordCost(ability);