# 游戏设计说明书：魔法工匠 (Arcane Artificer)

## 1. 游戏概述 (Game Overview)

**《魔法工匠》** (暂定名) 是一款融合了 **Roguelite 割草动作** 与 **深度法术编程** 的快节奏射击游戏。

玩家扮演一名被困在异次元的“土豆工匠”，必须利用手中的核心（法杖）和收集到的法术芯片，组装出毁天灭地的魔法武器，抵御无穷无尽的怪物潮。

本游戏的核心差异点在于：**你捡到的不是武器，而是逻辑与弹头的碎片。你必须像程序员一样“编写”你的子弹。**

---

## 2. 核心体验与特色 (Core Experience)

### 2.1 "Noita" 遇上 "Brotato"
*   **快节奏战斗**：继承 Brotato 的短短波次（每波 60-90 秒），自动射击，高密度怪物，让玩家肾上腺素飙升。
*   **深深度构建**：继承 Noita 的法杖编辑深度。战斗之余的商店阶段，是冷静思考、调整“代码”的时间。

### 2.2 真正的模块化 (True Modularity)
不像传统游戏那样只是“加一个火属性配件”，本作允许玩家构建复杂的逻辑链。
*   *例如*：“当子弹击中墙壁时，生成一个炮台，炮台每秒发射三枚追踪冰弹。”

### 2.3 性能怪兽
得益于底层的 **ECS-Lite (Autoload Manager-based)** 和 **Spatial Grid** 技术，游戏支持同屏 **1000+** 敌人和 **2000+** 独立运算的弹幕，每一次爆炸都不仅是贴图，而是真实的物理/逻辑判定。

---

## 3. 武器系统详解：法术管道 (The Spell Pipeline)

这是游戏最核心的玩法。武器由 **“核心 (Core)”** 和 **“法术节点 (Spell Node)”** 组成。

### 3.1 核心 (The Core)
核心相当于“枪身”或“主板”。它决定了基础属性：
*   **插槽数 (Capacity)**: 能插多少个法术芯片。
*   **回蓝速度 (Mana Charge)**: 每秒恢复多少法力。
*   **最大魔力 (Mana Max)**: 蓝条上限。
*   **施法频率 (Cast Rate)**: 每秒执行多少次主循环。
    > **术语说明**：技术文档（`core_wand_design.md`、`numerical_design.md`）统一使用
    > **Cast Delay（施法后摇）** 表示同一概念的倒数形式（`cast_delay = 1 / cast_rate`）。
    > 设计文档（GDD）用 Cast Rate（"快慢"直觉更好）；实现层用 Cast Delay（"乘算系数"更方便计算）。
    > 两者映射关系：`base_cast_delay = 0.25s` → `cast_rate = 4 次/秒`（默认）。
*   **拓扑结构**: 所有的核心都有一个 Main 入口，但高级核心可能有额外的 "OnKill"（击杀时）或 "OnHit"（受击时）入口插槽。

### 3.1.A 多 Core 持有与激活规则 (Multi-Core Rules)

> 这是最基础的游戏规则，所有构建策略以此为前提。

*   **同时激活数量上限**: 玩家在战斗中**同时激活 1 个 Core**（激活的 Core 持续执行其主循环自动射击）。
*   **背包携带上限**: 背包最多同时持有 **3 个 Core**（含当前激活的 1 个）。超出时商店购买会提示选择丢弃或出售。
*   **切换时机**: 仅可在 **商店阶段（非战斗期间）** 切换激活的 Core；战斗中不可切换。
*   **插槽独立**: 每个 Core 的法术插槽互相独立，切换 Core 时旧 Core 插槽内容保留，不适配的卡移入等待区（规则见 §5.G5）。
*   **特殊机制 `dual_stream` Core**（史诗级 Feature Tag）: 此类 Core 自身内部拥有两条并行执行流（从头尾各执行一次），**并非同时激活两个 Core**，不突破"同时激活 1 个"的规则。
*   *设计意图*：限制同时激活数量避免 Brotato 式"堆满武器"的感官疲劳，同时背包存 3 个让玩家有转型预备的空间。

