Boss gate: TryWin is the one way to win; equal-gap tie-break and two exit pins tested

Win() becomes TryWin(), which checks RunGoal.ExitOpen itself; the call site no longer reads it.
Pins: first-of-equal-gaps, exit-zone-only, no ship hull on offer. Not yet built or run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-16 21:18:52 +02:00
commit dca660e448
3 changed files with 69 additions and 5 deletions

View file

@ -17,7 +17,9 @@ public static class RunGoal
zone.Galaxy?.Exit != null && zone.GalaxyZone == zone.Galaxy.Exit && zone.Pack.BossSpawned && !BossAlive(zone);
// Where the exit gate sits: at the adjacency wormholes' radius (the zone's radius times the ratio), in the middle of
// the widest angular gap between them, so it shares a point with none. A zone with no neighbours gets the +x axis.
// the widest angular gap between them, so it shares a point with none. Of exactly equal gaps the first in ascending angle
// wins (the <= below): placement is not saved, so this rule is what keeps the gate still between builds. A zone with no
// neighbours gets the +x axis.
public static float2 ExitGatePosition(Zone zone, float wormholeDistanceRatio)
{
var radius = zone.Pack.Radius * wormholeDistanceRatio;