diff --git a/forge-game/src/main/java/forge/game/cost/CostPartMana.java b/forge-game/src/main/java/forge/game/cost/CostPartMana.java index 270515175b2..e36f2780aee 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPartMana.java +++ b/forge-game/src/main/java/forge/game/cost/CostPartMana.java @@ -155,7 +155,6 @@ public class CostPartMana extends CostPart { @Override public boolean payAsDecided(Player payer, PaymentDecision pd, SpellAbility sa) { - // TODO Auto-generated method stub sa.clearManaPaid(); // decision not used here, the whole payment is interactive! diff --git a/forge-gui/res/cardsfolder/v/varragoth_bloodsky_sire.txt b/forge-gui/res/cardsfolder/v/varragoth_bloodsky_sire.txt index bddce0a97e4..9bbe8ba7dde 100644 --- a/forge-gui/res/cardsfolder/v/varragoth_bloodsky_sire.txt +++ b/forge-gui/res/cardsfolder/v/varragoth_bloodsky_sire.txt @@ -3,5 +3,5 @@ ManaCost:2 B Types:Legendary Creature Demon Rogue K:Deathtouch PT:2/3 -A:AB$ ChangeZone | Cost$ 1 B | ValidTgts$ Player | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | Mandatory$ True | ChangeType$ Card | ChangeNum$ 1 | Boast$ True | SpellDescription$ Target player searches their library for a card, then shuffles their library and puts that card on top of it. +A:AB$ ChangeZone | Cost$ 1 B | ValidTgts$ Player | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | Mandatory$ True | ChangeType$ Card | ChangeNum$ 1 | Boast$ True | Chooser$ Targeted | SpellDescription$ Target player searches their library for a card, then shuffles their library and puts that card on top of it. Oracle:Deathtouch\nBoast — {1}{B}: Target player searches their library for a card, then shuffles and puts that card on top. (Activate only if this creature attacked this turn and only once each turn.) diff --git a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java index ea7aa35525d..c4c20bfd096 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java +++ b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java @@ -144,6 +144,9 @@ public class HumanPlaySpellAbility { } } + // reset is also done early here, because if an ability is canceled from targeting it might otherwise lead to refunding mana from earlier cast + ability.clearManaPaid(); + // This line makes use of short-circuit evaluation of boolean values, that is each subsequent argument // is only executed or evaluated if the first argument does not suffice to determine the value of the expression // because of Selective Snare do announceType first