### 3.2 法术芯片 (Spell Chips)
法术分为四大类，通过排列组合产生无限可能。

#### A. 动作类 (Actions) - 实际产生的飞行物
*   **魔法弹 (Spark Bolt)**: 基础伤害，低蓝耗。
*   **黑洞 (Black Hole)**: 吸附敌人，无伤害。
*   **治疗雾 (Healing Mist)**: 范围回血。

#### B. 修正类 (Modifiers) - 改变下一个动作的属性
*   **伤害增强 (Damage+)**: 蓝耗+10，伤害+20。
*   **弹道折射 (Bounce)**: 子弹遇墙反弹。
*   **多重施法 (Multicast)**: 同时发射后面 2 个动作。
*   **甚至有“数学修正”**: 比如 `Sin(Time)` 让子弹走正弦波轨迹。

#### C. 触发器类 (Triggers) - 逻辑的传递
这是构建“子母弹”的关键。
*   **击中触发 (Trigger On Hit)**: 这个子弹本身伤害很低，但它击中敌人时，会以敌人为原点，**施放**这个芯片后面的法术。
*   **定时触发 (Timer)**: 子弹飞行 0.5秒 后，施放后面的法术。

#### D. 逻辑门类 (Logic Gates) - 自动化的灵魂
这是超越 Noita 的设计，让武器变智能。
*   **IF_HP_LOW**: 如果玩家血量 < 30%，执行后续法术，否则跳过。
*   **IF_ENEMY_CLOSE**: 如果 2米内 有敌人，执行后续法术。
*   **LOOP**: 循环执行后续 3 个法术 5 次（适合做激光加特林）。

### 3.3 扩展玩法设计 (Extended Gameplay Mechanics)

为了让构建过程不仅是“堆数值”，我们引入了三个深度维度：

#### A. 拓扑与空间构建 (Topology & Spatial Building)
核心（Core）不只是一个列表，而是一个**2D 电路板**。
*   **物理邻接 (Adjacency)**：每个插槽可能有特殊的加成方向。
    *   *示例*：一个“增压核心”中间有一个红色插槽，标明“右侧插槽获得双倍效果”。
*   **电路分流 (Circuit Splitting)**：电路板上可能有分支。
    *   *玩法*：使用 [分流器] 法术，将“电爆”效果只输送给上面的路线，将“冰冻”效果只输送给下面的路线。

#### B. 逻辑与自动化 (Logic & Automation)
引入变量寄存器，让法杖拥有简单的“图灵完备性”。
*   **Global Registers (全局寄存器)**：允许在这个核心内读写变量 `A`, `B`。
*   **构建示例 - "蓄力逻辑"**:
    *   `[Set A = A + 1]` -> `[IF A < 100 THEN END]` -> `[Set A = 0]` -> `[终极核弹]`
    *   *效果*：这个法杖平时只会空转（每帧 A+1），直到第 100 帧时，才会发射一枚核弹。相当于自动蓄力 1.6秒。
*   **玩家呈现策略（P5-C1）**：寄存器 `A/B` 的读写操作**不直接作为可购买法术卡暴露给普通玩家**。游戏将寄存器操作封装为具体功能的法术卡：
    *   「蓄力计数器」卡：内置完整的计数→阈值判断→重置→执行逻辑，卡面属性为"蓄力阶数 N"，玩家感知为"蓄力 N 次后释放一次"。
    *   「击杀连击」卡：内置 ON_KILL 计数→阈值→爆发→重置，玩家感知为"积累 5 击杀触发爆发"。
    *   「裸寄存器模式」仅通过 **Tier 3+ 的「DEBUG 核心」**解锁，作为面向硬核玩家的高阶自定义工具，不作为默认游戏体验推送。

#### C. 炼金共鸣 (Alchemical Resonance)
这是隐藏的合成系统。当某些特定属性的法术在执行链中直接相邻时，会发生**质变**。
*   `[水属性波]` + `[闪电链]` -> **自动合成** -> `[等离子风暴 (Plasma Storm)]`
    *   *效果*：原本是两个独立的法术，现在融合成了一个全新的强力法术，无需消耗额外的插槽。
