PaintModeTests: the cloud fixture lives long enough that its fade does not move the zero cases, and the finished ping is read at its last radius

Opacity falls linearly over the cloud's lifetime and the receive leg takes a square root, so a thousand-second cloud turned an opaque leg's 3e-4 into a .004 credit. The finished ping's radius is 300 within float rounding, not above it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-11 15:25:08 +02:00
commit 34a9e72ce1

View file

@ -489,7 +489,7 @@ public sealed class PaintModeTests : IDisposable
var t = NewShip(float3(0, 0, 100));
var c = NewShip(float3(60, 0, 100), "Ear", a.Faction);
var at = leg == 1 ? float2(30, 100) : float2(0, 50);
_zone.Vent(new VapourCloud { Body = new KinematicBody { Position = at }, Radius = 10f, Opacity = leg == 2 ? .5f : 1f, Lifetime = 1000f });
_zone.Vent(new VapourCloud { Body = new KinematicBody { Position = at }, Radius = 10f, Opacity = leg == 2 ? .5f : 1f, Lifetime = 1e7f });
Settle();
SensorOf(a).Ping();
@ -556,7 +556,7 @@ public sealed class PaintModeTests : IDisposable
Settle();
SensorOf(a).Ping();
for (var tick = 1; tick <= 24; tick++) Tick(.1f);
Assert.True(SensorOf(a).PingRadius > 300f, "fixture: the ping has run its course");
Assert.True(SensorOf(a).PingRadius >= 299f, "fixture: the ping has run its course");
var arrival = NewShip(float3(0, 0, 100));
var painted = 0;