From d4465063d4914b8d1f0e4365749d3df9d7ebb6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 10 Oct 2026 13:28:09 +0200 Subject: [PATCH] Launch more fireworks across the field of view, near and far --- .../endlessjumper/generator/JumpGenerator.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/mhsl/minecraft/endlessjumper/generator/JumpGenerator.java b/src/main/java/eu/mhsl/minecraft/endlessjumper/generator/JumpGenerator.java index fedaa87..facf5cf 100644 --- a/src/main/java/eu/mhsl/minecraft/endlessjumper/generator/JumpGenerator.java +++ b/src/main/java/eu/mhsl/minecraft/endlessjumper/generator/JumpGenerator.java @@ -47,6 +47,7 @@ public class JumpGenerator { private static final int PREVIEW = 3; private static final int FULL_DIFFICULTY_AT = 1000; private static final int FINALE_AT = 1000; + private static final int FIREWORKS_NEAR = 6, FIREWORKS_FAR = 14, FIREWORKS_SPAN_TICKS = 100; private static final Block BRIDGE_BLOCK = Block.WHITE_STAINED_GLASS; private static final int BRIDGE_STEP_TICKS = 4; @@ -183,10 +184,18 @@ public class JumpGenerator { /** Durchgespielt (Beginn von „Unendlich“): Feuerwerk rund um den Spieler. */ private void celebrate() { this.player.showTitle(FINALE_TITLE); - for(int i = 0; i < 6; i++) { - Pos at = this.player.getPosition().add(this.random.nextInt(-6, 7), 0, this.random.nextInt(2, 10)); + + // in Blickrichtung: ein paar Raketen nah vor dem Spieler, die meisten in der Ferne links, mittig und rechts + Pos origin = this.player.getPosition(); + Vec forward = origin.direction().withY(0).normalize(); + Vec right = new Vec(-forward.z(), 0, forward.x()); + for(int i = 0; i < FIREWORKS_NEAR + FIREWORKS_FAR; i++) { + boolean near = i < FIREWORKS_NEAR; + double distance = near ? this.random.nextDouble(3, 10) : this.random.nextDouble(20, 45); + double side = near ? this.random.nextDouble(-6, 6) : this.random.nextDouble(-25, 25); + Pos at = origin.add(forward.mul(distance)).add(right.mul(side)).add(0, near ? 0 : 4, 0); this.world.scheduler().buildTask(() -> Fireworks.launch(this.world, at, this.random)) - .delay(TaskSchedule.tick(1 + i * 8)) + .delay(TaskSchedule.tick(1 + this.random.nextInt(FIREWORKS_SPAN_TICKS))) .schedule(); } }