Prechádzať zdrojové kódy

Weiterführung von InteractiveTiles, konsistenz zwischen benennungen wiederhergestellt

Jan 5 mesiacov pred
rodič
commit
26c2e243e1
28 zmenil súbory, kde vykonal 60 pridanie a 41 odobranie
  1. 7 2
      src/main/java/controller/GameController.java
  2. 1 1
      src/main/java/controller/factories/InteractiveTileFactory.java
  3. 2 2
      src/main/java/controller/tiles/interactive/upgradeable/IronMineController.java
  4. 13 7
      src/main/java/controller/tiles/interactive/upgradeable/MineController.java
  5. 11 5
      src/main/java/controller/tiles/interactive/upgradeable/SawmillController.java
  6. 0 1
      src/main/java/model/Inventory.java
  7. 2 2
      src/main/java/model/tiles/InteractiveTileModel.java
  8. 1 1
      src/main/java/model/tiles/InteractiveTileType.java
  9. 1 1
      src/main/java/view/tile/interactive/BarracksView.java
  10. 2 2
      src/main/java/view/tile/interactive/IronMineView.java
  11. 5 5
      src/main/java/view/tile/interactive/LighthouseView.java
  12. 2 2
      src/main/java/view/tile/interactive/MineView.java
  13. 6 2
      src/main/java/view/tile/interactive/SawmillView.java
  14. 2 2
      src/main/java/view/ui/InventoryView.java
  15. 1 1
      src/main/java/view/ui/ShopView.java
  16. 2 2
      src/main/resources/economy/economy.json
  17. BIN
      src/main/resources/items/beer_item.png
  18. BIN
      src/main/resources/items/wood_item.png
  19. 1 1
      src/main/resources/lang/de_de.json
  20. 1 1
      src/main/resources/lang/en_us.json
  21. BIN
      src/main/resources/tiles/animal_enclosure/animal_enclosure_1.png
  22. 0 0
      src/main/resources/tiles/barracks/barracks_1.png
  23. 0 0
      src/main/resources/tiles/iron_mine/iron_mine_1.png
  24. 0 0
      src/main/resources/tiles/iron_mine/iron_mine_2.png
  25. 0 0
      src/main/resources/tiles/lighthouse/lighthouse_1.png
  26. 0 0
      src/main/resources/tiles/stone_mine/stone_mine_1.png
  27. 0 0
      src/main/resources/tiles/stone_mine/stone_mine_2.png
  28. 0 1
      test

+ 7 - 2
src/main/java/controller/GameController.java

