From e0c1daa4ece079517ef3597ce9ecb1e7bb2b6367 Mon Sep 17 00:00:00 2001 From: soul Date: Thu, 29 Oct 2026 08:30:48 +0100 Subject: [PATCH] Thrust is a tenth of authored, the ratio gravity fell by; ThrustScale and DragScale are global flight tuning in GameplaySettings Most ships cannot climb straight out of a well and use orbits; an overspecced hull like the Longinus still can (operator direction, 2026-10-29). DragScale defaults to 1, unchanged. Co-Authored-By: Claude Opus 5.5 --- Assets/Scripts/ServerShared/Behaviors/Thruster.cs | 4 ++-- Assets/Scripts/ServerShared/Settings.cs | 5 +++++ Assets/Scripts/ServerShared/Ship.cs | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index a349ad744..f101fadff 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -45,9 +45,9 @@ public class ThrusterData : BehaviorData public class Thruster : Behavior, IPowerConsumer { // Live: heat, quality, durability and power move this stat after construction, so it is read, never cached. - public float Thrust => Evaluate(_data.Thrust); + public float Thrust => Evaluate(_data.Thrust) * ItemManager.GameplaySettings.ThrustScale; // Thrust at a full grant, the same stat read without the power-supply term: what a column promises. Live, like Thrust. - public float NominalThrust => EvaluateNominalPower(_data.Thrust); + public float NominalThrust => EvaluateNominalPower(_data.Thrust) * ItemManager.GameplaySettings.ThrustScale; public float Torque { get; } // This thruster's effect per unit throttle at the given thrust, in the body frame: xy is the push (x starboard, y diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index c92fdbf63..62fdb93bf 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -187,6 +187,11 @@ public class GameplaySettings public float ThermalQualityMin = 2; public float ThermalQualityMax = .25f; public float DefaultShutdownPerformance = .25f; + // Global flight tuning over every thruster's authored Thrust and every hull's authored Drag. Thrust is a tenth, the + // ratio gravity fell by in the honest-wells cut (aetheria-gravity:field-strength-ruled, 5 to 0.5 u/s^2): most ships + // cannot climb straight out of a well and use orbits instead; an overspecced hull still can. + public float ThrustScale = .1f; + public float DragScale = 1f; // Free-floating bodies (floating items, mines): drag on a launch velocity, drag on the force-driven drift, and // how strongly the zone force accelerates it. public float FloatingBodyDrag = .05f; diff --git a/Assets/Scripts/ServerShared/Ship.cs b/Assets/Scripts/ServerShared/Ship.cs index 4174aec90..e151ed3d7 100644 --- a/Assets/Scripts/ServerShared/Ship.cs +++ b/Assets/Scripts/ServerShared/Ship.cs @@ -166,7 +166,7 @@ public class Ship : Entity { var velocityMagnitude = length(Velocity); if(velocityMagnitude > .01f) - Velocity = normalize(Velocity) * decay(velocityMagnitude, HullData.Drag, delta); + Velocity = normalize(Velocity) * decay(velocityMagnitude, HullData.Drag * ItemManager.GameplaySettings.DragScale, delta); Position.xz += Velocity * delta;