From e30d7bbaa2e9f2a55dbb195f07837be5356e1924 Mon Sep 17 00:00:00 2001 From: elcnesh Date: Tue, 1 Jul 2014 15:17:31 +0000 Subject: [PATCH] Fix Wanderwine Prophets. --- .../game/ability/effects/SacrificeEffect.java | 24 +++++++++++++++---- .../res/cardsfolder/w/wanderwine_prophets.txt | 8 +++---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java index 2eca6e53841..ba1a98a72b0 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java @@ -61,11 +61,16 @@ public class SacrificeEffect extends SpellAbilityEffect { final boolean destroy = sa.hasParam("Destroy"); final boolean remSacrificed = sa.hasParam("RememberSacrificed"); + final String remSVar = sa.getParam("RememberSacrificedSVar"); + int countSacrificed = 0; if (valid.equals("Self")) { if (game.getZoneOf(card).is(ZoneType.Battlefield)) { - if (game.getAction().sacrifice(card, sa) != null && remSacrificed) { - card.addRemembered(card); + if (game.getAction().sacrifice(card, sa) != null) { + countSacrificed++; + if (remSacrificed) { + card.addRemembered(card); + } } } } @@ -98,12 +103,23 @@ public class SacrificeEffect extends SpellAbilityEffect { runParams.put("Devoured", sac); game.getTriggerHandler().runTrigger(TriggerType.Devoured, runParams, false); } - if ( remSacrificed && (wasDestroyed || wasSacrificed) ) { - card.addRemembered(lKICopy); + if (wasDestroyed || wasSacrificed) { + countSacrificed++; + if (remSacrificed) { + card.addRemembered(lKICopy); + } } } } + if (remSVar != null) { + card.setSVar(remSVar, String.valueOf(countSacrificed)); + SpellAbility root = sa; + do { + root.setSVar(remSVar, String.valueOf(countSacrificed)); + root = root.getSubAbility(); + } while (root != null); + } } } diff --git a/forge-gui/res/cardsfolder/w/wanderwine_prophets.txt b/forge-gui/res/cardsfolder/w/wanderwine_prophets.txt index e02b1322786..9dcc943a190 100644 --- a/forge-gui/res/cardsfolder/w/wanderwine_prophets.txt +++ b/forge-gui/res/cardsfolder/w/wanderwine_prophets.txt @@ -4,10 +4,10 @@ Types:Creature Merfolk Wizard PT:4/4 K:Champion:Merfolk T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigSacrifice | OptionalDecider$ You | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may sacrifice a Merfolk. If you do, take an extra turn after this one. -SVar:TrigSacrifice:AB$ Sacrifice | Cost$ 0 | SacValid$ Merfolk | RememberSacrificed$ True | SubAbility$ DBAddTurn -SVar:DBAddTurn:DB$ AddTurn | NumTurns$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Remembered$Amount +SVar:TrigSacrifice:AB$ Sacrifice | Cost$ 0 | SacValid$ Merfolk | RememberSacrificedSVar$ NumSacrificed | SubAbility$ DBAddTurn +SVar:DBAddTurn:DB$ AddTurn | NumTurns$ 1 | ConditionCheckSVar$ NumSacrificed | ConditionSVarCompare$ EQ1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ StoreSVar | SVar$ NumSacrificed | Type$ Number | Expression$ 0 +SVar:NumSacrificed:0 SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/wanderwine_prophets.jpg Oracle:Champion a Merfolk (When this enters the battlefield, sacrifice it unless you exile another Merfolk you control. When this leaves the battlefield, that card returns to the battlefield.)\nWhenever Wanderwine Prophets deals combat damage to a player, you may sacrifice a Merfolk. If you do, take an extra turn after this one.