save
This commit is contained in:
+168
-169
@@ -1,209 +1,208 @@
|
||||
# 05 · 新 RPG《剑与声》完整设计(rpg / Sword & Sound)
|
||||
# 05 · 《剑与声》完整设计(26 号对齐)
|
||||
|
||||
> **给开发者的实现要点摘要**
|
||||
> 1. 纯音频回合制 RPG:节点式场景图(不是网格),左右滑=切换选项、单击=确认/前进、双击=重听、上滑=角色状态、下滑=菜单。回合制战斗:左右滑选指令、单击执行;敌方攻击有 1s 前摇音,前摇内**双击=格挡**(减伤 70%)——这是唯一的即时操作,绑双击规避 tap 延迟。
|
||||
> 2. 规模按"一轮开发(R5)可完成"控制:3 章、每章 6-8 个场景节点、共 8 种敌人 + 3 个 Boss、装备 6 件、数值一套线性公式。复杂度对标 escape(单文件 game.js + ~120 条语音 ×2 音色)。
|
||||
> 3. 进度存服务器:存档 JSON 结构见 §7,在场景切换、战斗结束、商店交易后自动保存。
|
||||
> 4. 第一章《迷雾林》内容全部给出(§5):8 场景、敌人表、对白功能大纲。第二、三章只给结构骨架与 Boss 设定,正文沿用第一章模式由开发 agent 扩写。
|
||||
> 5. 语音全部整句(禁止数字拼接):血量/等级/金币的播报用分段整句("毫发无损/受了轻伤/伤势很重/命悬一线"),数值细节进上滑状态播报的档位句。
|
||||
>
|
||||
> **R2 增补**:施工级文档已就位,以这两份为准——
|
||||
> - [05-rpg-chapter1.md](05-rpg-chapter1.md):第一章场景图 JSON、战斗状态机转换表、全数值表、存档字段定义、BGM/sfx 资产清单(含 Mureka/SA3 prompt 草稿)。
|
||||
> - [05-rpg-ch1-voice-ids.md](05-rpg-ch1-voice-ids.md):第一章 120 句台词表(旁白 104×2 性别 + NPC 16 单音色)。
|
||||
> 本文 §7 的存档结构、§9 的资产数量为设计初稿,若与施工稿不一致,**以 05-rpg-chapter1.md 为准**(主要差异:存档 data 为服务器自由格式 + 必带 `summary` 字段;语音总量 104×2+16)。
|
||||
> 1. **交互权威**:26 号手册。施工数据以 [05-rpg-chapter1.md](05-rpg-chapter1.md) 的场景图 JSON、数值、存档为准。语音表 [05-rpg-ch1-voice-ids.md](05-rpg-ch1-voice-ids.md) 不在本次改写。
|
||||
> 2. **探索**:左右滑切换选项、单击确认。上滑=我在哪/状态(阶段 1)。新手期无双击。菜单与探索同构(阶段 2)。
|
||||
> 3. **格挡禁止绑新手双击。** 敌方前摇窗口内:**再单击**挡住(只教这一个)。窗口内朝攻击方向滑也算格挡(空间冗余,不单独开课)。无声敌人:系统 danger earcon + 回执仍出声;**防御指令**始终可用(减伤 50%,不看时机)。iOS 无震动时格挡与防御照常可完成。
|
||||
> 4. 第一句就让玩家滑选项或点一下;第一次成功 ≤10s。回执 ≤100ms。玩家回合 = `YOUR_TURN`;前摇窗口 = `ACTION`。
|
||||
> 5. 规模不变:3 章、第一章 8 场景、8 种敌人 + 3 Boss、装备 6、线性公式。战败章首重生(等级金币保留)。
|
||||
|
||||
---
|
||||
|
||||
## 1. 游戏定位与核心循环
|
||||
## 0. 设计单(26 号附录 C)
|
||||
|
||||
- **题材**:武侠/奇幻。玩家是"盲剑客"沈听澜——眼盲,耳即眼。题材与纯音频玩法互为叙事 justification,敌人方位、招式前摇全部天然用声音呈现。
|
||||
- **单局时长**:一章 15-25 分钟;全三章 60-80 分钟。死亡从章首重生(背包/等级保留),鼓励反复推图。
|
||||
- **核心循环**:探索场景 → 听环境音与描述 → 选择行动(前进/调查/战斗/商店/休息)→ 回合制战斗(格挡是技巧点)→ 获得经验金币 → 升级换装备 → 打 Boss → 下一章。
|
||||
### 0.1 一句话核心动作
|
||||
|
||||
## 2. 手势映射(符合全局默认,无需豁免)
|
||||
**听选项,左右滑挑选,单击去做;战斗里听前摇,再点一下挡住。**
|
||||
|
||||
### 2.1 探索态
|
||||
### 0.2 玩家可感知的状态(3 个)
|
||||
|
||||
| 手势 | 作用 |
|
||||
|---|---|
|
||||
| 左/右滑 | 在当前场景的选项间切换(每切换播选项名 + SWIPE_OK 震动)。选项循环 |
|
||||
| 单击 | 确认执行当前选项(CONFIRM 震动) |
|
||||
| 双击 | 重听当前场景描述 + 环境音(重听是探索游戏的生命线) |
|
||||
| 上滑 | 角色状态播报(等级档位、血量档位、金币档位、装备名,全整句) |
|
||||
| 下滑 | 菜单:继续 / 保存并回大厅 / 重听帮助 |
|
||||
|
||||
### 2.2 战斗态
|
||||
|
||||
| 手势 | 作用 |
|
||||
|---|---|
|
||||
| 左/右滑 | 切换指令:攻击 → 技能(破空斩,耗内劲)→ 防御(本回合受伤减半)→ 道具(金疮药,回 40% HP)→ 循环 |
|
||||
| 单击 | 执行当前指令 |
|
||||
| **双击** | **格挡**:仅在敌方攻击前摇音播放的 1.0s 窗口内有效,成功减伤 70% 并播格挡音;窗口外双击无效(ERROR 震动) |
|
||||
| 上滑 | 战场状态(己方血量档位 + 敌方血量档位) |
|
||||
| 下滑 | 尝试逃跑(Boss 战无效,播"避无可避") |
|
||||
|
||||
格挡窗口的 300ms tap 延迟问题不存在——格挡绑双击(即时回调),这是全局规范"即时反馈绑滑动/双击"的应用。
|
||||
|
||||
## 3. 数值框架(简单可平衡)
|
||||
|
||||
### 3.1 玩家
|
||||
|
||||
```
|
||||
等级 lv: 1..10
|
||||
maxHp = 20 + 8*(lv-1) // lv1=28? 不——lv1=20, lv10=92
|
||||
atk = 5 + 2*(lv-1) + 武器atk // lv1 裸装=5
|
||||
def = 护甲def
|
||||
内劲 mp = 3 + lv // 破空斩耗 3,伤害 = atk*2
|
||||
升级所需 exp = lv * 20 // lv1→2 需 20,lv9→10 需 180;全三章总 exp ≈ 900
|
||||
```
|
||||
|
||||
伤害公式:`dmg = max(1, round((攻方atk - 守方def) * (0.85 ~ 1.15 随机)))`
|
||||
格挡:`dmg = max(0, round(dmg * 0.3))`;防御指令:`dmg = round(dmg * 0.5)`(与格挡不叠加)。
|
||||
|
||||
### 3.2 敌人表(三章通用模板 + 第一章实例)
|
||||
|
||||
| 敌人 | 章 | HP | ATK | DEF | EXP | 金币 | 前摇音特征 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 野狼 | 1 | 10 | 4 | 0 | 8 | 5 | 扑击前低吼 |
|
||||
| 山贼 | 1 | 16 | 6 | 1 | 12 | 12 | 挥刀前的脚步 |
|
||||
| 毒蛛 | 1 | 12 | 7 | 0 | 12 | 8 | 肢节摩擦(高频) |
|
||||
| 精英·寨丁头目 | 1 | 24 | 8 | 2 | 20 | 25 | 重甲碰撞 |
|
||||
| **Boss 黑风寨主** | 1 | 45 | 10 | 2 | 50 | 100 | 双刀互击(两下金属声) |
|
||||
| 沼泽鳄 / 蛊师 / … | 2 | 按 lv4-6 玩家数值 +30% 调 | | | 18-30 | | |
|
||||
| **Boss 腐沼祭主** | 2 | 70 | 14 | 3 | 90 | 200 | 吟唱(人声哼鸣) |
|
||||
| 剑傀 / 影卫 / … | 3 | 按 lv7-9 玩家数值 +30% 调 | | | 35-50 | | |
|
||||
| **Boss 盲剑宿敌·白无瞳** | 3 | 110 | 18 | 5 | 150 | 500 | 无声!前摇是"寂静"(特殊机制:格挡窗口用震动 DANGER 提示,教学点在 Boss 战开场由旁白讲明) |
|
||||
|
||||
第三章 Boss"无声前摇"是全游戏叙事+玩法高潮:耳朵最强的剑客遇到没有声音的敌人,格挡提示从听觉转触觉——呼应全局震动语言。
|
||||
|
||||
### 3.3 装备与道具
|
||||
|
||||
| 物品 | 类型 | 效果 | 价格 |
|
||||
| 状态 | Floor | 听感 | 第一次教 |
|
||||
|---|---|---|---|
|
||||
| 铁剑 | 武器 | atk+3 | 100(一章商店) |
|
||||
| 青钢剑 | 武器 | atk+6 | 300(二章商店) |
|
||||
| 听风剑 | 武器 | atk+9,格挡窗口 +0.3s | 600(三章商店,特色装) |
|
||||
| 皮甲 | 护甲 | def+2 | 80 |
|
||||
| 铁鳞甲 | 护甲 | def+4 | 250 |
|
||||
| 金疮药 | 道具 | 回复 40% maxHp | 30,可叠 5 瓶 |
|
||||
| 探索 / 选指令 | `YOUR_TURN` | `bgm/explore` 或 `village` + amb;指令名循环即「轮到你」;可加等待声 | 「左右滑,点一下。」 |
|
||||
| 旁白 / NPC | `SPEAKING` | 语音;整链 duck | 开场 |
|
||||
| 前摇窗口 / 危险 | `ACTION` | 有声:`tel_*`;无声:`danger` earcon(系统音,不是敌人叫声) | 「听到这个,点一下挡住。」 |
|
||||
|
||||
平衡校验:lv3 玩家(atk≈9+3=12 铁剑)打野狼 dmg≈11-13 → 一刀秒;打山贼 2 刀;Boss 黑风寨主 45HP 需 ~5 刀,Boss dmg 对皮甲玩家 ≈ 8-10/刀,玩家 36HP 可吃 4 刀,格挡成功只吃 2-3 → 不格挡会死、会格挡能过,技巧有真实收益。
|
||||
战斗 BGM、Boss BGM 是宏观层,新手期不单开第 4 种「必须记住的状态课」。
|
||||
|
||||
## 4. 场景与探索结构
|
||||
### 0.3 新手手势与解锁
|
||||
|
||||
- 每章 = **有向节点图**(非网格):节点 = 场景,边 = 选项。探索时当前场景播环境音循环底(长底噪用 bgm 层 loop、低音量)+ 首次进入播描述语音。
|
||||
- 每章结构:`起点(教学/商店) → 主线节点 ×4~5 → Boss`,其中 2 个节点带岔路(一条主线、一条奖励支线:宝箱/支线 NPC/休息点)。
|
||||
- 战斗触发:进入战斗节点即触发(暗雷不做了——纯音频里"突然遇敌"没有视觉游戏的信息缓冲,全部明雷:场景描述里明说"有杀气")。
|
||||
- 场景环境音要求:每场景一个专属 amb 循环(同 escape 重设计的做法,Stable Audio 3 生成)。
|
||||
| 手势 | 探索 | 战斗选指令 | 前摇 ACTION | 解锁 |
|
||||
|---|---|---|---|---|
|
||||
| 左 / 右滑 | 切选项 | 切指令 | **朝来招方向滑=格挡**(不教,做对算成功) | 阶段 0 |
|
||||
| 单击 | 确认 | 执行指令 | **格挡**(唯一教学手势) | 阶段 0 |
|
||||
| 上滑 | 状态(位置/目标/HP 档) | 战场状态 | `invalid`(窗口内只认格挡) | 阶段 1 |
|
||||
| 下滑 | 菜单(阶段 2) | 逃跑 | `invalid` | 阶段 2;战斗始终=逃跑不是菜单 |
|
||||
| 双击 | 当单击 | 当单击 | 当单击(可格挡,因当单击) | 阶段 3 才识别为重听场景句 |
|
||||
| 长按 | 旁白加速(探索不占帮助) | 加速 | 不占用格挡 | 默认加速;格挡不绑长按 |
|
||||
|
||||
## 5. 第一章《迷雾林》详细内容
|
||||
### 0.4 状态 × 手势矩阵(新手期)
|
||||
|
||||
### 5.1 场景列表(8 节点)
|
||||
| 状态 \ 手势 | 单击 | 左右滑 | 上滑 | 下滑(未解锁) | 双击 | 连点 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| SPEAKING | 跳句 + `ok` | 打断并切选项/指令 | 打断,状态句 | `invalid`+解释 | 当单击 | 400ms `busy` |
|
||||
| 探索 YOUR_TURN | 执行选项 | 切选项+报名 | 状态 | `invalid` | 当单击 | `busy` |
|
||||
| 商店 / 菜单 | 购买/确认 | 切项 | 重听说明 | — | 当单击 | `busy` |
|
||||
| PLAYER_SELECT | 执行指令 | 切指令+报名 | 战场状态 | 逃跑检定 | 当单击 | `busy` |
|
||||
| ENEMY_TELEGRAPH ACTION | 格挡 | 朝来招方向=格挡;反方向=`invalid` | `invalid`+首次「现在点一下挡住。」 | `invalid` | 当单击→格挡 | 第一下格挡,其余 `busy` |
|
||||
| 结算 / 战败旁白 | 继续 | `invalid` | 状态 | 菜单若已解锁 | 当单击 | `busy` |
|
||||
|
||||
| # | 场景 id | 名称 | 环境音 | 选项 | 说明 |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | `village` | 雾口村 | 篝火+人语 | 前进 / 商店 / 休息(回满 HP) / 状态 | 起点兼教学关;商店卖铁剑/皮甲/金疮药 |
|
||||
| 2 | `path` | 林间小路 | 风+落叶 | 前进 / 调查(找到 15 金币) | 教学:双击重听、上滑状态 |
|
||||
| 3 | `fork` | 岔路口 | 风分两路(立体声) | 左(宝箱:金疮药×2) / 右(主线) | 教学:左右滑选择 |
|
||||
| 4 | `stream` | 溪流 | 流水 | 饮水(回满) / 前进 | 回复点;此处触发教学战:野狼×1(教学格挡,必不死) |
|
||||
| 5 | `hunter` | 老猎人小屋 | 柴火+磨刀 | 对话(支线:获金疮药×1+铁剑九折) / 前进 | NPC 角色音首登场 |
|
||||
| 6 | `deepwood` | 密林深处 | 虫鸣+远处狼嚎 | 前进(遭遇山贼×2 连战) | 本章难度峰值前 |
|
||||
| 7 | `gate` | 黑风寨门前 | 火把+人声嘈杂 | 强攻(战寨丁头目) / 绕行(多打一场但 Boss 战前满状态) | 战术选择 |
|
||||
| 8 | `boss1` | 聚义厅 | 大厅混响+火盆 | Boss 黑风寨主 | 章 Boss;胜利→第二章解锁 |
|
||||
### 0.5 等待点
|
||||
|
||||
### 5.2 教学编排(探索与战斗各自交互式)
|
||||
| id | 期待 | `_full` | `_short` | 静默 | L2 | L3 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `village_opt` | 左右或单击 | 「左右滑,选。单击,去做。」 | 「滑一下。」 | 18s | 左右滑 | 替玩家切到「前进」 |
|
||||
| `shop_buy` | 单击 | 「单击,买下。」 | 「单击。」 | 12s | 单击 | — |
|
||||
| `tut_b0` | 左右滑 ≥1 | 「滑一滑,听招式名。」 | 「滑一下。」 | 8s | 左右 | 游戏切一次指令 |
|
||||
| `tut_atk` | 单击攻击 | 「选攻击,单击。」 | 「单击。」 | 8s | 单击 | 代打一刀 |
|
||||
| `tut_parry` | 前摇内单击 | 「听到低吼,点一下挡住。」 | 「点一下。」 | 窗结束=失败通过 | 单击 | 演示格挡 |
|
||||
| `tut_def` | 选防御并单击 | 「选防御,单击。」 | 「选防御。」 | 8s | 防御 | 代选防御 |
|
||||
| `player_turn` | 单击或滑 | (指令名刚播过) | 「单击出手。」 | 8s | — | — |
|
||||
|
||||
- 场景 1:旁白教"左右滑选、单击确认",让玩家亲手在商店完成一次"听价→选→买"(给 50 金币启动金)。
|
||||
- 场景 3:教左右滑选择岔路 + 双击重听。
|
||||
- 场景 4 教学战(野狼,HP 锁 1 不死保护):旁白分步——"它要扑了,听前摇!"→ 低吼响起 → "双击格挡!"→ 成功/失败都继续(失败只掉 1 血),然后教"左右滑选攻击,单击出剑"。玩家亲手砍出第一刀后教学结束。
|
||||
- 之后不再教学,上滑随时可重听帮助。
|
||||
### 0.6 首 3 分钟逐秒脚本
|
||||
|
||||
### 5.3 对白大纲(每句注明功能与语气;正文由开发 agent 按语气扩写,整句、≤25字/句)
|
||||
| 时间 | 游戏说 / 播 | 期待 | 没做 | 做错 |
|
||||
|---|---|---|---|---|
|
||||
| 0~3s | 「左右滑,选。点一下,去做。」(选项已在) | 左右滑或单击 | 「滑一下。」 | 上滑未解锁=`invalid` |
|
||||
| 3~10s | 切到一项 + 报名 = 第一次成功 → 若点「前进」则走路 | 再点确认 | 短句 | — |
|
||||
| 10~30s | 村长赠金;「去商店。左右滑,听价钱。」 | 进商店买或不买 | 三档 | 钱不够=`shop_poor` |
|
||||
| 30~60s | 小路选项;阶段 1:「想看自己怎么样,向上滑。」 | 上滑一次 | 「向上滑。」 | — |
|
||||
| 60~120s | 岔路左右;溪流进教学战 T0→攻击 | 滑指令、单击出剑 | 看门狗推进 | 纠正 |
|
||||
| 120~180s | 「它要扑了。」前摇 →「点一下挡住。」→ 防御课 → 自由击杀 | 窗口单击 | 受击锁血 1,仍通过 | 窗外汇报「等声音再点。」 |
|
||||
|
||||
**序章旁白**(旁白音:Serena/Uncle_Fu,平静叙述)
|
||||
1. "你的眼睛看不见了。但你的耳朵,比谁都灵。"——立人设,沉稳
|
||||
2. "黑风寨掳走了你唯一的徒弟。追进迷雾林,把他们连根拔起。"——给动机,冷
|
||||
3. "先记住怎么用耳朵走路。"——转教学,缓和
|
||||
### 0.7 失败表
|
||||
|
||||
**村长**(village,长者音:Uncle_Fu 同款 speaker 不同 instruct?"同一角色 speaker+instruct 固定"——村长=Uncle_Fu+慈和 instruct;旁白 male 版=Uncle_Fu+平静 instruct。同 speaker 不同角色时 instruct 不同是允许的,规范约束的是"同一角色恒定")
|
||||
4. 问候+送 50 金币:"外乡人,林子里不太平。这点钱拿着防身。"——慈和
|
||||
5. 商店引导 2 句——功能性,慢速清晰
|
||||
| 类型 | 判定 | 归因 | 回到 | 新手代价 |
|
||||
|---|---|---|---|---|
|
||||
| 格挡没出手 | 窗口内无单击/同向滑 | 「这下没挡。声音一响就点。」 | 下一玩家回合;教学锁血 | HP 锁底 1(教学) |
|
||||
| 格挡太早/太晚 | 窗外单击 | 「等低吼再点。」(有声)/「等叮一声再点。」(无声 earcon) | 该击按未格挡结算 | 保护档减伤 |
|
||||
| 滑反方向 | 窗口内反向滑 | 「招从左边来。向左滑,或点一下。」 | 未格挡 | 无 |
|
||||
| 战败 | HP≤0 | 「被打倒了。回村子再来。」 | village,保留等级金币 | 非教学掉一次;仍存档 |
|
||||
| 逃跑失败 | Lv≥3 且 30% | 「没甩掉。听前摇。」 | ENEMY_TELEGRAPH | 可格挡 |
|
||||
| 钱不够 / 无药 / 无 MP | 执行失败 | 对应句 + `invalid` | 留在选指令 | 无 |
|
||||
|
||||
**老猎人**(hunter,沙哑老者 instruct)
|
||||
6. 戒备开场:"站住。……哦,是个用耳朵的。"——先冷后奇
|
||||
7. 支线给予:"寨子里有我旧识。带上这个,别死在路上。"——粗中有暖(功能:给药+折扣 flag)
|
||||
### 0.8 台词类别
|
||||
|
||||
**寨丁头目**(deepwood/gate,粗哑)
|
||||
8. 遭遇喝骂 1 句——凶
|
||||
9. 半血狠话 1 句——凶转慌(功能:血量反馈的叙事化)
|
||||
- `critical`:开场动作句;教学格挡那一句 ≤3s。
|
||||
- `content`:场景 desc、NPC、选项名、`btl_start_*`、半血/胜利。
|
||||
- `hint`:等待点短句、`sys_where`、Boss 门前 `boss1_warn`。
|
||||
- `feedback`:格挡失败归因、`btl_nomp`、`btl_noitem`、`btl_flee_fail`。
|
||||
|
||||
**黑风寨主**(boss1,低沉反派)
|
||||
10. 登场宣言:"盲剑客?正好,省得挖你眼睛。"——狂
|
||||
11. 半血:"有两下子。可惜你听不懂死期的声音。"——狠(功能:阶段转换信号)
|
||||
12. 败亡遗言——惊愕→不甘(功能:章结束钩子,暗示白无瞳存在)
|
||||
无声敌人**禁止**把窗口提示做成「只有震动」:必须 `danger` earcon(合成系统音)+ 回执。叙事仍是「敌人没有脚步」,系统可以出声。
|
||||
|
||||
**章尾旁白**
|
||||
13. "寨主倒了。但徒弟不在这里——一张字条,指向南方的腐沼。"——收束+引第二章
|
||||
### 0.9 断点复述
|
||||
|
||||
## 6. 第二、三章骨架
|
||||
场景切换/战斗结束/商店后自动存。回来 5s:「你在雾口村。去黑风寨。左右滑,选前进。」模板:位置 + 目标 + 一个动作。`sys_continue_ask`:单击继续,右滑新游戏。
|
||||
|
||||
- **第二章《腐沼泽》**:7 节点。新机制:毒状态(每回合 -3 HP,金疮药可解)、蛊师敌人(先攻)。Boss 腐沼祭主二阶段(半血召唤 2 小蛛)。解锁青钢剑/铁鳞甲。
|
||||
- **第三章《无瞳峰》**:7 节点。新机制:黑暗战斗(部分敌人无声前摇,靠震动格挡——为终 Boss 铺垫)、听风剑。终 Boss 白无瞳三阶段,终阶段完全无声前摇。
|
||||
- 两章正文沿用第一章模板(场景表+敌人表+对白功能大纲)由开发 agent 扩写,规模与第一章相当。
|
||||
### 0.10 测试
|
||||
|
||||
## 7. 存档结构(progress JSON)
|
||||
进村 → 左右滑+单击前进 → 一场战斗(单击攻击;前摇内单击格挡)→ summary 更新。教学战锁血 1。战败重生也存档。
|
||||
|
||||
信封按 00 文档 §4.2(`{schema, game:"rpg", updatedAt, data}`),`data`:
|
||||
---
|
||||
|
||||
```json
|
||||
{
|
||||
"chapter": 1,
|
||||
"scene": "stream",
|
||||
"player": {
|
||||
"lv": 3, "exp": 45,
|
||||
"hp": 28, "maxHp": 36, "mp": 6,
|
||||
"gold": 120,
|
||||
"weapon": "iron_sword", "armor": "leather",
|
||||
"potions": 2
|
||||
},
|
||||
"flags": {
|
||||
"tutorial_explore_done": true,
|
||||
"tutorial_battle_done": true,
|
||||
"hunter_quest": true,
|
||||
"chest_fork": false,
|
||||
"shop_discount": true
|
||||
},
|
||||
"chapters": { "1": "cleared", "2": "unlocked", "3": "locked" },
|
||||
"stats": { "kills": 12, "deaths": 1, "parries": 9, "playSec": 1500 }
|
||||
}
|
||||
```
|
||||
## 1. 定位与循环(保留)
|
||||
|
||||
- **保存时机**:场景切换后、战斗结算后、商店交易后、菜单选"保存并回大厅"。写 localStorage 并 PUT 服务器(未登录只写本地)。
|
||||
- **读取**:进游戏检测到存档 → 语音问"继续上次的旅程?单击继续,右滑开始新游戏"。新游戏清空 data 保留 stats 累计。
|
||||
- **版本**:`schema` 升版时开发 agent 写迁移或丢弃重来(R 轮内允许丢弃,文档标注即可)。
|
||||
盲剑客沈听澜。一章 15–25 分钟;死亡章首重生(背包/等级保留)。循环:探索听场景 → 选行动 → 回合战斗(格挡是技巧)→ 经验装备 → Boss → 下一章。
|
||||
|
||||
## 8. 战斗回合时序(实现契约)
|
||||
---
|
||||
|
||||
## 2. 手势(26 号,无豁免双击格挡)
|
||||
|
||||
探索、战斗选指令见 §0.3。**格挡窗口(1.0s,听风剑 1.3s,保护档见 11 号)**:
|
||||
|
||||
1. **教:单击。** 「听到前摇,点一下挡住。」
|
||||
2. **也认:朝来招方向滑。** 来招方位由 `tel_*` 声像或约定(狼正面=上或「扑击」默认单击即可;有左右声像的敌人:左声道→左滑)。反方向=`invalid`,不算格挡。
|
||||
3. 成功:`sfx/parry` + `ok` 可省 + 减伤 70%。与防御指令不叠加(取更优)。
|
||||
4. 窗口外单击:若在 PLAYER_SELECT 则执行指令;若仍在结算间隙=`invalid`+「等前摇。」
|
||||
|
||||
废止:双击格挡、用 300ms 双击窗规避 tap 延迟。演奏/格挡要即时:前摇期可 `immediateTap` 或全局 `doubleTapWindow: 0`(松手即单击)。
|
||||
|
||||
---
|
||||
|
||||
## 3. 数值框架(保留公式与表)
|
||||
|
||||
```
|
||||
回合开始 → 若敌人存活:播敌人行动意图音(前摇 1.0s,期间双击=格挡判定)
|
||||
→ 前摇结束结算敌方攻击(应用格挡/防御减伤)→ 播受击/格挡音 + 震动(HIT / CONFIRM)
|
||||
→ 玩家指令阶段:左右滑切指令(播指令名)→ 单击执行 → 播攻击音 + 敌方受击音
|
||||
→ 敌方血量档位播报仅在上滑查询时播;半血/死亡自动播叙事短句
|
||||
→ 循环。玩家 HP≤0 → 战败旁白 → 章首重生(等级金币保留,hp 回满)
|
||||
maxHp = 20 + 8*(lv-1)
|
||||
atk = 5 + 2*(lv-1) + 武器atk
|
||||
def = 护甲def
|
||||
mp = 3 + lv // 破空斩耗 3,伤害 atk*2
|
||||
expToNext = lv * 20
|
||||
dmg = max(1, round((atk攻 - def守) * (0.85~1.15)))
|
||||
格挡: round(dmg * 0.3);防御指令: round(dmg * 0.5)
|
||||
```
|
||||
|
||||
- 敌方前摇音 = 敌人表"前摇音特征"列的 sfx(每敌人一个专属前摇音,这是"听声辨招"的核心资产,优先级高于环境音)。
|
||||
- 内劲技能"破空斩":atk*2,mp-3,mp 不足时指令播报"内劲不足"并跳过该选项。
|
||||
敌人 HP/ATK/DEF/EXP/金币/前摇特征:见 chapter1 §4.2 原表(野狼 10/4/0 … 白无瞳 110/18/5)。装备价格与听风剑窗口 +0.3s 不变。平衡校验(lv3 铁剑打 Boss 会格挡能过)不变。
|
||||
|
||||
## 9. 资产清单(规模核对)
|
||||
第三章无声前摇:**系统 danger earcon 标识窗口**;iOS 无震时 earcon + 回执足够完成「点一下」格挡。防御指令是不看时机的兜底,对所有平台必要,不是 iOS 专享补丁。
|
||||
|
||||
| 类别 | 数量 | 备注 |
|
||||
|---|---|---|
|
||||
| bgm | 5 | 3 章环境底各 1 + 战斗 1 + Boss 1(Mureka,循环) |
|
||||
| sfx | ~35 | 8 敌人前摇 + 3 Boss 前摇 + 攻击/受击/格挡/技能/买药/开箱/升级 + 8 场景 amb 循环(或 amb 走 bgm 层) |
|
||||
| voice | ~120 句 ×2 音色 | 旁白 ~30、NPC ~40、教学 ~15、战斗播报 ~20、状态/菜单 ~15;全部整句、角色 speaker+instruct 常量化 |
|
||||
| 对标 | escape 现版约 40 句语音 + 15 sfx;《剑与声》约为其 3 倍,R4 备资产 + R5 开发一轮可行(场景/敌人/指令全部数据驱动,game.js 单文件预计 800-1000 行) |
|
||||
---
|
||||
|
||||
## 10. 开发次序建议(R5 一轮内)
|
||||
## 4. 场景结构(保留)
|
||||
|
||||
1. 数据表(场景图/敌人/物品/对话 id)→ 2. 探索循环 + 菜单 + 状态播报 → 3. 战斗回合机(含格挡窗口)→ 4. 商店/道具/升级 → 5. 存档读写 → 6. 第一章内容灌入 → 7. 第二、三章灌入 → 8. 教学关与打磨。资产(R4 已生成)缺失时用 console.error 静默跳过的引擎特性兜底,先通流程后补音。
|
||||
有向节点图,明雷。第一章 8 节点表(village…boss1)见 chapter1 JSON。二章毒状态/蛊师先攻;三章黑暗战斗铺垫终 Boss。岔路、商店、休息点保留。
|
||||
|
||||
---
|
||||
|
||||
## 5. 第一章内容与教学(手势改写)
|
||||
|
||||
场景列表、对白功能大纲、村长/猎人/寨主台词意图:**保留**(正文仍 ≤25 字/句,指令 ≤12 字)。
|
||||
|
||||
教学:
|
||||
|
||||
- 场景 1:左右滑+单击,商店买一次(50 金启动)。
|
||||
- 场景 3:左右滑选岔路。**不教双击重听**;重听=阶段 3 或上滑状态/长按加速旁白中的跳句。
|
||||
- 场景 4 教学战:HP 锁 1。顺序见 11 号四步,其中格挡步改为「点一下挡住」。
|
||||
|
||||
---
|
||||
|
||||
## 6. 存档(保留结构,chapter1 为准)
|
||||
|
||||
`chapter/scene/player/flags/chapters/stats` + 必填 `summary`。保存时机不变。新游戏清空 data 保留 stats。
|
||||
|
||||
建议 `stats.battlesWon` 供 11 号保护档使用(若 chapter1 未列则实现时补字段,不改其它数值)。
|
||||
|
||||
---
|
||||
|
||||
## 7. 战斗时序(格挡改单击)
|
||||
|
||||
```
|
||||
回合开始
|
||||
→ 玩家先攻(第一章):PLAYER_SELECT(turn_player + 等待声或指令名)
|
||||
左右滑切指令,单击执行
|
||||
→ CHECK_ENEMY_DEAD
|
||||
→ ENEMY_TELEGRAPH(ACTION,1.0s):tel_* 或 danger earcon
|
||||
窗口内单击 或 同向滑 → 格挡
|
||||
→ ENEMY_RESOLVE → 玩家 HP 检定
|
||||
→ 循环
|
||||
HP≤0 → 败句 → 章首
|
||||
```
|
||||
|
||||
蛊师等先攻:B_START 后先 TELEGRAPH。半血叙事钩子保留。破空斩 mp 不足留在选指令。
|
||||
|
||||
---
|
||||
|
||||
## 8. 资产规模(保留)
|
||||
|
||||
BGM 以 10 号为准:menu / explore / village / battle / boss / ending。amb 走 sfx 层循环(addendum)。sfx ~35、语音 ~114 见台词表。`ui_deny` 不做,回执走引擎。
|
||||
|
||||
---
|
||||
|
||||
## 9. 开发次序(保留)
|
||||
|
||||
数据表 → 探索循环 → 战斗机(格挡=窗口单击)→ 商店升级 → 存档 → 灌第一章 → 二/三章 → 打磨。
|
||||
|
||||
---
|
||||
|
||||
## 10. 废止清单
|
||||
|
||||
| 废止 | 改为 |
|
||||
|---|---|
|
||||
| 双击=格挡;双击=重听场景 | 窗口单击格挡;新手双击当单击 |
|
||||
| 无声敌人只靠震动格挡;iOS 不可格挡 | danger earcon + 回执;防御指令全平台兜底 |
|
||||
| 开场先讲完规则再玩 | 第一句就滑选项 |
|
||||
| 菜单单击循环+双击确认 | 与探索同构:左右滑+单击 |
|
||||
| 看门狗原样重播帮助长句 | 三档提示 |
|
||||
| 失败重开整章教学 | 就近:教学该步;战败回村 |
|
||||
| 无效只震 | 回执必响 |
|
||||
|
||||
故事、节点、数值、装备、Boss 阶段:**保留**。
|
||||
|
||||
Reference in New Issue
Block a user