Suppress compass nav chips during active combat

- While `this.combat.active` is true, call `compass.refresh([])` and
  return early so edge arrows and name boxes step aside.
- Combat chrome (threat markers, off-screen hostile arrows, kill feed)
  owns the screen edge while the player is shooting; nav chips would
  only compete with it.
- The target set is recomputed every frame, so nothing is lost — a
  mid-fight discovery still pings above, and the first non-combat frame
  re-feeds the compass entries.
This commit is contained in:
Brian Fertig 2026-09-16 20:19:47 -06:00
parent 78b280d7db
commit 9d86f5a481
1 changed files with 14 additions and 0 deletions

View File

@ -2495,6 +2495,20 @@ export class GameScene extends Phaser.Scene {
const cam = this.cameras.main;
const view = { left: cam.scrollX, top: cam.scrollY, w: this.scale.width, h: this.scale.height };
// COMBAT LIVE (a hostile up, or a wave run in flight —
// this.combat.active, the same predicate that raises the combat bar):
// the edge ARROWS and name BOXES yield to the fight — the combat
// chrome (threat markers, off-screen hostile arrows, the kill feed)
// owns the screen edge while the player is shooting, and the nav
// chips would only compete with it. refresh([]) retires the entries;
// the first non-combat frame re-feeds them — the target set is
// recomputed here every frame, so nothing is lost (a mid-fight
// discovery still pings above; only the compass display steps aside).
if (this.combat?.active) {
this.compass.refresh([], view, this.scale.width, this.scale.height, time, delta, this.ship);
return;
}
// The active route's NEXT STOP. In an intermediate system it is that
// system's jump gate toward the destination (routeNextGate); in the
// DESTINATION system it is the destination OBJECT itself (the last hop