From c20361fccab7208ffd66bf4631c80f5c7023029f Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 05:21:00 +0000 Subject: [PATCH] - Added two new pets (bird and hound). - Some tweaks to the quest GUI main menu. --- src/QuestData_State.java | 4 +- src/forge/Gui_PetShop.java | 150 ++++++++++++++++++++++++++++++++- src/forge/Gui_Quest.java | 6 +- src/forge/QuestData.java | 26 ++++++ src/forge/QuestData_State.java | 6 +- src/forge/QuestUtil.java | 132 +++++++++++++++++++++++++++++ 6 files changed, 313 insertions(+), 11 deletions(-) diff --git a/src/QuestData_State.java b/src/QuestData_State.java index 83b284ca06c..cd1fed6ff69 100644 --- a/src/QuestData_State.java +++ b/src/QuestData_State.java @@ -23,7 +23,7 @@ public class QuestData_State implements Serializable { private static final long serialVersionUID = 7007940230351051937L; int rankIndex, win, lost; - int plantLevel, wolfPetLevel, crocPetLevel, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed; + int plantLevel, wolfPetLevel, crocPetLevel, birdPetLevel, houndPetLevel, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed; long credits; String difficulty, mode, selectedPet; @@ -43,6 +43,6 @@ public class QuestData_State implements Serializable { for(Entry deck:this.aiDecks.entrySet()) { aiDecks.put(deck.getKey(), deck.getValue().migrate()); } - return new forge.QuestData_State(rankIndex, win, lost, plantLevel, wolfPetLevel, crocPetLevel, selectedPet, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed, availableQuests, completedQuests,credits, difficulty, mode, cardPool, shopList, myDecks, aiDecks); + return new forge.QuestData_State(rankIndex, win, lost, plantLevel, wolfPetLevel, crocPetLevel, birdPetLevel, houndPetLevel, selectedPet, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed, availableQuests, completedQuests,credits, difficulty, mode, cardPool, shopList, myDecks, aiDecks); } } diff --git a/src/forge/Gui_PetShop.java b/src/forge/Gui_PetShop.java index ff0e0f50657..822938e5e8c 100644 --- a/src/forge/Gui_PetShop.java +++ b/src/forge/Gui_PetShop.java @@ -140,11 +140,67 @@ public class Gui_PetShop extends JFrame implements NewConstants{ sb.append("Gives Swampwalk to your croc.
"); sb.append("Level 4: 3/1 Swampwalk
"); } + /* else if (questData.getCrocPetLevel() >= 4) { sb.append("Croc Level Maxed out.
"); } - } + */ + + else if (questData.getBirdPetLevel() == 0) + { + sb.append("Unmatched in speed, agility and awareness,
"); + sb.append("this trained hawk makes a fantastic hunter.

"); + sb.append("Level 1: 0/1 Flying
"); + sb.append("Next Level: 1/1
"); + sb.append("Can learn: First strike"); + } + else if (questData.getBirdPetLevel() == 1) + { + sb.append("Improve the attack power of your bird.
"); + sb.append("Level 2: 1/1
"); + sb.append("Next Level: 2/1
"); + sb.append("Can learn: First strike"); + } + else if (questData.getBirdPetLevel() == 2) + { + sb.append("Improve the attack power of your bird.
"); + sb.append("Level 3: 2/1
"); + sb.append("Next Level: 2/1 First strike
"); + } + else if (questData.getBirdPetLevel() == 3) + { + sb.append("Gives First strike to your bird.
"); + sb.append("Level 4: 2/1 First strike
"); + } + else if (questData.getHoundPetLevel() == 0) + { + sb.append("Dogs are said to be man's best friend.
"); + sb.append("Definitely not this one.

"); + sb.append("Level 1: 1/1
"); + sb.append("Next Level: 1/1 Haste
"); + sb.append("Can learn: Whenever this creature attacks alone,
it gets +2/+0 until end of turn."); + } + else if (questData.getHoundPetLevel() == 1) + { + sb.append("Gives haste to your hound.
"); + sb.append("Level 2: 1/1 Haste
"); + sb.append("Next Level: 2/1 Haste
"); + sb.append("Can learn: Whenever this creature attacks alone,
it gets +2/+0 until end of turn."); + } + else if (questData.getHoundPetLevel() == 2) + { + sb.append("Improve the attack power of your hound.
"); + sb.append("Level 3: 2/1 Haste
"); + sb.append("Next Level: 2/1 Whenever this creature attacks
alone, it gets +2/+0 until end of turn.
"); + } + else if (questData.getHoundPetLevel() == 3) + { + sb.append("Greatly improves your hound's attack power if it
attacks alone.
"); + sb.append("Level 4: 2/1 Haste, whenever this creature attacks alone, it gets +2/+0 until end of turn.
"); + } + }//wolfPetLevel >= 4 + sb.append(""); return sb.toString(); @@ -171,6 +227,22 @@ public class Gui_PetShop extends JFrame implements NewConstants{ l = 450; else if (questData.getCrocPetLevel() == 3) l = 600; + else if (questData.getBirdPetLevel() == 0) + l = 200; + else if (questData.getBirdPetLevel() == 1) + l = 300; + else if (questData.getBirdPetLevel() == 2) + l = 450; + else if (questData.getBirdPetLevel() == 3) + l = 400; + else if (questData.getHoundPetLevel() == 0) + l = 200; + else if (questData.getHoundPetLevel() == 1) + l = 350; + else if (questData.getHoundPetLevel() == 2) + l = 450; + else if (questData.getHoundPetLevel() == 3) + l = 750; } return l; } @@ -191,6 +263,20 @@ public class Gui_PetShop extends JFrame implements NewConstants{ else s = "Train " + pet; } + else if (pet.equals("Bird")) + { + if (questData.getBirdPetLevel() == 0) + s = "Buy " + pet; + else + s = "Train " + pet; + } + else if (pet.equals("Hound")) + { + if (questData.getHoundPetLevel() == 0) + s = "Buy " + pet; + else + s = "Train " + pet; + } return s; } @@ -208,7 +294,7 @@ public class Gui_PetShop extends JFrame implements NewConstants{ sb.append(" Wolf Pet (current level "); sb.append(questData.getWolfPetLevel()); } //getWolfPetLevel < 4 - else if (questData.getCrocPetLevel() <= 4) + else if (questData.getCrocPetLevel() < 4) { if (questData.getCrocPetLevel() == 1) sb.append("1/1"); @@ -220,6 +306,30 @@ public class Gui_PetShop extends JFrame implements NewConstants{ sb.append(" Croc Pet (current level "); sb.append(questData.getCrocPetLevel()); } + else if (questData.getBirdPetLevel() < 4) + { + if (questData.getBirdPetLevel() == 1) + sb.append("0/1"); + else if (questData.getBirdPetLevel() == 2) + sb.append("1/1"); + else if (questData.getBirdPetLevel() >= 3) + sb.append("2/1"); + + sb.append(" Bird Pet (current level "); + sb.append(questData.getBirdPetLevel()); + } + else if (questData.getHoundPetLevel() <= 4) + { + if (questData.getHoundPetLevel() == 1) + sb.append("1/1"); + else if (questData.getHoundPetLevel() == 2) + sb.append("1/1"); + else if (questData.getHoundPetLevel() >= 3) + sb.append("2/1"); + + sb.append(" Hound Pet (current level "); + sb.append(questData.getHoundPetLevel()); + } sb.append("/4)"); if (questData.getWolfPetLevel() == 0) @@ -231,7 +341,8 @@ public class Gui_PetShop extends JFrame implements NewConstants{ private String getImageString() { String s = ""; - if (questData.getWolfPetLevel() < 4) { + if (questData.getWolfPetLevel() < 4) + { if (questData.getWolfPetLevel() == 0) s = "g_1_1_wolf_pet_small.jpg"; else if (questData.getWolfPetLevel() == 1) @@ -252,6 +363,29 @@ public class Gui_PetShop extends JFrame implements NewConstants{ else if (questData.getCrocPetLevel() == 3) s = "b_3_1_crocodile_pet_swampwalk_small.jpg"; } + else if (questData.getBirdPetLevel() < 4) + { + if (questData.getBirdPetLevel() == 0) + s = "w_0_1_bird_pet_small.jpg"; + else if (questData.getBirdPetLevel() == 1) + s = "w_1_1_bird_pet_small.jpg"; + else if (questData.getBirdPetLevel() == 2) + s = "w_2_1_bird_pet_small.jpg"; + else if (questData.getBirdPetLevel() == 3) + s = "w_2_1_bird_pet_first_strike_small.jpg"; + } + + else if (questData.getHoundPetLevel() < 4) + { + if (questData.getHoundPetLevel() == 0) + s = "r_1_1_hound_pet_small.jpg"; + else if (questData.getHoundPetLevel() == 1) + s = "r_1_1_hound_pet_haste_small.jpg"; + else if (questData.getHoundPetLevel() == 2) + s = "r_2_1_hound_pet_small.jpg"; + else if (questData.getHoundPetLevel() == 3) + s = "r_2_1_hound_pet_alone_small.jpg"; + } return s; } @@ -289,9 +423,13 @@ public class Gui_PetShop extends JFrame implements NewConstants{ buyPetButton.setText(getButtonText("Wolf")); else if (questData.getCrocPetLevel() < 4) buyPetButton.setText(getButtonText("Croc")); + else if (questData.getBirdPetLevel() < 4) + buyPetButton.setText(getButtonText("Bird")); + else if (questData.getHoundPetLevel() < 4) + buyPetButton.setText(getButtonText("Hound")); buyPetButton.setEnabled(true); - if (questData.getCredits() < getPrice() || questData.getCrocPetLevel() >= 4) + if (questData.getCredits() < getPrice() || questData.getHoundPetLevel() >= 4) buyPetButton.setEnabled(false); quitButton.setBounds(new Rectangle(140, 297, 120, 50)); @@ -336,6 +474,10 @@ public class Gui_PetShop extends JFrame implements NewConstants{ questData.addWolfPetLevel(); else if (questData.getCrocPetLevel() < 4) questData.addCrocPetLevel(); + else if (questData.getBirdPetLevel() < 4) + questData.addBirdPetLevel(); + else if (questData.getHoundPetLevel() < 4) + questData.addHoundPetLevel(); QuestData.saveData(questData); jbInit(); diff --git a/src/forge/Gui_Quest.java b/src/forge/Gui_Quest.java index 99f83772d4d..2dec979fbcb 100644 --- a/src/forge/Gui_Quest.java +++ b/src/forge/Gui_Quest.java @@ -262,7 +262,7 @@ public class Gui_Quest extends JFrame implements NewConstants{ smoothLandCheckBox.setText("Stack AI land"); smoothLandCheckBox.setBounds(new Rectangle(65, 62, 153, 21)); //smoothLandCheckBox.setSelected(true); - resizeCheckbox.setText("Resizable Game Area"); + resizeCheckbox.setText("New GUI"); resizeCheckbox.setBounds(new Rectangle(65, 28, 165, 24)); millLoseCheckBox.setText("Milling = Loss Condition"); millLoseCheckBox.setBounds(new Rectangle(65, 94, 190, 25)); @@ -579,7 +579,7 @@ public class Gui_Quest extends JFrame implements NewConstants{ sb.append("\r\n"); sb.append("Samantha Stephens 3 hard Sloth' Painter's Servant Grindstone deck, an interesting combo"); sb.append("\r\n"); - sb.append("Saruman 3 hard Sloth' Discard deck with Megrim, Liliana's Caress and Burning Inquiry "); + sb.append("Saruman 3 hard Sloth' Discard deck with Megrim, Liliana's Caress and Burning Inquiry "); sb.append("\r\n"); sb.append("Scooby Doo 3 hard Rares' Red deck, Dragonmaster Outcast, Rakdos Pit Dragon, Kamahl, Pit Fighter"); sb.append("\r\n"); @@ -643,7 +643,7 @@ public class Gui_Quest extends JFrame implements NewConstants{ File file = new File(base, "notesIcon.png"); ImageIcon icon = new ImageIcon(file.toString()); - JTextArea area = new JTextArea(sb.toString(), 35, 70); + JTextArea area = new JTextArea(sb.toString(), 35, 120); area.setWrapStyleWord(true); area.setLineWrap(true); area.setEditable(false); diff --git a/src/forge/QuestData.java b/src/forge/QuestData.java index 34287b3318f..7fd7555ac89 100644 --- a/src/forge/QuestData.java +++ b/src/forge/QuestData.java @@ -55,6 +55,8 @@ public class QuestData implements NewConstants { private int plantLevel; private int wolfPetLevel; private int crocPetLevel; + private int birdPetLevel; + private int houndPetLevel; private String selectedPet; @@ -261,6 +263,8 @@ public class QuestData implements NewConstants { data.plantLevel = state.plantLevel; data.wolfPetLevel = state.wolfPetLevel; data.crocPetLevel = state.crocPetLevel; + data.birdPetLevel = state.birdPetLevel; + data.houndPetLevel = state.houndPetLevel; data.selectedPet = state.selectedPet; data.life = state.life; data.estatesLevel = state.estatesLevel; @@ -667,6 +671,26 @@ public class QuestData implements NewConstants { return crocPetLevel; } + public void addBirdPetLevel() + { + birdPetLevel++; + } + + public int getBirdPetLevel() + { + return birdPetLevel; + } + + public void addHoundPetLevel() + { + houndPetLevel++; + } + + public int getHoundPetLevel() + { + return houndPetLevel; + } + public void setSelectedPet(String s) { selectedPet = s; @@ -858,6 +882,8 @@ public class QuestData implements NewConstants { state.plantLevel = q.plantLevel; state.wolfPetLevel = q.wolfPetLevel; state.crocPetLevel = q.crocPetLevel; + state.birdPetLevel = q.birdPetLevel; + state.houndPetLevel = q.houndPetLevel; state.selectedPet = q.selectedPet; state.life = q.life; state.estatesLevel = q.estatesLevel; diff --git a/src/forge/QuestData_State.java b/src/forge/QuestData_State.java index 76fa50fccc4..b2102a09fc1 100644 --- a/src/forge/QuestData_State.java +++ b/src/forge/QuestData_State.java @@ -24,7 +24,7 @@ public class QuestData_State implements Serializable { private static final long serialVersionUID = 7007940230351051937L; int rankIndex, win, lost; - int plantLevel, wolfPetLevel, crocPetLevel, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed; + int plantLevel, wolfPetLevel, crocPetLevel, birdPetLevel, houndPetLevel, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed; long credits; String difficulty, mode, selectedPet; @@ -38,7 +38,7 @@ public class QuestData_State implements Serializable { * This constructor is used by QestData_State in the default package to create a replacement object for the * obsolete class. */ - public QuestData_State(int rankIndex, int win, int lost, int plantLevel, int wolfPetLevel, int crocPetLevel, String selectedPet, int life, int estatesLevel, int luckyCoinLevel, int sleightOfHandLevel, int gearLevel, int questsPlayed, + public QuestData_State(int rankIndex, int win, int lost, int plantLevel, int wolfPetLevel, int crocPetLevel, int birdPetLevel, int houndPetLevel, String selectedPet, int life, int estatesLevel, int luckyCoinLevel, int sleightOfHandLevel, int gearLevel, int questsPlayed, ArrayList availableQuests, ArrayList completedQuests, long credits, String difficulty, String mode, ArrayList cardPool, ArrayList shopList, Map myDecks, Map aiDecks) { this.rankIndex = rankIndex; @@ -47,6 +47,8 @@ public class QuestData_State implements Serializable { this.plantLevel = plantLevel; this.wolfPetLevel = wolfPetLevel; this.crocPetLevel = crocPetLevel; + this.birdPetLevel = birdPetLevel; + this.houndPetLevel = houndPetLevel; this.life = life; this.estatesLevel = estatesLevel; this.luckyCoinLevel = luckyCoinLevel; diff --git a/src/forge/QuestUtil.java b/src/forge/QuestUtil.java index 3ad7f099f5e..d583159b9e7 100644 --- a/src/forge/QuestUtil.java +++ b/src/forge/QuestUtil.java @@ -43,6 +43,10 @@ public class QuestUtil { list.add(getWolfPetToken(qd.getWolfPetLevel())); else if (qd.getSelectedPet().equals("Croc") && qd.getCrocPetLevel() > 0) list.add(getCrocPetToken(qd.getCrocPetLevel())); + else if (qd.getSelectedPet().equals("Bird") && qd.getBirdPetLevel() > 0) + list.add(getBirdPetToken(qd.getBirdPetLevel())); + else if (qd.getSelectedPet().equals("Hound") && qd.getHoundPetLevel() > 0) + list.add(getHoundPetToken(qd.getHoundPetLevel())); } if (qd.getPlantLevel() > 0) @@ -270,6 +274,123 @@ public class QuestUtil { return c; }//getCrocPetToken + public static Card getBirdPetToken(int level) + { + String imageName = ""; + int baseAttack = 0; + int baseDefense = 0; + + if (level == 1) + { + imageName = "W 0 1 Bird Pet"; + baseDefense = 1; + baseAttack = 0; + } + else if (level == 2) + { + imageName = "W 1 1 Bird Pet"; + baseDefense = 1; + baseAttack = 1; + } + else if (level == 3) + { + imageName = "W 2 1 Bird Pet"; + baseDefense = 1; + baseAttack = 2; + } + else if (level == 4) + { + imageName = "W 2 1 Bird Pet First Strike"; + baseDefense = 1; + baseAttack = 2; + } + + + Card c = new Card(); + c.setName("Bird Pet"); + + c.setImageName(imageName); + + c.setController(Constant.Player.Human); + c.setOwner(Constant.Player.Human); + + c.setManaCost("W"); + c.setToken(true); + + c.addType("Creature"); + c.addType("Bird"); + c.addType("Pet"); + + c.addIntrinsicKeyword("Flying"); + + if (level >= 4) + c.addIntrinsicKeyword("First Strike"); + + c.setBaseAttack(baseAttack); + c.setBaseDefense(baseDefense); + + return c; + } + + public static Card getHoundPetToken(int level) + { + String imageName = ""; + int baseAttack = 0; + int baseDefense = 0; + + if (level == 1) + { + imageName = "R 1 1 Hound Pet"; + baseDefense = 1; + baseAttack = 0; + } + else if (level == 2) + { + imageName = "R 1 1 Hound Pet Haste"; + baseDefense = 1; + baseAttack = 1; + } + else if (level == 3) + { + imageName = "R 2 1 Hound Pet"; + baseDefense = 1; + baseAttack = 2; + } + else if (level == 4) + { + imageName = "R 2 1 Hound Pet Alone"; + baseDefense = 1; + baseAttack = 2; + } + + + Card c = new Card(); + c.setName("Hound Pet"); + + c.setImageName(imageName); + + c.setController(Constant.Player.Human); + c.setOwner(Constant.Player.Human); + + c.setManaCost("R"); + c.setToken(true); + + c.addType("Creature"); + c.addType("Hound"); + c.addType("Pet"); + + if (level >= 2) + c.addIntrinsicKeyword("Haste"); + + if (level >= 4) + c.addIntrinsicKeyword("Whenever this creature attacks alone, it gets +2/+0 until end of turn."); + + c.setBaseAttack(baseAttack); + c.setBaseDefense(baseDefense); + + return c; + } + public static ArrayList getPetNames(QuestData questData) { ArrayList list = new ArrayList(); @@ -277,6 +398,11 @@ public class QuestUtil { list.add("Wolf"); if (questData.getCrocPetLevel() > 0) list.add("Croc"); + if (questData.getBirdPetLevel() > 0) + list.add("Bird"); + if (questData.getHoundPetLevel() > 0) + list.add("Hound"); + return list; } @@ -313,6 +439,9 @@ public class QuestUtil { else if (id == 2) //Blue Dungeon { + for (int i=0;i<3;i++) + qa.addCompy("Merfolk of the Pearl Trident"); + qa.setCardRewardList(pack.getRare(3, 3)); } @@ -323,6 +452,9 @@ public class QuestUtil { else if (id == 4) //Red Dungeon { + for (int i=0;i<3;i++) + qa.addCompy("Mons's Goblin Raiders"); + qa.setCardRewardList(pack.getRare(3, 5)); }