From c33a0295cc524d1a991b525a9612a46f50a4bd8b Mon Sep 17 00:00:00 2001 From: swordshine Date: Sat, 8 Mar 2014 01:19:05 +0000 Subject: [PATCH] - Added Trade Secrets --- .gitattributes | 1 + forge-ai/src/main/java/forge/ai/AiController.java | 11 +++++++++++ .../java/forge/game/ability/effects/DrawEffect.java | 2 +- forge-gui/res/cardsfolder/t/trade_secrets.txt | 12 ++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/t/trade_secrets.txt diff --git a/.gitattributes b/.gitattributes index 78447a1636f..8082dcf94ed 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12846,6 +12846,7 @@ forge-gui/res/cardsfolder/t/tracker.txt svneol=native#text/plain forge-gui/res/cardsfolder/t/trackers_instincts.txt -text forge-gui/res/cardsfolder/t/trade_caravan.txt svneol=native#text/plain forge-gui/res/cardsfolder/t/trade_routes.txt svneol=native#text/plain +forge-gui/res/cardsfolder/t/trade_secrets.txt -text forge-gui/res/cardsfolder/t/tradewind_rider.txt svneol=native#text/plain forge-gui/res/cardsfolder/t/tradewind_rider_avatar.txt -text forge-gui/res/cardsfolder/t/trading_post.txt -text diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index f7f2507a3d8..52fc025d957 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -1298,6 +1298,17 @@ public class AiController { int cardsInPlay = player.getCardsIn(ZoneType.Battlefield).size(); return Math.min(chosenMax, cardsInPlay); } + else if ("OptionalDraw".equals(logic)) { + int cardsInHand = player.getCardsIn(ZoneType.Hand).size(); + int maxDraw = Math.min(player.getMaxHandSize() + 2 - cardsInHand, max); + int maxCheckLib = Math.min(maxDraw, player.getCardsIn(ZoneType.Library).size()); + return Math.max(min, maxCheckLib); + } + else if ("RepeatDraw".equals(logic)) { + int remaining = player.getMaxHandSize() - player.getCardsIn(ZoneType.Hand).size() + + MyRandom.getRandom().nextInt(3); + return Math.max(remaining, min) / 2; + } return max; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java index bead40f2cfa..505e8c678ee 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java @@ -53,7 +53,7 @@ public class DrawEffect extends SpellAbilityEffect { int actualNum = numCards; if (upto) { - actualNum = p.getController().chooseNumber(sa, "Choose a number", 0, numCards); + actualNum = p.getController().chooseNumber(sa, "How may cards do you want to draw?", 0, numCards); } final List drawn = p.drawCards(actualNum); diff --git a/forge-gui/res/cardsfolder/t/trade_secrets.txt b/forge-gui/res/cardsfolder/t/trade_secrets.txt new file mode 100644 index 00000000000..eabc4618d4f --- /dev/null +++ b/forge-gui/res/cardsfolder/t/trade_secrets.txt @@ -0,0 +1,12 @@ +Name:Trade Secrets +ManaCost:1 U U +Types:Sorcery +A:SP$ Draw | Cost$ 1 U U | ValidTgts$ Opponent | NumCards$ 2 | SubAbility$ DBDraw | StackDescription$ SpellDescription | SpellDescription$ Target opponent draws two cards, then you draw up to four cards. That opponent may repeat this process as many times as he or she chooses. +SVar:DBDraw:DB$ Draw | NumCards$ 4 | Upto$ True | Defined$ You | AILogic$ OptionalDraw | SubAbility$ DBChooseNumber | StackDescription$ None +SVar:DBChooseNumber:DB$ ChooseNumber | Defined$ Targeted | ListTitle$ How many times do you want repeat this process? | AILogic$ RepeatDraw | SubAbility$ DBRepeat | StackDescription$ None +SVar:DBRepeat:DB$ Repeat | MaxRepeat$ X | References$ X | RepeatSubAbility$ DBRepeatDraw | StackDescription$ None +SVar:DBRepeatDraw:DB$ Draw | Defined$ Targeted | NumCards$ 2 | SubAbility$ DBSubDraw +SVar:DBSubDraw:DB$ Draw | Defined$ You | NumCards$ 4 | Upto$ True | AILogic$ OptionalDraw +SVar:X:Count$ChosenNumber +SVar:Picture:http://www.wizards.com/global/images/magic/general/trade_secrets.jpg +Oracle:Target opponent draws two cards, then you draw up to four cards. That opponent may repeat this process as many times as he or she chooses.