From 63ba5e9fc00ef09041318dea7e5b2886b4ba1a82 Mon Sep 17 00:00:00 2001 From: Justin Oros Date: Wed, 20 May 2026 21:41:21 -0700 Subject: [PATCH] Hide directional arrow when NPC is on screen, show again when next NPC spawns off-screen --- game.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/game.js b/game.js index ff3cdfa..2e2ab50 100644 --- a/game.js +++ b/game.js @@ -443,10 +443,19 @@ class Game { this._updateDirArrow(near); } + _npcOnScreen() { + const {viewW, viewH} = this._getViewport(); + const dx = this.state.npcWorldX - this.state.worldX; + const dy = this.state.npcWorldY - this.state.worldY; + const screenX = viewW / 2 + dx; + const screenY = viewH / 2 + dy; + return screenX > -60 && screenX < viewW + 60 && screenY > -60 && screenY < viewH + 60; + } + _updateDirArrow(nearNPC) { const arrow = document.getElementById('map-dir-arrow'); if (!arrow) return; - if (nearNPC) { arrow.style.display = 'none'; arrow.style.animation = 'none'; return; } + if (nearNPC || this._npcOnScreen()) { arrow.style.display = 'none'; arrow.style.animation = 'none'; return; } const {viewW, viewH} = this._getViewport(); const dx = this.state.npcWorldX - this.state.worldX; const dy = this.state.npcWorldY - this.state.worldY;