From 5253d19f9cb957d7d9c265e0129ad7af6e8bfb6d Mon Sep 17 00:00:00 2001 From: = Date: Sun, 24 May 2026 17:54:23 +0200 Subject: [PATCH] Feat: Fixed clicker game Fixed bug where player could buy upgrade even if they did not have enough score, by adding an internal reference to score in the clicker game game. --- .../widgets/minigames/games/ClickerGame.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/games/ClickerGame.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/games/ClickerGame.java index f2d9f06..b7fd9d7 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/games/ClickerGame.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/view/widgets/minigames/games/ClickerGame.java @@ -25,6 +25,11 @@ public final class ClickerGame * */ private int clickValue; + /** + * Local reference to current score. + */ + private int score; + /** * The current cost of upgrading the amount gained per click. * */ @@ -71,17 +76,22 @@ public Node getCanvasNode() { @Override public void initialize(final IntConsumer scoreModifier) { - - clickBtn.setOnAction(e -> scoreModifier.accept(clickValue)); + score = 0; + clickBtn.setOnAction(e -> { + scoreModifier.accept(clickValue); + score += clickValue; + }); upgradeBtn.setOnAction(e -> { - // TODO: Change validation to only upgrade if enough score. scoreModifier.accept(-upgradeCost); - clickValue += 1; - upgradeCost *= 2; - clickBtn.setText("+" + clickValue); - upgradeBtn.setText("+" + clickValue + " per click\n-" - + upgradeCost + " points"); + if (upgradeCost <= score) { + score -= upgradeCost; + clickValue += 1; + upgradeCost *= 2; + clickBtn.setText("+" + clickValue); + upgradeBtn.setText("+1 per click\n-" + + upgradeCost + " points"); + } }); }