From 5b18ba9058bda8549849bbfceae63b2f67b04423 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 13 Dec 2013 07:10:23 +0000 Subject: [PATCH] Cost.chooseXValue moved to member of CostPart --- .../src/main/java/forge/util/ThreadUtil.java | 21 ------------------- .../src/main/java/forge/game/cost/Cost.java | 13 ------------ .../main/java/forge/game/cost/CostDamage.java | 2 +- .../java/forge/game/cost/CostDiscard.java | 4 ++-- .../main/java/forge/game/cost/CostExile.java | 2 +- .../java/forge/game/cost/CostFlipCoin.java | 2 +- .../java/forge/game/cost/CostGainLife.java | 2 +- .../main/java/forge/game/cost/CostMill.java | 2 +- .../main/java/forge/game/cost/CostPart.java | 12 +++++++++++ .../java/forge/game/cost/CostPayLife.java | 2 +- .../forge/game/cost/CostPutCardToLib.java | 2 +- .../forge/game/cost/CostRemoveCounter.java | 2 +- .../main/java/forge/game/cost/CostReturn.java | 2 +- .../main/java/forge/game/cost/CostReveal.java | 2 +- .../java/forge/game/cost/CostSacrifice.java | 2 +- .../java/forge/game/cost/CostTapType.java | 2 +- .../java/forge/game/cost/CostUntapType.java | 2 +- 17 files changed, 27 insertions(+), 49 deletions(-) diff --git a/forge-core/src/main/java/forge/util/ThreadUtil.java b/forge-core/src/main/java/forge/util/ThreadUtil.java index bded34a71c3..6bb1c2f125e 100644 --- a/forge-core/src/main/java/forge/util/ThreadUtil.java +++ b/forge-core/src/main/java/forge/util/ThreadUtil.java @@ -43,27 +43,6 @@ public class ThreadUtil { getGameThreadPool().execute(toRun); } - public static void invokeInGameThreadAndWait(final Runnable toRun) { - if (isGameThread()) { - toRun.run(); //just run in the current thread - return; - } - final CountDownLatch latch = new CountDownLatch(1); - getGameThreadPool().execute(new Runnable() { - @Override - public void run() { - toRun.run(); - latch.countDown(); - } - }); - try { - latch.await(); - } - catch (final InterruptedException ex) { - throw new RuntimeException(ex); - } - } - public static void delay(int milliseconds, Runnable inputUpdater) { getScheduledPool().schedule(inputUpdater, milliseconds, TimeUnit.MILLISECONDS); } diff --git a/forge-gui/src/main/java/forge/game/cost/Cost.java b/forge-gui/src/main/java/forge/game/cost/Cost.java index 724f8ebf4d7..1347e114e26 100644 --- a/forge-gui/src/main/java/forge/game/cost/Cost.java +++ b/forge-gui/src/main/java/forge/game/cost/Cost.java @@ -26,7 +26,6 @@ import forge.card.mana.ManaCostParser; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.mana.ManaCostBeingPaid; -import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.util.TextUtil; @@ -719,17 +718,5 @@ public class Cost { return this; } - public static int chooseXValue(final Card card, final SpellAbility sa, final int maxValue) { - /*final String chosen = sa.getSVar("ChosenX"); - if (chosen.length() > 0) { - return AbilityFactory.calculateAmount(card, "ChosenX", null); - }*/ - - int chosenX = sa.getActivatingPlayer().getController().chooseNumber(sa, card.toString() + " - Choose a Value for X", 0, maxValue); - sa.setSVar("ChosenX", Integer.toString(chosenX)); - card.setSVar("ChosenX", Integer.toString(chosenX)); - return chosenX; - } - public static final Cost Zero = new Cost(0); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostDamage.java b/forge-gui/src/main/java/forge/game/cost/CostDamage.java index dabb515ee49..e91b1e1d1bc 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostDamage.java +++ b/forge-gui/src/main/java/forge/game/cost/CostDamage.java @@ -84,7 +84,7 @@ public class CostDamage extends CostPart { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, life); + c = chooseXValue(source, ability, life); } else { c = AbilityUtils.calculateAmount(source, amount, ability); diff --git a/forge-gui/src/main/java/forge/game/cost/CostDiscard.java b/forge-gui/src/main/java/forge/game/cost/CostDiscard.java index 85093ee8f93..17e4ba86274 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostDiscard.java +++ b/forge-gui/src/main/java/forge/game/cost/CostDiscard.java @@ -188,7 +188,7 @@ public class CostDiscard extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, handList.size()); + c = chooseXValue(source, ability, handList.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); @@ -239,7 +239,7 @@ public class CostDiscard extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, handList.size()); + c = chooseXValue(source, ability, handList.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); diff --git a/forge-gui/src/main/java/forge/game/cost/CostExile.java b/forge-gui/src/main/java/forge/game/cost/CostExile.java index cb8cc320add..30e4995484b 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostExile.java +++ b/forge-gui/src/main/java/forge/game/cost/CostExile.java @@ -257,7 +257,7 @@ public class CostExile extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, list.size()); + c = chooseXValue(source, ability, list.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); diff --git a/forge-gui/src/main/java/forge/game/cost/CostFlipCoin.java b/forge-gui/src/main/java/forge/game/cost/CostFlipCoin.java index 55f93a507d4..e6efa1b6239 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostFlipCoin.java +++ b/forge-gui/src/main/java/forge/game/cost/CostFlipCoin.java @@ -75,7 +75,7 @@ public class CostFlipCoin extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, this.getList().size()); + c = chooseXValue(source, ability, this.getList().size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostGainLife.java b/forge-gui/src/main/java/forge/game/cost/CostGainLife.java index 8a4f7562f0f..d0daa00a3e7 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostGainLife.java +++ b/forge-gui/src/main/java/forge/game/cost/CostGainLife.java @@ -127,7 +127,7 @@ public class CostGainLife extends CostPart { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, life); + c = chooseXValue(source, ability, life); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostMill.java b/forge-gui/src/main/java/forge/game/cost/CostMill.java index 61dd229ed94..047fc687342 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostMill.java +++ b/forge-gui/src/main/java/forge/game/cost/CostMill.java @@ -96,7 +96,7 @@ public class CostMill extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, this.getList().size()); + c = chooseXValue(source, ability, this.getList().size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostPart.java b/forge-gui/src/main/java/forge/game/cost/CostPart.java index 6e461a0410d..10e5d087fb7 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostPart.java +++ b/forge-gui/src/main/java/forge/game/cost/CostPart.java @@ -220,4 +220,16 @@ public abstract class CostPart { public void setAmount(final String amountIn) { this.amount = amountIn; } + + protected int chooseXValue(final Card card, final SpellAbility sa, final int maxValue) { + /*final String chosen = sa.getSVar("ChosenX"); + if (chosen.length() > 0) { + return AbilityFactory.calculateAmount(card, "ChosenX", null); + }*/ + + int chosenX = sa.getActivatingPlayer().getController().chooseNumber(sa, card.toString() + " - Choose a Value for X", 0, maxValue); + sa.setSVar("ChosenX", Integer.toString(chosenX)); + card.setSVar("ChosenX", Integer.toString(chosenX)); + return chosenX; + } } diff --git a/forge-gui/src/main/java/forge/game/cost/CostPayLife.java b/forge-gui/src/main/java/forge/game/cost/CostPayLife.java index 4f1b6e7da12..9916257bd14 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostPayLife.java +++ b/forge-gui/src/main/java/forge/game/cost/CostPayLife.java @@ -124,7 +124,7 @@ public class CostPayLife extends CostPart { limit = AbilityUtils.calculateAmount(source, sVar.split("LimitMax.")[1], ability); } int maxLifePayment = limit < life ? limit : life; - c = Cost.chooseXValue(source, ability, maxLifePayment); + c = chooseXValue(source, ability, maxLifePayment); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostPutCardToLib.java b/forge-gui/src/main/java/forge/game/cost/CostPutCardToLib.java index 7af5ce1b539..dff7915a36a 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostPutCardToLib.java +++ b/forge-gui/src/main/java/forge/game/cost/CostPutCardToLib.java @@ -224,7 +224,7 @@ public class CostPutCardToLib extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, this.getList().size()); + c = chooseXValue(source, ability, this.getList().size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostRemoveCounter.java b/forge-gui/src/main/java/forge/game/cost/CostRemoveCounter.java index b9d98cb123c..58d99bef8b2 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostRemoveCounter.java +++ b/forge-gui/src/main/java/forge/game/cost/CostRemoveCounter.java @@ -134,7 +134,7 @@ public class CostRemoveCounter extends CostPartWithList { if (amount.equals("All")) cntRemoved = maxCounters; else if ( c == null && "XChoice".equals(sVarAmount)) { - cntRemoved = Cost.chooseXValue(source, ability, maxCounters); + cntRemoved = chooseXValue(source, ability, maxCounters); } if (maxCounters < cntRemoved) diff --git a/forge-gui/src/main/java/forge/game/cost/CostReturn.java b/forge-gui/src/main/java/forge/game/cost/CostReturn.java index 0c5a6ade34b..fc1bb4b10b6 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostReturn.java +++ b/forge-gui/src/main/java/forge/game/cost/CostReturn.java @@ -128,7 +128,7 @@ public class CostReturn extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, list.size()); + c = chooseXValue(source, ability, list.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostReveal.java b/forge-gui/src/main/java/forge/game/cost/CostReveal.java index 5356939bd2d..55efd3d29c3 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostReveal.java +++ b/forge-gui/src/main/java/forge/game/cost/CostReveal.java @@ -211,7 +211,7 @@ public class CostReveal extends CostPartWithList { if (num == null) { final String sVar = ability.getSVar(amount); if (sVar.equals("XChoice")) { - num = Cost.chooseXValue(source, ability, handList.size()); + num = chooseXValue(source, ability, handList.size()); } else { num = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostSacrifice.java b/forge-gui/src/main/java/forge/game/cost/CostSacrifice.java index 28166d2b186..2f384fcbe10 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostSacrifice.java +++ b/forge-gui/src/main/java/forge/game/cost/CostSacrifice.java @@ -151,7 +151,7 @@ public class CostSacrifice extends CostPartWithList { if (c == null) { // Generalize this if (ability.getSVar(amount).equals("XChoice")) { - c = Cost.chooseXValue(source, ability, list.size()); + c = chooseXValue(source, ability, list.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostTapType.java b/forge-gui/src/main/java/forge/game/cost/CostTapType.java index dba1355a76c..324e92972a8 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostTapType.java +++ b/forge-gui/src/main/java/forge/game/cost/CostTapType.java @@ -198,7 +198,7 @@ public class CostTapType extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, typeList.size()); + c = chooseXValue(source, ability, typeList.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); } diff --git a/forge-gui/src/main/java/forge/game/cost/CostUntapType.java b/forge-gui/src/main/java/forge/game/cost/CostUntapType.java index 1a2b7c123d0..f26a047e526 100644 --- a/forge-gui/src/main/java/forge/game/cost/CostUntapType.java +++ b/forge-gui/src/main/java/forge/game/cost/CostUntapType.java @@ -144,7 +144,7 @@ public class CostUntapType extends CostPartWithList { final String sVar = ability.getSVar(amount); // Generalize this if (sVar.equals("XChoice")) { - c = Cost.chooseXValue(source, ability, typeList.size()); + c = chooseXValue(source, ability, typeList.size()); } else { c = AbilityUtils.calculateAmount(source, amount, ability); }