*   这鼓励玩家去尝试各种元素的排列组合，寻找隐藏配方。
*   **触发范围权威规则**：绝大多数共鸣配方要求两张法术卡 **直接相邻**（`match: "adjacent"`）。
    少数传说级配方允许跨 Deck 任意位置触发（`match: "anywhere_in_deck"`），但此类配方
    在 `resonance_recipes.json` 中标注 `"rarity": 3`，且性能开销较高（O(N²) 全局扫描），
    数量会严格控制。详见 `architecture_design.md §3.4.C`。
*   **配方发现机制（P5-C2）**：共鸣配方默认隐藏。玩家**首次实际触发某配方**后，图鉴自动解锁并展示该配方的完整描述（触发效果、参与元素、法术 ID）。触发前，图鉴仅展示"某两种元素似乎能产生反应…"的模糊提示（仅显示参与元素的属性标签，不透露具体法术 ID），引导探索而非强制查询外部攻略。

### 3.4 构建示例 (Build Examples)

1.  **“霰弹枪”构建**:
    *   `[三双重施法]` -> `[扩散修正]` -> `[子弹]` -> `[子弹]` -> `[子弹]`
    *   *效果*：一次射出三发散开的子弹。

2.  **“运载核弹”构建**:
    *   `[定时触发(1s)]` -> `[速度为0修正]` -> `[伤害增强]` -> `[伤害增强]` -> `[巨型爆炸]`
    *   *效果*：射出一个普通子弹，1秒后在空中停滞，然后引发核爆。

3.  **“吸血炮台”构建**:
    *   `[击中触发]` -> `[召唤静止炮台]` -> `[炮台指令: 击中触发]` -> `[连锁闪电]` -> `[吸血修正]`
    *   *效果*：你射中地板，地板上长出一个炮台，炮台射出的闪电会连环电击敌人并把血吸给你。

---

## 4. 数值策划 (Numeric Planning)

为了支撑如此复杂的构建，数值系统必须严谨且具备极其宽广的边界。

### 4.1 核心资源：魔力 (Mana)

> **⚠️ 实现现状 (2026-07-20 审计 → MVP 已实现)**：Mana 精实 MVP 已落地——`PlayerStats` 蓝池（`mana`/`mana_max`/`mana_regen`）、`CoreDefinition.base_mana_max/regen`（cores.json）、每法术 `mana_cost`（numerical §2）、`SpellEvaluator` 逐节点扣蓝 + 蓝空停施、HUD 蓝条。**已补全**：递增蓝耗、`infinite_spells` 扣血、魔力虹吸（多来源）、HUD 打磨。**仍暂缺**：全局+法杖取 Min、cast_delay。详见 `docs_dev/specs/2026-07-20-mana-system-mvp-design.md`。

为了防止无限“加特林核弹”，限制资源是 **魔力**。
*   强力修正器（如伤害+100）会有巨大的 **Delay (施法后摇)** 和 **Mana Cost (蓝耗)**。
*   **平衡点**：高射速 = 低单发伤害；高爆发 = 便秘的手感（打一发回蓝3秒）。

### 4.2 伤害公式 (The Formula)

> 完整权威公式定义该文件 `docs/design/numerical_design.md §3.1`。

$$ FinalDamage = ((Base + \sum Mod_{flat}) \times \prod Mod_{mult}) \times (1 - Res) - Armor $$

*   **Base**: 法术动作的基础伤害 (e.g., 火球 10点)。
*   **Mod_flat**: 修正器的数值加成 (e.g., +5伤害)。
*   **Mod_mult**: 玩家天赋/暴击带来的百分比乘区 (e.g., 火焰伤害 +50%)。
*   **Res**: 敌人元素抗性 (0.0~1.0)。
*   **Armor**: 敌人护甲平铺扣除值（固定数值，不受百分比影响）。最终伤害最小为 1。

### 4.3 属性词条池 (Stats Pool) — *MVP 层*

