diff --git a/src/main/java/cz/jull/Game.java b/src/main/java/cz/jull/Game.java index dac448b..3971f6d 100644 --- a/src/main/java/cz/jull/Game.java +++ b/src/main/java/cz/jull/Game.java @@ -39,8 +39,7 @@ public class Game { if (waterType == WaterType.WELL) { buildings.add(Item.WELL); } - - player.setCoins(10000); + player.setCoins(1000); } public void build(Item item) { @@ -87,15 +86,51 @@ public class Game { } } + public void milkCow() { + player.getInventory().add(Item.MILK); + } + public void produce(Item item) { - int bakeryProducedMoney = 0; - int pubProducedMoney = 0; - int wineryProducedMoney = 0; + long bakeryProducedMoney = 0; + long pubProducedMoney = 0; + long wineryProducedMoney = 0; + long coalFactoryProducedMoney = 0; + long cheeseFactoryProducedMoney = 0; switch (item) { case BAKERY -> { + long wheatSum = player.getInventory().stream().filter(item1 -> item1 == Item.WHEAT).count(); player.getInventory().remove(Item.WHEAT); - // TODO dodelat ostatni factories a vymyslet logiku na delani penez tak ze to bude brat kolik harvestnul napr obili a pote to nejak vynasobit a to budou money + bakeryProducedMoney = (wheatSum * item.getPrice()/2); + player.setCoins(player.getCoins() + bakeryProducedMoney); + } + + case PUB -> { + long hopsSum = player.getInventory().stream().filter(item1 -> item1 == Item.HOPS).count(); + player.getInventory().remove(Item.HOPS); + pubProducedMoney = (hopsSum * item.getPrice()/2); + player.setCoins(player.getCoins() + pubProducedMoney); + } + + case WINERY -> { + long grapevineSum = player.getInventory().stream().filter(item1 -> item1 == Item.GRAPEVINE).count(); + player.getInventory().remove(Item.GRAPEVINE); + wineryProducedMoney = (grapevineSum * item.getPrice()/2); + player.setCoins(player.getCoins() + wineryProducedMoney); + } + + case COAL_FACTORY -> { + long woodSum = player.getInventory().stream().filter(item1 -> item1 == Item.WOOD).count(); + player.getInventory().remove(Item.WOOD); + coalFactoryProducedMoney = (woodSum * item.getPrice()/2); + player.setCoins(player.getCoins() + coalFactoryProducedMoney); + } + + case CHEESE_FACTORY -> { + long milkSum = player.getInventory().stream().filter(item1 -> item1 == Item.MILK).count(); + player.getInventory().remove(Item.MILK); + cheeseFactoryProducedMoney = (milkSum * item.getPrice()/2); + player.setCoins(player.getCoins() + cheeseFactoryProducedMoney); } } } diff --git a/src/main/java/cz/jull/Item.java b/src/main/java/cz/jull/Item.java index 074624c..2dc23e8 100644 --- a/src/main/java/cz/jull/Item.java +++ b/src/main/java/cz/jull/Item.java @@ -168,6 +168,7 @@ public enum Item implements Buildable { private final boolean isPLaceable; + @Getter private final int price; private Function function; diff --git a/src/main/java/cz/jull/Player.java b/src/main/java/cz/jull/Player.java index 32b873a..05cc76f 100644 --- a/src/main/java/cz/jull/Player.java +++ b/src/main/java/cz/jull/Player.java @@ -9,7 +9,7 @@ import java.util.List; @Getter @Setter public class Player { - private int coins; + private long coins; private List inventory = new ArrayList<>(); } diff --git a/src/main/java/cz/jull/market/Market.java b/src/main/java/cz/jull/market/Market.java index 5e8208f..f24fffb 100644 --- a/src/main/java/cz/jull/market/Market.java +++ b/src/main/java/cz/jull/market/Market.java @@ -16,17 +16,15 @@ public class Market { Item.VILLAGER_HOUSE, Item.CHURCH )); - private void play() { - - } - public void sellItem(Player player, Item item) { + player.setCoins(player.getCoins() + item.getPrice()); player.getInventory().remove(item); } public void buyItem(Game game, Item item) throws Exception { if (availableItems.contains(item)) { game.getPlayer().getInventory().add(item); + game.getPlayer().setCoins(game.getPlayer().getCoins() - item.getPrice()); } else { if (item == Item.WHEAT_SEEDS) { for (int i = 0; i < game.getWaterType().getFarmlandAndVineyardCount() ; i++) {