# Design · Tower Wave

## 为什么选 wave defense 这种 loop

- 这是 513 系列**第一个 wave-based 循环**
- 已有 loop：60s 刷分、累计挑战、距离推进、关卡通关、累计合成、累计堆叠 — 全没用 wave
- wave-based 是塔防品类的天然 loop，市场长期验证（Bloons TD / Plants vs Zombies / Kingdom Rush）
- 加 wave + 资源管理 + 决策 = 自带轻策略，比 hypercasual 深度高一档

## 为什么 input 选「点击节点放置/升级」

- 预设节点限制位置 → 简化设计（不做拖拽建造）
- 点击同节点会切换"放置"或"升级"面板 → 自然交互
- 与 01/02/07/12/11 的"点击物体/按钮/格子"input 都不同方式（节点点击是地图坐标点击 + 上下文菜单）

## 数值设计

### 经济曲线
- 初始 100 G → 第 1 波只能建 2-3 塔
- 每波结算 +20 G、杀敌按敌种 +金币（5/14/4/60）
- 升级成本递增（30/40/55），鼓励"广建 vs 深升"权衡

### 敌人数值
- 步兵：基础敌
- 快兵：考验玩家是否有减速塔
- 坦克：考验玩家是否有范围 / 高伤害单体
- BOSS：每 5 波 1 个（第 5、第 10 波），考验玩家总体战力

### 波次设计
| 波 | 组成 | 难度 |
|---|---|---|
| 1 | 步×8 | 极易 |
| 2 | 步×10 + 快×3 | 易 |
| 3 | 步×12 + 快×4 + 坦×2 | 中 |
| 5 | BOSS×1 + 步×11 | 中高 |
| 10 | BOSS×1 + 步×16 | 高 |

## 路径设计

- 贝塞尔曲线 6 个控制点（左下到右上盘旋）
- 200 段折线近似，玩家觉得是"曲线"而不是"折线"
- 起点（绿色）在左下，终点（红色 BASE）在右上

## 节点设计

- 9 个固定节点，分布在路径两侧
- 节点距路径 30-80 px，保证塔有效射程
- 几何分布：不让 3+ 塔扎堆覆盖同一段路径

## 视觉哲学

- 路径用半透明 + dashed line 风格，不抢戏
- 塔用圆 + 类型首字（弹/范/减），3 级用 3 个金色点表示
- 敌人用色 + HP 条
- 减速时敌人边缘紫色高亮
- 击中粒子 4-12 个，按塔类型

## 性能预算

- 50 敌 × 9 塔 = 450 距离判断 / 帧（瓶颈但可承受）
- 100 子弹 + 200 粒子上限实际不会到（自然消亡）
- 60fps 稳定

## 数据结构

```
tower = { nodeIdx, x, y, type, lv, cd }
enemy = { type, t, hp, maxHp, slowTimer, slowFactor }
bullet = { x, y, tx, ty, target, type, lv, color, speed, life }
particle = { x, y, vx, vy, life, color }
```

## 失败设计：HP 归零

- 511 用过（core-harvest 基地被破坏），但 513 系列首次"HP 归零"机制
- 与 09 容器溢出（位置）、11 偏离归零（空间） 都不同：13 是数值耗尽
- HP = 10 是平衡点：玩家可漏 ~7 个步兵或 ~1 个 BOSS

## 已知边界
- 路径固定单条（避免复杂寻路）
- 塔位固定 9 个（避免拖拽建造的位置冲突）
- 没做敌人血条飘字（保持画面清爽）
- 没接 BGM（acceleration_rules 不强求）