> **⚠️ 实现现状 (2026-07-20 审计)**：下表 5 条 MVP 属性中**仅 CPU（`cpu_limit`）实现**——且因 `MAX_OPS` 硬编码不读 cpu_limit，连它也对施法预算无效（见架构文档 §3.4 现状注）。Cast Speed / Mana Leech / Accuracy / Attunement 均未实现。详见 [审计报告](../../docs_dev/doc_code_audit_2026-07-20.md)。

玩家在升级或商店中购买的属性，直接影响构建的上限。

> ⚠️ **MVP 说明**：以下 5 条属性为 MVP 阶段实现目标。后续扩充方向：
> 第二批（防御类）：护甲穿透、元素抗性降低、格挡概率。
> 第三批（资源类）：击杀回血（吸血）、金币掉落增益、法力吸取。
> 第四批（移动类）：冲刺距离、鬼影残影、落身位置标记。

| 属性名 | 影响 | 备注 |
| :--- | :--- | :--- |
| **施法速度 (Cast Speed)** | 减少每个法术块的执行时间 | 堆高了可以把“狙击枪”变成“冲锋枪” |
| **魔力虹吸 (Mana Leech)** | 击杀回复魔力 | 续航流派的核心 |
| **散射控制 (Accuracy)** | 减少弹道随机偏转角 | 修正“多重施法”带来的精准度惩罚 |
| **运算力 (CPU)** | 增加核心的插槽上限 | 决定了你能组多复杂的法术 |
| **元素精通 (Attunement)** | 增加特定元素（火/冰/电/毒）的触发概率和伤害 | 每点 Attunement 使对应元素伤害 +3% 且元素状态触发概率 +2%；详见 `numerical_design.md §1.1` |

### 4.4 怪物成长曲线
*   **波次 1-5**: 纯数值验证（血量低，无抗性）。
*   **波次 6-10**: 机制验证（出现 **反弹护盾怪**、**高护甲怪**）。这迫使玩家必须构建“穿透”或“元素伤害”来应对。
*   **波次 11-20**: 弹幕地狱。怪物的数量呈指数上升，考验玩家构建的 **AOE 覆盖率** 和 **FPS 优化**。

### 4.5 Boss 设计框架 (Boss Design)

Boss 出现于特定里程碑波次，强制验证玩家构建的适应性。

> **⚠️ 实现现状 (2026-07-20 审计)**：本节多为设计蓝图，代码差异较大。① **波次**：精英/Mini Boss 实际在 **W8**（非本节标题的 W10），最终 Boss 在 W20（`waves.json`）。② **阶段阈值**：代码统一用 **66%/33%**，非下方 JSON schema 的 50%/10%。③ **血量**：代码取 `balance.json` 的 450(mini)/1800(final)，与 `numerical_design §3.2` 的 50000 冲突（DPS 门槛测算已失真）。④ **未实现**：元素抗性 `(1-Res)`、镜像法师反射、重甲降甲、`regen_on_physical_hit` 虚空再生、NG+ Phase4——Boss 现状只是会在血线召唤 FAST 援军的厚血怪。详见 [审计报告](../../docs_dev/doc_code_audit_2026-07-20.md)。

#### W10 精英 Boss （第 10 波）
*   **功能**: 展示某一核心机制的利用方式。
*   **典型设计示例**:
    *   **镜像法师**: 反射所有正面 PHYSICAL 投射物，逼迫玩家必须配备至少一个元素伤害 ACTION 或使用 MODIFIER: pierce。
    *   **重甲领主**: 自身有层层叠加的护甲，每次受到指定元素伤害时降低一层，验证玩家 **Stacking** 构建的强度。

#### W20 最终 Boss（第 20 波）
*   **功能**: 综合检验所有核心玩法的适应性。
*   **阶段设计**:
    1.  **Phase 1** (全血): 高层抗性，对【共鸣效果】或特定元素伤害几乎无抵抗（正常受击）。纯物理构建并非硬性免疫，但每次物理命中触发 Boss 的"虚空再生"（每次物理命中恢复 `regen_on_physical_hit = 0.5%` 最大血量），形成动态 DPS 门槛——高 DPS 物理构建仍可磨血，但效率远不如元素/共鸣流，引导玩家主动考虑构建多样性。
    2.  **Phase 2** (50% 血量): 开始弹幕攻势，玩家必须在走位的同时输出足够 DPS。
    3.  **Phase 3** (杀死前): 爆发全屏投射物，考验玩家现有弹道规避构建的极限。