@@ -118,7 +118,7 @@ public class GameController implements Runnable, Serializable {
         addInteractiveTileController(new LighthouseController(this,
                 createInteractiveTileModel(20, 20, InteractiveTileType.LIGHTHOUSE)));
         addInteractiveTileController(new MineController(this,
-                createInteractiveTileModel(25, 20, InteractiveTileType.MINE)));
+                createInteractiveTileModel(25, 20, InteractiveTileType.STONE_MINE)));
         addInteractiveTileController(new BarracksController(this,
                 createInteractiveTileModel(26, 20, InteractiveTileType.BARRACKS)));
         addInteractiveTileController(new IronMineController(this,
@@ -503,12 +503,17 @@ public class GameController implements Runnable, Serializable {
     public boolean hasAllResources(EconomyData data, int controllerLevel) {
         boolean hasAllResources = true;
         for(Map.Entry<ITEM_NAME, Integer> map : data.getCosts().get(controllerLevel).entrySet()){
-            if(getModel().getInventory().hasEnough(map.getKey(), map.getValue())){
+            if(!getModel().getInventory().hasEnough(map.getKey(), map.getValue())){
                 hasAllResources = false;
             }
         }
         return hasAllResources;
     }
 
+    public void spendItems(Map<ITEM_NAME, Integer> item_nameIntegerMap) {
+        for(Map.Entry<ITEM_NAME, Integer> map : item_nameIntegerMap.entrySet()){
+            getModel().getInventory().spend(map.getKey(), map.getValue());
+        }
+    }
 }
 

+ 1 - 1
src/main/java/controller/factories/InteractiveTileFactory.java

@@ -12,7 +12,7 @@ public class InteractiveTileFactory {
 
         return switch (type) {
             case LIGHTHOUSE -> new LighthouseController(controller, model);
-            case MINE -> new MineController(controller, model);
+            case STONE_MINE -> new MineController(controller, model);
             case BARRACKS -> new BarracksController(controller, model);
             case IRON_MINE -> new IronMineController(controller, model);
             case ANIMAL_ENCLOSURE -> new AnimalEnclosureController(controller, model);

+ 2 - 2
src/main/java/controller/tiles/interactive/upgradeable/IronMineController.java

@@ -15,7 +15,7 @@ public class IronMineController extends InteractiveTileController {
     public IronMineController(GameController gc, InteractiveTileModel model) {
         super(model, null, gc);
         setView(new IronMineView(2, 2,gc, this, 1));
-        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.ironmine"), this);
+        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.iron_mine"), this);
 
         setPopupOnClick(popup);
         this.gc = gc;
@@ -24,7 +24,7 @@ public class IronMineController extends InteractiveTileController {
     @Override
     public void upgrade() {
         setView(new IronMineView(2, 2,gc, this, 2));
-        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.ironmine"), this);
+        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.iron_mine"), this);
         setPopupOnClick(popup);
     }
 

+ 13 - 7
src/main/java/controller/tiles/interactive/upgradeable/MineController.java

@@ -4,27 +4,33 @@ import controller.GameController;
 import controller.tiles.interactive.InteractiveTileController;
 import model.tiles.InteractiveTileModel;
 import util.Translator;
+import util.economy.EconomyData;
+import util.economy.EconomyInfo;
 import view.popUpMenu.PopupMenu;
 import view.popUpMenu.UpgradeMenu;
 import view.tile.interactive.MineView;
 
 public class MineController extends InteractiveTileController {
 
-    GameController gc;
-
     public MineController(GameController gc, InteractiveTileModel model) {
         super(model, null, gc);
         setView(new MineView(2, 2,gc, this, 1));
-        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.mine"), this);
+        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.stone_mine"), this);
         setPopupOnClick(popup);
-        this.gc = gc;
     }
 
     @Override
     public void upgrade() {
-        setView(new MineView(2, 2,gc, this, 2));
-        PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.mine"),  this);
-        setPopupOnClick(popup);
+        EconomyData data = EconomyInfo.infoOf(getModel().getTileType());
+        int controllerLevel = getModel().getLevel();
+        if(data.getMaxLevel() < controllerLevel
+                && gameController.hasAllResources(data, controllerLevel)
+                && gameController.getModel().getLightHouseLevel() >= data.getRequiredLighthouseLevels().get(controllerLevel)){
+            getModel().upgrade();
+            setView(new MineView(2, 2,gameController, this, getModel().getLevel()));
+            PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.stone_mine"),  this);
+            setPopupOnClick(popup);
+        }
     }
 
     @Override

+ 11 - 5
src/main/java/controller/tiles/interactive/upgradeable/SawmillController.java

@@ -9,6 +9,7 @@ import util.economy.EconomyData;
 import util.economy.EconomyInfo;
 import view.popUpMenu.PopupMenu;
 import view.popUpMenu.UpgradeMenu;
+import view.tile.interactive.MineView;
 import view.tile.interactive.SawmillView;
 
 import java.util.Map;
@@ -17,7 +18,7 @@ public class SawmillController extends InteractiveTileController {
 
     public SawmillController(GameController gc, InteractiveTileModel model) {
         super(model, null, gc);
-        setView(new SawmillView(2,2,gc, this));
+        setView(new SawmillView(2,2,gc, this, 1));
         PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.sawmill"), this);
 
         setPopupOnClick(popup);
@@ -27,10 +28,15 @@ public class SawmillController extends InteractiveTileController {
     public void upgrade() {
         EconomyData data = EconomyInfo.infoOf(getModel().getTileType());
         int controllerLevel = getModel().getLevel();
-        if(data.getMaxLevel() < controllerLevel
-        && gameController.hasAllResources(data, controllerLevel)
-        && gameController.getModel().getLightHouseLevel() >= data.getRequiredLighthouseLevels().get(controllerLevel)){
-           getModel().upgrade();
+        if(data.getMaxLevel() > controllerLevel
+                && gameController.hasAllResources(data, controllerLevel)
+                && gameController.getModel().getLightHouseLevel() >= data.getRequiredLighthouseLevels().get(controllerLevel)){
+            getModel().upgrade();
+            gameController.spendItems(data.getCosts().get(controllerLevel));
+
+            setView(new SawmillView(2, 2, gameController, this, controllerLevel));
+            PopupMenu popup = new UpgradeMenu(100, 100, Translator.translate("popup.title.sawmill"),  this);
+            setPopupOnClick(popup);
         }
     }
     @Override

+ 0 - 1
src/main/java/model/Inventory.java

@@ -14,7 +14,6 @@ public class Inventory implements Serializable {
     public Inventory() {
         uniqueItemsCount = 0;
         itemHashMap = new HashMap<>();
-
     }
 
     public Item addToInventory(Item item){

+ 2 - 2
src/main/java/model/tiles/InteractiveTileModel.java

@@ -34,7 +34,7 @@ public class InteractiveTileModel implements Serializable {
 
     private void setupItem(){
         switch (type){
-            case MINE -> item = new Item(ITEM_NAME.stone);
+            case STONE_MINE -> item = new Item(ITEM_NAME.stone);
             case IRON_MINE -> item = new Item(ITEM_NAME.iron);
             case SAWMILL -> item = new Item(ITEM_NAME.wood);
             default -> item = new Item(ITEM_NAME.water);
@@ -43,7 +43,7 @@ public class InteractiveTileModel implements Serializable {
     public int getSecondsPerItem(){
         List<Integer> secondsPerItem = null;
         switch (type){
-            case MINE -> secondsPerItem = InteractiveTileModel.secondsPerItem.get(ITEM_NAME.stone);
+            case STONE_MINE -> secondsPerItem = InteractiveTileModel.secondsPerItem.get(ITEM_NAME.stone);
             case IRON_MINE -> secondsPerItem = InteractiveTileModel.secondsPerItem.get(ITEM_NAME.iron);
             case SAWMILL -> secondsPerItem = InteractiveTileModel.secondsPerItem.get(ITEM_NAME.wood);
             default -> secondsPerItem = List.of(50,50,50,50,50);

+ 1 - 1
src/main/java/model/tiles/InteractiveTileType.java

@@ -5,6 +5,6 @@ public enum InteractiveTileType {
     BARRACKS,
     IRON_MINE,
     LIGHTHOUSE,
-    MINE,
+    STONE_MINE,
     SAWMILL,
 }

+ 1 - 1
src/main/java/view/tile/interactive/BarracksView.java

@@ -7,6 +7,6 @@ public class BarracksView extends InteractiveTileView {
 
     public BarracksView(int scaleX, int scaleY, GameController gc, InteractiveTileController controller) {
         super( scaleX, scaleY, controller, gc.getView().tileManager);
-        setImage("/tiles/barracks/barracks.png");
+        setImage("/tiles/barracks/barracks_1.png");
     }
 }

+ 2 - 2
src/main/java/view/tile/interactive/IronMineView.java

@@ -8,9 +8,9 @@ public class IronMineView extends InteractiveTileView {
     public IronMineView(int scaleX, int scaleY, GameController gc, InteractiveTileController controller, int level) {
         super( scaleX, scaleY, controller, gc.getView().tileManager);
         if(level == 1){
-            setImage("/tiles/iron_mine/ironmine_1.png");
+            setImage("/tiles/iron_mine/iron_mine_1.png");
         } else if(level == 2) {
-            setImage("/tiles/iron_mine/ironmine_2.png");
+            setImage("/tiles/iron_mine/iron_mine_2.png");
         }
     }
 }

+ 5 - 5
src/main/java/view/tile/interactive/LighthouseView.java

@@ -8,15 +8,15 @@ public class LighthouseView extends InteractiveTileView {
     public LighthouseView(int scaleX, int scaleY, GameController gc, InteractiveTileController controller, int level) {
         super( scaleX, scaleY, controller, gc.getView().tileManager);
         if(level == 1){
-            setImage("/tiles/lighthouse/lighthouse_5.png");
+            setImage("/tiles/lighthouse/lighthouse_1.png");
         } else if(level == 2) {
-            setImage("/tiles/lighthouse/lighthouse_5.png");
+            setImage("/tiles/lighthouse/lighthouse_1.png");
         } else if (level ==3){
-            setImage("/tiles/lighthouse/lighthouse_5.png");
+            setImage("/tiles/lighthouse/lighthouse_1.png");
         } else if (level == 4) {
-            setImage("/tiles/lighthouse/lighthouse_5.png");
+            setImage("/tiles/lighthouse/lighthouse_1.png");
         } else if (level == 5) {
-            setImage("/tiles/lighthouse/lighthouse_5.png");
+            setImage("/tiles/lighthouse/lighthouse_1.png");
         }
     }
 }

+ 2 - 2
src/main/java/view/tile/interactive/MineView.java

@@ -8,9 +8,9 @@ public class MineView extends InteractiveTileView {
     public MineView(int scaleX, int scaleY,GameController gc, InteractiveTileController controller, int level) {
         super( scaleX, scaleY, controller, gc.getView().tileManager );
         if(level == 1){
-            setImage("/tiles/mine/stonemine_1.png");
+            setImage("/tiles/stone_mine/stone_mine_1.png");
         } else if(level == 2) {
-            setImage("/tiles/mine/stonemine_2.png");
+            setImage("/tiles/stone_mine/stone_mine_2.png");
         }
     }
 

+ 6 - 2
src/main/java/view/tile/interactive/SawmillView.java

@@ -5,9 +5,13 @@ import controller.tiles.interactive.InteractiveTileController;
 
 public class SawmillView extends InteractiveTileView {
 
-    public SawmillView(int scaleX, int scaleY, GameController gc, InteractiveTileController controller) {
+    public SawmillView(int scaleX, int scaleY, GameController gc, InteractiveTileController controller, int level) {
         super( scaleX,scaleY, controller, gc.getView().tileManager);
-        setImage("/tiles/sawmill/sawmill_1.png");
+        if(level == 1){
+            setImage("/tiles/sawmill/sawmill_1.png");
+        } else if(level == 2) {
+            setImage("/tiles/sawmill/sawmill_2.png");
+        }
     }
 
 }

+ 2 - 2
src/main/java/view/ui/InventoryView.java

@@ -50,10 +50,10 @@ public class InventoryView {
         g2.fillRoundRect(x, y, slotSize, slotSize, 10, 10);
         g2.setColor(Color.DARK_GRAY);
 
-        String itemName = item.getItemName().toString();
+        String itemName = item.getItemName().toString().toLowerCase();
 
         int offset = 20;
-        g2.drawImage(getImage("/items/" + "iron_item" + ".png"), x + offset/2, y + offset/2, slotSize - offset, slotSize -offset, null);
+        g2.drawImage(getImage("/items/" + itemName + "_item.png"), x + offset/2, y + offset/2, slotSize - offset, slotSize -offset, null);
 
         //g2.drawString(Translator.translate("item."+itemName), x + slotSpacing/4, y + slotSize / 2 + 5);
 

+ 1 - 1
src/main/java/view/ui/ShopView.java

@@ -95,7 +95,7 @@ public class ShopView {
         g2.fillRoundRect(offsetX, offsetY, slotSize, slotSize, 25, 25);
 
         g2.setColor(Color.BLACK);
-        BufferedImage image = getImage("/tiles/" + offer.toString().toLowerCase() + "/" + offer.toString().toLowerCase() + "Test.png");
+        BufferedImage image = getImage("/tiles/" + offer.toString().toLowerCase() + "/" + offer.toString().toLowerCase() + "_1.png");
         int imageSize = slotSize/2;
         g2.drawImage(image, offsetX + (slotSize/2 - imageSize/2), offsetY, imageSize, imageSize,null);
 

+ 2 - 2
src/main/resources/economy/economy.json

@@ -31,7 +31,7 @@
     },
     "lighthouseLevels": {
       "1": 1,
-      "2": 3
+      "2": 1
     },
     "maxAmountPerLighthouseLevel": {
       "1": 1,
@@ -89,7 +89,7 @@
       "4": 20
     }
   },
-  "MINE": {
+  "STONE_MINE": {
     "maxLevel": 5,
     "costs": {
       "1": { "wood": 1 },

BIN
src/main/resources/items/beer_item.png


BIN
src/main/resources/items/wood_item.png


+ 1 - 1
src/main/resources/lang/de_de.json

@@ -22,7 +22,7 @@
   "popup.title.barracks": "Kaserne",
   "popup.title.lighthouse": "Leuchtturm",
   "popup.title.iron_mine": "Eisen Mine",
-  "popup.title.mine": "Steinbruch",
+  "popup.title.stone_mine": "Steinbruch",
   "popup.title.sawmill": "Sägewerk",
   "popup.villager": "Dorfbewohner"
 }

+ 1 - 1
src/main/resources/lang/en_us.json

@@ -22,7 +22,7 @@
   "popup.title.barracks": "Barracks",
   "popup.title.lighthouse": "Lighthouse",
   "popup.title.iron_mine": "Iron Mine",
-  "popup.title.mine": "Stone Mine",
+  "popup.title.stone_mine": "Stone Mine",
   "popup.title.sawmill": "Sawmill",
   "popup.villager": "Villager"
 }

BIN
src/main/resources/tiles/animal_enclosure/animal_enclosure_1.png


+ 0 - 0
src/main/resources/tiles/barracks/barracks.png → src/main/resources/tiles/barracks/barracks_1.png


+ 0 - 0
src/main/resources/tiles/iron_mine/ironmine_1.png → src/main/resources/tiles/iron_mine/iron_mine_1.png


+ 0 - 0
src/main/resources/tiles/iron_mine/ironmine_2.png → src/main/resources/tiles/iron_mine/iron_mine_2.png


+ 0 - 0
src/main/resources/tiles/lighthouse/lighthouse_5.png → src/main/resources/tiles/lighthouse/lighthouse_1.png


+ 0 - 0
src/main/resources/tiles/mine/stonemine_1.png → src/main/resources/tiles/stone_mine/stone_mine_1.png


+ 0 - 0
src/main/resources/tiles/mine/stonemine_2.png → src/main/resources/tiles/stone_mine/stone_mine_2.png


+ 0 - 1
test

@@ -1 +0,0 @@
-Hallo!