diff --git a/src/main/java/com/livingworld/bootstrap/LivingWorldBootstrap.java b/src/main/java/com/livingworld/bootstrap/LivingWorldBootstrap.java index 3864cde..f076419 100644 --- a/src/main/java/com/livingworld/bootstrap/LivingWorldBootstrap.java +++ b/src/main/java/com/livingworld/bootstrap/LivingWorldBootstrap.java @@ -369,9 +369,9 @@ public final class LivingWorldBootstrap { applyDynamicCapUpdate(); } - /** Sets the simulation speed multiplier (1 = real-time, max 20). */ + /** Sets the simulation speed multiplier (1 = real-time, max 100). */ public int setSimSpeedMultiplier(int multiplier) { - this.simSpeedMultiplier = Math.max(1, Math.min(20, multiplier)); + this.simSpeedMultiplier = Math.max(1, Math.min(100, multiplier)); LivingWorldLogger.info(DiagnosticCategory.BOOTSTRAP, "Simulation speed set to " + simSpeedMultiplier + "x"); return this.simSpeedMultiplier; diff --git a/src/main/java/com/livingworld/commands/LivingWorldCommandRoot.java b/src/main/java/com/livingworld/commands/LivingWorldCommandRoot.java index f256ac8..d039888 100644 --- a/src/main/java/com/livingworld/commands/LivingWorldCommandRoot.java +++ b/src/main/java/com/livingworld/commands/LivingWorldCommandRoot.java @@ -126,7 +126,7 @@ public final class LivingWorldCommandRoot { return 1; })) .then(Commands.literal("speed") - .then(Commands.argument("multiplier", IntegerArgumentType.integer(1, 20)) + .then(Commands.argument("multiplier", IntegerArgumentType.integer(1, 100)) .executes(context -> { int n = IntegerArgumentType.getInteger(context, "multiplier"); int actual = speedSetter.applyAsInt(n); diff --git a/src/main/java/com/livingworld/modules/recovery/RecoveryModule.java b/src/main/java/com/livingworld/modules/recovery/RecoveryModule.java index fadf0ea..f595f65 100644 --- a/src/main/java/com/livingworld/modules/recovery/RecoveryModule.java +++ b/src/main/java/com/livingworld/modules/recovery/RecoveryModule.java @@ -42,9 +42,9 @@ public final class RecoveryModule implements SimulationModule { public static final String MODULE_ID = "recovery"; /** Base recovery progress per tick (added when conditions are met). */ - private static final double BASE_PROGRESS_PER_TICK = 0.5; + private static final double BASE_PROGRESS_PER_TICK = 2.0; /** Extra recovery progress per point of ecosystemHealth above 50. */ - private static final double HEALTH_PROGRESS_BONUS = 0.02; + private static final double HEALTH_PROGRESS_BONUS = 0.05; /** Damage accumulated per tick when conditions are badly violated. */ private static final double DAMAGE_PER_BAD_TICK = 5.0; /** Damage decays this fraction per tick when conditions are OK. diff --git a/src/main/java/com/livingworld/modules/vegetation/VegetationModule.java b/src/main/java/com/livingworld/modules/vegetation/VegetationModule.java index d28e24d..90f6b35 100644 --- a/src/main/java/com/livingworld/modules/vegetation/VegetationModule.java +++ b/src/main/java/com/livingworld/modules/vegetation/VegetationModule.java @@ -45,10 +45,10 @@ public final class VegetationModule implements SimulationModule { private static final double TREE_UNLOCK_SHRUB = 40.0; // --- growth rates per tick --- - private static final double GRASS_GROWTH_RATE = 0.015; - private static final double FLOWER_GROWTH_RATE = 0.008; - private static final double SHRUB_GROWTH_RATE = 0.005; - private static final double TREE_GROWTH_RATE = 0.002; + private static final double GRASS_GROWTH_RATE = 0.06; + private static final double FLOWER_GROWTH_RATE = 0.03; + private static final double SHRUB_GROWTH_RATE = 0.02; + private static final double TREE_GROWTH_RATE = 0.008; // --- die-off thresholds --- private static final double DIEOFF_SOIL_THRESHOLD = 20.0;