*   **设计原则**: Boss 无法被"无脑通关"（一种构建就能轻松将其秒杀）；每个阶段应着重考察一个核心机制。

#### Boss 行为数据格式 (Boss Behavior Schema — P5-E1)

Boss 阶段数据完全由 JSON 驱动（`res://resources/bosses/boss_XX.json`），关卡设计师无需改代码即可调整 Boss 行为：

```json
{
  "boss_id": "void_lord_w20",
  "display_name": "虚空领主",
  "wave": 20,
  "phases": [
    {
      "phase": 1,
      "hp_threshold_enter": 1.0,
      "hp_threshold_exit": 0.5,
      "resistances": { "PHYSICAL": 0.8, "FIRE": 0.1, "ICE": 0.1, "LIGHTNING": 0.1 },
      "regen_on_physical_hit": 0.005,
      "behavior_tags": ["stationary", "spread_projectiles"],
      "projectile_pattern": "spread_8"
    },
    {
      "phase": 2,
      "hp_threshold_enter": 0.5,
      "hp_threshold_exit": 0.1,
      "resistances": { "PHYSICAL": 0.3, "FIRE": 0.1, "ICE": 0.1, "LIGHTNING": 0.1 },
      "regen_on_physical_hit": 0.0,
      "behavior_tags": ["chase_player", "barrage_mode"],
      "barrage_interval": 3.0
    },
    {
      "phase": 3,
      "hp_threshold_enter": 0.1,
      "hp_threshold_exit": 0.0,
      "resistances": {},
      "behavior_tags": ["enrage", "fullscreen_burst"],
      "burst_interval": 5.0
    }
  ],
  "ng_plus_phase": {
    "phase": 4,
    "unlock_condition": "ng_plus",
    "hp_threshold_enter": 0.0,
    "hp_threshold_exit": -0.3,
    "note": "NG+ 专属第四阶段：Boss 在 0% HP 时触发'最后意志'，暂时无敌 5 秒，HP 回复至 30%，进入超狂暴状态",
    "resistances": { "PHYSICAL": 0.5 },
    "regen_on_physical_hit": 0.0,
    "behavior_tags": ["last_will", "hyper_enrage", "clone_summon"],
    "clone_count": 2,
    "invincible_duration": 5.0,
    "hp_restore_ratio": 0.3,
    "burst_interval": 2.0
  }
}
```

> **字段说明**：`resistances` 为各元素抗性（0.0 = 无抵抗，1.0 = 完全免疫）；`regen_on_physical_hit` 为每次物理命中触发的生命恢复比例（Phase 1 动态门槛的数据实现）；`behavior_tags` 驱动 `BossAI` 状态机的行为策略选择。`ng_plus_phase` 字段仅在 NG+ 模式下由 `BossAI` 读取——普通模式下此字段存在但不生效（`unlock_condition` 检查决定是否激活）。Phase 4 的 `hp_threshold_exit: -0.3` 表示 Boss 在"回复后血量"归零后才真正死亡，防止普通模式下意外触发。

---

## 5. 游戏循环 (Gameplay Loop)

1.  **准备 (The Lab)**:
    *   界面左侧是背包（存放法术卡），右侧是核心（插槽）。
    *   玩家将卡牌拖入插槽，点击”测试按钮”，在一个安全的靶场内测试射击效果，还有 DPS 统计面板。
    *   **防呆机制**：点击”进入战斗”时，系统先对 Deck 进行验证：若全部插槽均为空或仅含 MODIFIER/TRIGGER 而无任何 ACTION 类型法术，展示警告弹窗”法术塔无法开火！需要至少一个行动类法术。”并阻止进入。
    *   **深度玩法**：调整卡牌顺序，比如把 [伤害增强] 放在 [多重施法] 之前还是之后，效果截然不同。

