From 7e552d5298e7c54f11e465692375ef1ff5e52058 Mon Sep 17 00:00:00 2001 From: jull Date: Thu, 29 May 2025 19:17:00 +0200 Subject: [PATCH] fix: coins --- src/main/java/cz/jull/Item.java | 8 ++++++++ src/main/java/cz/jull/tui/Menu.java | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/cz/jull/Item.java b/src/main/java/cz/jull/Item.java index 028d6f5..291685d 100644 --- a/src/main/java/cz/jull/Item.java +++ b/src/main/java/cz/jull/Item.java @@ -140,6 +140,14 @@ public enum Item implements Buildable { } return true; }; + + COAL_FACTORY.canBeBuiltFunction = game -> { + if (game.getBuildings().contains(Item.VILLAGER_HOUSE)) { + return true; + } + game.getStrings().print("noVillagerHouseMessage"); + return false; + }; } /** diff --git a/src/main/java/cz/jull/tui/Menu.java b/src/main/java/cz/jull/tui/Menu.java index dbf4e1f..7f75395 100644 --- a/src/main/java/cz/jull/tui/Menu.java +++ b/src/main/java/cz/jull/tui/Menu.java @@ -3,6 +3,8 @@ package cz.jull.tui; import cz.jull.Game; import cz.jull.Item; import cz.jull.actions.Action; +import cz.jull.exceptions.ItemNotAvailableException; +import cz.jull.exceptions.NotSufficientsCoinsException; import lombok.RequiredArgsConstructor; import java.io.IOException; @@ -94,7 +96,12 @@ public class Menu { List availableItems = game.getMarket().getAvailableItems().stream().map(item -> item + ": " + "\u001B[0;33m" + item.getPrice() + " Coins\u001B[0m").toList(); int itemIndex = Cli.selectOptionIndex(availableItems); Item item = game.getMarket().getAvailableItems().get(itemIndex); - game.getMarket().buyItem(game, item); + try { + game.getMarket().buyItem(game, item); + } catch (NotSufficientsCoinsException | ItemNotAvailableException e) { + System.out.println("Error: " + e.getMessage()); + } + } case 1 -> { game.getStrings().print("marketSell");