v2.12.0 — runtime tower-defense en game3d
Release aditivo sobre 2.11.0 (bump minor, SPEC §7.0): el artefacto
tower-defense ya generado se vuelve jugable en game3d — simulación por ticks sin
azar, ganada y perdida en Node, con tablero 3D completo. La versión del protocolo
sigue en 0.1.
Added — runtime tower-defense en game3d
- Runtime
tower-defense(10º perfil jugable): el artefacto ya generado corre en
game3d sin tocar core ni datos — tablero 3D completo (rejilla 12×8, camino, torres
como cilindros por tipo, enemigos como esferas por blindaje), cursor con flechas,
construir con 1..N, vender con S (asellRatio), oleadas con Espacio, overlays de
victoria/derrota. El runtime exponestep()para pilotar ticks desde harnesses. - Lógica pura en
game3d-logic.mjs(tdPath/tdPos/tdInit/tdBuild/tdSell/
tdStartWave/tdTick, +11 chequeos ennpm testy CI): simulación por ticks sin
azar (spawns por count/gap, targeting al enemigo más avanzado en rango, daño por
DMG_CHART[dmgType][armor]). Partida ganada y perdida en Node: 4 rifles
centrales superan las 2 oleadas (15/15 abatidos, 0 fugas) y sin torres se pierde;
conservación verificada en cada tick (aparecidos = muertos + fugados + vivos);
venta afloor(cost·sellRatio); construir sobre el camino o sin oro →blocked. - Semántica del motor documentada (SPEC §8): el ejemplo no declara
MAPS, así que el
camino es una ruta en S fija sobre 12×8; 30 ticks ≈ 1 s (speed = celdas/s, rate =
disparos/s, gap en ticks); recompensa y luego interés al limpiar la oleada. - Verificado jugando en navegador: torres construidas con teclado real, intento
ilegal sobre el camino rechazado, 2 oleadas pilotandostep()hasta el overlay de
victoria (oro final 186, vidas 20/20).