Browse Source

Weiterführung von InteractiveTiles, konsistenz zwischen benennungen wiederhergestellt

Jan 11 tháng trước cách đây
mục cha
commit
26c2e243e1
28 tập tin đã thay đổi với 60 bổ sung41 xóa
  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!