diff options
Diffstat (limited to 'html/tower/js/renderer.js')
-rw-r--r-- | html/tower/js/renderer.js | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/html/tower/js/renderer.js b/html/tower/js/renderer.js index cd2d11d..9bebe0b 100644 --- a/html/tower/js/renderer.js +++ b/html/tower/js/renderer.js @@ -114,7 +114,7 @@ function renderTowers(ctx, towers) { towers.forEach(tower => { const healthPercent = tower.currentHealth / tower.maxHealth; - // Draw tower body with opacity based on health + // Draw tower body ctx.fillStyle = tower.color + Math.floor(healthPercent * 255).toString(16).padStart(2, '0'); ctx.fillRect( tower.position.x * cellSize + cellSize * 0.1, @@ -123,6 +123,16 @@ function renderTowers(ctx, towers) { cellSize * 0.8 ); + // Draw ammo count + ctx.fillStyle = 'white'; + ctx.font = '12px Arial'; + ctx.textAlign = 'center'; + ctx.fillText( + tower.ammo, + (tower.position.x + 0.5) * cellSize, + (tower.position.y + 0.7) * cellSize + ); + // Draw range indicator if (gameState.phase === GamePhase.PLACEMENT) { ctx.beginPath(); @@ -277,4 +287,30 @@ function renderProjectiles(ctx, projectiles) { ctx.fill(); } }); +} + +// Update level complete message in game.js +function handleLevelComplete() { + gameState.phase = GamePhase.TRANSITION; + + // Calculate ammo bonus + let ammoBonus = 0; + gameState.towers.forEach(tower => { + ammoBonus += tower.ammo * 2; + }); + + const message = ` + Level ${gameState.level} Complete! + Current Money: $${gameState.currency} + Ammo Bonus: +$${ammoBonus} + Level Bonus: +$10 + + Ready for Level ${gameState.level + 1}? + `; + + setTimeout(() => { + if (confirm(message)) { + startNextLevel(); + } + }, 100); } \ No newline at end of file |