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:
parent
da6fe0334e
commit
dca660e448
3 changed files with 69 additions and 5 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue