TRXTD/scripts
Tronax aa68343ac2
feat(balance): 30-wave campaign, 5 new enemy types, steeper per-wave scaling
The campaign was too easy: a handful of un-upgraded towers stopped
everything. This makes the game substantially harder across three axes.

Campaign extended from 20 to 30 hand-tuned waves (endless now starts at
31). Victory messages, HUD label (via store.totalWaves synced from
TOTAL_WAVES), start screen, lobby and README updated.

Five new enemy types debut in later waves, each with a hand-drawn
canvas look:
- Brute (wave 8): fast tank hybrid, 130 HP, 2 lives
- Phantom (wave 12): fast flyer with real HP, 2 lives
- Scorpion (wave 14): very fast ground, 2 lives
- Golem (wave 18): walking bunker, 560 HP, 3 lives
- Dragon (wave 22): flying boss, 950 HP, 3 lives, gets its own top
  boss health bar like the boss

Per-wave HP scaling steepened (1 + 0.16m + 0.025m², was 0.18m + 0.02m²):
wave 10 now ~4.6x (was 4.2x), wave 20 ~13.2x (was 11.6x), wave 30 ~29x.
Late waves mix the new types into heavy compositions; wave 30 is the
final wall (3 bosses, 2 dragons, 4 golems, 12 scorpions). Endless waves
scale all ten types with bosses every 5 and dragons from endless+2.

Balance validated with the headless greedy-bot simulation: the bot
(capped around tower level 5 on fixed spots) previously trivially won
the campaign and now dies at wave 29 — clearing wave 30 requires
evolved towers (level 6+), research bonuses and good placement. The
sim docs were updated to describe this new tuning philosophy.

New render smoke test (npm test): draws all ten enemy kinds through
the real renderer with a stub 2D context, two frames each with slow/
DoT/flash effects active, guarding every drawEnemy code path. 55 checks
green, build clean. Browser-verified: campaign starts and HUD shows
"Welle x/30".
2026-08-17 20:29:47 +02:00
..
generate-icons.mjs feat(pwa): installable app + fix research tree pip overflow 2026-08-17 14:53:58 +02:00
security-test.mjs feat(server): add security hardening for public hosting 2026-08-16 13:16:20 +02:00
sim.mts feat(balance): 30-wave campaign, 5 new enemy types, steeper per-wave scaling 2026-08-17 20:29:47 +02:00
test-auth.mjs feat(admin): live admin dashboard with solo presence tracking 2026-08-17 15:07:02 +02:00
test-db.mjs feat: account system, OIDC, meta-progression research tree, and automated tests 2026-08-16 16:22:38 +02:00
test-evolution.mts feat: add 9-level tower evolution system with distinct tier abilities 2026-08-16 13:54:09 +02:00
test-map-room.mjs feat: add multi-map system with 4 distinct biomes, layouts, and multiplayer sync 2026-08-16 15:03:34 +02:00
test-maps.mts feat: add multi-map system with 4 distinct biomes, layouts, and multiplayer sync 2026-08-16 15:03:34 +02:00
test-mp.mts feat: initialize TRXTD browser tower defense 2026-08-15 16:07:09 +02:00
test-obstacle.mts feat: initialize TRXTD browser tower defense 2026-08-15 16:07:09 +02:00
test-render-smoke.mts feat(balance): 30-wave campaign, 5 new enemy types, steeper per-wave scaling 2026-08-17 20:29:47 +02:00