From 7963decb11e10b4491b820c942498ca00942e7ef Mon Sep 17 00:00:00 2001 From: Gavin Li Date: Sat, 11 Apr 2015 14:25:41 -0400 Subject: [PATCH 1/4] Editing Game Values, made new Items, changed price increase algorithm, Extended the combobox in TransactionUI --- MerchantRPGCSE2102/src/config/inventory.txt | 35 ++++++++++++++----- MerchantRPGCSE2102/src/controller/RPGame.java | 29 ++++++++++----- .../src/view/TransactionUI.java | 4 +-- 3 files changed, 49 insertions(+), 19 deletions(-) diff --git a/MerchantRPGCSE2102/src/config/inventory.txt b/MerchantRPGCSE2102/src/config/inventory.txt index fcf6cb0..55691b5 100644 --- a/MerchantRPGCSE2102/src/config/inventory.txt +++ b/MerchantRPGCSE2102/src/config/inventory.txt @@ -1,11 +1,30 @@ merchant 1 -water 3 -armor 5 -food 10 +Water 2 +Candy 5 +Apple 7 +Bread 3 +Cake 14 +Jerky 9 merchant 2 -wood 3 -tarp 6 +PigIron 19 +HighQualityIron 25 +Steel 29 +WoodPlanks 10 +HighQualityWood 18 +FairyTreeWood 40 +WornSword 23 +IronSword 29 +SteelSword 38 +FairySteelSword 95 +BlessedIronDaggerofPig 50000 merchant 3 -glass 3 -tape 13 -rope 5 \ No newline at end of file +LooseGems 60 +FineCutDiamond 70 +SilverBracelets 85 +SilverNecklace 93 +SilverEmeraldRing 100 +GoldBracelets 84 +GoldNecklace 103 +GoldSapphireRing 133 +GoldDiamondCrown 210 +ExpensiveJewlery? 500 \ No newline at end of file diff --git a/MerchantRPGCSE2102/src/controller/RPGame.java b/MerchantRPGCSE2102/src/controller/RPGame.java index 9711281..c79d02c 100644 --- a/MerchantRPGCSE2102/src/controller/RPGame.java +++ b/MerchantRPGCSE2102/src/controller/RPGame.java @@ -74,9 +74,9 @@ else if (currentMerchant == 3) */ public void buildMerchants() { - _merchant1 = new Merchant("Merchant 1", 1000, merchantInventoryList1); - _merchant2 = new Merchant("Merchant 2", 1000, merchantInventoryList2); - _merchant3 = new Merchant("Merchant 3", 1000, merchantInventoryList3); + _merchant1 = new Merchant("Cheap Merchant", 200, merchantInventoryList1); + _merchant2 = new Merchant("Medium Merchant", 600, merchantInventoryList2); + _merchant3 = new Merchant("Expensive Merchant", 1000, merchantInventoryList3); } /** @@ -163,11 +163,13 @@ public void advanceDailyCycle(){ scaleAllMerchantPrices(allMerchants); //will scale all the prices of the items that the merchants hold based on their dailyRandomPercent - if( (_currentDay % 3) == 0) //will increase the merchant's base cash every 3 days + if( (_currentDay % 6) == 0) //will increase the merchant's base cash every 6 days { - addAndRefreshCash(_merchant1, 100); - addAndRefreshCash(_merchant2, 100); - addAndRefreshCash(_merchant3, 100); + int multiplier = (int) Math.floor(_currentDay / 10) + 1; + + addAndRefreshCash(_merchant1, multiplier * 100); + addAndRefreshCash(_merchant2, multiplier * 100); + addAndRefreshCash(_merchant3, multiplier * 100); } else //if not on a third day, will just refresh the merchant's cash amount { @@ -251,6 +253,15 @@ public int getDay() { return _currentDay; } + + /** + * + * @return Movement variable + */ + public boolean getMovement() + { + return _movement; + } /** * Main method used to test the GUI components since test classes do not maintain the GUI @@ -265,7 +276,7 @@ public static void main(String[] args) throws InterruptedException playerInventory.addAll(_rpg.getMerchantInventoryList(2)); playerInventory.addAll(_rpg.getMerchantInventoryList(3)); _rpg.buildPlayer("test", 500, playerInventory); - _rpg.getPlayer().getItem("armor").increaseQuantity(15); - _rpg.createTransaction(_rpg.getPlayer(), _rpg.getMerchant(1)); + _rpg.getPlayer().getItem("WoodPlanks").increaseQuantity(15); + _rpg.createTransaction(_rpg.getPlayer(), _rpg.getMerchant(3)); } } diff --git a/MerchantRPGCSE2102/src/view/TransactionUI.java b/MerchantRPGCSE2102/src/view/TransactionUI.java index 033be48..ba98daa 100644 --- a/MerchantRPGCSE2102/src/view/TransactionUI.java +++ b/MerchantRPGCSE2102/src/view/TransactionUI.java @@ -121,7 +121,7 @@ public void createBuyWindow() @SuppressWarnings({ "rawtypes", "unchecked" }) final JComboBox comboBox = new JComboBox(itemList); //create a drop-down menu for the player to choose from - comboBox.setBounds(61, 141, 131, 20); + comboBox.setBounds(61, 141, 250, 20); contentPane.add(comboBox); final JTextField textField = new JTextField(); //create a text field for the player to enter the amount desired into @@ -208,7 +208,7 @@ public void createSellWindow() contentPane.add(lblYouHave); final JComboBox comboBox = new JComboBox(itemList); //create a drop-down menu for the player to choose from - comboBox.setBounds(61, 141, 131, 20); + comboBox.setBounds(61, 141, 250, 20); contentPane.add(comboBox); final JTextField textField = new JTextField(); //create a text field for the player to enter the amount desired into From a428dba0dafaaf93a04acd48619682971eb9a0b6 Mon Sep 17 00:00:00 2001 From: Gavin Li Date: Sat, 11 Apr 2015 14:35:35 -0400 Subject: [PATCH 2/4] Fixed the warning window bug in TransactionUI --- .../src/view/TransactionUI.java | 134 ++++++++++-------- 1 file changed, 75 insertions(+), 59 deletions(-) diff --git a/MerchantRPGCSE2102/src/view/TransactionUI.java b/MerchantRPGCSE2102/src/view/TransactionUI.java index ba98daa..0230e63 100644 --- a/MerchantRPGCSE2102/src/view/TransactionUI.java +++ b/MerchantRPGCSE2102/src/view/TransactionUI.java @@ -19,12 +19,14 @@ public class TransactionUI extends JFrame { private static JPanel transactionPanel; private static Transaction MASTER; //TransactionUI class will hold the instance of the Transaction that created it - + private static boolean _isWarning; + /** * Create the frame. */ public TransactionUI(Transaction master) { MASTER = master; + _isWarning = false; setTitle("Transaction Window"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 600, 430); @@ -42,8 +44,8 @@ public void actionPerformed(ActionEvent arg0) { public void mouseReleased(MouseEvent arg0) { System.out.println("BUY"); //temporary test code createBuyWindow(); - } - }); + } + }); btnBuy.setBounds(58, 155, 169, 105); transactionPanel.add(btnBuy); @@ -64,8 +66,8 @@ public void mouseReleased(MouseEvent e) { public void mouseReleased(MouseEvent e) { System.out.println("Cancel"); //temporary test code - MASTER.actionCancel(); - exitWindow(); //Will end the transaction main screen but only if player does not have another transaction screen open + MASTER.actionCancel(); + exitWindow(); //Will end the transaction main screen but only if player does not have another transaction screen open } }); btnCancel.setBounds(210, 310, 160, 50); @@ -141,10 +143,13 @@ public void createBuyWindow() btnCancel.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent arg0) { - getContentPane().removeAll(); - add(transactionPanel); - setVisible(false); - setVisible(true); + if(!_isWarning) + { + getContentPane().removeAll(); + add(transactionPanel); + setVisible(false); + setVisible(true); + } } }); btnCancel.setBounds(61, 306, 89, 23); @@ -153,26 +158,29 @@ public void mouseReleased(MouseEvent arg0) { JButton btnAccept = new JButton("Accept"); //create an accept button to consume the information the player entered into the menu and text field btnAccept.addMouseListener(new MouseAdapter() { @Override - public void mouseReleased(MouseEvent e) { //information is consumed when player clicks the accept button - String chosenItem = comboBox.getSelectedItem().toString().split(" ")[0]; //consumes the String name of the item from drop-down menu - System.out.println(chosenItem); - - try{ //will attempt to parse the number player entered, will stay on the same screen if it cannot - int chosenAmount = Integer.parseInt(textField.getText()); - if(MASTER.actionBuy(chosenItem, chosenAmount)) //will attempt to buy the specified amount of the chosen item - { - System.out.println(chosenAmount); - getContentPane().removeAll(); - add(transactionPanel); - setVisible(false); - setVisible(true); + public void mouseReleased(MouseEvent e) { + if(!_isWarning) + { + String chosenItem = comboBox.getSelectedItem().toString().split(" ")[0]; //consumes the String name of the item from drop-down menu + System.out.println(chosenItem); + + try{ //will attempt to parse the number player entered, will stay on the same screen if it cannot + int chosenAmount = Integer.parseInt(textField.getText()); + if(MASTER.actionBuy(chosenItem, chosenAmount)) //will attempt to buy the specified amount of the chosen item + { + System.out.println(chosenAmount); + getContentPane().removeAll(); + add(transactionPanel); + setVisible(false); + setVisible(true); + } + else + throw new NumberFormatException(); //will throw a NumberFormatException if actionBuy returns a false + } + catch(NumberFormatException exception){ + System.out.println("Must input an amount that you can afford"); + createWarning("Must input an amount that you can afford"); } - else - throw new NumberFormatException(); //will throw a NumberFormatException if actionBuy returns a false - } - catch(NumberFormatException exception){ - System.out.println("Must input an amount that you can afford"); - createWarning("Must input an amount that you can afford"); } } }); @@ -228,10 +236,13 @@ public void createSellWindow() btnCancel.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent arg0) { - getContentPane().removeAll(); - add(transactionPanel); - setVisible(false); - setVisible(true); + if(!_isWarning) + { + getContentPane().removeAll(); + add(transactionPanel); + setVisible(false); + setVisible(true); + } } }); btnCancel.setBounds(61, 306, 89, 23); @@ -241,40 +252,43 @@ public void mouseReleased(MouseEvent arg0) { btnAccept.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { //information is consumed when player clicks the accept button - String chosenItem = comboBox.getSelectedItem().toString().split(" ")[0]; //consumes the String name of the item from drop-down menu - System.out.println(chosenItem); - boolean isGood = false; + if(!_isWarning) + { + String chosenItem = comboBox.getSelectedItem().toString().split(" ")[0]; //consumes the String name of the item from drop-down menu + System.out.println(chosenItem); + boolean isGood = false; - try{ try{ - try{ //will attempt to parse the number player entered, will stay on the same screen if it cannot - int chosenAmount = Integer.parseInt(textField.getText()); - isGood = MASTER.actionSell(chosenItem, chosenAmount); //checks if the merchant will buy that item - if(isGood) //will attempt to sell the specified amount of the chosen item - { - System.out.println(chosenAmount); - getContentPane().removeAll(); - add(transactionPanel); - setVisible(false); - setVisible(true); + try{ + try{ //will attempt to parse the number player entered, will stay on the same screen if it cannot + int chosenAmount = Integer.parseInt(textField.getText()); + isGood = MASTER.actionSell(chosenItem, chosenAmount); //checks if the merchant will buy that item + if(isGood) //will attempt to sell the specified amount of the chosen item + { + System.out.println(chosenAmount); + getContentPane().removeAll(); + add(transactionPanel); + setVisible(false); + setVisible(true); + } + else + throw new NumberFormatException(); //will throw a NumberFormatException if actionSell returns a false + } + catch(MerchantNotEnoughCashException mnecexception){ + System.out.println("Merchant does not have enough cash"); + createWarning("Merchant does not have enough cash"); } - else - throw new NumberFormatException(); //will throw a NumberFormatException if actionSell returns a false } - catch(MerchantNotEnoughCashException mnecexception){ - System.out.println("Merchant does not have enough cash"); - createWarning("Merchant does not have enough cash"); + catch(NumberFormatException exception){ + System.out.println("You do not have enough of that item"); + createWarning("You do not have enough of that item"); } } - catch(NumberFormatException exception){ - System.out.println("You do not have enough of that item"); - createWarning("You do not have enough of that item"); + catch(NotInInventoryException niiexception){ + System.out.println("Merchant does not accept that item"); + createWarning("Merchant does not accept that item"); } } - catch(NotInInventoryException niiexception){ - System.out.println("Merchant does not accept that item"); - createWarning("Merchant does not accept that item"); - } } }); btnAccept.setBounds(247, 306, 89, 23); @@ -282,8 +296,9 @@ public void mouseReleased(MouseEvent e) { //information is consumed // frame.setVisible(true); // frame.setLocationRelativeTo(null); } - + public static void createWarning(String message) { + _isWarning = true; final JFrame contentFrame = new JFrame(); JPanel warningPane = new JPanel(); contentFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); @@ -297,6 +312,7 @@ public static void createWarning(String message) { btnOk.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent arg0) { + _isWarning = false; contentFrame.dispose(); } }); From e6b18ae30d0cd303cabbf3c85ac944826014f548 Mon Sep 17 00:00:00 2001 From: Gavin Li Date: Sat, 11 Apr 2015 14:58:32 -0400 Subject: [PATCH 3/4] Updated ToggleMovement methods --- MerchantRPGCSE2102/src/controller/RPGame.java | 4 ++-- .../src/controller/Transaction.java | 22 +++++++++---------- .../src/view/TransactionUI.java | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/MerchantRPGCSE2102/src/controller/RPGame.java b/MerchantRPGCSE2102/src/controller/RPGame.java index c79d02c..ffc4c07 100644 --- a/MerchantRPGCSE2102/src/controller/RPGame.java +++ b/MerchantRPGCSE2102/src/controller/RPGame.java @@ -130,8 +130,8 @@ public void createTransaction(Player player, Merchant targetMerchant) if(_transactionLimit > 0) { toggleMovement("OFF"); - Transaction newTransaction = new Transaction(player, targetMerchant); - toggleMovement("ON"); + System.out.println("Transaction Begining"); + Transaction newTransaction = new Transaction(player, targetMerchant, this); _transactionLimit -= 1; } else diff --git a/MerchantRPGCSE2102/src/controller/Transaction.java b/MerchantRPGCSE2102/src/controller/Transaction.java index 4e1d13f..e7b4fb9 100644 --- a/MerchantRPGCSE2102/src/controller/Transaction.java +++ b/MerchantRPGCSE2102/src/controller/Transaction.java @@ -12,11 +12,13 @@ public class Transaction private Player _player; private Merchant _targetMerchant; private TransactionUI _window; + private RPGame _game; - public Transaction(Player player, Merchant targetMerchant) + public Transaction(Player player, Merchant targetMerchant, RPGame game) { _player = player; _targetMerchant = targetMerchant; + _game = game; _window = new TransactionUI(this); _window.setVisible(true); } @@ -61,16 +63,6 @@ public boolean actionSell(String itemName, int amount) throws NotInInventoryExce return false; } - /** - * This method will push a true up to the class calling it - * incomplete method - * @return returns true - */ - public boolean actionCancel() - { - return true; - } - /** * Searches the player inventory for the item matching the item name * @param itemName name of the item @@ -91,6 +83,14 @@ public Item searchMerchantInventory(String itemName) return _targetMerchant.getItem(itemName); } + /** + * Toggles the RPGame movement back on + */ + public void endTransaction() + { + _game.toggleMovement("ON"); + } + /** * Returns the player in transaction * @return returns the player diff --git a/MerchantRPGCSE2102/src/view/TransactionUI.java b/MerchantRPGCSE2102/src/view/TransactionUI.java index 0230e63..bfc722c 100644 --- a/MerchantRPGCSE2102/src/view/TransactionUI.java +++ b/MerchantRPGCSE2102/src/view/TransactionUI.java @@ -66,7 +66,7 @@ public void mouseReleased(MouseEvent e) { public void mouseReleased(MouseEvent e) { System.out.println("Cancel"); //temporary test code - MASTER.actionCancel(); + MASTER.endTransaction(); exitWindow(); //Will end the transaction main screen but only if player does not have another transaction screen open } }); From be0b61eec639751da81847cd0ff4904435e2bcc5 Mon Sep 17 00:00:00 2001 From: Gavin Li Date: Sat, 11 Apr 2015 15:00:14 -0400 Subject: [PATCH 4/4] Minor Edits --- MerchantRPGCSE2102/src/controller/RPGame.java | 1 - 1 file changed, 1 deletion(-) diff --git a/MerchantRPGCSE2102/src/controller/RPGame.java b/MerchantRPGCSE2102/src/controller/RPGame.java index ffc4c07..d7b7c1c 100644 --- a/MerchantRPGCSE2102/src/controller/RPGame.java +++ b/MerchantRPGCSE2102/src/controller/RPGame.java @@ -130,7 +130,6 @@ public void createTransaction(Player player, Merchant targetMerchant) if(_transactionLimit > 0) { toggleMovement("OFF"); - System.out.println("Transaction Begining"); Transaction newTransaction = new Transaction(player, targetMerchant, this); _transactionLimit -= 1; }