From 6938c66ee5d6b1dbc362448467d5f62f04b59a2e Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 26 Sep 2015 08:43:27 +0000 Subject: [PATCH] - Attempt to fix a bug which made it possible for the player to use the mana ability of a card with the {Q} (Untap) in its mana cost while paying its own mana cost (e.g. Zhur-Taa Druid + Umbral Mantle). --- forge-game/src/main/java/forge/game/cost/Cost.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/cost/Cost.java b/forge-game/src/main/java/forge/game/cost/Cost.java index 69c17c81234..9e027a192f9 100644 --- a/forge-game/src/main/java/forge/game/cost/Cost.java +++ b/forge-game/src/main/java/forge/game/cost/Cost.java @@ -183,12 +183,14 @@ public class Cost { for (int iCp = 0; iCp < costParts.size(); iCp++) { CostPart cp = costParts.get(iCp); - // my guess why Q/T are to be first and are followed by mana parts - // is because Q/T are undoable and mana is interactive, so it well be easy to rollback if player refuses to pay + // untap cost has to be last so that a card can't use e.g. its own mana ability while paying for a part of its own mana cost + // (e.g. Zhur-Taa Druid equipped with Umbral Mantle, paying the mana cost of {3}, {Q} ) if (cp instanceof CostUntap) { costParts.remove(iCp); - costParts.add(0, cp); + costParts.add(cp); } + // tap cost has to be first so that a card can't use e.g. its own mana ability while paying for a part of its own mana cost + // (e.g. Ally Encampment with the cost of 1, {T} ) if (cp instanceof CostTap) { costParts.remove(iCp); costParts.add(0, cp);