Fire control Cut 6c.1/6c.2: Resolution becomes reciprocal, targeting degrades instead of throwing
6c.1 (operator ruling 2026-09-19): Resolution stays a benefit -- higher is better -- so HitProbability derives its sensor ceiling as the reciprocal of Resolution instead of reading Resolution as the ceiling directly. The authored 1-cell/2-cell targeting systems' Resolution values move to the new scale in the next (data) commit. 6c.2: LoadoutGenerator.FillInterior no longer throws InvalidLoadoutException when no targeting-system product is available to a galaxy -- it degrades to no targeting system and logs the gap, safe only because Cut 5.1 already gave unaided fire a floor (GameplaySettings.UnaidedTracking). Adds FireControlCut6cTests.cs pinning both: HigherResolutionYieldsHigherOrEqualHitProbability (dies if Resolution is read as the ceiling directly) and NoSellerDegradesToUnaidedInsteadOfThrowing (dies if the throw is restored). dotnet test tests/Aetheria.Shared.Tests: 210 passed, 0 failed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
063804801f
commit
29fcc3ee9e
4 changed files with 313 additions and 10 deletions
|
|
@ -22,7 +22,10 @@ public class TargetingSystemData : BehaviorData
|
|||
|
||||
// The info level (see Entity.EntityInfoGathered) at which sensor state stops limiting hits. Below the
|
||||
// system's own resolution, an otherwise-earned hit still degrades on account of thin sensor data;
|
||||
// consumed by Cut 3's roll.
|
||||
// consumed by Cut 3's roll. Higher is better, same as every other stat here: Cut 6c.1 (operator ruling
|
||||
// 2026-09-19) has FireControl.HitProbability take Resolution's reciprocal to derive the actual info
|
||||
// ceiling (ceiling = detection + (1 - detection) / Resolution), so authoring a bigger number buys a lower
|
||||
// ceiling -- less info needed -- rather than the field's own value being read as the ceiling directly.
|
||||
[Inspectable, JsonProperty("resolution"), Key(2), RuntimeInspectable]
|
||||
public PerformanceStat Resolution = new PerformanceStat();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue