Simplify NPC interaction to 300px radius
This commit is contained in:
@@ -430,7 +430,7 @@ class Game {
|
|||||||
const dx = this.state.npcWorldX - this.state.worldX;
|
const dx = this.state.npcWorldX - this.state.worldX;
|
||||||
const dy = this.state.npcWorldY - this.state.worldY;
|
const dy = this.state.npcWorldY - this.state.worldY;
|
||||||
const dist = Math.sqrt(dx * dx + dy * dy);
|
const dist = Math.sqrt(dx * dx + dy * dy);
|
||||||
const near = !(this.state.npcWorldX === 0 && this.state.npcWorldY === 0) && dist < 200;
|
const near = !(this.state.npcWorldX === 0 && this.state.npcWorldY === 0) && dist < 300;
|
||||||
|
|
||||||
const hint = document.getElementById('map-talk-hint');
|
const hint = document.getElementById('map-talk-hint');
|
||||||
const bub = document.getElementById('npc-bubble');
|
const bub = document.getElementById('npc-bubble');
|
||||||
@@ -443,19 +443,10 @@ class Game {
|
|||||||
this._updateDirArrow(near);
|
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) {
|
_updateDirArrow(nearNPC) {
|
||||||
const arrow = document.getElementById('map-dir-arrow');
|
const arrow = document.getElementById('map-dir-arrow');
|
||||||
if (!arrow) return;
|
if (!arrow) return;
|
||||||
if (nearNPC || this._npcOnScreen()) { arrow.style.display = 'none'; arrow.style.animation = 'none'; return; }
|
if (nearNPC) { arrow.style.display = 'none'; arrow.style.animation = 'none'; return; }
|
||||||
const {viewW, viewH} = this._getViewport();
|
const {viewW, viewH} = this._getViewport();
|
||||||
const dx = this.state.npcWorldX - this.state.worldX;
|
const dx = this.state.npcWorldX - this.state.worldX;
|
||||||
const dy = this.state.npcWorldY - this.state.worldY;
|
const dy = this.state.npcWorldY - this.state.worldY;
|
||||||
@@ -492,7 +483,7 @@ class Game {
|
|||||||
if (this.state.npcWorldX === 0 && this.state.npcWorldY === 0) return false;
|
if (this.state.npcWorldX === 0 && this.state.npcWorldY === 0) return false;
|
||||||
const dx = this.state.npcWorldX - this.state.worldX;
|
const dx = this.state.npcWorldX - this.state.worldX;
|
||||||
const dy = this.state.npcWorldY - this.state.worldY;
|
const dy = this.state.npcWorldY - this.state.worldY;
|
||||||
return Math.sqrt(dx * dx + dy * dy) < 200;
|
return Math.sqrt(dx * dx + dy * dy) < 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
_talkToNPC() {
|
_talkToNPC() {
|
||||||
|
|||||||
Reference in New Issue
Block a user