From 1f41c4c6b8d34d0eccefc5ce185b61a53cf6fbdf Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 04:14:44 +0000 Subject: [PATCH] break out more reusable code to GameAction.promptForShuffle(Player); updated Natural Selection to exercise this new function --- src/forge/AllZoneUtil.java | 61 +++++++++++++++++--------------------- src/forge/CardFactory.java | 7 +---- 2 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/forge/AllZoneUtil.java b/src/forge/AllZoneUtil.java index c466f393e53..f23c7b8f23f 100644 --- a/src/forge/AllZoneUtil.java +++ b/src/forge/AllZoneUtil.java @@ -287,46 +287,41 @@ public class AllZoneUtil { //zone manipulation, maybe be better off in GameAction.java... /** - * use this when you need to rearrange the top X cards in a player's library. You + * use this when Human needs to rearrange the top X cards in a player's library. You * may also specify a shuffle when done * - * @param player the player to target (currently *cannot* be Computer - no effect) + * @param player the player to target * @param numCards the number of cards from the top to rearrange * @param shuffle true if a shuffle is desired at the end, false otherwise */ public static void rearrangeTopOfLibrary(final String player, final int numCards, boolean shuffle) { - if(player.equals(Constant.Player.Human)) { - PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); - int maxCards = lib.size(); - maxCards = Math.min(maxCards, numCards); - if(maxCards == 0) return; - CardList topCards = new CardList(); - //show top n cards: - for(int j = 0; j < maxCards; j++ ) { - topCards.add(lib.get(j)); - } - for(int i = 1; i <= maxCards; i++) { - String suffix = ""; - switch(i) { - case 1: suffix="st"; break; - case 2: suffix="nd"; break; - case 3: suffix="rd"; break; - default: suffix="th"; - } - String title = "Put "+i+suffix+" in Library: "; - Object o = AllZone.Display.getChoiceOptional(title, topCards.toArray()); - if(o == null) break; - Card c_1 = (Card) o; - topCards.remove(c_1); - lib.remove(c_1); - lib.add(c_1, i - 1); - } - if(shuffle) { - AllZone.GameAction.shuffle(player); - } + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); + int maxCards = lib.size(); + maxCards = Math.min(maxCards, numCards); + if(maxCards == 0) return; + CardList topCards = new CardList(); + //show top n cards: + for(int j = 0; j < maxCards; j++ ) { + topCards.add(lib.get(j)); } - else { - //this does not and is not expected to work for the AI at this time + for(int i = 1; i <= maxCards; i++) { + String suffix = ""; + switch(i) { + case 1: suffix="st"; break; + case 2: suffix="nd"; break; + case 3: suffix="rd"; break; + default: suffix="th"; + } + String title = "Put "+i+suffix+" in Library: "; + Object o = AllZone.Display.getChoiceOptional(title, topCards.toArray()); + if(o == null) break; + Card c_1 = (Card) o; + topCards.remove(c_1); + lib.remove(c_1); + lib.add(c_1, i - 1); + } + if(shuffle) { + AllZone.GameAction.shuffle(player); } } } \ No newline at end of file diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index c1f8976cc01..e7cd72c3d5d 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -17779,12 +17779,7 @@ public class CardFactory implements NewConstants { public void resolve() { String player = getTargetPlayer(); AllZoneUtil.rearrangeTopOfLibrary(player, 3, false); - String[] choices = new String[] {"Yes", "No"}; - Object o = AllZone.Display.getChoice("Shuffle target player's library?", choices); - String myChoice = (String) o; - if(myChoice.equals("Yes")) { - AllZone.GameAction.shuffle(player); - } + AllZone.GameAction.promptForShuffle(player); } @Override public boolean canPlayAI() {