diff --git a/src/forge/AbilityFactory_ChangeZone.java b/src/forge/AbilityFactory_ChangeZone.java index 497063e4b89..2390eb90c99 100644 --- a/src/forge/AbilityFactory_ChangeZone.java +++ b/src/forge/AbilityFactory_ChangeZone.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Random; +import forge.gui.GuiUtils; + public class AbilityFactory_ChangeZone { // Change Zone is going to work much differently than other AFs. @@ -334,7 +336,7 @@ public class AbilityFactory_ChangeZone { CardList fetchList = AllZoneUtil.getCardsInZone(origin, player); if (destination.equals("Library")) - AllZone.Display.getChoice(af.getHostCard().getName() + " - Looking at " + origin, fetchList.toArray()); + GuiUtils.getChoice(af.getHostCard().getName() + " - Looking at " + origin, fetchList.toArray()); fetchList = filterListByType(fetchList, params, "ChangeType", sa); @@ -346,7 +348,7 @@ public class AbilityFactory_ChangeZone { if (fetchList.size() == 0 || destination == null) break; - Object o = AllZone.Display.getChoiceOptional("Select a card", fetchList.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", fetchList.toArray()); if (o != null) { Card c = (Card) o; @@ -464,9 +466,9 @@ public class AbilityFactory_ChangeZone { if (!destination.equals("Battlefield") && !type.equals("Card")){ String picked = af.getHostCard().getName() + " - Computer picked:"; if (fetched.size() > 0) - AllZone.Display.getChoice(picked, fetched.toArray()); + GuiUtils.getChoice(picked, fetched.toArray()); else - AllZone.Display.getChoice(picked, new String[]{ "" } ); + GuiUtils.getChoice(picked, new String[]{ "" } ); } String DrawBack = params.get("SubAbility"); diff --git a/src/forge/AbilityFactory_CounterMagic.java b/src/forge/AbilityFactory_CounterMagic.java index 49c97d1e6fa..2fe740b8b5b 100644 --- a/src/forge/AbilityFactory_CounterMagic.java +++ b/src/forge/AbilityFactory_CounterMagic.java @@ -3,6 +3,8 @@ package forge; import java.util.ArrayList; import java.util.HashMap; +import forge.gui.GuiUtils; + //Type - Spell or Ability or SpellOrAbility //CounterValid - a "valid" expression for types to counter //SpellTarget - a "valid" expression for targets of the spell to counter @@ -421,7 +423,7 @@ public class AbilityFactory_CounterMagic { } else { CardList list = AllZoneUtil.getPlayerHand(AllZone.ComputerPlayer); - AllZone.Display.getChoiceOptional("Revealed cards",list.toArray()); + GuiUtils.getChoiceOptional("Revealed cards",list.toArray()); } } } @@ -442,7 +444,7 @@ public class AbilityFactory_CounterMagic { } else { CardList list = AllZoneUtil.getCardsInZone(Constant.Zone.Hand, AllZone.ComputerPlayer); - AllZone.Display.getChoiceOptional("Revealed cards",list.toArray()); + GuiUtils.getChoiceOptional("Revealed cards",list.toArray()); } } } @@ -502,7 +504,7 @@ public class AbilityFactory_CounterMagic { String[] choices = new String[map.keySet().size()]; choices = map.keySet().toArray(choices); - String madeChoice = AllZone.Display.getChoice("Select target spell.",choices); + String madeChoice = GuiUtils.getChoice("Select target spell.",choices); tgt[0] = map.get(madeChoice); System.out.println(tgt[0]); diff --git a/src/forge/AbilityFactory_Counters.java b/src/forge/AbilityFactory_Counters.java index cd2f7179c36..7ad07c2177b 100644 --- a/src/forge/AbilityFactory_Counters.java +++ b/src/forge/AbilityFactory_Counters.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Random; +import forge.gui.GuiUtils; + public class AbilityFactory_Counters { // An AbilityFactory subclass for Putting or Removing Counters on Cards. @@ -784,7 +786,7 @@ public class AbilityFactory_Counters { for(Counters c_1:Counters.values()) if(card.getCounters(c_1) != 0) choices.add(c_1.getName()); if (choices.size() > 0) - card.addCounter(Counters.getType((choices.size() == 1 ? choices.get(0) : AllZone.Display.getChoice("Select counter type", choices.toArray()).toString())), 1); + card.addCounter(Counters.getType((choices.size() == 1 ? choices.get(0) : GuiUtils.getChoice("Select counter type", choices.toArray()).toString())), 1); } boolean selComputer = false; boolean selHuman = false; diff --git a/src/forge/AbilityFactory_Fetch.java b/src/forge/AbilityFactory_Fetch.java index 485713359a5..1fc41ee97ae 100644 --- a/src/forge/AbilityFactory_Fetch.java +++ b/src/forge/AbilityFactory_Fetch.java @@ -107,7 +107,7 @@ public class AbilityFactory_Fetch { for(int i=0;i 0) { - Card dC = AllZone.Display.getChoice("Choose a card to be discarded", dPChHand.toArray()); + Card dC = GuiUtils.getChoice("Choose a card to be discarded", dPChHand.toArray()); dPChHand.remove(dC); AllZone.HumanPlayer.discard(dC, sa); // is this right? diff --git a/src/forge/Ability_Mana.java b/src/forge/Ability_Mana.java index 37f79be6648..490e4b395ff 100644 --- a/src/forge/Ability_Mana.java +++ b/src/forge/Ability_Mana.java @@ -2,6 +2,8 @@ package forge; import java.util.ArrayList; +import forge.gui.GuiUtils; + abstract public class Ability_Mana extends Ability_Activated implements java.io.Serializable { private static final long serialVersionUID = -6816356991224950520L; @@ -160,7 +162,7 @@ abstract public class Ability_Mana extends Ability_Activated implements java.io. } else { for(int i = 0; i < list.size(); i++) { - String s = (String)AllZone.Display.getChoice("Mirari's Wake"+" - Select a color to add", colors.toArray()); + String s = (String)GuiUtils.getChoice("Mirari's Wake"+" - Select a color to add", colors.toArray()); if(s != null) { AllZone.ManaPool.addManaToFloating(s, source); } diff --git a/src/forge/AllZoneUtil.java b/src/forge/AllZoneUtil.java index ed7228a9cee..800a6fe725b 100644 --- a/src/forge/AllZoneUtil.java +++ b/src/forge/AllZoneUtil.java @@ -4,6 +4,8 @@ package forge; import java.util.ArrayList; +import forge.gui.GuiUtils; + /** * AllZoneUtil contains static functions used to get CardLists of various * cards in various zones. @@ -481,7 +483,7 @@ public class AllZoneUtil { default: suffix="th"; } String title = "Put "+i+suffix+" in Library: "; - Object o = AllZone.Display.getChoiceOptional(title, topCards.toArray()); + Object o = GuiUtils.getChoiceOptional(title, topCards.toArray()); if(o == null) break; Card c_1 = (Card) o; topCards.remove(c_1); @@ -503,7 +505,7 @@ public class AllZoneUtil { maxCards = Math.min(maxCards, numCards); for(int i = 1; i <= maxCards; i++) { String title = "Select card to exile: " + i + "/" + maxCards; - Object o = AllZone.Display.getChoiceOptional(title, cards.toArray()); + Object o = GuiUtils.getChoiceOptional(title, cards.toArray()); if(o == null) break; Card card = (Card) o; AllZone.GameAction.exile(card); diff --git a/src/forge/BoosterDraftAI.java b/src/forge/BoosterDraftAI.java index c374309aade..1660451601d 100644 --- a/src/forge/BoosterDraftAI.java +++ b/src/forge/BoosterDraftAI.java @@ -1,5 +1,7 @@ package forge; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; public class BoosterDraftAI { diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 722c4d745fe..4b891dadfb8 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -12,10 +12,12 @@ import java.util.Random; import javax.swing.JOptionPane; +import com.esotericsoftware.minlog.Log; + import forge.error.ErrorViewer; +import forge.gui.GuiUtils; import forge.properties.ForgeProps; import forge.properties.NewConstants; -import com.esotericsoftware.minlog.Log; public class CardFactory implements NewConstants { // String cardname is the key, Card is the value @@ -473,7 +475,7 @@ public class CardFactory implements NewConstants { { if(Target == AllZone.HumanPlayer) { - if(AllZone.Display.getChoice("Do you want to draw" + SplitActionParams[0] + "card(s)?","Yes","No").equals("Yes")) + if(GuiUtils.getChoice("Do you want to draw" + SplitActionParams[0] + "card(s)?","Yes","No").equals("Yes")) { Target.drawCards(Integer.parseInt(SplitActionParams[0])); } @@ -498,7 +500,7 @@ public class CardFactory implements NewConstants { { if(Target == AllZone.HumanPlayer) { - if(AllZone.Display.getChoice("Do you want to discard" + SplitActionParams[0] + "card(s)?","Yes","No").equals("Yes")) + if(GuiUtils.getChoice("Do you want to discard" + SplitActionParams[0] + "card(s)?","Yes","No").equals("Yes")) { Target.discard(Integer.parseInt(SplitActionParams[0]),this, false); } @@ -518,7 +520,7 @@ public class CardFactory implements NewConstants { { if(Target == AllZone.HumanPlayer) { - if(AllZone.Display.getChoice("Do you want to lose" + SplitActionParams[0] + "life?","Yes","No").equals("Yes")) + if(GuiUtils.getChoice("Do you want to lose" + SplitActionParams[0] + "life?","Yes","No").equals("Yes")) { Target.loseLife(Integer.parseInt(SplitActionParams[0]), card); } @@ -539,7 +541,7 @@ public class CardFactory implements NewConstants { { if(Target == AllZone.HumanPlayer) { - if(AllZone.Display.getChoice("Do you want to gain" + SplitActionParams[0] + "life?","Yes","No").equals("Yes")) + if(GuiUtils.getChoice("Do you want to gain" + SplitActionParams[0] + "life?","Yes","No").equals("Yes")) { Target.gainLife(Integer.parseInt(SplitActionParams[0]), card); } @@ -561,7 +563,7 @@ public class CardFactory implements NewConstants { System.out.println(Target); if(Target == AllZone.HumanPlayer) { - if(AllZone.Display.getChoice("Do you want to reveal your hand?","Yes","No").equals("Yes")) + if(GuiUtils.getChoice("Do you want to reveal your hand?","Yes","No").equals("Yes")) {//Does nothing now, of course, but sometime in the future the AI may be able to remember cards revealed and prioritize discard spells accordingly. } @@ -581,7 +583,7 @@ public class CardFactory implements NewConstants { else { CardList list = new CardList(AllZone.getZone(Constant.Zone.Hand,AllZone.ComputerPlayer).getCards()); - AllZone.Display.getChoiceOptional("Revealed cards",list.toArray()); + GuiUtils.getChoiceOptional("Revealed cards",list.toArray()); } } } @@ -591,7 +593,7 @@ public class CardFactory implements NewConstants { { if(Target == AllZone.HumanPlayer) { - if(AllZone.Display.getChoice("Do you want to rearrange the top " + SplitActionParams[0] + " cards of your library?","Yes","No").equals("Yes")) + if(GuiUtils.getChoice("Do you want to rearrange the top " + SplitActionParams[0] + " cards of your library?","Yes","No").equals("Yes")) { AllZoneUtil.rearrangeTopOfLibrary(Target, Integer.parseInt(SplitActionParams[0]), false); } @@ -610,7 +612,7 @@ public class CardFactory implements NewConstants { else { CardList list = new CardList(AllZone.getZone(Constant.Zone.Hand,AllZone.ComputerPlayer).getCards()); - AllZone.Display.getChoiceOptional("Revealed cards",list.toArray()); + GuiUtils.getChoiceOptional("Revealed cards",list.toArray()); } } } @@ -686,7 +688,7 @@ public class CardFactory implements NewConstants { String[] choices = new String[map.keySet().size()]; choices = map.keySet().toArray(choices); - String madeChoice = AllZone.Display.getChoice("Select target spell.",choices); + String madeChoice = GuiUtils.getChoice("Select target spell.",choices); tgt[0] = map.get(madeChoice); System.out.println(tgt[0]); @@ -3951,9 +3953,9 @@ public class CardFactory implements NewConstants { if (grave.size() > 0) { Object o; if (mayReturn[0] || returnUpTo[0]) { - o = AllZone.Display.getChoiceOptional("Select a card", choices.toArray()); + o = GuiUtils.getChoiceOptional("Select a card", choices.toArray()); } else { - o = AllZone.Display.getChoice("Select a card", choices.toArray()); + o = GuiUtils.getChoice("Select a card", choices.toArray()); } if (o == null) break; Card c = (Card) o; @@ -4097,7 +4099,7 @@ public class CardFactory implements NewConstants { if (!Targets.startsWith("Card") && !Destination.equals("Battlefield")) { CardList l = new CardList(); l.add(c); - AllZone.Display.getChoiceOptional("Computer picked:", l.toArray()); + GuiUtils.getChoiceOptional("Computer picked:", l.toArray()); } } }//computerResolve() @@ -4107,7 +4109,7 @@ public class CardFactory implements NewConstants { list = list.getValidCards(Tgts); if(list.size() != 0) { - Object o = AllZone.Display.getChoiceOptional("Select a card", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", list.toArray()); card.getController().shuffle(); if(o != null) { @@ -4269,7 +4271,7 @@ public class CardFactory implements NewConstants { if(card.getController().equals(AllZone.HumanPlayer)) { if (creats.size() > 0) { - List selection = AllZone.Display.getChoicesOptional("Select creatures to sacrifice", creats.toArray()); + List selection = GuiUtils.getChoicesOptional("Select creatures to sacrifice", creats.toArray()); numCreatures[0] = selection.size(); for(int m = 0; m < selection.size(); m++) { @@ -4738,7 +4740,7 @@ public class CardFactory implements NewConstants { if (card.getController().equals(AllZone.HumanPlayer)) { - List selection = AllZone.Display.getChoicesOptional("Select cards to fetch from Library", list.toArray()); + List selection = GuiUtils.getChoicesOptional("Select cards to fetch from Library", list.toArray()); for(int m = 0; m < selection.size(); m++) { AllZone.Human_Library.remove(selection.get(m)); @@ -5089,7 +5091,7 @@ public class CardFactory implements NewConstants { imageName = "B 1 1 Thrull"; color = "B"; } else if(player.equals(AllZone.HumanPlayer)) { - Object q = AllZone.Display.getChoiceOptional("Select type of creature", choices); + Object q = GuiUtils.getChoiceOptional("Select type of creature", choices); if(q != null){ if(q.equals("Citizen")) { type = "Citizen"; @@ -5573,7 +5575,7 @@ public class CardFactory implements NewConstants { stop(); } else { - Object o = AllZone.Display.getChoice("Choose card to exile", list.toArray()); + Object o = GuiUtils.getChoice("Choose card to exile", list.toArray()); if (o!=null) { Card c = (Card)o; @@ -5645,7 +5647,7 @@ public class CardFactory implements NewConstants { chooseGrave.addAll(grave.toArray()); } - Object o = AllZone.Display.getChoice("Choose first creature to exile", chooseGrave.toArray()); + Object o = GuiUtils.getChoice("Choose first creature to exile", chooseGrave.toArray()); if (o!=null) { CardList newGrave; @@ -5660,7 +5662,7 @@ public class CardFactory implements NewConstants { newGrave = newGrave.getType("Creature"); newGrave.remove(c); - Object o2 = AllZone.Display.getChoice("Choose second creature to exile", newGrave.toArray()); + Object o2 = GuiUtils.getChoice("Choose second creature to exile", newGrave.toArray()); if (o2!=null) { Card c2 = (Card)o2; @@ -5919,7 +5921,7 @@ public class CardFactory implements NewConstants { String Title = "Put on top: "; if(i == 2) Title = "Put second from top: "; if(i == 3) Title = "Put third from top: "; - Object o = AllZone.Display.getChoiceOptional(Title, topThree.toArray()); + Object o = GuiUtils.getChoiceOptional(Title, topThree.toArray()); if(o == null) break; Card c_1 = (Card) o; topThree.remove(c_1); @@ -5985,7 +5987,7 @@ public class CardFactory implements NewConstants { CardList showTop = new CardList(); showTop.add(topCard); - AllZone.Display.getChoiceOptional("Revealed top card: ", showTop.toArray()); + GuiUtils.getChoiceOptional("Revealed top card: ", showTop.toArray()); if(convertedManaTopCard == convertedManaSpell) { @@ -6049,7 +6051,7 @@ public class CardFactory implements NewConstants { if(creatures.size() == 0) return; - Object o = AllZone.Display.getChoiceOptional("Select target creature to play", + Object o = GuiUtils.getChoiceOptional("Select target creature to play", creatures.toArray()); if(o != null) { Card c = (Card) o; @@ -6104,7 +6106,7 @@ public class CardFactory implements NewConstants { if (targetHand.size() == 0) return; if (target == AllZone.HumanPlayer){ - Object discard = AllZone.Display.getChoice("Select Card to place on top of library.", targetHand.toArray()); + Object discard = GuiUtils.getChoice("Select Card to place on top of library.", targetHand.toArray()); Card card = (Card)discard; AllZone.GameAction.moveToLibrary(card); @@ -6394,7 +6396,7 @@ public class CardFactory implements NewConstants { damage *= 2; } }//while - AllZone.Display.getChoiceOptional("Revealed cards:", revealed.toArray()); + GuiUtils.getChoiceOptional("Revealed cards:", revealed.toArray()); if(getTargetCard() != null) { if(AllZone.GameAction.isCardInPlay(getTargetCard()) @@ -6695,7 +6697,7 @@ public class CardFactory implements NewConstants { if(i == 2) Title = "Put second from top of library: "; if(i == 3) Title = "Put third from top of library: "; if(i == 4) Title = "Put fourth from top of library: "; - Object o = AllZone.Display.getChoiceOptional(Title, lands.toArray()); + Object o = GuiUtils.getChoiceOptional(Title, lands.toArray()); if(o == null) break; Card c_1 = (Card) o; lands.remove(c_1); //remove from the display list @@ -6842,7 +6844,7 @@ public class CardFactory implements NewConstants { final Player player = getTargetPlayer(); CardList hand = AllZoneUtil.getPlayerHand(player); if (hand.size() > 0) { - AllZone.Display.getChoice("Target player's hand", hand.toArray()); + GuiUtils.getChoice("Target player's hand", hand.toArray()); } else { StringBuilder sb = new StringBuilder(); sb.append(getTargetPlayer()).append("'s hand is empty!"); @@ -6974,7 +6976,7 @@ public class CardFactory implements NewConstants { String[] colors = Constant.Color.Colors; colors[colors.length - 1] = null; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color = (String) o; card.setChosenColor(color); } else { @@ -7492,7 +7494,7 @@ public class CardFactory implements NewConstants { for(int j=0;j<=num[0];j++) { choices[j] = ""+j; } - String answer = (String)(AllZone.Display.getChoiceOptional( + String answer = (String)(GuiUtils.getChoiceOptional( "Charge counters to remove", choices)); if(null != answer && !answer.equals("")) { num[0] = Integer.parseInt(answer); @@ -7723,7 +7725,7 @@ public class CardFactory implements NewConstants { for(int j = 0; j <= num; j++) { choices[j] = ""+j; } - String answer = (String)(AllZone.Display.getChoiceOptional( + String answer = (String)(GuiUtils.getChoiceOptional( "Life to pay:", choices)); lifeToPay = Integer.parseInt(answer); } else { @@ -7798,7 +7800,7 @@ public class CardFactory implements NewConstants { //Then look at the exiled cards and put them on top of your library in any order. while(exiled.size() > 0) { - Object o = AllZone.Display.getChoice("Put a card on top of your library.", exiled.toArray()); + Object o = GuiUtils.getChoice("Put a card on top of your library.", exiled.toArray()); Card c1 = (Card)o; AllZone.GameAction.moveToLibrary(c1); exiled.remove(c1); diff --git a/src/forge/CardFactoryUtil.java b/src/forge/CardFactoryUtil.java index ac8e17647bf..09e9e024a7d 100644 --- a/src/forge/CardFactoryUtil.java +++ b/src/forge/CardFactoryUtil.java @@ -11,6 +11,8 @@ import java.util.Map.Entry; import com.esotericsoftware.minlog.Log; +import forge.gui.GuiUtils; + public class CardFactoryUtil { private static Random random = new Random(); @@ -511,7 +513,7 @@ public class CardFactoryUtil { if(choices.size() == 0) stop(); if(spell.getTargetCard() != null) stop(); AllZone.Display.showMessage("Select target Spell: "); - Card choice = AllZone.Display.getChoiceOptional("Choose a Spell", choices.toArray()); + Card choice = GuiUtils.getChoiceOptional("Choose a Spell", choices.toArray()); if(choice != null) { spell.setTargetCard(choice); done(); @@ -1122,7 +1124,7 @@ public class CardFactoryUtil { play.add(merc); } else //human { - Object o = AllZone.Display.getChoiceOptional("Select target Mercenary", mercs.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target Mercenary", mercs.toArray()); if(o != null) { Card merc = (Card) o; lib.remove(merc); @@ -1217,7 +1219,7 @@ public class CardFactoryUtil { play.add(rebel); } else //human { - Object o = AllZone.Display.getChoiceOptional("Select target Rebel", rebels.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target Rebel", rebels.toArray()); if(o != null) { Card rebel = (Card) o; lib.remove(rebel); @@ -1229,7 +1231,7 @@ public class CardFactoryUtil { CardList creats = new CardList(play.getCards()); creats.addAll(oppPlay.getCards()); creats = creats.getType("Creature"); - obj = AllZone.Display.getChoiceOptional("Pick a creature to attach " + obj = GuiUtils.getChoiceOptional("Pick a creature to attach " + rebel.getName() + " to", creats.toArray()); } if(obj != null) { @@ -1388,7 +1390,7 @@ public class CardFactoryUtil { } - Object o = AllZone.Display.getChoiceOptional("Select a card", sameType.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", sameType.toArray()); if(o != null) { //ability.setTargetCard((Card)o); //AllZone.Stack.add(ability); @@ -1465,7 +1467,7 @@ public class CardFactoryUtil { if(sameCost.size() == 0) return; - Object o = AllZone.Display.getChoiceOptional("Select a card", sameCost.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", sameCost.toArray()); if(o != null) { //ability.setTargetCard((Card)o); //AllZone.Stack.add(ability); @@ -2083,7 +2085,7 @@ public class CardFactoryUtil { question.append(Manacost).append(" or less from your graveyard to your hand?"); if (GameActionUtil.showYesNoDialog(sourceCard, question.toString())) { - Object o = AllZone.Display.getChoiceOptional("Select a card", sameCost.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", sameCost.toArray()); if (o != null) { Card c1 = (Card) o; @@ -2345,7 +2347,7 @@ public class CardFactoryUtil { CardList grave = AllZoneUtil.getPlayerGraveyard(AllZone.HumanPlayer); for(int i = 1; i <= n; i++) { String title = "Return card from grave to hand"; - Object o = AllZone.Display.getChoice(title, grave.toArray()); + Object o = GuiUtils.getChoice(title, grave.toArray()); if(o == null) break; Card toHand = (Card) o; grave.remove(toHand); @@ -2641,7 +2643,7 @@ public class CardFactoryUtil { if (UpTo) { for (int i = 0; i < numCards; i++) { if (grave.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Select a card", grave.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", grave.toArray()); if (o == null) break; Card c = (Card) o; targets.add(c); @@ -2652,7 +2654,7 @@ public class CardFactoryUtil { int max = grave.size(); for (int i = 0; i < max; i++) { if (grave.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Select a card", grave.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", grave.toArray()); if (o == null) break; Card c = (Card) o; targets.add(c); @@ -2661,7 +2663,7 @@ public class CardFactoryUtil { } } else if (grave.size() > numCards) { for (int i = 0; i < numCards; i++) { - Object o = AllZone.Display.getChoice("Select a card", grave.toArray()); + Object o = GuiUtils.getChoice("Select a card", grave.toArray()); Card c = (Card) o; targets.add(c); grave.remove(c); diff --git a/src/forge/CardFactory_Auras.java b/src/forge/CardFactory_Auras.java index 3bd28463682..058c5654b2e 100644 --- a/src/forge/CardFactory_Auras.java +++ b/src/forge/CardFactory_Auras.java @@ -5,8 +5,11 @@ package forge; import java.util.ArrayList; import java.util.HashMap; import java.util.StringTokenizer; + import com.esotericsoftware.minlog.Log; +import forge.gui.GuiUtils; + class CardFactory_Auras { @@ -599,7 +602,7 @@ class CardFactory_Auras { || card.getName().equals("Phantasmal Terrain")) { //Only query player, AI will have decided already. if(card.getController() == AllZone.HumanPlayer) { - NewType[0] = AllZone.Display.getChoice("Select land type.", "Plains","Island","Swamp","Mountain","Forest"); + NewType[0] = GuiUtils.getChoice("Select land type.", "Plains","Island","Swamp","Mountain","Forest"); } } PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, card.getController()); diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 3dab8481351..501b3b0682d 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -3,15 +3,18 @@ package forge; import java.util.ArrayList; -import java.util.Stack; import java.util.HashMap; import java.util.List; import java.util.Random; +import java.util.Stack; import java.util.Map.Entry; import javax.swing.JOptionPane; + import com.esotericsoftware.minlog.Log; +import forge.gui.GuiUtils; + public class CardFactory_Creatures { private static final int hasKeyword(Card c, String k) { @@ -440,7 +443,7 @@ public class CardFactory_Creatures { }); if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Choose a creature", creats.toArray()); + Object o = GuiUtils.getChoiceOptional("Choose a creature", creats.toArray()); if(o != null) { Card c = (Card) o; grave.remove(c); @@ -861,7 +864,7 @@ public class CardFactory_Creatures { String choices[] = {"3/3", "2/2 with flying", "1/6 with defender"}; if(card.getController().equals(AllZone.HumanPlayer)) { - choice = AllZone.Display.getChoice("Choose one", choices); + choice = GuiUtils.getChoice("Choose one", choices); } else choice = choices[MyRandom.random.nextInt(3)]; if(choice.equals("2/2 with flying")) { @@ -1024,7 +1027,7 @@ public class CardFactory_Creatures { String[] colors = Constant.Color.Colors; colors[colors.length-1] = null; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color = (String)o; } else { @@ -2357,7 +2360,7 @@ public class CardFactory_Creatures { if(graveList.size() == 0) return; if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", graveList.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", graveList.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -3877,7 +3880,7 @@ public class CardFactory_Creatures { if(count == library.size()) break; }//while - AllZone.Display.getChoiceOptional("Revealed cards:", revealed.toArray()); + GuiUtils.getChoiceOptional("Revealed cards:", revealed.toArray()); if (basicGrab != null){ // put basic in hand @@ -4293,7 +4296,7 @@ public class CardFactory_Creatures { CardList TopCreatures = TopCards; if(card.getController().equals(AllZone.HumanPlayer)) { if(TopCards.size() > 0) { - AllZone.Display.getChoice( + GuiUtils.getChoice( "Look at the top five cards: ", TopCards.toArray()); TopCreatures = TopCreatures.filter(new CardListFilter() { public boolean addCard(Card c) { @@ -4302,7 +4305,7 @@ public class CardFactory_Creatures { } }); if(TopCreatures.size() > 0) { - Object o2 = AllZone.Display.getChoiceOptional( + Object o2 = GuiUtils.getChoiceOptional( "Put a creature with a power 5 or greater onto the battlefield: ", TopCreatures.toArray()); if(o2 != null) { Card c = (Card) o2; @@ -4317,7 +4320,7 @@ public class CardFactory_Creatures { for(int i = 0; i < Count; i++) { AllZone.Display.showMessage("Select a card to put " + (Count - i) + " from the bottom of your library: " + (Count - i) + " Choices to go."); ButtonUtil.enableOnlyCancel(); - Object check = AllZone.Display.getChoice("Select a card: ", TopCards.toArray()); + Object check = GuiUtils.getChoice("Select a card: ", TopCards.toArray()); AllZone.GameAction.moveTo(lib, (Card) check); TopCards.remove((Card) check); } @@ -4755,7 +4758,7 @@ public class CardFactory_Creatures { if(card.getController().equals(AllZone.HumanPlayer)) { String[] colors = Constant.Color.onlyColors; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color[0] = (String) o; card.setChosenColor(color[0]); } else { @@ -4833,7 +4836,7 @@ public class CardFactory_Creatures { if(card.getController().equals(AllZone.HumanPlayer)) { String[] colors = Constant.Color.onlyColors; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color[0] = (String) o; card.setChosenColor(color[0]); String s = CardUtil.getShortColor(color[0]); @@ -4962,14 +4965,14 @@ public class CardFactory_Creatures { stop(); } else { - Object o = AllZone.Display.getChoice("Choose first card to exile", list.toArray()); + Object o = GuiUtils.getChoice("Choose first card to exile", list.toArray()); if (o!=null) { Card c1 = (Card)o; AllZone.GameAction.exile(c1); list.remove(c1); - o = AllZone.Display.getChoice("Choose second card to exile", list.toArray()); + o = GuiUtils.getChoice("Choose second card to exile", list.toArray()); if (o!=null) { @@ -5227,7 +5230,7 @@ public class CardFactory_Creatures { if(card.getController().equals(AllZone.HumanPlayer)) { String[] colors = Constant.Color.onlyColors; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color[0] = (String) o; card.setChosenColor(color[0]); } else { @@ -5598,7 +5601,7 @@ public class CardFactory_Creatures { public void resolve() { Card c = null; if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select Elemental", getCreatures()); + Object o = GuiUtils.getChoiceOptional("Select Elemental", getCreatures()); c = (Card) o; } else { @@ -5775,7 +5778,7 @@ public class CardFactory_Creatures { dragon = CardFactoryUtil.AI_getBestCreature(list); } else //human { - Object o = AllZone.Display.getChoiceOptional("Select Dragon", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select Dragon", list.toArray()); dragon = (Card) o; } AllZone.GameAction.moveToHand(dragon); @@ -5940,7 +5943,7 @@ public class CardFactory_Creatures { if(arts.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", arts.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", arts.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -5971,7 +5974,7 @@ public class CardFactory_Creatures { lib.remove(c); hand.add(c); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -5995,7 +5998,7 @@ public class CardFactory_Creatures { if(goblins.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", goblins.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", goblins.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -6025,7 +6028,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -6048,7 +6051,7 @@ public class CardFactory_Creatures { if(kithkin.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", kithkin.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", kithkin.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -6078,7 +6081,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -6103,7 +6106,7 @@ public class CardFactory_Creatures { if(treefolkForests.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", + Object o = GuiUtils.getChoiceOptional("Select target card", treefolkForests.toArray()); if(o != null) { ability.setTargetCard((Card) o); @@ -6205,7 +6208,7 @@ public class CardFactory_Creatures { } else // human { if(basic.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Select Plains card to put onto the battlefield: ", + Object o = GuiUtils.getChoiceOptional("Select Plains card to put onto the battlefield: ", basic.toArray()); if(o != null) { Card c = (Card) o; @@ -6442,7 +6445,7 @@ public class CardFactory_Creatures { if(cards.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select card to remove: ", + Object o = GuiUtils.getChoiceOptional("Select card to remove: ", cards.toArray()); Card c = (Card) o; AllZone.GameAction.exile(c); @@ -6509,7 +6512,7 @@ public class CardFactory_Creatures { int lifeGain = 0; if(card.getController().equals(AllZone.HumanPlayer)) { String choices[] = {"white", "blue", "black", "red", "green"}; - Object o = AllZone.Display.getChoiceOptional("Select Color: ", choices); + Object o = GuiUtils.getChoiceOptional("Select Color: ", choices); Log.debug("Treva, the Renewer", "Color:" + o); lifeGain = CardFactoryUtil.getNumberOfPermanentsByColor((String) o); @@ -6548,7 +6551,7 @@ public class CardFactory_Creatures { int numberTokens = 0; if(card.getController().equals(AllZone.HumanPlayer)) { String choices[] = {"white", "blue", "black", "red", "green"}; - Object o = AllZone.Display.getChoiceOptional("Select Color: ", choices); + Object o = GuiUtils.getChoiceOptional("Select Color: ", choices); //System.out.println("Color:" + o); numberTokens = CardFactoryUtil.getNumberOfPermanentsByColor((String) o); } else { @@ -6731,7 +6734,7 @@ public class CardFactory_Creatures { } else // human { if(basic.size() > 0) { - Object o = AllZone.Display.getChoiceOptional( + Object o = GuiUtils.getChoiceOptional( "Select Basic Land card to put onto the battlefield tapped: ", basic.toArray()); if(o != null) { Card c = (Card) o; @@ -6844,7 +6847,7 @@ public class CardFactory_Creatures { CardList cl = new CardList(); cl.add(lib.get(0)); - AllZone.Display.getChoiceOptional("Top card", cl.toArray()); + GuiUtils.getChoiceOptional("Top card", cl.toArray()); } @Override @@ -6898,7 +6901,7 @@ public class CardFactory_Creatures { if(powerTwoCreatures.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", + Object o = GuiUtils.getChoiceOptional("Select target card", powerTwoCreatures.toArray()); if(o != null) { ability.setTargetCard((Card) o); @@ -7061,7 +7064,7 @@ public class CardFactory_Creatures { } } - //Object o = AllZone.Display.getChoiceOptional("Select a creature card to bounce", blackBlue.toArray()); + //Object o = GuiUtils.getChoiceOptional("Select a creature card to bounce", blackBlue.toArray()); AllZone.InputControl.setInput(CardFactoryUtil.input_targetSpecific(ability, redGreen, @@ -7257,7 +7260,7 @@ public class CardFactory_Creatures { if(gravecards.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional(title, gravecards.toArray()); + Object o = GuiUtils.getChoiceOptional(title, gravecards.toArray()); if(o != null) { Card removedCard = (Card) o; AllZone.GameAction.exile(removedCard); @@ -7351,7 +7354,7 @@ public class CardFactory_Creatures { } } - //Object o = AllZone.Display.getChoiceOptional("Select a creature card to bounce", blackBlue.toArray()); + //Object o = GuiUtils.getChoiceOptional("Select a creature card to bounce", blackBlue.toArray()); AllZone.InputControl.setInput(CardFactoryUtil.input_targetSpecific(ability, blackBlue, @@ -7491,7 +7494,7 @@ public class CardFactory_Creatures { CardList creats = new CardList(AllZone.getZone(Constant.Zone.Battlefield, card.getController()).getCards()); creats = creats.getType("Saproling"); - List selection = AllZone.Display.getChoices("Select Saprolings to sacrifice", creats.toArray()); + List selection = GuiUtils.getChoices("Select Saprolings to sacrifice", creats.toArray()); numCreatures[0] = selection.size(); for(int m = 0; m < selection.size(); m++) { @@ -7580,7 +7583,7 @@ public class CardFactory_Creatures { if(oneCostCreatures.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select First Creature", + Object o = GuiUtils.getChoiceOptional("Select First Creature", oneCostCreatures.toArray()); if(o != null) { //ability.setTargetCard((Card)o); @@ -7592,7 +7595,7 @@ public class CardFactory_Creatures { if(oneCostCreatures.size() == 0) return; - o = AllZone.Display.getChoiceOptional("Select Second Creature", + o = GuiUtils.getChoiceOptional("Select Second Creature", oneCostCreatures.toArray()); if(o != null) { @@ -7846,7 +7849,7 @@ public class CardFactory_Creatures { sins = sins.getType("Assassin"); if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select an Assassin to exile", sins.toArray()); + Object o = GuiUtils.getChoiceOptional("Select an Assassin to exile", sins.toArray()); if(o != null) { Card crd = (Card) o; @@ -8569,7 +8572,7 @@ public class CardFactory_Creatures { list = list.getType("Enchantment"); if (list.size() > 0) { - Object objectSelected = AllZone.Display.getChoiceOptional("Choose an enchantment", list.toArray()); + Object objectSelected = GuiUtils.getChoiceOptional("Choose an enchantment", list.toArray()); if (objectSelected != null) { PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, AllZone.HumanPlayer); @@ -8750,7 +8753,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -8774,7 +8777,7 @@ public class CardFactory_Creatures { if(goblins.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", goblins.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", goblins.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -8804,7 +8807,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -8828,7 +8831,7 @@ public class CardFactory_Creatures { if(merfolk.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", merfolk.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", merfolk.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -8858,7 +8861,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -8882,7 +8885,7 @@ public class CardFactory_Creatures { if(elves.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", elves.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", elves.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -8917,9 +8920,9 @@ public class CardFactory_Creatures { if(list.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - AllZone.Display.getChoiceOptional("Revealing hand", list.toArray()); + GuiUtils.getChoiceOptional("Revealing hand", list.toArray()); if(nonLandList.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Select nonland card", + Object o = GuiUtils.getChoiceOptional("Select nonland card", nonLandList.toArray()); if(o != null) { Card c = (Card) o; @@ -8971,7 +8974,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -8996,7 +8999,7 @@ public class CardFactory_Creatures { if(faeries.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", faeries.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", faeries.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -9026,7 +9029,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -9050,7 +9053,7 @@ public class CardFactory_Creatures { if(ele.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", ele.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", ele.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -9080,7 +9083,7 @@ public class CardFactory_Creatures { lib.remove(c); lib.add(c, 0); if (card.getController().isPlayer(AllZone.ComputerPlayer)) - AllZone.Display.getChoiceOptional(card + " - Computer picked:", c); + GuiUtils.getChoiceOptional(card + " - Computer picked:", c); } }//resolve() }; @@ -9104,7 +9107,7 @@ public class CardFactory_Creatures { if(giants.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", giants.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", giants.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -9141,7 +9144,7 @@ public class CardFactory_Creatures { landInLib.get(0).tap(); play.add(landInLib.get(0)); } else { - Object o = AllZone.Display.getChoiceOptional("Select plains card to put onto the battlefield: ", + Object o = GuiUtils.getChoiceOptional("Select plains card to put onto the battlefield: ", landInLib.toArray()); if(o != null) { Card crd = (Card) o; @@ -9203,7 +9206,7 @@ public class CardFactory_Creatures { if(list.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select Legendary creature", + Object o = GuiUtils.getChoiceOptional("Select Legendary creature", list.toArray()); if(o != null) { Card c = (Card) o; @@ -9285,7 +9288,7 @@ public class CardFactory_Creatures { if(list.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select black card", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select black card", list.toArray()); if(o != null) { Card c = (Card) o; grave.remove(c); @@ -9406,7 +9409,7 @@ public class CardFactory_Creatures { String color = ""; if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card, c)) { - Object o = AllZone.Display.getChoice("Choose mana color", Constant.Color.onlyColors); + Object o = GuiUtils.getChoice("Choose mana color", Constant.Color.onlyColors); color = (String) o; c.addExtrinsicKeyword("Protection from " + color); if(creatureMap.containsKey(c)) { @@ -9566,7 +9569,7 @@ public class CardFactory_Creatures { lands = lands.getType("Forest"); if(player.equals(AllZone.HumanPlayer) && lands.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Pick a forest card to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick a forest card to put onto the battlefield", lands.toArray()); if(o != null) { Card card = (Card) o; @@ -9673,7 +9676,7 @@ public class CardFactory_Creatures { String[] colors = Constant.Color.Colors; colors[colors.length - 1] = null; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color = (String) o; card.setChosenColor(color); } else { @@ -9723,7 +9726,7 @@ public class CardFactory_Creatures { creatures = creatures.getType("Creature"); if(creatures.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoice("Pick creature: ", creatures.toArray()); + Object o = GuiUtils.getChoice("Pick creature: ", creatures.toArray()); if(o != null) { Card c = (Card) o; PlayerZone zone = AllZone.getZone(c); @@ -9907,7 +9910,7 @@ public class CardFactory_Creatures { @Override public void resolve() { if(getController().isHuman() && - AllZone.Display.getChoice("Copy " + getSourceCard(), + GuiUtils.getChoice("Copy " + getSourceCard(), new String[] {"Yes", "No"}).equals("No")) return; PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, getSourceCard().getController()); @@ -9966,7 +9969,7 @@ public class CardFactory_Creatures { CardList hand = AllZoneUtil.getPlayerHand(player); player.loseLife(1, card); if(player.equals(AllZone.ComputerPlayer)) { - AllZone.Display.getChoice("Look", hand.toArray()); + GuiUtils.getChoice("Look", hand.toArray()); } } @@ -10007,7 +10010,7 @@ public class CardFactory_Creatures { for(int i = 1; i < handChoices.length; i++) { handChoices[i] = null; } - AllZone.Display.getChoice("Random card", handChoices); + GuiUtils.getChoice("Random card", handChoices); opponent.loseLife(CardUtil.getConvertedManaCost(choice.getManaCost()),card); } }//resolve() @@ -10457,7 +10460,7 @@ public class CardFactory_Creatures { if(arts.size() == 0) return; if(controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", arts.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", arts.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -10553,7 +10556,7 @@ public class CardFactory_Creatures { } else // human { if(basic.size() > 0) { - Object o = AllZone.Display.getChoiceOptional( + Object o = GuiUtils.getChoiceOptional( "Select Basic Land card to put into your hand: ", basic.toArray()); if(o != null) { Card c = (Card) o; @@ -10748,7 +10751,7 @@ public class CardFactory_Creatures { for(int i = 0; i < 2; i++) { if(graveList.size() == 0) break; - Card c = AllZone.Display.getChoiceOptional("Select creature", graveList.toArray()); + Card c = GuiUtils.getChoiceOptional("Select creature", graveList.toArray()); if(c == null) break; AllZone.GameAction.moveTo(battlefield, c); graveList.remove(c); @@ -11305,7 +11308,7 @@ public class CardFactory_Creatures { if(list.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoice("Pick creature to exile: ", list.toArray()); + Object o = GuiUtils.getChoice("Pick creature to exile: ", list.toArray()); if(o != null) { Card c = (Card)o; if (AllZone.GameAction.isCardInGrave(c)) @@ -11535,7 +11538,7 @@ public class CardFactory_Creatures { if(auras.size() == 0) return; if (controller.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", auras.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", auras.toArray()); if (o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -11620,7 +11623,7 @@ public class CardFactory_Creatures { if(card.getController().equals(AllZone.HumanPlayer)) { if (creats.size() > 0) { - List selection = AllZone.Display.getChoicesOptional("Select creatures to sacrifice", creats.toArray()); + List selection = GuiUtils.getChoicesOptional("Select creatures to sacrifice", creats.toArray()); numCreatures[0] = selection.size(); for(int m = 0; m < selection.size(); m++) { @@ -11796,7 +11799,7 @@ public class CardFactory_Creatures { life[i] = String.valueOf(i); } - Object o = AllZone.Display.getChoice("Nameless Race - pay X life", life); + Object o = GuiUtils.getChoice("Nameless Race - pay X life", life); String answer = (String) o; int loseLife = 0; try { @@ -11943,7 +11946,7 @@ public class CardFactory_Creatures { for(int j = 0; j < 7; j++) { choices[j] = ""+j; } - String answer = (String)(AllZone.Display.getChoiceOptional( + String answer = (String)(GuiUtils.getChoiceOptional( card.getName()+" - Choose a number", choices)); num = Integer.parseInt(answer); } @@ -12044,7 +12047,7 @@ public class CardFactory_Creatures { for(int j = 0; j < maxCards; j++ ) { topCards.add(lib.get(j)); } - Object o = AllZone.Display.getChoice("Put one card in your hand", topCards.toArray()); + Object o = GuiUtils.getChoice("Put one card in your hand", topCards.toArray()); if(o != null) { Card c_1 = (Card) o; topCards.remove(c_1); @@ -12609,10 +12612,10 @@ public class CardFactory_Creatures { hand.remove(random); } if(!revealed.isEmpty()) { - AllZone.Display.getChoice("Revealed at random", revealed.toArray()); + GuiUtils.getChoice("Revealed at random", revealed.toArray()); } else { - AllZone.Display.getChoice("Revealed at random", new String[] {"Nothing to reveal"}); + GuiUtils.getChoice("Revealed at random", new String[] {"Nothing to reveal"}); } for(Card c:revealed) { diff --git a/src/forge/CardFactory_Instants.java b/src/forge/CardFactory_Instants.java index 2ba8c4cc386..da4b285f269 100644 --- a/src/forge/CardFactory_Instants.java +++ b/src/forge/CardFactory_Instants.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import javax.swing.JOptionPane; +import forge.gui.GuiUtils; + public class CardFactory_Instants { @@ -72,7 +74,7 @@ public class CardFactory_Instants { // You can no longer choose to gain "protection from null". String[] colors = Constant.Color.onlyColors; - Object o = AllZone.Display.getChoice("Choose color", colors); + Object o = GuiUtils.getChoice("Choose color", colors); color = (String)o; } else { @@ -610,7 +612,7 @@ public class CardFactory_Instants { @Override public void showMessage() { - Object check = AllZone.Display.getChoiceOptional("Select creature", getCreatures()); + Object check = GuiUtils.getChoiceOptional("Select creature", getCreatures()); if(check != null) { spell.setTargetCard((Card) check); stopSetNext(new Input_PayManaCost(spell)); @@ -845,7 +847,7 @@ public class CardFactory_Instants { Card target = null; Player player = card.getController(); if(!player.isHuman()){ - Object check = AllZone.Display.getChoiceOptional("Select creature", attack); + Object check = GuiUtils.getChoiceOptional("Select creature", attack); if(check != null) { target = ((Card) check); } @@ -910,12 +912,12 @@ public class CardFactory_Instants { int Pile2CMC = 0; - AllZone.Display.getChoice("Revealing top " + Count + " cards of library: ", cards.toArray()); + GuiUtils.getChoice("Revealing top " + Count + " cards of library: ", cards.toArray()); //Human chooses if(card.getController().equals(AllZone.ComputerPlayer)) { for(int i = 0; i < Count; i++) { if(stop == false) { - choice = AllZone.Display.getChoiceOptional("Choose cards to put into the first pile: ", cards.toArray()); + choice = GuiUtils.getChoiceOptional("Choose cards to put into the first pile: ", cards.toArray()); if(choice != null) { Pile1.add(choice); cards.remove(choice); @@ -1440,7 +1442,7 @@ public class CardFactory_Instants { if(top.size() > 0) { //let user get choice - Card chosen = AllZone.Display.getChoice("Choose a card to put into your hand", + Card chosen = GuiUtils.getChoice("Choose a card to put into your hand", top.toArray()); top.remove(chosen); @@ -1796,7 +1798,7 @@ public class CardFactory_Instants { CardList creatures = new CardList(AllZone.Human_Library.getCards()); creatures = creatures.getType("Creature"); - Object check = AllZone.Display.getChoiceOptional("Select creature", creatures.toArray()); + Object check = GuiUtils.getChoiceOptional("Select creature", creatures.toArray()); if(check != null) { PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController()); AllZone.GameAction.moveTo(hand, (Card) check); @@ -1814,7 +1816,7 @@ public class CardFactory_Instants { Card c = CardFactoryUtil.AI_getBestCreature(list); if(c == null) c = list.get(0); AllZone.GameAction.moveToHand(c); - AllZone.Display.getChoiceOptional("Computer picked:", c); + GuiUtils.getChoiceOptional("Computer picked:", c); } } @@ -1978,7 +1980,7 @@ public class CardFactory_Instants { CardList list = new CardList(library.getCards()); if(list.size() != 0) { - Object o = AllZone.Display.getChoiceOptional("Select a card", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a card", list.toArray()); card.getController().shuffle(); if(o != null) { @@ -2013,10 +2015,9 @@ public class CardFactory_Instants { public void humanResolve() { CardList libraryList = new CardList(AllZone.Human_Library.getCards()); - PlayerZone library = AllZone.getZone(Constant.Zone.Library, card.getController()); CardList selectedCards = new CardList(); - Object o = AllZone.Display.getChoiceOptional("Select first card", libraryList.toArray()); + Object o = GuiUtils.getChoiceOptional("Select first card", libraryList.toArray()); if(o != null) { Card c1 = (Card) o; libraryList.remove(c1); @@ -2024,7 +2025,7 @@ public class CardFactory_Instants { } else { return; } - o = AllZone.Display.getChoiceOptional("Select second card", libraryList.toArray()); + o = GuiUtils.getChoiceOptional("Select second card", libraryList.toArray()); if(o != null) { Card c2 = (Card) o; libraryList.remove(c2); @@ -2032,7 +2033,7 @@ public class CardFactory_Instants { } else { return; } - o = AllZone.Display.getChoiceOptional("Select third card", libraryList.toArray()); + o = GuiUtils.getChoiceOptional("Select third card", libraryList.toArray()); if(o != null) { Card c3 = (Card) o; libraryList.remove(c3); @@ -2077,7 +2078,7 @@ public class CardFactory_Instants { selectedCards.add(c); // NOTE: Using getChoiceOptional() results in a null error when you click on Cancel. - Object o = AllZone.Display.getChoice("Select card to give to computer", selectedCards.toArray()); + Object o = GuiUtils.getChoice("Select card to give to computer", selectedCards.toArray()); Card choice = (Card) o; @@ -2304,7 +2305,7 @@ public class CardFactory_Instants { String question = "Pick a basic land card to put onto the battlefield tapped?"; if (GameActionUtil.showYesNoDialog(card, question)) { - Object o = AllZone.Display.getChoiceOptional("Choose a Basic Land", lands.toArray()); + Object o = GuiUtils.getChoiceOptional("Choose a Basic Land", lands.toArray()); if (o != null) { Card card = (Card) o; @@ -3015,7 +3016,7 @@ public class CardFactory_Instants { if( player.equals(AllZone.HumanPlayer)) { for(int i = 0; i < X; i++) { - Object o = AllZone.Display.getChoice("Remove from game", graveList.toArray()); + Object o = GuiUtils.getChoice("Remove from game", graveList.toArray()); if(o == null) break; Card c_1 = (Card) o; graveList.remove(c_1); //remove from the display list @@ -3407,7 +3408,7 @@ public class CardFactory_Instants { } for(int i = 0; i < 3 && !choices.isEmpty(); i++) { - Object o = AllZone.Display.getChoice(prompt[i], choices.toArray()); + Object o = GuiUtils.getChoice(prompt[i], choices.toArray()); Card c1 = (Card)o; if(i == 0) AllZone.GameAction.moveToHand(c1); else if(i == 1) AllZone.GameAction.moveToLibrary(c1); @@ -3921,13 +3922,13 @@ public class CardFactory_Instants { ArrayList chooseTwo(ArrayList choices) { ArrayList out = new ArrayList(); - Object o = AllZone.Display.getChoiceOptional("Choose Two", choices.toArray()); + Object o = GuiUtils.getChoiceOptional("Choose Two", choices.toArray()); if(o == null) return null; out.add((String) o); card.addSpellChoice((String) o); choices.remove(out.get(0)); - o = AllZone.Display.getChoiceOptional("Choose Two", choices.toArray()); + o = GuiUtils.getChoiceOptional("Choose Two", choices.toArray()); if(o == null) return null; out.add((String) o); diff --git a/src/forge/CardFactory_Lands.java b/src/forge/CardFactory_Lands.java index adf4b0b71a9..079aae11715 100644 --- a/src/forge/CardFactory_Lands.java +++ b/src/forge/CardFactory_Lands.java @@ -5,6 +5,8 @@ import java.util.HashMap; import javax.swing.JOptionPane; +import forge.gui.GuiUtils; + class CardFactory_Lands { public static Card getCard(final Card card, final String cardName, Player owner) { @@ -168,7 +170,7 @@ class CardFactory_Lands { if(card.getController() == AllZone.HumanPlayer){ if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) { - Object o = AllZone.Display.getChoice("Choose mana color", Constant.Color.onlyColors); + Object o = GuiUtils.getChoice("Choose mana color", Constant.Color.onlyColors); Color = (String) o; } @@ -663,7 +665,7 @@ class CardFactory_Lands { } else // human { if(plains.size() > 0) { - Object o = AllZone.Display.getChoiceOptional( + Object o = GuiUtils.getChoiceOptional( "Select plains card to put onto the battlefield tapped: ", plains.toArray()); if(o != null) { Card c = (Card) o; @@ -1745,7 +1747,7 @@ class CardFactory_Lands { for(int j=0;j<=num[0];j++) { choices[j] = ""+j; } - String answer = (String)(AllZone.Display.getChoiceOptional("Storage counters to remove", choices)); + String answer = (String)(GuiUtils.getChoiceOptional("Storage counters to remove", choices)); if(null != answer && !answer.equals("")) { num[0] = Integer.parseInt(answer); card.tap(); @@ -1907,7 +1909,7 @@ class CardFactory_Lands { for(int j=0;j<=num[0];j++) { choices[j] = ""+j; } - String answer = (String)(AllZone.Display.getChoiceOptional( + String answer = (String)(GuiUtils.getChoiceOptional( "Storage counters to remove", choices)); if (answer == null){ stop(); @@ -1916,7 +1918,7 @@ class CardFactory_Lands { num[0] = Integer.parseInt(answer); - String splitNum = (String)(AllZone.Display.getChoiceOptional( + String splitNum = (String)(GuiUtils.getChoiceOptional( "Number of "+primary+" to add", choices)); if (splitNum == null){ stop(); diff --git a/src/forge/CardFactory_Planeswalkers.java b/src/forge/CardFactory_Planeswalkers.java index c9ea61bb578..c8684eb2f35 100644 --- a/src/forge/CardFactory_Planeswalkers.java +++ b/src/forge/CardFactory_Planeswalkers.java @@ -6,6 +6,8 @@ import java.util.HashMap; import com.esotericsoftware.minlog.Log; +import forge.gui.GuiUtils; + class CardFactory_Planeswalkers { public static Card getCard(final Card card, String cardName, Player owner) { @@ -263,7 +265,7 @@ class CardFactory_Planeswalkers { { Object o = null; for(int k = 0; k < oppPerms.size(); k++) { - o = AllZone.Display.getChoiceOptional("Select Card to sacrifice", + o = GuiUtils.getChoiceOptional("Select Card to sacrifice", oppPermTempList.toArray()); Card c = (Card) o; //AllZone.GameAction.sacrifice(c); @@ -752,7 +754,7 @@ class CardFactory_Planeswalkers { CardList list = new CardList(library.getCards()); if(list.size() != 0) { - Object o = AllZone.Display.getChoiceOptional("Select any card", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select any card", list.toArray()); card.getController().shuffle(); if(o != null) { @@ -1088,7 +1090,7 @@ class CardFactory_Planeswalkers { for(int i = 0; i < choice.length; i++) choice[i] = Integer.valueOf(i + 1); - Integer damage = (Integer) AllZone.Display.getChoice("Select X", choice); + Integer damage = (Integer) GuiUtils.getChoice("Select X", choice); return damage.intValue(); } };//Input target @@ -1684,7 +1686,7 @@ class CardFactory_Planeswalkers { for(int i = 0; i < choice.length; i++) choice[i] = Integer.valueOf(i); - Integer damage = (Integer) AllZone.Display.getChoice("Select X", choice); + Integer damage = (Integer) GuiUtils.getChoice("Select X", choice); final int dam = damage.intValue(); card.subtractCounter(Counters.LOYALTY, dam); @@ -1699,7 +1701,7 @@ class CardFactory_Planeswalkers { }); if(list.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Select artifact", + Object o = GuiUtils.getChoiceOptional("Select artifact", AllZone.Human_Library.getCards()); if(o != null) { Card c = (Card) o; @@ -1932,14 +1934,14 @@ class CardFactory_Planeswalkers { CardList putOnTop = new CardList(hand.getCards()); - Object o = AllZone.Display.getChoiceOptional("First card to put on top: ", putOnTop.toArray()); + Object o = GuiUtils.getChoiceOptional("First card to put on top: ", putOnTop.toArray()); if(o != null) { Card c1 = (Card) o; putOnTop.remove(c1); hand.remove(c1); lib.add(c1, 0); } - o = AllZone.Display.getChoiceOptional("Second card to put on top: ", putOnTop.toArray()); + o = GuiUtils.getChoiceOptional("Second card to put on top: ", putOnTop.toArray()); if(o != null) { Card c2 = (Card) o; putOnTop.remove(c2); @@ -2078,7 +2080,7 @@ class CardFactory_Planeswalkers { int convertedManaTopCard = CardUtil.getConvertedManaCost(topCard.getManaCost()); CardList showTop = new CardList(); showTop.add(topCard); - AllZone.Display.getChoiceOptional("Revealed top card: ", showTop.toArray()); + GuiUtils.getChoiceOptional("Revealed top card: ", showTop.toArray()); //now, move it to player's hand lib.remove(topCard); diff --git a/src/forge/CardFactory_Sorceries.java b/src/forge/CardFactory_Sorceries.java index fb2d3fd2fd0..f46b6b9249c 100644 --- a/src/forge/CardFactory_Sorceries.java +++ b/src/forge/CardFactory_Sorceries.java @@ -8,8 +8,11 @@ import java.util.Vector; import java.util.Map.Entry; import javax.swing.JOptionPane; + import com.esotericsoftware.minlog.Log; +import forge.gui.GuiUtils; + public class CardFactory_Sorceries { public static Card getCard(final Card card, final String cardName, Player owner) @@ -640,7 +643,7 @@ public class CardFactory_Sorceries { @Override public void showMessage() { - Object check = AllZone.Display.getChoiceOptional("Select creature", getCreaturesAndArtifacts()); + Object check = GuiUtils.getChoiceOptional("Select creature", getCreaturesAndArtifacts()); if(check != null) { spell.setTargetCard((Card) check); stopSetNext(new Input_PayManaCost(spell)); @@ -712,7 +715,7 @@ public class CardFactory_Sorceries { for(int i = 1; i < handChoices.length; i++) { handChoices[i] = null; } - AllZone.Display.getChoice("Random card", handChoices); + GuiUtils.getChoice("Random card", handChoices); player.addDamage(CardUtil.getConvertedManaCost(choice.getManaCost()), card); } }//resolve() @@ -762,7 +765,7 @@ public class CardFactory_Sorceries { Card crd = creature.get(i); Target[i] = crd; } - Object check = AllZone.Display.getChoiceOptional("Select creature", Target); + Object check = GuiUtils.getChoiceOptional("Select creature", Target); if(check != null) { c2 = (Card) check; } @@ -993,7 +996,7 @@ public class CardFactory_Sorceries { } Object check = null; if(SystemsGo == true) { - check = AllZone.Display.getChoiceOptional("Select Card to play for free", Choices); + check = GuiUtils.getChoiceOptional("Select Card to play for free", Choices); if(check != null) { target = ((Card) check); } @@ -1128,7 +1131,7 @@ public class CardFactory_Sorceries { Card[] Search = GraveandLibrary.toArray(); AllZone.Display.showMessage("Select a card to put " + i + " from the top of the new library: " + (Count - i) + " Choices to go."); ButtonUtil.enableOnlyCancel(); - Object check = AllZone.Display.getChoice("Select a card: ", Search); + Object check = GuiUtils.getChoice("Select a card: ", Search); NewLibrary.add((Card) check); GraveandLibrary.remove((Card) check); @@ -1188,12 +1191,12 @@ public class CardFactory_Sorceries { int Pile2CMC = 0; - AllZone.Display.getChoice("Revealing top " + Count + " cards of library: ", cards.toArray()); + GuiUtils.getChoice("Revealing top " + Count + " cards of library: ", cards.toArray()); //Human chooses if(card.getController().equals(AllZone.ComputerPlayer)) { for(int i = 0; i < Count; i++) { if(stop == false) { - choice = AllZone.Display.getChoiceOptional("Choose cards to put into the first pile: ", cards.toArray()); + choice = GuiUtils.getChoiceOptional("Choose cards to put into the first pile: ", cards.toArray()); if(choice != null) { Pile1.add(choice); cards.remove(choice); @@ -1275,7 +1278,7 @@ public class CardFactory_Sorceries { int Spells = Pile1.size(); for( int i = 0; i < Spells; i++) { if(stop2 == false) { - Object check = AllZone.Display.getChoiceOptional("Select spells to play in reverse order: ", Pile1.toArray()); + Object check = GuiUtils.getChoiceOptional("Select spells to play in reverse order: ", Pile1.toArray()); if(check != null) { if(((Card) check).isLand() == true) { if(CardFactoryUtil.canHumanPlayLand()) { @@ -1297,7 +1300,7 @@ public class CardFactory_Sorceries { int Spells = Pile2.size(); for( int i = 0; i < Spells; i++) { if(stop2 == false) { - Object check = AllZone.Display.getChoiceOptional("Select spells to play in reverse order: ", Pile2.toArray()); + Object check = GuiUtils.getChoiceOptional("Select spells to play in reverse order: ", Pile2.toArray()); if(check != null) { if(((Card) check).isLand() == true) { if(CardFactoryUtil.canHumanPlayLand()) { @@ -1368,7 +1371,7 @@ public class CardFactory_Sorceries { } if(dragons.size() != 0) { - Object o = AllZone.Display.getChoiceOptional("Select a Dragon to put onto the battlefield", dragons.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a Dragon to put onto the battlefield", dragons.toArray()); card.getController().shuffle(); if(o != null) { @@ -1399,7 +1402,7 @@ public class CardFactory_Sorceries { CardList l = new CardList(); l.add(c); - AllZone.Display.getChoiceOptional("Computer picked:", l.toArray()); + GuiUtils.getChoiceOptional("Computer picked:", l.toArray()); } } @@ -1501,10 +1504,10 @@ public class CardFactory_Sorceries { choice = JOptionPane.showInputDialog(null, "Name a nonland card", cardName, JOptionPane.QUESTION_MESSAGE); CardList showLibrary = AllZoneUtil.getPlayerCardsInLibrary(target); - AllZone.Display.getChoiceOptional("Target Player's Library", showLibrary.toArray()); + GuiUtils.getChoiceOptional("Target Player's Library", showLibrary.toArray()); CardList showHand = AllZoneUtil.getPlayerHand(target); - AllZone.Display.getChoiceOptional("Target Player's Hand", showHand.toArray()); + GuiUtils.getChoiceOptional("Target Player's Hand", showHand.toArray()); }//if else //computer chooses { @@ -2321,13 +2324,13 @@ public class CardFactory_Sorceries { ArrayList chooseTwo(ArrayList choices) { ArrayList out = new ArrayList(); - Object o = AllZone.Display.getChoiceOptional("Choose Two", choices.toArray()); + Object o = GuiUtils.getChoiceOptional("Choose Two", choices.toArray()); if(o == null) return null; out.add((String) o); card.addSpellChoice((String) o); choices.remove(out.get(0)); - o = AllZone.Display.getChoiceOptional("Choose Two", choices.toArray()); + o = GuiUtils.getChoiceOptional("Choose Two", choices.toArray()); if(o == null) return null; out.add((String) o); @@ -2461,7 +2464,7 @@ public class CardFactory_Sorceries { CardList choices = new CardList(library.getCards()); choices = choices.getType("Creature"); - Object o = AllZone.Display.getChoiceOptional("Choose a creature", choices.toArray()); + Object o = GuiUtils.getChoiceOptional("Choose a creature", choices.toArray()); if(o != null) resolve((Card) o); } @@ -2842,7 +2845,7 @@ public class CardFactory_Sorceries { list.add(library.get(i)); //optional, select a creature - Object o = AllZone.Display.getChoiceOptional("Select a creature", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select a creature", list.toArray()); if(o != null && ((Card) o).isCreature()) { list.remove((Card) o); AllZone.GameAction.moveToHand((Card) o); @@ -3087,7 +3090,7 @@ public class CardFactory_Sorceries { if(list.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("First card to discard", list.toArray()); + Object o = GuiUtils.getChoiceOptional("First card to discard", list.toArray()); Card c = (Card) o; list.remove(c); @@ -3099,7 +3102,7 @@ public class CardFactory_Sorceries { } if(list.size() > 0) { - Object o2 = AllZone.Display.getChoiceOptional("Second card to discard", list.toArray()); + Object o2 = GuiUtils.getChoiceOptional("Second card to discard", list.toArray()); Card c2 = (Card) o2; list.remove(c2); @@ -3181,7 +3184,7 @@ public class CardFactory_Sorceries { topTwo.add(lib.get(0)); topTwo.add(lib.get(1)); - Object o = AllZone.Display.getChoiceOptional("Select card to put in hand: ", + Object o = GuiUtils.getChoiceOptional("Select card to put in hand: ", topTwo.toArray()); Card c1 = (Card) o; @@ -3215,6 +3218,74 @@ public class CardFactory_Sorceries { card.addSpellAbility(spell); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Cruel Tutor") || cardName.equals("Imperial Seal")) { + SpellAbility spell = new Spell(card) { + private static final long serialVersionUID = -948983382014193129L; + + @Override + public boolean canPlayAI() { + int life = AllZone.ComputerPlayer.getLife(); + if(4 < AllZone.Phase.getTurn() && AllZone.Computer_Library.size() > 0 && life >= 4) return true; + else return false; + } + + @Override + public void resolve() { + Player player = card.getController(); + if(player.isHuman()) humanResolve(); + else computerResolve(); + } + + public void computerResolve() { + //TODO: somehow select a good noncreature card for AI + CardList creature = new CardList(AllZone.Computer_Library.getCards()); + creature = creature.getType("Creature"); + if(creature.size() != 0) { + Card c = CardFactoryUtil.AI_getBestCreature(creature); + + if(c == null) { + creature.shuffle(); + c = creature.get(0); + } + + card.getController().shuffle(); + + //move to top of library + AllZone.Computer_Library.remove(c); + AllZone.Computer_Library.add(c, 0); + + //lose 2 life + AllZone.ComputerPlayer.loseLife(2, card); + } + }//computerResolve() + + public void humanResolve() { + PlayerZone library = AllZone.getZone(Constant.Zone.Library, card.getController()); + + CardList list = new CardList(library.getCards()); + + if(list.size() != 0) { + Object o = GuiUtils.getChoiceOptional("Select a card", list.toArray()); + + card.getController().shuffle(); + if(o != null) { + //put card on top of library + library.remove(o); + library.add((Card) o, 0); + } + //lose 2 life + AllZone.HumanPlayer.loseLife(2, card); + }//if + + + }//resolve() + }; + card.clearSpellAbility(); + card.addSpellAbility(spell); + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** else if(cardName.equals("Invincible Hymn")) { final Player player = card.getController(); @@ -3590,7 +3661,7 @@ public class CardFactory_Sorceries { } }); if(list.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Select artifact", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select artifact", list.toArray()); if(o != null) { Card crd = (Card) o; @@ -3809,14 +3880,14 @@ public class CardFactory_Sorceries { CardList fullHand = new CardList(hand.getCards()); Card[] handChoices = removeLand(hand.getCards()); - if(fullHand.size() > 0 && card.getController().equals(AllZone.HumanPlayer)) AllZone.Display.getChoice( + if(fullHand.size() > 0 && card.getController().equals(AllZone.HumanPlayer)) GuiUtils.getChoice( "Revealing hand", fullHand.toArray()); if (handChoices.length == 0) return; if(card.getController().equals(AllZone.HumanPlayer)) { - choice = AllZone.Display.getChoice("Choose", handChoices); + choice = GuiUtils.getChoice("Choose", handChoices); } else //computer chooses { choice = CardUtil.getRandom(handChoices); @@ -4111,7 +4182,7 @@ public class CardFactory_Sorceries { Card c; if (humanList.size() > 0) { - Object check = AllZone.Display.getChoiceOptional("Select creature to Exhume", humanList.toArray()); + Object check = GuiUtils.getChoiceOptional("Select creature to Exhume", humanList.toArray()); if (check!=null) { c = (Card)check; @@ -4899,7 +4970,7 @@ public class CardFactory_Sorceries { if( player.equals(AllZone.HumanPlayer)) { for(int i = 0; i < size; i++) { - Object o = AllZone.Display.getChoice("Remove from game", graveList.toArray()); + Object o = GuiUtils.getChoice("Remove from game", graveList.toArray()); if(o == null) break; damage++; // tally up how many cards removed Card c_1 = (Card) o; @@ -4956,7 +5027,7 @@ public class CardFactory_Sorceries { //choose one card from it if(player.equals(AllZone.HumanPlayer)){ - Object o = AllZone.Display.getChoice("Put into library", handList.toArray()); + Object o = GuiUtils.getChoice("Put into library", handList.toArray()); //if(o == null) break; Card c_1 = (Card) o; if( c_1 != null ) { @@ -5251,7 +5322,7 @@ public class CardFactory_Sorceries { revealed.add(top); } while( index < lib.size() && top.isLand() ); //Display the revealed cards - AllZone.Display.getChoice("Revealed cards:", revealed.toArray()); + GuiUtils.getChoice("Revealed cards:", revealed.toArray()); //non-land card into hand AllZone.GameAction.moveToHand(revealed.get(revealed.size()-1)); //put the rest of the cards on the bottom of library @@ -5650,7 +5721,7 @@ public class CardFactory_Sorceries { @Override public void showMessage() { - Object check = AllZone.Display.getChoiceOptional("Select creature", getCreatures()); + Object check = GuiUtils.getChoiceOptional("Select creature", getCreatures()); if(check != null) { spell.setTargetCard((Card) check); stopSetNext(new Input_PayManaCost(spell)); @@ -5839,7 +5910,7 @@ public class CardFactory_Sorceries { @Override public void showMessage() { - Object check = AllZone.Display.getChoiceOptional("Select creature", getCreatures()); + Object check = GuiUtils.getChoiceOptional("Select creature", getCreatures()); if(check != null) { spell.setTargetCard((Card) check); stopSetNext(new Input_PayManaCost(spell)); @@ -6259,7 +6330,7 @@ public class CardFactory_Sorceries { final Card topCard = lib.get(0); int damage = CardUtil.getConvertedManaCost(topCard); - AllZone.Display.getChoiceOptional(card+" - Revealed card", new Card[] {topCard}); + GuiUtils.getChoiceOptional(card+" - Revealed card", new Card[] {topCard}); //deal damage to player opponent.addDamage(damage, card); @@ -6320,7 +6391,7 @@ public class CardFactory_Sorceries { topCards.add(lib.get(j)); } final int num = CardFactoryUtil.getNumberOfManaSymbolsByColor("U", topCards); - AllZone.Display.getChoiceOptional("Revealed cards - "+num+" U mana symbols", topCards.toArray()); + GuiUtils.getChoiceOptional("Revealed cards - "+num+" U mana symbols", topCards.toArray()); maxCards = Math.min(maxCards, num); //opponent moves this many cards to graveyard @@ -6961,12 +7032,12 @@ public class CardFactory_Sorceries { ArrayList chooseTwo(ArrayList choices) { ArrayList out = new ArrayList(); - Object o = AllZone.Display.getChoiceOptional("Choose Two", choices.toArray()); + Object o = GuiUtils.getChoiceOptional("Choose Two", choices.toArray()); if(o == null) return null; out.add((String) o); choices.remove(out.get(0)); - o = AllZone.Display.getChoiceOptional("Choose Two", choices.toArray()); + o = GuiUtils.getChoiceOptional("Choose Two", choices.toArray()); if(o == null) return null; out.add((String) o); diff --git a/src/forge/CardListUtil.java b/src/forge/CardListUtil.java index 12f455f397d..d982f864bde 100644 --- a/src/forge/CardListUtil.java +++ b/src/forge/CardListUtil.java @@ -1,5 +1,6 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; import com.esotericsoftware.minlog.Log; diff --git a/src/forge/Combat.java b/src/forge/Combat.java index 4de6b35787f..707a2a04d30 100644 --- a/src/forge/Combat.java +++ b/src/forge/Combat.java @@ -1,6 +1,12 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; import java.util.Map.Entry; public class Combat { diff --git a/src/forge/CombatPlaneswalker.java b/src/forge/CombatPlaneswalker.java index d75186a09b1..b491db49986 100644 --- a/src/forge/CombatPlaneswalker.java +++ b/src/forge/CombatPlaneswalker.java @@ -1,5 +1,10 @@ package forge; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; public class CombatPlaneswalker { diff --git a/src/forge/CombatUtil.java b/src/forge/CombatUtil.java index 750fe892a8e..3db0487f31c 100644 --- a/src/forge/CombatUtil.java +++ b/src/forge/CombatUtil.java @@ -9,6 +9,8 @@ import java.util.regex.Pattern; import com.esotericsoftware.minlog.Log; +import forge.gui.GuiUtils; + public class CombatUtil { static boolean Lorthos_Cancelled; @@ -1297,7 +1299,7 @@ public class CombatUtil { if(enchantments.size() > 0) { if(c.getController().isHuman()) { - Object o = AllZone.Display.getChoiceOptional("Pick an enchantment to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick an enchantment to put onto the battlefield", enchantments.toArray()); if(o != null) { Card crd = (Card) o; @@ -1309,14 +1311,14 @@ public class CombatUtil { CardList creats = new CardList(play.getCards()); creats.addAll(oppPlay.getCards()); creats = creats.getType("Creature"); - obj = AllZone.Display.getChoiceOptional("Pick a creature to attach " + obj = GuiUtils.getChoiceOptional("Pick a creature to attach " + crd.getName() + " to", creats.toArray()); } else if(crd.getKeyword().contains("Enchant land") || crd.getKeyword().contains("Enchant land you control")) { CardList lands = new CardList(play.getCards()); //lands.addAll(oppPlay.getCards()); lands = lands.getType("Land"); - if(lands.size() > 0) obj = AllZone.Display.getChoiceOptional( + if(lands.size() > 0) obj = GuiUtils.getChoiceOptional( "Pick a land to attach " + crd.getName() + " to", lands.toArray()); } if(obj != null) { @@ -1354,14 +1356,13 @@ public class CombatUtil { else if(c.getName().equals("Yore-Tiller Nephilim") && !c.getCreatureAttackedThisCombat()) { PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, c.getController()); - PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, c.getController()); CardList creatures = new CardList(grave.getCards()); creatures = creatures.getType("Creature"); if(creatures.size() > 0) { if(c.getController().isHuman()) { - Object o = AllZone.Display.getChoiceOptional("Pick a creature to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick a creature to put onto the battlefield", creatures.toArray()); if(o != null) { Card card = (Card) o; @@ -1742,7 +1743,7 @@ public class CombatUtil { if(graveList.size() == 0) return; if(sun.getController().isHuman()) { - Object o = AllZone.Display.getChoiceOptional("Select target card", graveList.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", graveList.toArray()); if(o != null) { ability2.setTargetCard((Card) o); AllZone.Stack.add(ability2); @@ -1774,7 +1775,7 @@ public class CombatUtil { if(soldiers.size() > 0) { if(c.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a soldier to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick a soldier to put onto the battlefield", soldiers.toArray()); if(o != null) { Card card = (Card) o; @@ -1934,7 +1935,7 @@ public class CombatUtil { if(lib.size() > 0) { CardList cl = new CardList(); cl.add(lib.get(0)); - AllZone.Display.getChoiceOptional("Top card", cl.toArray()); + GuiUtils.getChoiceOptional("Top card", cl.toArray()); Card top = lib.get(0); if(top.getType().contains("Creature")) { player.gainLife(top.getBaseDefense(), c); @@ -1955,7 +1956,7 @@ public class CombatUtil { if(lib.size() > 0) { CardList cl = new CardList(); cl.add(lib.get(0)); - AllZone.Display.getChoiceOptional("Top card:", cl.toArray()); + GuiUtils.getChoiceOptional("Top card:", cl.toArray()); Card c = cl.get(0); if(c.isLand()) { @@ -2651,7 +2652,7 @@ public class CombatUtil { Card crd = enchantments.get(i); Target[i] = crd; } - Object check = AllZone.Display.getChoiceOptional("Select enchantment to enchant exalted creature", Target); + Object check = GuiUtils.getChoiceOptional("Select enchantment to enchant exalted creature", Target); if(check != null) { Enchantment = ((Card) check); } diff --git a/src/forge/CommandList.java b/src/forge/CommandList.java index bdd3292f4ad..e28f24a3e2a 100644 --- a/src/forge/CommandList.java +++ b/src/forge/CommandList.java @@ -1,5 +1,6 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Iterator; public class CommandList implements java.io.Serializable, Command, Iterable { diff --git a/src/forge/ComputerAI_General.java b/src/forge/ComputerAI_General.java index 0de65a8e4d5..52c28ffb3e2 100644 --- a/src/forge/ComputerAI_General.java +++ b/src/forge/ComputerAI_General.java @@ -1,9 +1,7 @@ package forge; -import static forge.error.ErrorViewer.*; +import static forge.error.ErrorViewer.showError; import java.util.ArrayList; -// import java.util.Collection; -// import java.util.TreeSet; import com.esotericsoftware.minlog.Log; diff --git a/src/forge/ComputerAI_Rats2.java b/src/forge/ComputerAI_Rats2.java index c05f3cba0a6..1715134c19d 100644 --- a/src/forge/ComputerAI_Rats2.java +++ b/src/forge/ComputerAI_Rats2.java @@ -1,5 +1,6 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Random; public class ComputerAI_Rats2 implements Computer { diff --git a/src/forge/ComputerUtil.java b/src/forge/ComputerUtil.java index e3a747054fd..b307ef19cef 100644 --- a/src/forge/ComputerUtil.java +++ b/src/forge/ComputerUtil.java @@ -3,8 +3,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; -//import java.util.HashMap; -//import java.util.Map; public class ComputerUtil diff --git a/src/forge/ComputerUtil_Attack2.java b/src/forge/ComputerUtil_Attack2.java index b18d18ceef1..dcfd48bbdfb 100644 --- a/src/forge/ComputerUtil_Attack2.java +++ b/src/forge/ComputerUtil_Attack2.java @@ -1,5 +1,6 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Random; //doesHumanAttackAndWin() uses the global variable AllZone.ComputerPlayer public class ComputerUtil_Attack2 { diff --git a/src/forge/Cost_Payment.java b/src/forge/Cost_Payment.java index 8570971a09c..95c36f3bbe0 100644 --- a/src/forge/Cost_Payment.java +++ b/src/forge/Cost_Payment.java @@ -1,6 +1,7 @@ package forge; import java.util.ArrayList; + import javax.swing.JOptionPane; public class Cost_Payment { diff --git a/src/forge/Deck.java b/src/forge/Deck.java index 4f649176f7d..a771ea3dbfe 100644 --- a/src/forge/Deck.java +++ b/src/forge/Deck.java @@ -2,7 +2,7 @@ package forge; -import static java.util.Collections.*; +import static java.util.Collections.unmodifiableList; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/forge/DefaultPlayerZone.java b/src/forge/DefaultPlayerZone.java index 5420893d8d0..0f6c94c3bc2 100644 --- a/src/forge/DefaultPlayerZone.java +++ b/src/forge/DefaultPlayerZone.java @@ -1,5 +1,7 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Observable; public class DefaultPlayerZone extends PlayerZone implements java.io.Serializable { diff --git a/src/forge/Display.java b/src/forge/Display.java index 91dd306ee52..358a718222e 100644 --- a/src/forge/Display.java +++ b/src/forge/Display.java @@ -2,18 +2,9 @@ package forge; -import java.util.List; -public interface Display { - public T getChoice(String message, T... choices); - - public T getChoiceOptional(String message, T... choices); - - public List getChoices(String message, T... choices); - - public List getChoicesOptional(String message, T... choices); - +public interface Display { public void showMessage(String s); public MyButton getButtonOK(); @@ -37,4 +28,6 @@ public interface Display { public boolean savePrefs(); public boolean canLoseByDecking(); + + public void setCard(Card c); } diff --git a/src/forge/GUI_DeckAnalysis.java b/src/forge/GUI_DeckAnalysis.java index 8291b21049a..c4188ea0cc6 100644 --- a/src/forge/GUI_DeckAnalysis.java +++ b/src/forge/GUI_DeckAnalysis.java @@ -9,7 +9,6 @@ import java.awt.event.WindowListener; import java.math.BigDecimal; import java.util.Arrays; -import com.cloudgarden.layout.AnchorLayout; import javax.swing.BorderFactory; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; @@ -25,6 +24,8 @@ import javax.swing.SwingConstants; import javax.swing.border.BevelBorder; import javax.swing.table.DefaultTableModel; +import com.cloudgarden.layout.AnchorLayout; + /** * This code was edited or generated using CloudGarden's Jigloo diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index b1b7f0bad0d..777ef6c5350 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -12,6 +12,7 @@ import java.util.Random; import javax.swing.JFrame; import javax.swing.JOptionPane; +import forge.gui.GuiUtils; import forge.properties.ForgeProps; import forge.properties.NewConstants.LANG.GameAction.GAMEACTION_TEXT; @@ -554,7 +555,7 @@ public class GameAction { } else { if (c.getController().isHuman()) - crd = AllZone.Display.getChoiceOptional("Select totem armor to destroy", list.toArray()); + crd = GuiUtils.getChoiceOptional("Select totem armor to destroy", list.toArray()); else crd = list.get(0); } @@ -1772,7 +1773,7 @@ public class GameAction { } @SuppressWarnings("unused") - Object check2 = AllZone.Display.getChoiceOptional("View" + SearchDescription, + Object check2 = GuiUtils.getChoiceOptional("View" + SearchDescription, SearchBase.toArray()); if(Search[0].contains("SearchShuffle_SameName")) SearchBase = SearchBase.getName(Initiator.getName()); if(Search[0].contains("SearchShuffle_Type")) { @@ -1790,7 +1791,7 @@ public class GameAction { } } if(SearchBase.size() != 0) { - Object check = AllZone.Display.getChoiceOptional("Select a Suitable Card", + Object check = GuiUtils.getChoiceOptional("Select a Suitable Card", SearchBase.toArray()); if(check != null) { SearchedCard[y] = (Card) check; @@ -2081,7 +2082,7 @@ public class GameAction { } else { if (c.getController().isHuman()) - crd = AllZone.Display.getChoiceOptional("Select totem armor to destroy", list.toArray()); + crd = GuiUtils.getChoiceOptional("Select totem armor to destroy", list.toArray()); else crd = list.get(0); } @@ -2165,7 +2166,7 @@ public class GameAction { */ public void promptForShuffle(final Player player) { String[] choices = new String[] {"Yes", "No"}; - Object o = AllZone.Display.getChoice("Shuffle "+player+"'s library?", choices); + Object o = GuiUtils.getChoice("Shuffle "+player+"'s library?", choices); String myChoice = (String) o; if(myChoice.equals("Yes")) { player.shuffle(); @@ -2662,7 +2663,7 @@ public class GameAction { else if (choices.size() == 1) choice = choices.get(0); else - choice = (String) AllZone.Display.getChoiceOptional("Choose", choices.toArray()); + choice = (String) GuiUtils.getChoiceOptional("Choose", choices.toArray()); if (choice == null) return false; @@ -2710,7 +2711,7 @@ public class GameAction { */ if(choices.size() == 0) return; else if(choices.size() == 1) sa = choices.get(0); - else sa = (SpellAbility) AllZone.Display.getChoiceOptional("Choose", choices.toArray()); + else sa = (SpellAbility) GuiUtils.getChoiceOptional("Choose", choices.toArray()); if(sa == null) return; @@ -3346,7 +3347,7 @@ public class GameAction { firstPrompt = "Choose first land"; //branch 2 - Object o = AllZone.Display.getChoiceOptional(firstPrompt, list.toArray()); + Object o = GuiUtils.getChoiceOptional(firstPrompt, list.toArray()); if(o != null) { Card c = (Card) o; list.remove(c); @@ -3359,7 +3360,7 @@ public class GameAction { }//if if ((list.size() == 0) || onlyOneLand) return; //branch 3 - o = AllZone.Display.getChoiceOptional(ForgeProps.getLocalized(GAMEACTION_TEXT.CHOOSE_2ND_LAND), list.toArray()); + o = GuiUtils.getChoiceOptional(ForgeProps.getLocalized(GAMEACTION_TEXT.CHOOSE_2ND_LAND), list.toArray()); if(o != null) { PlayerZone secondZone = AllZone.getZone(Zone2, AllZone.HumanPlayer); @@ -3428,7 +3429,7 @@ public class GameAction { for(Counters c_1:Counters.values()) if(card.getCounters(c_1) != 0) choices.add(c_1.getName()); if (choices.size() > 0) - card.addCounter(Counters.getType((choices.size() == 1 ? choices.get(0) : AllZone.Display.getChoice("Select counter type", choices.toArray()).toString())), 1); + card.addCounter(Counters.getType((choices.size() == 1 ? choices.get(0) : GuiUtils.getChoice("Select counter type", choices.toArray()).toString())), 1); } boolean selComputer = false; boolean selHuman = false; diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index 7959e2738c5..07902b8246f 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -7,6 +7,8 @@ import java.util.HashMap; import javax.swing.JOptionPane; +import forge.gui.GuiUtils; + public class GameActionUtil { public static void executeUpkeepEffects() { @@ -653,7 +655,7 @@ public class GameActionUtil { { CardList creatures = AllZoneUtil.getPlayerGraveyard(AllZone.HumanPlayer); creatures = creatures.getType("Creature"); - Object check = AllZone.Display.getChoiceOptional("Select creature", creatures.toArray()); + Object check = GuiUtils.getChoiceOptional("Select creature", creatures.toArray()); if(check != null) { this.setTargetCard((Card) check); } @@ -743,7 +745,7 @@ public class GameActionUtil { if (count == topOfLibrary.size()) break; }//while - AllZone.Display.getChoiceOptional("Revealed cards:", revealed.toArray()); + GuiUtils.getChoiceOptional("Revealed cards:", revealed.toArray()); if (cascadedCard != null && !cascadedCard.isUnCastable()) { @@ -853,7 +855,7 @@ public class GameActionUtil { lib.remove(crd); if(crd.getName().equals(RippleCard.getName())) RippledCards[i] = crd; }//For - AllZone.Display.getChoiceOptional("Revealed cards:", revealed.toArray()); + GuiUtils.getChoiceOptional("Revealed cards:", revealed.toArray()); for(int i = 0; i < RippleMax; i++) { if(RippledCards[i] != null && !RippledCards[i].isUnCastable()) { @@ -1630,7 +1632,7 @@ public class GameActionUtil { final Player target; if(card.getController().isHuman()) { String[] choices = {"Opponent", "Yourself"}; - Object choice = AllZone.Display.getChoice("Choose target player", choices); + Object choice = GuiUtils.getChoice("Choose target player", choices); if(choice.equals("Opponent")) { target = AllZone.ComputerPlayer; // check for target of spell/abilities should be here }// if choice yes @@ -1677,7 +1679,7 @@ public class GameActionUtil { final Player target; if(card.getController().isHuman()) { String[] choices = {"Opponent", "Yourself"}; - Object choice = AllZone.Display.getChoice("Choose target player", choices); + Object choice = GuiUtils.getChoice("Choose target player", choices); if(choice.equals("Opponent")) { target = AllZone.ComputerPlayer; // check for target of spell/abilities should be here }// if choice yes @@ -1685,7 +1687,7 @@ public class GameActionUtil { } else target = AllZone.HumanPlayer; // check for target of spell/abilities should be here PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, target); CardList fullHand = new CardList(hand.getCards()); - if(fullHand.size() > 0 && target.equals(AllZone.ComputerPlayer)) AllZone.Display.getChoice( + if(fullHand.size() > 0 && target.equals(AllZone.ComputerPlayer)) GuiUtils.getChoice( "Revealing hand", fullHand.toArray()); CardList discard = new CardList(hand.getCards()); discard = discard.filter(new CardListFilter() { @@ -1736,7 +1738,7 @@ public class GameActionUtil { final Player target; if(card.getController().isHuman()) { String[] choices = {"Opponent", "Yourself", "None"}; - Object choice = AllZone.Display.getChoice("Choose target player", choices); + Object choice = GuiUtils.getChoice("Choose target player", choices); if(choice.equals("Opponent")) { target = AllZone.ComputerPlayer; // check for target of spell/abilities should be here }// if choice yes @@ -1797,7 +1799,7 @@ public class GameActionUtil { final Player target; if(card.getController().isHuman()) { String[] choices = {"Yourself", "Opponent", "None"}; - Object choice = AllZone.Display.getChoice("Choose target player", choices); + Object choice = GuiUtils.getChoice("Choose target player", choices); if(choice.equals("Opponent")) { target = AllZone.ComputerPlayer; // check for target of spell/abilities should be here }// if choice yes @@ -4075,7 +4077,7 @@ public class GameActionUtil { if(player.equals(AllZone.HumanPlayer) && grave.size() > 0) { CardList creatures = AllZoneUtil.getPlayerGraveyard(player); creatures = creatures.filter(creatureFilter); - Object creatureChoice = AllZone.Display.getChoice("Creature to move to hand", creatures.toArray()); + Object creatureChoice = GuiUtils.getChoice("Creature to move to hand", creatures.toArray()); Card creatureCard = (Card) creatureChoice; graveyard.remove(creatureCard); hand.add(creatureCard); @@ -4270,7 +4272,7 @@ public class GameActionUtil { if (player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select creature for Wall of Reverence life gain", validTargets.toArray()); + Object o = GuiUtils.getChoiceOptional("Select creature for Wall of Reverence life gain", validTargets.toArray()); if (o != null) { Card c = (Card) o; int power=c.getNetAttack(); @@ -4468,7 +4470,7 @@ public class GameActionUtil { Object q = null; - q = AllZone.Display.getChoiceOptional("Use " + c.getName() + "'s Ally ability?", choices); + q = GuiUtils.getChoiceOptional("Use " + c.getName() + "'s Ally ability?", choices); if(q == null || q.equals("No")) return false; else return true; @@ -4665,7 +4667,7 @@ public class GameActionUtil { String choices[] = {"heads","tails"}; boolean flip = MyRandom.percentTrue(50); if(caller.isHuman()) { - choice = (String) AllZone.Display.getChoice(source.getName()+" - Call coin flip", choices); + choice = (String) GuiUtils.getChoice(source.getName()+" - Call coin flip", choices); } else { choice = choices[MyRandom.random.nextInt(2)]; @@ -5123,7 +5125,7 @@ public class GameActionUtil { Object q = null; - q = AllZone.Display.getChoiceOptional("Use " + c.getName() + " Landfall?", choices); + q = GuiUtils.getChoiceOptional("Use " + c.getName() + " Landfall?", choices); if(q == null || q.equals("No")) return false; else return true; @@ -5257,7 +5259,7 @@ public class GameActionUtil { public void resolve() { String color = ""; - Object o = AllZone.Display.getChoice("Choose mana color", Constant.Color.onlyColors); + Object o = GuiUtils.getChoice("Choose mana color", Constant.Color.onlyColors); color = Input_PayManaCostUtil.getShortColorString((String) o); Ability_Mana abMana = new Ability_Mana(c, "0", color) { @@ -5829,7 +5831,7 @@ public class GameActionUtil { } if(src.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select target card", list.toArray()); + Object o = GuiUtils.getChoiceOptional("Select target card", list.toArray()); if(o != null) { ability.setTargetCard((Card) o); AllZone.Stack.add(ability); @@ -6299,9 +6301,9 @@ public class GameActionUtil { if (grave.size() > 0) { Object o; if (mayReturn) { - o = AllZone.Display.getChoiceOptional("Select a card", choices.toArray()); + o = GuiUtils.getChoiceOptional("Select a card", choices.toArray()); } else { - o = AllZone.Display.getChoice("Select a card", choices.toArray()); + o = GuiUtils.getChoice("Select a card", choices.toArray()); } if (o != null) { Card c_1 = (Card) o; @@ -6427,7 +6429,7 @@ public class GameActionUtil { //human chooses if(opponent.equals(AllZone.ComputerPlayer)) { - choice = AllZone.Display.getChoice("Choose", handChoices); + choice = GuiUtils.getChoice("Choose", handChoices); } else//computer chooses { choice = CardUtil.getRandom(handChoices); // wise choice should be here @@ -6788,7 +6790,7 @@ public class GameActionUtil { if(goblins.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select a Goblin to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Select a Goblin to put onto the battlefield", goblins.toArray()); if(o != null) { @@ -6836,7 +6838,7 @@ public class GameActionUtil { if(goblins.size() > 0) { if(card.getController().equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select a Goblin to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Select a Goblin to put onto the battlefield", goblins.toArray()); if(o != null) { @@ -6923,7 +6925,7 @@ public class GameActionUtil { if(lib.size() > 0) { CardList cl = new CardList(); cl.add(lib.get(0)); - AllZone.Display.getChoiceOptional("Top card", cl.toArray()); + GuiUtils.getChoiceOptional("Top card", cl.toArray()); }; Card top = lib.get(0); player[0].gainLife(CardUtil.getConvertedManaCost(top.getManaCost()), crd); @@ -7004,19 +7006,19 @@ public class GameActionUtil { for(int i = 0; i < 1; i++) { if (dPChHand.size() > 0){ Card c = CardFactoryUtil.AI_getMostExpensivePermanent(dPChHand, source, false); - AllZone.Display.getChoiceOptional("Computer has chosen", new Card[] {c}); + GuiUtils.getChoiceOptional("Computer has chosen", new Card[] {c}); AllZone.HumanPlayer.discard(c, this); } } } else { //human - AllZone.Display.getChoiceOptional("Revealed computer hand", dPHand.toArray()); + GuiUtils.getChoiceOptional("Revealed computer hand", dPHand.toArray()); //hardcode for 1, but if it needs to be expanded, it's here for(int i = 0; i < 1; i++) { if (dPChHand.size() > 0) { - Card dC = AllZone.Display.getChoice("Choose a card to be discarded", dPChHand.toArray()); + Card dC = GuiUtils.getChoice("Choose a card to be discarded", dPChHand.toArray()); AllZone.ComputerPlayer.discard(dC, this); } } @@ -7100,7 +7102,7 @@ public class GameActionUtil { if (GameActionUtil.showYesNoDialog(c, question.toString())) { String title = "Pick a basic land card?"; - Object o = AllZone.Display.getChoiceOptional(title, lands.toArray()); + Object o = GuiUtils.getChoiceOptional(title, lands.toArray()); if (o != null) { Card card = (Card) o; lib.remove(card); @@ -7108,7 +7110,7 @@ public class GameActionUtil { lands.remove(card); if (lands.size() > 0) { - o = AllZone.Display.getChoiceOptional(title, lands.toArray()); + o = GuiUtils.getChoiceOptional(title, lands.toArray()); if (o != null) { card = (Card) o; lib.remove(card); @@ -7116,7 +7118,7 @@ public class GameActionUtil { lands.remove(card); if (lands.size() > 0) { - o = AllZone.Display.getChoiceOptional(title, lands.toArray()); + o = GuiUtils.getChoiceOptional(title, lands.toArray()); if (o != null) { card = (Card) o; lib.remove(card); @@ -7656,7 +7658,7 @@ public class GameActionUtil { Object q = null; if(player.equals(AllZone.HumanPlayer)) { - q = AllZone.Display.getChoiceOptional("Put a counter on AEther Vial? (" + q = GuiUtils.getChoiceOptional("Put a counter on AEther Vial? (" + thisCard.getCounters(Counters.CHARGE) + ")", choices); if(q == null || q.equals("No")) return; if(q.equals("Yes")) { @@ -7865,7 +7867,7 @@ public class GameActionUtil { if(rats.size() > 0) { if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a Rat to put into your hand", + Object o = GuiUtils.getChoiceOptional("Pick a Rat to put into your hand", rats.toArray()); if(o != null) { Card card = (Card) o; @@ -8057,7 +8059,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8145,7 +8147,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8234,7 +8236,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8317,7 +8319,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8388,7 +8390,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8474,7 +8476,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8553,7 +8555,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8626,7 +8628,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8696,7 +8698,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8787,7 +8789,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8857,7 +8859,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -8929,7 +8931,7 @@ public class GameActionUtil { private void revealTopCard(String title) { if (peek[0] != prevCardShown[0]) { - AllZone.Display.getChoice(title, peek[0]); + GuiUtils.getChoice(title, peek[0]); prevCardShown[0] = peek[0]; } }// revealTopCard() @@ -9023,7 +9025,7 @@ public class GameActionUtil { creatures = creatures.getType("Creature"); if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a creature to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick a creature to put onto the battlefield", creatures.toArray()); if(o != null) { Card card = (Card) o; @@ -9075,7 +9077,7 @@ public class GameActionUtil { creatures = creatures.getType("Creature"); if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a creature to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick a creature to put onto the battlefield", creatures.toArray()); if(o != null) { Card card = (Card) o; @@ -9117,7 +9119,7 @@ public class GameActionUtil { if(graveyardCreatures.size() >= 4) { if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a creature to return to hand", + Object o = GuiUtils.getChoiceOptional("Pick a creature to return to hand", graveyardCreatures.toArray()); if(o != null) { Card card = (Card) o; @@ -9161,7 +9163,7 @@ public class GameActionUtil { creatures = creatures.getType("Creature"); if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a creature to put onto the battlefield", + Object o = GuiUtils.getChoiceOptional("Pick a creature to put onto the battlefield", creatures.toArray()); if(o != null) { Card card = (Card) o; @@ -9204,7 +9206,7 @@ public class GameActionUtil { creatures = creatures.getType("Goblin"); if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a goblin to put into your hand", + Object o = GuiUtils.getChoiceOptional("Pick a goblin to put into your hand", creatures.toArray()); if(o != null) { Card card = (Card) o; @@ -9442,7 +9444,7 @@ public class GameActionUtil { if(AllZone.ComputerPlayer.equals(card.getController())) { return CardFactoryUtil.AI_getBestCreature(creatureList); } else { - Object o = AllZone.Display.getChoiceOptional("Choose a creature card", + Object o = GuiUtils.getChoiceOptional("Choose a creature card", creatureList.toArray()); if(o != null) { Card creature = (Card) o; @@ -9519,7 +9521,7 @@ public class GameActionUtil { } }// for loop if (cardsToReveal.size() > 0) - AllZone.Display.getChoice("Revealed cards", cardsToReveal.toArray()); + GuiUtils.getChoice("Revealed cards", cardsToReveal.toArray()); } } } @@ -9558,7 +9560,7 @@ public class GameActionUtil { if(AllZoneUtil.compareTypeAmountInGraveyard(player, "Creature") > 0) { if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick a creature to return to hand", + Object o = GuiUtils.getChoiceOptional("Pick a creature to return to hand", graveyardCreatures.toArray()); if(o != null) { Card card = (Card) o; @@ -10350,7 +10352,7 @@ public class GameActionUtil { for(int j = 0; j < 7; j++) { choices[j] = ""+j; } - String answer = (String)(AllZone.Display.getChoiceOptional(c.getName()+" - Choose a number", choices)); + String answer = (String)(GuiUtils.getChoiceOptional(c.getName()+" - Choose a number", choices)); num = Integer.parseInt(answer); } else { @@ -10764,7 +10766,7 @@ public class GameActionUtil { } if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Select creature to sacrifice", + Object o = GuiUtils.getChoiceOptional("Select creature to sacrifice", creats.toArray()); Card sac = (Card) o; if(sac == null) { @@ -10962,7 +10964,7 @@ public class GameActionUtil { int creatsSize = creats.size(); for(int k = 0; k < creatsSize; k++) { - o = AllZone.Display.getChoiceOptional("Select creature to sacrifice", + o = GuiUtils.getChoiceOptional("Select creature to sacrifice", creats.toArray()); if(o == null) break; @@ -11095,7 +11097,7 @@ public class GameActionUtil { CardList arts = new CardList(graveyard.getCards()); arts = arts.getType("Artifact"); String title = "Choose an artifact"; - Object o = AllZone.Display.getChoiceOptional(title, arts.toArray()); + Object o = GuiUtils.getChoiceOptional(title, arts.toArray()); if (o != null) { Card card = (Card) o; @@ -11296,7 +11298,7 @@ public class GameActionUtil { for(int e = 0; e < Count; e++) { if(hand.size() == 0) hand.addAll(Playerhand.getCards()); handlist = hand.toArray(); - Object check = AllZone.Display.getChoice("Select card to put on bottom of library", handlist); + Object check = GuiUtils.getChoice("Select card to put on bottom of library", handlist); if(check != null) { Card target = ((Card) check); hand.remove(target); @@ -11385,7 +11387,7 @@ public class GameActionUtil { for(int i = 0; i < list.size(); i++) { Card c = list.get(i); String[] choices = {"Yes", "No"}; - Object choice = AllZone.Display.getChoice("Pay Carnophage's upkeep?", choices); + Object choice = GuiUtils.getChoice("Pay Carnophage's upkeep?", choices); if(choice.equals("Yes")) player.loseLife(1, c); else c.tap(); } @@ -11409,7 +11411,7 @@ public class GameActionUtil { for(int i = 0; i < list.size(); i++) { Card c = list.get(i); String[] choices = {"Yes", "No"}; - Object choice = AllZone.Display.getChoice("Pay Sangrophage's upkeep?", choices); + Object choice = GuiUtils.getChoice("Pay Sangrophage's upkeep?", choices); if(choice.equals("Yes")) player.loseLife(2,c); else c.tap(); } @@ -11578,7 +11580,7 @@ public class GameActionUtil { String[] choices = {"Yes", "No, target a creature instead"}; - Object q = AllZone.Display.getChoiceOptional("Select computer as target?", choices); + Object q = GuiUtils.getChoiceOptional("Select computer as target?", choices); if(q != null && q.equals("Yes")) { AllZone.ComputerPlayer.addDamage(hondlist.size(), card); } @@ -11593,7 +11595,7 @@ public class GameActionUtil { if(oppCreatures.size() > 0) { - Object o = AllZone.Display.getChoiceOptional("Pick target creature", + Object o = GuiUtils.getChoiceOptional("Pick target creature", oppCreatures.toArray()); Card c = (Card) o; c.addDamage(hondlist.size(), card); diff --git a/src/forge/GenerateConstructedDeck.java b/src/forge/GenerateConstructedDeck.java index 4e676e11dd4..4dedc0097d4 100644 --- a/src/forge/GenerateConstructedDeck.java +++ b/src/forge/GenerateConstructedDeck.java @@ -1,5 +1,7 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class GenerateConstructedDeck { diff --git a/src/forge/GenerateDraftDeck.java b/src/forge/GenerateDraftDeck.java index 91fb239c9e2..06531eb7cd0 100644 --- a/src/forge/GenerateDraftDeck.java +++ b/src/forge/GenerateDraftDeck.java @@ -1,5 +1,7 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class GenerateDraftDeck { diff --git a/src/forge/GenerateSealedDeck.java b/src/forge/GenerateSealedDeck.java index 54f0de9551a..78e0848c577 100644 --- a/src/forge/GenerateSealedDeck.java +++ b/src/forge/GenerateSealedDeck.java @@ -1,5 +1,7 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class GenerateSealedDeck { diff --git a/src/forge/GuiDisplay2.java b/src/forge/GuiDisplay2.java index 57a567408f1..61b9b8a1455 100644 --- a/src/forge/GuiDisplay2.java +++ b/src/forge/GuiDisplay2.java @@ -9,22 +9,18 @@ import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; -import java.util.List; import java.util.Observable; import java.util.Observer; import javax.swing.JCheckBoxMenuItem; import javax.swing.JLabel; -import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JSeparator; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import forge.gui.ListChooser; +import forge.gui.GuiUtils; import forge.gui.game.CardDetailPanel; import forge.gui.game.CardPanel; import forge.gui.game.CardPicturePanel; @@ -91,8 +87,8 @@ public class GuiDisplay2 extends javax.swing.JFrame implements CardContainer, Di if(AllZone.NameChanger.shouldChangeCardName()) c = AllZone.NameChanger.changeCard(c); - if(c.length == 0) AllZone.Display.getChoiceOptional("Player's Grave", new String[] {"no cards"}); - else AllZone.Display.getChoiceOptional("Player's Grave", c); + if(c.length == 0) GuiUtils.getChoiceOptional("Player's Grave", new String[] {"no cards"}); + else GuiUtils.getChoiceOptional("Player's Grave", c); } }); @@ -103,8 +99,8 @@ public class GuiDisplay2 extends javax.swing.JFrame implements CardContainer, Di if(AllZone.NameChanger.shouldChangeCardName()) c = AllZone.NameChanger.changeCard(c); - if(c.length == 0) AllZone.Display.getChoiceOptional("Computer's Grave", new String[] {"no cards"}); - else AllZone.Display.getChoiceOptional("Computer's Grave", c); + if(c.length == 0) GuiUtils.getChoiceOptional("Computer's Grave", new String[] {"no cards"}); + else GuiUtils.getChoiceOptional("Computer's Grave", c); } }); @@ -199,45 +195,6 @@ public class GuiDisplay2 extends javax.swing.JFrame implements CardContainer, Di messageArea.setText(s); } - //returned Object could be null - public T getChoiceOptional(String message, T... choices) { - if(choices == null || choices.length == 0) return null; - List choice = getChoices(message, 0, 1, choices); - return choice.isEmpty()? null:choice.get(0); - }//getChoiceOptional() - - // returned Object will never be null - public T getChoice(String message, T... choices) { - List choice = getChoices(message, 1, 1, choices); - assert choice.size() == 1; - return choice.get(0); - }//getChoice() - - // returned Object will never be null - public List getChoicesOptional(String message, T... choices) { - return getChoices(message, 0, choices.length, choices); - }//getChoice() - - // returned Object will never be null - public List getChoices(String message, T... choices) { - return getChoices(message, 1, choices.length, choices); - }//getChoice() - - // returned Object will never be null - public List getChoices(String message, int min, int max, T... choices) { - ListChooser c = new ListChooser(message, min, max, choices); - final JList list = c.getJList(); - list.addListSelectionListener(new ListSelectionListener() { - public void valueChanged(ListSelectionEvent ev) { - if(list.getSelectedValue() instanceof Card) { - setCard((Card) list.getSelectedValue()); - } - } - }); - c.show(); - return c.getSelectedValues(); - }//getChoice() - private void addListeners() { //mouse Card Detail playerHandPanel.addMouseMotionListener(GuiDisplayUtil.getCardDetailMouse(this)); diff --git a/src/forge/GuiDisplay3.java b/src/forge/GuiDisplay3.java index 658dbe25427..bac1c39251f 100644 --- a/src/forge/GuiDisplay3.java +++ b/src/forge/GuiDisplay3.java @@ -2,7 +2,7 @@ package forge; -import static org.jdesktop.swingx.MultiSplitLayout.*; +import static org.jdesktop.swingx.MultiSplitLayout.parseModel; import java.awt.BorderLayout; import java.awt.Color; @@ -31,7 +31,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.util.List; import java.util.Observable; import java.util.Observer; @@ -43,7 +42,6 @@ import javax.swing.JCheckBoxMenuItem; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; -import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; @@ -57,15 +55,13 @@ import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; import org.jdesktop.swingx.JXMultiSplitPane; import org.jdesktop.swingx.MultiSplitLayout.Node; import forge.error.ErrorViewer; import forge.gui.ForgeAction; -import forge.gui.ListChooser; +import forge.gui.GuiUtils; import forge.gui.game.CardDetailPanel; import forge.gui.game.CardPanel; import forge.gui.game.CardPicturePanel; @@ -315,45 +311,6 @@ public class GuiDisplay3 extends JFrame implements CardContainer, Display, NewCo messageArea.setBorder(border); } - //returned Object could be null - public T getChoiceOptional(String message, T... choices) { - if(choices == null || choices.length == 0) return null; - List choice = getChoices(message, 0, 1, choices); - return choice.isEmpty()? null:choice.get(0); - }//getChoiceOptional() - - // returned Object will never be null - public T getChoice(String message, T... choices) { - List choice = getChoices(message, 1, 1, choices); - assert choice.size() == 1; - return choice.get(0); - }//getChoice() - - // returned Object will never be null - public List getChoicesOptional(String message, T... choices) { - return getChoices(message, 0, choices.length, choices); - }//getChoice() - - // returned Object will never be null - public List getChoices(String message, T... choices) { - return getChoices(message, 1, choices.length, choices); - }//getChoice() - - // returned Object will never be null - public List getChoices(String message, int min, int max, T... choices) { - ListChooser c = new ListChooser(message, min, max, choices); - final JList list = c.getJList(); - list.addListSelectionListener(new ListSelectionListener() { - public void valueChanged(ListSelectionEvent ev) { - if(list.getSelectedValue() instanceof Card) { - setCard((Card) list.getSelectedValue()); - } - } - }); - c.show(); - return c.getSelectedValues(); - }//getChoice() - private void addListeners() { //mouse Card Detail playerHandPanel.addMouseMotionListener(GuiDisplayUtil.getCardDetailMouse(this)); @@ -1201,9 +1158,9 @@ public class GuiDisplay3 extends JFrame implements CardContainer, Display, NewCo if(AllZone.NameChanger.shouldChangeCardName()) c = AllZone.NameChanger.changeCard(c); - if(c.length == 0) AllZone.Display.getChoiceOptional(title, new String[] {"no cards"}); + if(c.length == 0) GuiUtils.getChoiceOptional(title, new String[] {"no cards"}); else { - Card choice = AllZone.Display.getChoiceOptional(title, c); + Card choice = GuiUtils.getChoiceOptional(title, c); if(choice != null) doAction(choice); } } diff --git a/src/forge/GuiDisplay4.java b/src/forge/GuiDisplay4.java index 1fb2aa38ff7..b78fb0d44bc 100644 --- a/src/forge/GuiDisplay4.java +++ b/src/forge/GuiDisplay4.java @@ -1,7 +1,7 @@ package forge; -import static org.jdesktop.swingx.MultiSplitLayout.*; +import static org.jdesktop.swingx.MultiSplitLayout.parseModel; import java.awt.BorderLayout; import java.awt.Color; @@ -45,7 +45,6 @@ import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JLayeredPane; -import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; @@ -60,8 +59,6 @@ import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; import org.jdesktop.swingx.JXMultiSplitPane; import org.jdesktop.swingx.MultiSplitLayout.Node; @@ -70,10 +67,9 @@ import arcane.ui.HandArea; import arcane.ui.PlayArea; import arcane.ui.ViewPanel; import arcane.ui.util.Animation; - import forge.error.ErrorViewer; import forge.gui.ForgeAction; -import forge.gui.ListChooser; +import forge.gui.GuiUtils; import forge.gui.game.CardDetailPanel; import forge.gui.game.CardPanel; import forge.properties.ForgePreferences; @@ -315,45 +311,6 @@ public class GuiDisplay4 extends JFrame implements CardContainer, Display, NewCo messageArea.setBorder(border); } - //returned Object could be null - public T getChoiceOptional(String message, T... choices) { - if(choices == null || choices.length == 0) return null; - List choice = getChoices(message, 0, 1, choices); - return choice.isEmpty()? null:choice.get(0); - }//getChoiceOptional() - - // returned Object will never be null - public T getChoice(String message, T... choices) { - List choice = getChoices(message, 1, 1, choices); - assert choice.size() == 1; - return choice.get(0); - }//getChoice() - - // returned Object will never be null - public List getChoicesOptional(String message, T... choices) { - return getChoices(message, 0, choices.length, choices); - }//getChoice() - - // returned Object will never be null - public List getChoices(String message, T... choices) { - return getChoices(message, 1, choices.length, choices); - }//getChoice() - - // returned Object will never be null - public List getChoices(String message, int min, int max, T... choices) { - ListChooser c = new ListChooser(message, min, max, choices); - final JList list = c.getJList(); - list.addListSelectionListener(new ListSelectionListener() { - public void valueChanged(ListSelectionEvent ev) { - if(list.getSelectedValue() instanceof Card) { - setCard((Card) list.getSelectedValue()); - } - } - }); - c.show(); - return c.getSelectedValues(); - }//getChoice() - private void addListeners() { //mouse Card Detail playerHandPanel.addMouseMotionListener(new MouseMotionAdapter() { @@ -1186,9 +1143,9 @@ public class GuiDisplay4 extends JFrame implements CardContainer, Display, NewCo if(AllZone.NameChanger.shouldChangeCardName()) c = AllZone.NameChanger.changeCard(c); - if(c.length == 0) AllZone.Display.getChoiceOptional(title, new String[] {"no cards"}); + if(c.length == 0) GuiUtils.getChoiceOptional(title, new String[] {"no cards"}); else { - Card choice = AllZone.Display.getChoiceOptional(title, c); + Card choice = GuiUtils.getChoiceOptional(title, c); if(choice != null) doAction(choice); } } diff --git a/src/forge/GuiDisplayUtil.java b/src/forge/GuiDisplayUtil.java index f5e333c4ed2..4461c5826d8 100644 --- a/src/forge/GuiDisplayUtil.java +++ b/src/forge/GuiDisplayUtil.java @@ -21,7 +21,6 @@ import javax.swing.event.MouseInputAdapter; import arcane.ui.PlayArea; import arcane.ui.util.Animation; - import forge.gui.game.CardPanel; import forge.properties.NewConstants; diff --git a/src/forge/Gui_CardShop.java b/src/forge/Gui_CardShop.java index 507400d4b82..e8204c521c9 100644 --- a/src/forge/Gui_CardShop.java +++ b/src/forge/Gui_CardShop.java @@ -2,26 +2,45 @@ package forge; -import forge.error.ErrorViewer; -import forge.gui.game.CardDetailPanel; -import forge.gui.game.CardPicturePanel; -import forge.properties.NewConstants; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.awt.Image; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Map; +import java.util.Random; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.SwingUtilities; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; import javax.swing.event.MouseInputListener; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; -import java.awt.Color; -import java.awt.*; -import java.awt.event.*; -import java.text.DecimalFormat; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Map; -import java.util.Random; + +import forge.error.ErrorViewer; +import forge.gui.game.CardDetailPanel; +import forge.gui.game.CardPicturePanel; +import forge.properties.NewConstants; public class Gui_CardShop extends JFrame implements CardContainer, DeckDisplay, NewConstants { diff --git a/src/forge/Gui_DeckEditor.java b/src/forge/Gui_DeckEditor.java index deb941bc2b5..dfbd0b2434e 100644 --- a/src/forge/Gui_DeckEditor.java +++ b/src/forge/Gui_DeckEditor.java @@ -6,11 +6,11 @@ import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; -import java.awt.Rectangle; import java.awt.Font; import java.awt.GridLayout; import java.awt.Image; import java.awt.Point; +import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -45,11 +45,10 @@ import javax.swing.event.TableModelListener; import javax.swing.filechooser.FileFilter; import net.miginfocom.swing.MigLayout; - -import forge.error.ErrorViewer; -import forge.gui.game.CardDetailPanel; import arcane.ui.CardPanel; import arcane.ui.ViewPanel; +import forge.error.ErrorViewer; +import forge.gui.game.CardDetailPanel; import forge.properties.ForgeProps; import forge.properties.NewConstants; diff --git a/src/forge/Gui_DeckEditorNew.java b/src/forge/Gui_DeckEditorNew.java index a969840a0ee..00ec198ab09 100644 --- a/src/forge/Gui_DeckEditorNew.java +++ b/src/forge/Gui_DeckEditorNew.java @@ -2,8 +2,8 @@ package forge; -import static javax.swing.BorderFactory.*; -import static org.jdesktop.swingx.MultiSplitLayout.*; +import static javax.swing.BorderFactory.createTitledBorder; +import static org.jdesktop.swingx.MultiSplitLayout.parseModel; import java.awt.BorderLayout; import java.awt.FlowLayout; diff --git a/src/forge/Gui_DeckEditor_Menu.java b/src/forge/Gui_DeckEditor_Menu.java index 51c971f60d4..f0967d4db25 100644 --- a/src/forge/Gui_DeckEditor_Menu.java +++ b/src/forge/Gui_DeckEditor_Menu.java @@ -31,6 +31,7 @@ import javax.swing.SwingUtilities; import javax.swing.filechooser.FileFilter; import forge.error.ErrorViewer; +import forge.gui.GuiUtils; import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.properties.NewConstants.LANG.Gui_DownloadPictures.ERRORS; @@ -1014,7 +1015,7 @@ public class Gui_DeckEditor_Menu extends JMenuBar implements NewConstants { } //Object o = JOptionPane.showInputDialog(null, "Deck Name", "Open Deck", JOptionPane.OK_CANCEL_OPTION, null, // choices.toArray(), choices.toArray()[0]); - Object o = AllZone.Display.getChoiceOptional("Open Deck", choices.toArray()); + Object o = GuiUtils.getChoiceOptional("Open Deck", choices.toArray()); if(o == null) return ""; diff --git a/src/forge/Gui_DownloadPictures.java b/src/forge/Gui_DownloadPictures.java index db987eb56f6..3bc328d37d1 100644 --- a/src/forge/Gui_DownloadPictures.java +++ b/src/forge/Gui_DownloadPictures.java @@ -1,7 +1,8 @@ package forge; -import static java.lang.Integer.*; -import static javax.swing.JOptionPane.*; +import static java.lang.Integer.parseInt; +import static javax.swing.JOptionPane.DEFAULT_OPTION; +import static javax.swing.JOptionPane.PLAIN_MESSAGE; import java.awt.Component; import java.awt.Dimension; diff --git a/src/forge/Gui_DownloadPictures_LQ.java b/src/forge/Gui_DownloadPictures_LQ.java index a706adfed6c..315a28552a5 100644 --- a/src/forge/Gui_DownloadPictures_LQ.java +++ b/src/forge/Gui_DownloadPictures_LQ.java @@ -1,7 +1,8 @@ package forge; -import static java.lang.Integer.*; -import static javax.swing.JOptionPane.*; +import static java.lang.Integer.parseInt; +import static javax.swing.JOptionPane.DEFAULT_OPTION; +import static javax.swing.JOptionPane.PLAIN_MESSAGE; import java.awt.Dimension; import java.awt.EventQueue; @@ -15,9 +16,9 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.net.InetSocketAddress; +import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; -import java.net.MalformedURLException; import java.util.ArrayList; import java.util.StringTokenizer; diff --git a/src/forge/Gui_DownloadSetPictures_LQ.java b/src/forge/Gui_DownloadSetPictures_LQ.java index 0955590ee7d..4e55ca2eebf 100644 --- a/src/forge/Gui_DownloadSetPictures_LQ.java +++ b/src/forge/Gui_DownloadSetPictures_LQ.java @@ -1,7 +1,8 @@ package forge; -import static java.lang.Integer.*; -import static javax.swing.JOptionPane.*; +import static java.lang.Integer.parseInt; +import static javax.swing.JOptionPane.DEFAULT_OPTION; +import static javax.swing.JOptionPane.PLAIN_MESSAGE; import java.awt.Dimension; import java.awt.EventQueue; @@ -15,9 +16,9 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.net.InetSocketAddress; +import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; -import java.net.MalformedURLException; import java.util.ArrayList; import java.util.StringTokenizer; diff --git a/src/forge/Gui_NewGame.java b/src/forge/Gui_NewGame.java index bb2fed0c1be..f088391570b 100644 --- a/src/forge/Gui_NewGame.java +++ b/src/forge/Gui_NewGame.java @@ -1,25 +1,5 @@ package forge; - -import arcane.ui.util.ManaSymbols; -import arcane.util.MultiplexOutputStream; -import com.esotericsoftware.minlog.Log; -import forge.error.ErrorViewer; -import forge.error.ExceptionHandler; -import forge.gui.GuiUtils; -import forge.gui.ListChooser; -import forge.properties.ForgePreferences; -import forge.properties.ForgePreferences.CardSizeType; -import forge.properties.ForgePreferences.StackOffsetType; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; -import forge.properties.NewConstants.LANG.Gui_NewGame.MENU_BAR.MENU; -import forge.properties.NewConstants.LANG.Gui_NewGame.MENU_BAR.OPTIONS; -import net.miginfocom.swing.MigLayout; - -import javax.swing.*; -import javax.swing.UIManager.LookAndFeelInfo; -import javax.swing.border.TitledBorder; import java.awt.Color; import java.awt.Component; import java.awt.Font; @@ -28,8 +8,60 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import java.io.*; -import java.util.*; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.OutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Random; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.BorderFactory; +import javax.swing.ButtonGroup; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextArea; +import javax.swing.SwingConstants; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.UIManager.LookAndFeelInfo; +import javax.swing.border.TitledBorder; + +import net.miginfocom.swing.MigLayout; +import arcane.ui.util.ManaSymbols; +import arcane.util.MultiplexOutputStream; + +import com.esotericsoftware.minlog.Log; + +import forge.error.ErrorViewer; +import forge.error.ExceptionHandler; +import forge.gui.GuiUtils; +import forge.gui.ListChooser; +import forge.properties.ForgePreferences; +import forge.properties.ForgeProps; +import forge.properties.NewConstants; +import forge.properties.ForgePreferences.CardSizeType; +import forge.properties.ForgePreferences.StackOffsetType; +import forge.properties.NewConstants.LANG.Gui_NewGame.MENU_BAR.MENU; +import forge.properties.NewConstants.LANG.Gui_NewGame.MENU_BAR.OPTIONS; + /*CHOPPIC*/ @@ -638,12 +670,8 @@ public class Gui_NewGame extends JFrame implements NewConstants, NewConstants.LA else prompt += "Computer "; prompt += "Deck"; - //hacky needs redesign, because you don't know what display will be used - if(AllZone.Display == null){ - if(newGuiCheckBox.isSelected()) AllZone.Display = new GuiDisplay4(); - else AllZone.Display = new GuiDisplay3(); - } - Object o = AllZone.Display.getChoice(prompt, decks.toArray()); + + Object o = GuiUtils.getChoice(prompt, decks.toArray()); if (o.toString().equals(decks.get(0))) d = generateConstructedDeck(); @@ -699,7 +727,7 @@ public class Gui_NewGame extends JFrame implements NewConstants, NewConstants.LA GenerateThemeDeck gen = new GenerateThemeDeck(); ArrayList tNames = gen.getThemeNames(); tNames.add(0, "Random"); - Object o = AllZone.Display.getChoice("Select a theme.", tNames.toArray()); + Object o = GuiUtils.getChoice("Select a theme.", tNames.toArray()); String stDeck; if (o.toString().equals("Random")) @@ -734,14 +762,14 @@ public class Gui_NewGame extends JFrame implements NewConstants, NewConstants.LA Object c1 = null, c2 = null; if (p.equals("H")) { - c1 = AllZone.Display.getChoice("Select first color.", colors.toArray()); + c1 = GuiUtils.getChoice("Select first color.", colors.toArray()); if (c1.toString().equals("Random")) c1 = colors.get(r.nextInt(colors.size() - 1) + 1); colors.remove(c1); - c2 = AllZone.Display.getChoice("Select second color.", colors.toArray()); + c2 = GuiUtils.getChoice("Select second color.", colors.toArray()); if (c2.toString().equals("Random")) c2 = colors.get(r.nextInt(colors.size() - 1) + 1); @@ -779,21 +807,21 @@ public class Gui_NewGame extends JFrame implements NewConstants, NewConstants.LA Object c1 = null, c2 = null, c3 = null; if (p.equals("H")) { - c1 = AllZone.Display.getChoice("Select first color.", colors.toArray()); + c1 = GuiUtils.getChoice("Select first color.", colors.toArray()); if (c1.toString().equals("Random")) c1 = colors.get(r.nextInt(colors.size() - 1) + 1); colors.remove(c1); - c2 = AllZone.Display.getChoice("Select second color.", colors.toArray()); + c2 = GuiUtils.getChoice("Select second color.", colors.toArray()); if (c2.toString().equals("Random")) c2 = colors.get(r.nextInt(colors.size() - 1) + 1); colors.remove(c2); - c3 = AllZone.Display.getChoice("Select third color.", colors.toArray()); + c3 = GuiUtils.getChoice("Select third color.", colors.toArray()); if (c3.toString().equals("Random")) c3 = colors.get(r.nextInt(colors.size() - 1) + 1); diff --git a/src/forge/Gui_Quest.java b/src/forge/Gui_Quest.java index eb61492d845..fcd3fbe8698 100644 --- a/src/forge/Gui_Quest.java +++ b/src/forge/Gui_Quest.java @@ -1,10 +1,4 @@ package forge; -import forge.error.ErrorViewer; -import forge.properties.NewConstants; - -import javax.swing.*; -import javax.swing.border.Border; -import javax.swing.border.TitledBorder; import java.awt.Color; import java.awt.Dimension; import java.awt.Rectangle; @@ -14,6 +8,22 @@ import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.Collections; +import javax.swing.BorderFactory; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.SwingConstants; +import javax.swing.border.Border; +import javax.swing.border.TitledBorder; + +import forge.error.ErrorViewer; +import forge.properties.NewConstants; + //presumes AllZone.QuestData is not null //AllZone.QuestData should be set by Gui_QuestOptions diff --git a/src/forge/Gui_QuestOptions.java b/src/forge/Gui_QuestOptions.java index 3ac7310c3c6..9b97387f927 100644 --- a/src/forge/Gui_QuestOptions.java +++ b/src/forge/Gui_QuestOptions.java @@ -1,11 +1,5 @@ package forge; -import forge.error.ErrorViewer; -import forge.gui.GuiUtils; -import forge.quest.QuestFrame; -import javax.swing.*; -import javax.swing.border.Border; -import javax.swing.border.TitledBorder; import java.awt.Color; import java.awt.GridLayout; import java.awt.Rectangle; @@ -14,6 +8,23 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; +import javax.swing.BorderFactory; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextArea; +import javax.swing.SwingConstants; +import javax.swing.border.Border; +import javax.swing.border.TitledBorder; + +import forge.error.ErrorViewer; +import forge.gui.GuiUtils; +import forge.quest.QuestFrame; public class Gui_QuestOptions extends JFrame { private static final long serialVersionUID = 2018518804206822235L; diff --git a/src/forge/Gui_Quest_Assignments.java b/src/forge/Gui_Quest_Assignments.java index 90d3b1d1cdf..157f11ef7fc 100644 --- a/src/forge/Gui_Quest_Assignments.java +++ b/src/forge/Gui_Quest_Assignments.java @@ -4,7 +4,7 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; +import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.util.ArrayList; diff --git a/src/forge/Gui_Quest_DeckEditor_Menu.java b/src/forge/Gui_Quest_DeckEditor_Menu.java index 25f0dcbb6af..ab1fdbeac72 100644 --- a/src/forge/Gui_Quest_DeckEditor_Menu.java +++ b/src/forge/Gui_Quest_DeckEditor_Menu.java @@ -14,21 +14,22 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import javax.swing.JDialog; import javax.swing.JFileChooser; +import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; -import javax.swing.filechooser.FileFilter; -import javax.swing.JList; -import javax.swing.JDialog; import javax.swing.ListSelectionModel; -import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import javax.swing.filechooser.FileFilter; import forge.error.ErrorViewer; +import forge.gui.GuiUtils; //presumes AllZone.QuestData is not null @@ -1005,7 +1006,7 @@ public class Gui_Quest_DeckEditor_Menu extends JMenuBar { //Object o = JOptionPane.showInputDialog(null, "Deck Name", "Open Deck", JOptionPane.OK_CANCEL_OPTION, null, // choices.toArray(), choices.toArray()[0]); - Object o = AllZone.Display.getChoiceOptional("Select Deck", choices.toArray()); + Object o = GuiUtils.getChoiceOptional("Select Deck", choices.toArray()); if(o == null) return ""; diff --git a/src/forge/Gui_Quest_Deck_Info.java b/src/forge/Gui_Quest_Deck_Info.java index 8918d30cd5d..70cf5eb9706 100644 --- a/src/forge/Gui_Quest_Deck_Info.java +++ b/src/forge/Gui_Quest_Deck_Info.java @@ -1,16 +1,20 @@ package forge; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; +import java.awt.Dimension; +import java.io.File; +import java.util.TreeMap; -import javax.swing.*; +import javax.swing.ImageIcon; +import javax.swing.JOptionPane; +import javax.swing.JScrollPane; +import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; -import java.awt.*; -import java.io.File; -import java.util.TreeMap; + +import forge.properties.ForgeProps; +import forge.properties.NewConstants; public class Gui_Quest_Deck_Info implements NewConstants { diff --git a/src/forge/Gui_WinLose.java b/src/forge/Gui_WinLose.java index a8a3dc1db2c..745e1d12b8b 100644 --- a/src/forge/Gui_WinLose.java +++ b/src/forge/Gui_WinLose.java @@ -2,22 +2,30 @@ package forge; -import forge.error.ErrorViewer; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; -import forge.properties.NewConstants.LANG.Gui_WinLose.WINLOSE_TEXT; -import forge.quest.QuestFrame; -import net.miginfocom.swing.MigLayout; - -import javax.swing.*; -import javax.swing.border.Border; -import javax.swing.border.TitledBorder; import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.WindowEvent; import java.io.File; +import javax.swing.BorderFactory; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import javax.swing.border.Border; +import javax.swing.border.TitledBorder; + +import net.miginfocom.swing.MigLayout; +import forge.error.ErrorViewer; +import forge.properties.ForgeProps; +import forge.properties.NewConstants; +import forge.properties.NewConstants.LANG.Gui_WinLose.WINLOSE_TEXT; +import forge.quest.QuestFrame; + public class Gui_WinLose extends JFrame implements NewConstants { private static final long serialVersionUID = -5800412940994975483L; diff --git a/src/forge/HumanPlayer.java b/src/forge/HumanPlayer.java index 3c2cb50691b..838e225317d 100644 --- a/src/forge/HumanPlayer.java +++ b/src/forge/HumanPlayer.java @@ -1,6 +1,8 @@ package forge; +import forge.gui.GuiUtils; + public class HumanPlayer extends Player{ @@ -40,7 +42,7 @@ public class HumanPlayer extends Player{ public void mayDrawCards(int n) { String[] choices = {"Yes", "No"}; - Object choice = AllZone.Display.getChoice("Draw "+n+" cards?", choices); + Object choice = GuiUtils.getChoice("Draw "+n+" cards?", choices); if(choice.equals("Yes")) drawCards(n); } @@ -52,9 +54,9 @@ public class HumanPlayer extends Player{ public boolean dredge() { boolean dredged = false; String choices[] = {"Yes", "No"}; - Object o = AllZone.Display.getChoice("Do you want to dredge?", choices); + Object o = GuiUtils.getChoice("Do you want to dredge?", choices); if(o.equals("Yes")) { - Card c = (Card) AllZone.Display.getChoice("Select card to dredge", getDredge().toArray()); + Card c = (Card) GuiUtils.getChoice("Select card to dredge", getDredge().toArray()); //rule 702.49a if(getDredgeNumber(c) <= AllZone.Human_Library.size()) { @@ -92,7 +94,7 @@ public class HumanPlayer extends Player{ String s = "card"; if(numToLibrary > 1) s += "s"; - Object o = AllZone.Display.getChoice("Do you want to put the " + s + Object o = GuiUtils.getChoice("Do you want to put the " + s + " on the top or bottom of your library?", new Object[] {"top", "bottom"}); libPos = o.toString(); } @@ -102,7 +104,7 @@ public class HumanPlayer extends Player{ protected void doScry(final CardList topN, final int N) { int num = N; for(int i = 0; i < num; i++) { - Object o = AllZone.Display.getChoiceOptional("Put on bottom of library.",topN.toArray()); + Object o = GuiUtils.getChoiceOptional("Put on bottom of library.",topN.toArray()); if(o != null) { Card c = (Card) o; topN.remove(c); @@ -114,7 +116,7 @@ public class HumanPlayer extends Player{ num = topN.size(); for(int i = 0; i < num; i++) { Object o; - o = AllZone.Display.getChoice("Put on top of library.", topN.toArray()); + o = GuiUtils.getChoice("Put on top of library.", topN.toArray()); if(o != null) { Card c = (Card) o; topN.remove(c); @@ -132,7 +134,7 @@ public class HumanPlayer extends Player{ protected void clashMoveToTopOrBottom(Card c) { String choice = ""; String choices[] = {"top","bottom"}; - choice = (String) AllZone.Display.getChoice(c.getName()+" - Top or bottom of Library", choices); + choice = (String) GuiUtils.getChoice(c.getName()+" - Top or bottom of Library", choices); if(choice.equals("bottom")) { AllZone.GameAction.moveToBottomOfLibrary(c); diff --git a/src/forge/ImageCache.java b/src/forge/ImageCache.java index 4a60e71664f..3e6f8954c68 100644 --- a/src/forge/ImageCache.java +++ b/src/forge/ImageCache.java @@ -2,8 +2,8 @@ package forge; -import static java.lang.Double.*; -import static java.lang.Math.*; +import static java.lang.Double.parseDouble; +import static java.lang.Math.min; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; diff --git a/src/forge/Input_Mulligan.java b/src/forge/Input_Mulligan.java index 977a155d00c..017d85e6d52 100644 --- a/src/forge/Input_Mulligan.java +++ b/src/forge/Input_Mulligan.java @@ -1,6 +1,8 @@ package forge; +import forge.gui.GuiUtils; + public class Input_Mulligan extends Input { private static final long serialVersionUID = -8112954303001155622L; @@ -85,7 +87,7 @@ public class Input_Mulligan extends Input { if(HHandList.get(i).getName().startsWith("Leyline")) { String[] choices = {"Yes", "No"}; Object q = null; - q = AllZone.Display.getChoiceOptional("Put " + HHandList.get(i).getName() + " onto the battlefield?", choices); + q = GuiUtils.getChoiceOptional("Put " + HHandList.get(i).getName() + " onto the battlefield?", choices); if(q == null || q.equals("No")); else { HPlay.add(HHandList.get(i)); diff --git a/src/forge/Input_PayManaCostUtil.java b/src/forge/Input_PayManaCostUtil.java index 8ea0340ed21..07b4267f16c 100644 --- a/src/forge/Input_PayManaCostUtil.java +++ b/src/forge/Input_PayManaCostUtil.java @@ -1,5 +1,10 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import forge.gui.GuiUtils; public class Input_PayManaCostUtil { @@ -72,7 +77,7 @@ public class Input_PayManaCostUtil HashMap ability = new HashMap(); for(Ability_Mana am : abilities) ability.put(am.toString(), am); - chosen = (Ability_Mana) AllZone.Display.getChoice("Choose mana ability", abilities.toArray()); + chosen = (Ability_Mana) GuiUtils.getChoice("Choose mana ability", abilities.toArray()); } AllZone.GameAction.playSpellAbility(chosen); diff --git a/src/forge/ListProperties.java b/src/forge/ListProperties.java index 68a29bc4f3e..e77a6391448 100644 --- a/src/forge/ListProperties.java +++ b/src/forge/ListProperties.java @@ -1,6 +1,6 @@ package forge; import java.util.Enumeration; - + import javax.swing.UIDefaults; import javax.swing.UIManager; diff --git a/src/forge/MagicStack.java b/src/forge/MagicStack.java index 71c9a3d704e..428b3118ec2 100644 --- a/src/forge/MagicStack.java +++ b/src/forge/MagicStack.java @@ -1,6 +1,8 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; import com.esotericsoftware.minlog.Log; diff --git a/src/forge/ManaPool.java b/src/forge/ManaPool.java index d8dcccdc706..2bba80c1345 100644 --- a/src/forge/ManaPool.java +++ b/src/forge/ManaPool.java @@ -5,6 +5,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import forge.gui.GuiUtils; + public class ManaPool extends Card { // current paying moved to SpellAbility @@ -263,7 +265,7 @@ public class ManaPool extends Card { return choice; } - Object o = AllZone.Display.getChoiceOptional("Pay Mana from Mana Pool", alChoice.toArray()); + Object o = GuiUtils.getChoiceOptional("Pay Mana from Mana Pool", alChoice.toArray()); if (o != null){ String ch = o.toString(); boolean grabSnow = ch.startsWith("{S}"); diff --git a/src/forge/MoveAttack.java b/src/forge/MoveAttack.java index 8e65a33ef11..1c6bb66fc59 100644 --- a/src/forge/MoveAttack.java +++ b/src/forge/MoveAttack.java @@ -1,5 +1,6 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Random; public class MoveAttack { diff --git a/src/forge/MyRandom.java b/src/forge/MyRandom.java index d2e8373a4e8..1a84de66fa6 100644 --- a/src/forge/MyRandom.java +++ b/src/forge/MyRandom.java @@ -1,5 +1,5 @@ package forge; -import java.util.*; +import java.util.Random; public class MyRandom { diff --git a/src/forge/NewDeckIO.java b/src/forge/NewDeckIO.java index cbfce046f5e..c880a409bc5 100755 --- a/src/forge/NewDeckIO.java +++ b/src/forge/NewDeckIO.java @@ -2,9 +2,9 @@ package forge; -import static java.lang.Integer.*; -import static java.lang.String.*; -import static java.util.Arrays.*; +import static java.lang.Integer.parseInt; +import static java.lang.String.format; +import static java.util.Arrays.asList; import java.io.BufferedReader; import java.io.BufferedWriter; diff --git a/src/forge/Phase.java b/src/forge/Phase.java index 4b281495595..acf73c64982 100644 --- a/src/forge/Phase.java +++ b/src/forge/Phase.java @@ -1,7 +1,7 @@ package forge; -import java.util.Observer; import java.util.ArrayList; +import java.util.Observer; import java.util.Stack; import com.esotericsoftware.minlog.Log; diff --git a/src/forge/PlayerZone.java b/src/forge/PlayerZone.java index ab4c7e4680b..bdfec77ff23 100644 --- a/src/forge/PlayerZone.java +++ b/src/forge/PlayerZone.java @@ -1,5 +1,5 @@ package forge; -import java.util.*; +import java.util.Observer; //PlayerZone observers the cards that are added to its zone abstract public class PlayerZone extends MyObservable implements IPlayerZone, Observer diff --git a/src/forge/PlayerZoneUtil.java b/src/forge/PlayerZoneUtil.java index 6ea549e44d4..7893e5b4b42 100644 --- a/src/forge/PlayerZoneUtil.java +++ b/src/forge/PlayerZoneUtil.java @@ -1,5 +1,5 @@ package forge; -import java.util.*; +import java.util.ArrayList; public class PlayerZoneUtil { diff --git a/src/forge/PrintCardNames.java b/src/forge/PrintCardNames.java index 6ab6a196b48..225cd667efb 100644 --- a/src/forge/PrintCardNames.java +++ b/src/forge/PrintCardNames.java @@ -1,7 +1,8 @@ package forge; -import java.util.*; - -import java.io.*; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; public class PrintCardNames { diff --git a/src/forge/QuestData.java b/src/forge/QuestData.java index bfb5cb923e2..f38bccd4139 100644 --- a/src/forge/QuestData.java +++ b/src/forge/QuestData.java @@ -1,14 +1,24 @@ package forge; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Random; + import com.esotericsoftware.minlog.Log; + import forge.error.ErrorViewer; import forge.properties.ForgeProps; import forge.properties.NewConstants; -import java.io.*; -import java.util.*; - //when you create QuestData and AFTER you copy the AI decks over //you have to call one of these two methods below diff --git a/src/forge/QuestData_BoosterPack.java b/src/forge/QuestData_BoosterPack.java index 8a9d4324ba2..7258e917b72 100644 --- a/src/forge/QuestData_BoosterPack.java +++ b/src/forge/QuestData_BoosterPack.java @@ -8,8 +8,6 @@ import java.util.HashSet; import java.util.Random; import java.util.Set; -//import forge.error.ErrorViewer; -//import forge.properties.ForgeProps; import forge.properties.NewConstants; //balance the number of colors and creature/spells for diff --git a/src/forge/ReadBoosterPack.java b/src/forge/ReadBoosterPack.java index 9f0be18bded..f1aa0bc770d 100644 --- a/src/forge/ReadBoosterPack.java +++ b/src/forge/ReadBoosterPack.java @@ -6,8 +6,6 @@ package forge; //import java.io.FileReader; import java.util.ArrayList; -//import forge.error.ErrorViewer; -//import forge.properties.ForgeProps; import forge.properties.NewConstants; diff --git a/src/forge/RunTest.java b/src/forge/RunTest.java index d536e982f7b..ec33806d55d 100644 --- a/src/forge/RunTest.java +++ b/src/forge/RunTest.java @@ -1,5 +1,7 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; public class RunTest { diff --git a/src/forge/SpellAbilityUtil.java b/src/forge/SpellAbilityUtil.java index 89fea9b5b0e..28fda7c55f9 100644 --- a/src/forge/SpellAbilityUtil.java +++ b/src/forge/SpellAbilityUtil.java @@ -1,5 +1,5 @@ package forge; -import java.util.*; +import java.util.ArrayList; public class SpellAbilityUtil { diff --git a/src/forge/StaticEffects.java b/src/forge/StaticEffects.java index f5deb5d141e..d8f098b74fa 100644 --- a/src/forge/StaticEffects.java +++ b/src/forge/StaticEffects.java @@ -1,5 +1,5 @@ package forge; -import java.util.*; +import java.util.HashMap; import com.esotericsoftware.minlog.Log; diff --git a/src/forge/TableSorter.java b/src/forge/TableSorter.java index 235fd031e55..f4beb699c20 100644 --- a/src/forge/TableSorter.java +++ b/src/forge/TableSorter.java @@ -2,7 +2,9 @@ package forge; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; + import forge.properties.NewConstants; @SuppressWarnings("unchecked") // Comparable needs diff --git a/src/forge/Target_Selection.java b/src/forge/Target_Selection.java index 5a25f745a64..dc283658165 100644 --- a/src/forge/Target_Selection.java +++ b/src/forge/Target_Selection.java @@ -2,6 +2,8 @@ package forge; import java.util.ArrayList; +import forge.gui.GuiUtils; + public class Target_Selection { private Target target = null; private SpellAbility ability = null; @@ -200,7 +202,7 @@ public class Target_Selection { // is there a more elegant way of doing this? choicesWithDone.add(dummy); } - Object check = AllZone.Display.getChoiceOptional(message, choicesWithDone.toArray()); + Object check = GuiUtils.getChoiceOptional(message, choicesWithDone.toArray()); if(check != null) { Card c = (Card) check; if (c.equals(dummy)) diff --git a/src/forge/gui/GuiUtils.java b/src/forge/gui/GuiUtils.java index 6ff8519eb32..d50ab030bf4 100644 --- a/src/forge/gui/GuiUtils.java +++ b/src/forge/gui/GuiUtils.java @@ -1,13 +1,29 @@ package forge.gui; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; - -import javax.swing.*; -import java.awt.*; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Image; +import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.util.Collection; +import java.util.List; + +import javax.swing.Box; +import javax.swing.ImageIcon; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import forge.AllZone; +import forge.Card; +import forge.properties.ForgeProps; +import forge.properties.NewConstants; + + public class GuiUtils { @@ -86,6 +102,45 @@ public class GuiUtils { public static ImageIcon getEmptyIcon(int width, int height) { return new ImageIcon(new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)); } + + //returned Object could be null + public static T getChoiceOptional(String message, T... choices) { + if(choices == null || choices.length == 0) return null; + List choice = getChoices(message, 0, 1, choices); + return choice.isEmpty()? null:choice.get(0); + }//getChoiceOptional() + + // returned Object will never be null + public static T getChoice(String message, T... choices) { + List choice = getChoices(message, 1, 1, choices); + assert choice.size() == 1; + return choice.get(0); + }//getChoice() + + // returned Object will never be null + public static List getChoicesOptional(String message, T... choices) { + return getChoices(message, 0, choices.length, choices); + }//getChoice() + + // returned Object will never be null + public static List getChoices(String message, T... choices) { + return getChoices(message, 1, choices.length, choices); + }//getChoice() + + // returned Object will never be null + public static List getChoices(String message, int min, int max, T... choices) { + ListChooser c = new ListChooser(message, min, max, choices); + final JList list = c.getJList(); + list.addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent ev) { + if(list.getSelectedValue() instanceof Card && AllZone.Display != null) { + AllZone.Display.setCard((Card) list.getSelectedValue()); + } + } + }); + c.show(); + return c.getSelectedValues(); + }//getChoice() /** * Centers a frame on the screen based on its current size diff --git a/src/forge/quest/QuestFrame.java b/src/forge/quest/QuestFrame.java index 233a9595f1c..f6b30af6346 100644 --- a/src/forge/quest/QuestFrame.java +++ b/src/forge/quest/QuestFrame.java @@ -68,7 +68,7 @@ public class QuestFrame extends JFrame { public void returnToMainMenu() { QuestData.saveData(AllZone.QuestData); - (new Gui_NewGame()).show(); + (new Gui_NewGame()).setVisible(true) ; this.dispose(); } } diff --git a/src/forge/quest/main/QuestMainPanel.java b/src/forge/quest/main/QuestMainPanel.java index 47087ff28b9..3870773acee 100644 --- a/src/forge/quest/main/QuestMainPanel.java +++ b/src/forge/quest/main/QuestMainPanel.java @@ -107,7 +107,7 @@ public class QuestMainPanel extends QuestAbstractPanel { optionsPanel.add(this.devModeCheckBox); optionsPanel.add(Box.createVerticalStrut(5)); - optionsPanel.add(this.newGUICheckbox); + optionsPanel.add(QuestMainPanel.newGUICheckbox); optionsPanel.add(Box.createVerticalStrut(5)); optionsPanel.add(this.smoothLandCheckBox); optionsPanel.setBorder(new TitledBorder(new EtchedBorder(), "Options"));