Command seam: the trio fixture waits for its contacts, and the lock pin for any launcher's lock
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
06435bdefa
commit
76e4e6f58f
2 changed files with 3 additions and 3 deletions
|
|
@ -21,7 +21,7 @@ public sealed partial class RunStartTests
|
|||
Ship third = null;
|
||||
var (arena, east, west) = SeamPair(false, (stage, e, w) =>
|
||||
third = stage.Place(EvLonginus(stage), float2(350, 0), facing: float2(-1, 0)) as Ship);
|
||||
for (var step = 0; step < 60; step++) arena.Update(SeamDt);
|
||||
for (var step = 0; step < 600 && !(east.VisibleEntities.Contains(west) && east.VisibleEntities.Contains(third)); step++) arena.Update(SeamDt);
|
||||
Assert.Contains(west, east.VisibleEntities);
|
||||
Assert.Contains(third, east.VisibleEntities);
|
||||
return (arena, east, west, third);
|
||||
|
|
|
|||
|
|
@ -319,8 +319,8 @@ public sealed partial class RunStartTests
|
|||
var locks = east.Weapons.OfType<LockWeapon>().ToArray();
|
||||
Assert.NotEmpty(locks);
|
||||
var step = 0;
|
||||
for (; step < 3000 && !(SeamState(agent) is CombatState && locks.All(l => l.IsLocked)); step++) arena.Update(SeamDt);
|
||||
Assert.True(locks.All(l => l.IsLocked), $"locked by step {step}: {string.Join(",", locks.Select(l => l.Lock))}");
|
||||
for (; step < 3000 && !(SeamState(agent) is CombatState && locks.Any(l => l.IsLocked)); step++) arena.Update(SeamDt);
|
||||
Assert.True(locks.Any(l => l.IsLocked), $"locked by step {step}: {string.Join(",", locks.Select(l => l.Lock))}");
|
||||
// The pair fights inside the launchers' minimum range: carry west out along east's aim, and let east's own update
|
||||
// (no pilot) see the new range.
|
||||
west.Position = east.Position + 600 * normalize(float3(east.Aim.x, 0, east.Aim.z));
|
||||
|
|
|
|||
Loading…
Reference in a new issue