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;