From 706d5b2cdebb2b916451451dee7f27147f35296c Mon Sep 17 00:00:00 2001 From: Brian Fertig Date: Thu, 4 Sep 2025 16:05:10 -0600 Subject: [PATCH] ```git commit message Add tower range visualization with rotating line indicator and improve tile validation logic - Enhanced tower selection interface by adding a rotating green line that visualizes the tower's range - Updated range circle color from #c0b15c to #c009900 for better visibility - Modified tile validation logic to properly handle multiple child object types (Rectangle, Arc, Line) when checking placement validity - Improved code readability by using Array.includes() instead of multiple !== comparisons ``` --- src/support/interfaceManager.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/support/interfaceManager.js b/src/support/interfaceManager.js index 86336fe..319d8ff 100644 --- a/src/support/interfaceManager.js +++ b/src/support/interfaceManager.js @@ -365,11 +365,23 @@ export class InterfaceManager { const towerInteractive = this.scene.add.rectangle(0, 0, 200, 200, 0x000000, 0); this.selectedTower.add(towerInteractive); - const rangeCircle = this.scene.add.circle(0, 0, TOWERS_CONFIG[type].level1.range, 0xc0b15c, 0.2) + const rangeCircle = this.scene.add.circle(0, 0, TOWERS_CONFIG[type].level1.range, 0xc009900, 0.2) .setOrigin(0.5) .setScrollFactor(0); this.selectedTower.add(rangeCircle); + const centerToEdgeLine = this.scene.add.line(0, 0, 0, 0, TOWERS_CONFIG[type].level1.range, 0, 0x00ff00) + .setOrigin(0) + .setDepth(6); + this.selectedTower.add(centerToEdgeLine); + + this.scene.tweens.add({ + targets: centerToEdgeLine, + angle: 360, + duration: 8000, + repeat: -1 + }); + const towerBase = this.scene.add.sprite(0, 0, 'towers', 7) .setOrigin(0.5) .setScrollFactor(0) @@ -445,15 +457,14 @@ export class InterfaceManager { const tile = platformsLayer.getTileAt(tileX, tileY); if (tile) { this.selectedTower.iterate((child) => { - if (child.type !== 'Rectangle' && child.type !== 'Arc') { + if (!['Rectangle', 'Arc', 'Line'].includes(child.type)) { child.setTint(0x48ff00); } }); this.selectedTower.safe = true; } else { this.selectedTower.iterate((child) => { - if (child.type !== 'Rectangle' && child.type !== 'Arc') { - console.log(child.type); + if (!['Rectangle', 'Arc', 'Line'].includes(child.type)) { child.setTint(0xa32a00); } });