2.  **战斗 (The Arena)**:
    *   倒计时 60 秒。
    *   玩家自动使用构建好的武器射击。
    *   主要操作：走位躲避弹幕，拾取掉落的”法力核心”（钱）。
    *   **走位-构建互动 (G4)**：部分法术对玩家的移动状态有响应，让走位不只是”跑步”：
        *   **移动增益型法术**（如”电冲弹”）：玩家处于运动状态时该法术伤害 ×1.5，静止时恢复基准值。
        *   **冲刺波（Dash Wave）型核心**：特定 Core 属性，玩家触发冲刺动作时自动在冲刺轨迹上释放一次附加法术（消耗独立冷却，不走主 Deck 队列）。
        *   **停步蓄力型法术**（如”引力奇点”）：玩家静止超过 1.5 秒时触发蓄力，停止移动后立即释放一次超载版本（DMG ×3）；一旦移动则蓄力清零。
            *   **UI 反馈**：静止后 0.3 秒开始显示蓄力进度环（天空蓝，展示 1.5 秒倒计时）；蓄力满时进度环闪烁并播放充能音效；移动就进度环消失。进度环由 `UIManager` 经 EventBus `CHARGE_STATE_CHANGED` 事件驱动，不得在 `SpellEvaluator` 中直接操作 UI 节点。
        *   *设计意图*：玩家可以通过选择法术类型来主动决定”走位风险收益比”，使操作与构建选择相互影响。
3.  **购物 (The Shop)**:
    *   战斗结束，进入商店。
    *   **货架 A**: 出售新的法术卡片（随机池）。
    *   **货架 B**: 出售新的”核心”（更牛的主板）。 ⚠️**未实现**（现状商店仅货架 A 法术抽取；货架 C 属性、出售退款 G5 亦未实现）
    *   **货架 C**: 基础属性提升（生命值、暴击率）。
    *   **出售与转型规则 (G5)**：
        *   玩家可在商店界面将背包中的法术卡**出售**，回收该卡购入价格的 **50%**（下限 10G）。
        *   更换 Core 时，原 Core 不适配的法术卡（插槽类型不匹配）将自动移入**等待区**（上限 5 张）；超出 5 张的部分，玩家必须手动选择出售或丢弃。
        *   等待区中的卡可在下次商店阶段重新插入新 Core，或继续出售。
        *   *设计意图*：转型有真实代价——金币折损 + 等待区占位；鼓励玩家谨慎决策而非随意重构。
    *   *经济策略*：是买一个强力的”黑洞”法术？还是把钱用来升级”回蓝速度”以支撑现有的构建？

## 6. 新手引导设计 (Onboarding)

Roguelite 的"第一把"体验至关重要。系统复杂度必须渐进式解锁，避免一次性呈现所有概念。

### 6.1 渐进式解锁顺序

| 第几局 | 开放内容 | 目的 |
| :--- | :--- | :--- |
| 局 1 | 预设法杖（只有 3 个 Spark Bolt），只教走位 | 零门槛上手，感受割草爽感 |
| 局 2 | 解锁"法杖编辑"，仅开放 Tier 1 法术 | 体验最简单的换弹 |
| 局 3 | 引入第一张 Modifier（伤害增强）+ Tooltip 教学 | 理解 Modifier 放在 Action 之前生效 |
| 局 4 | 引入第一张 Trigger（击中触发）+ 靶场演示 | 看到"子母弹"视觉效果 |
| 局 5+ | Tier 2 法术、Logic 类法术逐步开放 | 自由探索 |

### 6.2 情境提示 (Contextual Tips)
*   当玩家第一次持有 Trigger 但没有配套 Action 时，显示提示："触发器需要在其后面放置动作才能生效 →"。
*   当玩家 `cpu_limit` 占用超过 80% 时，运算力进度条变红并显示："运算力不足，法杖将无法完整执行"。
*   商店中首次出现特殊 Core（如 `matrix_board`）时，显示简短动画演示邻接加成效果。

