Prepare independent successor playtest with spawn recovery and casualty feedback

This commit is contained in:
2026-09-19 22:12:52 +02:00
parent 61e165ef5b
commit 6cf989a060
266 changed files with 134064 additions and 154 deletions
@@ -37,18 +37,6 @@ class ERR_AircraftFieldRules
desired = CapHorizontal(desired, 2);
return CapHorizontal(current + CapHorizontal(desired - current, 0.2 * dt), 2);
}
// Remaining target distance includes permitted takeoff/corridor drift; its
// 120m arithmetic bound grants no authority beyond Contains/Length.
// Invert the entire candidate stopping reserve (including1s latency and3m
// margin), not just its deceleration term. Caller also freezes a0.9 entry-speed
// cap to begin reducing the velocityReference immediately, then slews the vector.
// The assumed0.15m/s² physical deceleration still requires native measurement.
static float ApproachSpeed(float remaining, float current)
{
if (!(remaining >= 0 && remaining <= 120) || !(current >= 0 && current <= 2)) return 0;
float reservedSpeed = (Math.Sqrt(0.09 + 1.2 * Math.Max(0, remaining - 3)) - 0.3) * 0.5;
return Math.Min(current, Math.Max(0, reservedSpeed));
}
// Integral units are (m/s)*seconds; nextIntegral is caller-owned state.
// Horizontal demand is world-space; the exact-owner controller converts it
// to the native airframe basis. The caller resets state at phase transitions.
@@ -76,7 +64,9 @@ class ERR_AircraftFieldRules
static bool ShouldBrake(float remaining, float speed)
{
if (!(remaining >= 0 && remaining <= 120) || !(speed >= 0 && speed <= 2.5)) return true;
return remaining <= Math.Max(25, BrakingReserve(speed));
// The candidate reserve uses actual speed; phase2 immediately targets rest.
// This predicate does not assert measured native stopping performance.
return remaining <= BrakingReserve(speed);
}
// Admit only the full experimental lease, with <=1s dispatch allowance.
// Never recompute a deadline from these checks or renew the original lease.