Raise speed cap to 100x and increase base growth/recovery rates
- /lw speed now accepts 1-100 (was 1-20) - Vegetation growth rates 4x faster: grass 0.015→0.06, flowers 0.008→0.03, shrubs 0.005→0.02, trees 0.002→0.008. Previously grass alone took ~200 cycles to unlock shrub growth; now ~50 cycles. - Recovery base progress 0.5→2.0/cycle, health bonus 0.02→0.05/cycle. Each succession stage now advances in ~50 good cycles instead of ~200. At /lw speed 100 with good soil+water conditions set via /lw set, full BARREN→MATURE_FOREST succession completes in well under a minute. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -369,9 +369,9 @@ public final class LivingWorldBootstrap {
|
|||||||
applyDynamicCapUpdate();
|
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) {
|
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,
|
LivingWorldLogger.info(DiagnosticCategory.BOOTSTRAP,
|
||||||
"Simulation speed set to " + simSpeedMultiplier + "x");
|
"Simulation speed set to " + simSpeedMultiplier + "x");
|
||||||
return this.simSpeedMultiplier;
|
return this.simSpeedMultiplier;
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ public final class LivingWorldCommandRoot {
|
|||||||
return 1;
|
return 1;
|
||||||
}))
|
}))
|
||||||
.then(Commands.literal("speed")
|
.then(Commands.literal("speed")
|
||||||
.then(Commands.argument("multiplier", IntegerArgumentType.integer(1, 20))
|
.then(Commands.argument("multiplier", IntegerArgumentType.integer(1, 100))
|
||||||
.executes(context -> {
|
.executes(context -> {
|
||||||
int n = IntegerArgumentType.getInteger(context, "multiplier");
|
int n = IntegerArgumentType.getInteger(context, "multiplier");
|
||||||
int actual = speedSetter.applyAsInt(n);
|
int actual = speedSetter.applyAsInt(n);
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ public final class RecoveryModule implements SimulationModule {
|
|||||||
public static final String MODULE_ID = "recovery";
|
public static final String MODULE_ID = "recovery";
|
||||||
|
|
||||||
/** Base recovery progress per tick (added when conditions are met). */
|
/** 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. */
|
/** 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. */
|
/** Damage accumulated per tick when conditions are badly violated. */
|
||||||
private static final double DAMAGE_PER_BAD_TICK = 5.0;
|
private static final double DAMAGE_PER_BAD_TICK = 5.0;
|
||||||
/** Damage decays this fraction per tick when conditions are OK.
|
/** Damage decays this fraction per tick when conditions are OK.
|
||||||
|
|||||||
@@ -45,10 +45,10 @@ public final class VegetationModule implements SimulationModule {
|
|||||||
private static final double TREE_UNLOCK_SHRUB = 40.0;
|
private static final double TREE_UNLOCK_SHRUB = 40.0;
|
||||||
|
|
||||||
// --- growth rates per tick ---
|
// --- growth rates per tick ---
|
||||||
private static final double GRASS_GROWTH_RATE = 0.015;
|
private static final double GRASS_GROWTH_RATE = 0.06;
|
||||||
private static final double FLOWER_GROWTH_RATE = 0.008;
|
private static final double FLOWER_GROWTH_RATE = 0.03;
|
||||||
private static final double SHRUB_GROWTH_RATE = 0.005;
|
private static final double SHRUB_GROWTH_RATE = 0.02;
|
||||||
private static final double TREE_GROWTH_RATE = 0.002;
|
private static final double TREE_GROWTH_RATE = 0.008;
|
||||||
|
|
||||||
// --- die-off thresholds ---
|
// --- die-off thresholds ---
|
||||||
private static final double DIEOFF_SOIL_THRESHOLD = 20.0;
|
private static final double DIEOFF_SOIL_THRESHOLD = 20.0;
|
||||||
|
|||||||
Reference in New Issue
Block a user