From 382d85060543151e2b5eeb5ac6b6168683ced542 Mon Sep 17 00:00:00 2001 From: lars Date: Sat, 4 Oct 2025 14:03:44 +0200 Subject: [PATCH] added better speed mechanic --- .../game/stateless/types/turtleGame/TurtleGame.java | 11 ++++++----- .../stateless/types/turtleGame/TurtleGameFactory.java | 5 +++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGame.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGame.java index 34ed183..0b7f781 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGame.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGame.java @@ -28,12 +28,14 @@ class TurtleGame extends StatelessGame { private final Map scoreMap = new WeakHashMap<>(); private final ArrayList snacks = new ArrayList<>(); private final ArrayList bombs = new ArrayList<>(); - private double speed = 2; - private double maxSpeed = 10; + private double speed; + private final double maxSpeedIncrease; - public TurtleGame(int radius) { + public TurtleGame(int radius, int startSpeed) { super(Dimension.OVERWORLD.key, "Turtle Game", new PointsWinScore()); this.radius = radius; + this.speed = startSpeed; + this.maxSpeedIncrease = (double) this.radius / 4; this.eventNode() .addListener(PlayerTickEvent.class, this::onPlayerTick); @@ -93,8 +95,7 @@ class TurtleGame extends StatelessGame { bomb.remove(); this.generateNewBomb(2); this.getScore().insertResult(p, this.scoreMap.get(p)); - // TODO: Speed in Einstellungen anpassbar machen und je nach Spieleranzahl erhöhen - this.speed += 0.5; + this.speed += this.maxSpeedIncrease / this.getPlayers().size(); }); } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGameFactory.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGameFactory.java index 1913bb0..f5194f0 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGameFactory.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/turtleGame/TurtleGameFactory.java @@ -26,12 +26,13 @@ public class TurtleGameFactory implements GameFactory { @Override public ConfigManager configuration() { return new ConfigManager() - .addOption(new NumericOption("radius", Material.HEART_OF_THE_SEA, TranslatedComponent.byId("optionCommon#radius"), 10, 20, 30, 40)); + .addOption(new NumericOption("radius", Material.HEART_OF_THE_SEA, TranslatedComponent.byId("optionCommon#radius"), 10, 20, 30, 40)) + .addOption(new NumericOption("startSpeed", Material.LEATHER_BOOTS, TranslatedComponent.byId("game_TurtleGame#startSpeed"), 2, 4, 6)); } @Override public Game manufacture(Room parent, Map> configuration) throws Exception { - return new TurtleGame(configuration.get("radius").getAsInt()).setParent(parent); + return new TurtleGame(configuration.get("radius").getAsInt(), configuration.get("startSpeed").getAsInt()).setParent(parent); } @Override