### 6.3 靶场 (Training Range)
在**每次**进入商店阶段时，靶场始终可用：
*   右侧显示实时 DPS 数字。
*   点击"慢放"按钮，以 0.1x 速度演示法术链的执行顺序（调试教学用）。

---

## 7. 元进展设计 (Meta-Progression)

> **⚠️ 实现现状 (2026-07-21 → MVP 部分实现)**：**碎片 + 法术解锁树已落地**——`MetaProgress` autoload（`user://meta.json` 碎片+已解锁）、死亡按波次发碎片（`balance.json.aether_thresholds` 阈值表，平衡页签可调）、主菜单「🔓解锁」面板花碎片解锁进阶法术、商店池按 `spells.json` 的 `meta.unlock_cost` 门控。**暂缺**：核心解锁（依赖货架B）、挑战模式解锁、图鉴 Codex、成就/炼金日志、通关首胜奖励。详见 `docs_dev/specs/2026-07-21-meta-progression-mvp-design.md`。

元进展是 Roguelite 的长期粘性来源。玩家每次游玩都在为"总体库"做出贡献，即使失败也有收获感。

### 7.1 局外货币：以太碎片 (Aether Fragments)
*   **来源**: 每次游玩结束时，按波次数量奖励（W1=0, W5=3, W10=8, W20=20）。
*   **永久保留**，不随死亡重置。

### 7.2 局外解锁树 (Unlock Tree)
用以太碎片解锁**永久加入掉落池**的内容，不直接增强玩家数值：

| 花费 | 解锁内容 | 说明 |
| :--- | :--- | :--- |
| 5 碎片 | 法术：连锁闪电 | 加入商店掉落池 |
| 10 碎片 | 核心：构造板 (matrix_board) | 加入商店掉落池 |
| 15 碎片 | 法术：战术核弹 | 加入商店掉落池 |
| 30 碎片 | 核心：记忆法杖 (persistent_memory) | 加入商店掉落池 |
| 50 碎片 | 挑战模式：诅咒波次 | 解锁额外难度模式 |

### 7.3 图鉴系统 (Codex)
*   玩家每次拾取/购买新法术，自动解锁该法术的图鉴词条（含详细数值和设计意图）。
*   图鉴中显示**元素亲和性标签**，暗示可能的共鸣组合（如"此法术具有 💧 水属性亲和"）。
*   成就：首次触发每种元素反应，解锁对应的"炼金日志"风味文本。

### 7.4 设计原则
*   解锁内容**只扩展可能性**（让玩家看到更多法术），而非直接增强初始属性（避免 P2W 感）。
*   通过 20 局可解锁全部核心内容，给硬核玩家明确的完成感。

---

## 8. 失败、通关与里程碑 (Failure, Victory & Checkpoints)

### 8.1 死亡与失败机制 (G1)

*   **触发条件**：玩家 HP 降至 0 时死亡，当局立即结束。
*   **死亡流程**：
    1. 播放死亡动画与音效。
    2. 统计数据冻结（本局最高波次、总输出伤害、最高单次伤害、击杀总数）。
    3. 显示 **本局总结屏 (Run Summary)**，含构建快照（自动截图保存至 `user://runs/YYYY-MM-DD_run_N.png`）。
    4. 给予以太碎片奖励（按波次阶梯），不因死亡扣减。
*   **唯一例外**：天赋"最后意志 (Last Will)"——允许一次以 1 HP 存活，每局限触发一次，触发后天赋失效。
*   **死亡不回退**：已解锁法术图鉴词条、成就、Meta 解锁树进度，均在死亡后保留。

### 8.2 通关条件与通关后内容 (G2)

> **⚠️ 实现现状 (2026-07-20 审计)**：**通关流程整体未实现**。击败 W20 Boss 后照常结算进商店并继续 W21，无通关演出、无 `GAME_CLEARED` 事件、无 NG+ 解锁；游戏目前只能靠死亡结束。Endless 已实现但为**逐波 ×1.12 膨胀**（非"每 5 波 +10%"），且无 Boss Rush、无全局词条。EndlessRecords 本地排行榜（评分 + HMAC）已实现。详见 [审计报告](../../docs_dev/doc_code_audit_2026-07-20.md)。

*   **通关条件**：击败 W20 终波 Boss（三阶段精英怪），触发通关演出。
*   **首通奖励**：
    *   给予 30 以太碎片（固定）。
    *   解锁 **New Game+ (NG+)** 模式：全局敌人属性 ×1.5、弹幕速度 +30%、Boss 新增第四阶段。
*   **NG+ 递增**：每次 NG+ 通关再给予 20 碎片（递减 20%，下限 5）。
*   **无限模式 (Endless)**：W20 通关后可选择继续，每 5 波难度系数 +10%（无上限），用于挑战竞速排行榜，不计入 Meta 进度。
    *   **排行榜技术实现（P6-N19）**：以**到达波次 (Wave Reached)** 为主排名维度，同波次按**总经过时间 (Elapsed Seconds)** 升序排。
        - **本地存储**：`user://endless_records.json`，Schema：`{ "records": [{ "wave": int, "elapsed_sec": float, "build_snapshot": String, "timestamp": int }] }`，保留最近 20 条。
        - **在线排行榜（P2 可选）**：上传分数 = `wave * 100000 + (86400 - elapsed_sec)`，单整数实现双维度排序（波次高优先，同波次用剩余秒数打分）。
        - **防作弊**：本地记录含 `build_snapshot`（Deck checksum），便于审核异常成绩。
    *   **新机制注入 (G7)**：Endless 模式不只是纯数值膨胀，每 10 波（W30/W40/W50...）随机激活一条**全局词条**（每次 1 条，不与前轮叠加，仅保留最新一条）：

        | 词条 | 效果 |
        | :--- | :--- |
        | 镜子世界 | 所有弹道被首次命中后反弹回发射者方向 |
        | 怪物分裂 | 敌人死亡时以 50% HP 分裂为 2 个小型版本（仅分裂 1 次）|
        | 地图缩小 | 可活动区域半径减少 20%（最小 50% 原始大小）|
        | 魔力反转 | 法术 Delay 变为正向加成，原 Delay 越长攻速越快 |
        | 精英泛滥 | 所有普通敌人升级为精英，HP ×2、奖励 ×2 |

    *   每 20 波（W40/W60/W80...）触发 **Boss Rush 片段**：连续出现 3 个 Boss（随机抽取已出现过的 Boss 变体），全部击败后获得大量碎片与特殊法术卡（每次 Boss Rush 保证至少 1 张 Tier 3 卡）。

### 8.3 里程碑与 Checkpoint (G3)

> **⚠️ 实现现状 (2026-07-20 审计)**：本节里程碑体系（W5/W10/W15 奖励与练习模式解锁）**未实现**；练习模式、Boss Rush 均无代码。里程碑碎片依赖的元进展系统（以太碎片/解锁树/图鉴）也未落地。详见 [审计报告](../../docs_dev/doc_code_audit_2026-07-20.md)。

到达 **W5 / W10 / W15** 触发里程碑事件：

| 里程碑 | 即时奖励 | 解锁内容 |
| :--- | :--- | :--- |
| W5 | 以太碎片 ×2 | 解锁 W5 练习模式起点 |
| W8 | — | **Mini Boss 首现警告波**（非里程碑；仅首次到达时弹出提示，Boss 数据进入图鉴）|
| W10 | 以太碎片 ×3 | 解锁 W10 练习模式起点；W10 精英 Boss 激活 |
| W15 | 以太碎片 ×4 | 解锁 W15 练习模式起点 |

*   **里程碑碎片加成**缓解高波次死亡的挫败感（玩家不会"一无所获"）。
*   **练习模式 (Practice Mode)**：从任意已到达的里程碑波次开始，无限时间商店，不计入 Meta 进度也不消耗里程碑次数；用于测试新构建。

---

## 9. 总结
《魔法工匠》不只是一款“幸存者”游戏，它是一个**带有动作外壳的逻辑解谜游戏**。每一个通过第 20 波的玩家，都是一名合格的“魔法软件工程师”。
