save
This commit is contained in:
@@ -1,98 +1,136 @@
|
||||
# 11 · 《剑与声》战斗重构规范(rpg battle rebalance)
|
||||
# 11 · 《剑与声》战斗重构规范(26 号对齐)
|
||||
|
||||
> **给开发的实现要点摘要**
|
||||
> 1. 首战教学化:教学战从"学格挡+学攻击"扩为**四步强制分步**(认识指令→格挡→攻击→防御),教学战敌人 ATK 降为 2 且玩家 HP 锁底 1(不死)。§2。
|
||||
> 2. 新手难度保护:按**已完成战斗场数**分两档——第 1-3 场前摇 1.5s、敌方伤害 ×0.6;第 4-5 场过渡(1.25s、×0.8);第 6 场起恢复正常(1.0s、×1.0)。判定依据 `stats.battlesWon`,与等级无关(等级通过数值自然体现)。§3 数值表。
|
||||
> 3. 逃跑新手保护:Lv<3 逃跑 100% 成功;Lv≥3 普通战斗逃跑 70%,失败代价 = 敌方一个正常回合(有前摇、可格挡,不白打)。Boss/剧情战维持不可逃。§4。
|
||||
> 4. 战斗四状态声音标识:战斗开始 / 玩家回合 / 敌方前摇 / 胜利各有专属 sfx(新增 2 个:`turn_player`、`victory`)。§5。
|
||||
> 5. 现状衔接:现版(web/rpg/game.js)前摇固定 1.0s(+听风剑 0.3s)、逃跑 flee 布尔、教学战两步。本规范是**参数化 + 步骤扩展**,不改状态机骨架(05-rpg-chapter1 §3 的 10 状态转换表不变)。
|
||||
> 1. 教学战四步强制分步:**认识指令 → 攻击 → 格挡(窗口单击)→ 防御**。教学狼 ATK=2,玩家 HP 锁底 1。交互权威 26 号:格挡**不得**教双击。
|
||||
> 2. 新手保护按 `stats.battlesWon`:前 3 场前摇 1.5s、伤害 ×0.6;第 4–5 场 1.25s、×0.8;第 6 场起 1.0s、×1.0。Boss 始终标准档。数字保留。
|
||||
> 3. 逃跑:Lv<3 普通战 100%;Lv≥3 为 70%,失败走可格挡前摇。Boss/剧情不可逃。
|
||||
> 4. `turn_player` / `victory` 状态音保留;玩家回合另起等待声或靠指令名。回执必响。
|
||||
> 5. 状态机骨架仍是 chapter1 10 状态;只改格挡输入与教学台词口径。
|
||||
|
||||
---
|
||||
|
||||
## 1. 现状问题(对应用户反馈)
|
||||
## 0. 设计单(战斗切片)
|
||||
|
||||
- "第一次进战斗必须说明清楚交互方式":现教学战只有格挡(tut_b1/b2)+ 攻击(tut_b3)两步,**防御指令和指令切换本身没教**——玩家不知道左右滑能选招式、不知道有防御。
|
||||
- "战斗太难、要循序渐进":现版所有战斗前摇恒 1.0s、敌人满伤害,第一场正式战斗(enc_wolf)和 Boss 战用同一反应标准;逃跑非 Boss 必成但没有"失败"概念,缺少梯度。
|
||||
**核心动作(战斗)**:左右滑选招,单击出手;听到前摇,再点一下挡住。
|
||||
|
||||
## 2. 首战教学化(enc_teach_wolf 重排为四步)
|
||||
**三状态**:选指令 `YOUR_TURN`(`turn_player`);前摇 `ACTION`(`tel_*` 或 danger earcon);胜负旁白 `SPEAKING`。
|
||||
|
||||
教学战流水(teachStage 状态扩为 4 段,每段旁白引导 → 玩家亲手执行 → 确认后进下一段;每段 8s 无操作给一次重复提示,绝不卡死):
|
||||
**矩阵 / 失败表 / 首 3 分钟**:见 05 号 §0。本文件规定教学逐步通过条件与数值档。
|
||||
|
||||
| 步 | stage | 旁白(新增语音 id,台词表见 §6) | 玩家动作 | 通过条件 |
|
||||
---
|
||||
|
||||
## 1. 现状问题(仍成立,解法已换手势)
|
||||
|
||||
- 指令切换、防御没教。
|
||||
- 第一场正式战与 Boss 同一反应标准过难。
|
||||
- 旧教学把格挡绑双击,违反新手手势宪法。
|
||||
|
||||
---
|
||||
|
||||
## 2. 首战教学化(enc_teach_wolf 四步)
|
||||
|
||||
每段:旁白 → 玩家亲手做 → 确认进下一段。静默走三档提示(完整→短→earcon),**不原样复读长句**。绝不卡死:3 次失败演示通过。
|
||||
|
||||
| 步 | stage | 旁白意图(改录前可沿用 id、改词) | 玩家动作 | 通过 |
|
||||
|---|---|---|---|---|
|
||||
| T0 | `menu` | `tut_b0`:"战斗里,左右滑选招式,单击出手。先试试,滑一滑。" | 左右滑 ≥2 次(听到指令名切换) | 切换 2 次 |
|
||||
| T1 | `attack` | `tut_b3`(现有):"轮到你了。左右滑选攻击,单击出剑。" | 选中攻击并单击 | 攻击命中一次 |
|
||||
| T2 | `parry` | `tut_b1`+`tut_b2`(现有):"它要扑了,听前摇!""就是现在,双击格挡!" | 前摇内双击 | 格挡成功或受击均可通过(受击掉血,教学点已到) |
|
||||
| T3 | `defend` | `tut_b6`(新增):"来不及格挡,就选防御。选防御,单击。" | 选中防御并单击 | 执行防御一次(敌方攻击减伤 50% 演示) |
|
||||
| T4 | — | `tut_b5`(现有):"好剑法!接下来,靠你自己了。" | 自由击杀 | 敌亡 |
|
||||
| T0 | `menu` | `tut_b0`:战斗里左右滑选招,单击出手。听到 `turn_player`,就是你的回合。先滑一滑。 | 左右滑 ≥2 | 切 2 次 |
|
||||
| T1 | `attack` | `tut_b3`:选攻击,单击出剑。 | 攻击命中一次 | 出剑 |
|
||||
| T2 | `parry` | `tut_b1`+`tut_b2`:**它要扑了,听前摇。就是现在,点一下挡住。** | 前摇内单击(或同向滑) | 格挡成功**或**受击均通过(锁血) |
|
||||
| T3 | `defend` | `tut_b6`:来不及挡,就选防御。选防御,单击。 | 执行防御一次 | 减伤 50% 演示 |
|
||||
| T4 | — | `tut_b5`:好剑法。接下来靠你自己。 | 自由击杀 | 敌亡 |
|
||||
|
||||
- 教学战参数:teach_wolf **ATK 3→2**、HP 6 不变、前摇 **1.8s**(比正常宽 80%)、玩家 HP 锁底 1(不死,现版已有 clamp)、不可逃(现有)。
|
||||
- 顺序理由:先会"怎么选"(T0)再会"打"(T1)再会"保命"(T2/T3);格挡放在攻击后是让它成为"回合交换"的一部分而非孤立动作。
|
||||
- 教学狼:**ATK 3→2**、HP 6、前摇 **1.8s**、HP 锁底 1、不可逃。
|
||||
- 顺序:先会选,再会打,再会挡与防。
|
||||
- `tut_b2` 旧文「双击格挡」**废止**;实现改播「点一下挡住」。不改 voice-ids 文件,改引用或待重录。
|
||||
|
||||
## 3. 难度曲线(新手保护分档)
|
||||
---
|
||||
|
||||
保护档位由 `stats.battlesWon`(已完成战斗场数)决定,**每场战斗开始时取档**:
|
||||
## 3. 难度曲线(数字保留)
|
||||
|
||||
| 档 | battlesWon | 敌方前摇 | 敌方伤害系数 | 说明 |
|
||||
|---|---|---|---|---|
|
||||
| 教学 | 教学战 | 1.8s | ATK 2 特例 | §2 |
|
||||
| 保护 | 0-2(前 3 场) | **1.5s** | **×0.6**(向下取整,min 1) | 反应窗口宽 50%,掉血痛感低 |
|
||||
| 过渡 | 3-4(第 4-5 场) | 1.25s | ×0.8 | 渐回标准 |
|
||||
| 标准 | ≥5(第 6 场起) | 1.0s(听风剑 +0.3s) | ×1.0 | 现版数值 |
|
||||
每场开始时按 `stats.battlesWon` 取档:
|
||||
|
||||
### 第一章遭遇战数值表(最终版,含推荐等级)
|
||||
| 档 | battlesWon | 敌方前摇 | 伤害系数 |
|
||||
|---|---|---|---|
|
||||
| 教学 | 教学战 | 1.8s | ATK 2 特例 |
|
||||
| 保护 | 0–2 | **1.5s** | **×0.6**(向下取整,min 1) |
|
||||
| 过渡 | 3–4 | 1.25s | ×0.8 |
|
||||
| 标准 | ≥5 | 1.0s(听风剑 +0.3s) | ×1.0 |
|
||||
|
||||
| 遭遇战 | 敌人 | HP | ATK(标准) | 前摇 | 经验/金币 | 推荐等级 | 说明 |
|
||||
### 第一章遭遇(最终版)
|
||||
|
||||
| 遭遇 | 敌人 | HP | ATK(标准) | 前摇 | 经验/金币 | 推荐等级 | 说明 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| enc_teach_wolf | 教学野狼 | 6 | 2(教学特例) | 1.8s | 5 / 0 | Lv1 | 四步教学,锁血不死 |
|
||||
| enc_wolf | 野狼 | 10 | 4(保护档实际 2) | 按档位 | 8 / 5 | Lv1 | 可逃;保护档内打它=2 伤/刀 |
|
||||
| enc_bandits | 山贼 ×2 连战 | 16+16 | 6(过渡档实际 4) | 按档位 | 24 / 24 | Lv2 | 不可逃;连战不回血 |
|
||||
| enc_elite | 寨丁头目 | 24 | 8 | 标准 | 20 / 25 | Lv2-3 | 强攻线;半血有狠话 |
|
||||
| enc_sneak | 山贼+毒蛛 | 16+12 | 6/7 | 标准 | 24 / 20 | Lv2 | 绕行线;胜后进 Boss 前回满 |
|
||||
| enc_boss1 | 黑风寨主 | 45 | 10(半血 12) | 标准 | 50 / 100 | **Lv3** | 不可逃;进 Boss 战前强制提示(§4) |
|
||||
| enc_teach_wolf | 教学野狼 | 6 | 2 | 1.8s | 5 / 0 | Lv1 | 四步;锁血;格挡=单击 |
|
||||
| enc_wolf | 野狼 | 10 | 4(保护档实际 2) | 按档 | 8 / 5 | Lv1 | 可逃 |
|
||||
| enc_bandits | 山贼 ×2 | 16+16 | 6(过渡实际 4) | 按档 | 24 / 24 | Lv2 | 不可逃 |
|
||||
| enc_elite | 寨丁头目 | 24 | 8 | 标准 | 20 / 25 | Lv2–3 | 强攻线 |
|
||||
| enc_sneak | 山贼+毒蛛 | 16+12 | 6/7 | 标准 | 24 / 20 | Lv2 | 绕行;胜后回满 |
|
||||
| enc_boss1 | 黑风寨主 | 45 | 10(半血 12) | **始终标准** | 50 / 100 | **Lv3** | 不可逃 |
|
||||
|
||||
等级节奏校验:教学狼 5 + 野狼 8 + 山贼 24 + 头目/偷袭 20-24 + 沿途 ≈ 60 exp 到 Boss 前 → Lv3(20+40=60 正好升 3)。Lv3 玩家(HP36、铁剑 atk12、皮甲 def2):保护档已过,Boss 10-2=8~11 伤/刀,可吃 4 刀;格挡成功 2-3 伤。会格挡=稳过,不格挡=紧过,符合"技巧有收益"原则。
|
||||
等级节奏:教学 5+野狼 8+山贼 24+头目/偷袭 20–24≈60 exp → Boss 前 Lv3。Lv3 铁剑皮甲:会格挡稳过,不格挡紧过。
|
||||
|
||||
**Boss 保护例外**:enc_boss1 始终标准档(battlesWon 再多也不再放宽;battlesWon 不足 5 时打 Boss 也不享受 1.5s 前摇——Boss 是毕业考)。实现:`enc.boss` 已存在,取档时 `boss ? 标准 : 按 battlesWon`。
|
||||
`enc.boss === true` 时取标准档,不享受 1.5s。
|
||||
|
||||
## 4. 逃跑规则
|
||||
---
|
||||
|
||||
| 玩家等级 | 普通战斗 | Boss/剧情战(flee:false) |
|
||||
## 4. 逃跑规则(保留数字)
|
||||
|
||||
| 玩家等级 | 普通战斗 | Boss/剧情 `flee:false` |
|
||||
|---|---|---|
|
||||
| Lv < 3 | **100% 成功**(新手保护) | 不可逃(btl_noflee) |
|
||||
| Lv ≥ 3 | 70% 成功;失败:播 `btl_flee_fail`(新增)→ 敌方直接进入正常前摇回合(**可格挡**,不白打) | 不可逃 |
|
||||
| Lv<3 | 100% 成功 | `btl_noflee` |
|
||||
| Lv ≥ 3 | 70%;失败 `btl_flee_fail` → `ENEMY_TELEGRAPH`(**可单击格挡**) | 不可逃 |
|
||||
|
||||
实现:现版 `_fleeCheck` 是 flee 布尔直出;改为 `{ allowed, rate }`:`allowed=false` 播 btl_noflee;`rate = lv<3 ? 1.0 : 0.7`,失败走 ENEMY_TELEGRAPH。
|
||||
首次进 enc_boss1 且 Lv<3:插播 `boss1_warn`(回村练练也来得及)。gate 的 back 仍在。
|
||||
|
||||
**进 Boss 战提示**:首次进入 enc_boss1 且 Lv<3 时,门前插播 `boss1_warn`(新增):"里面就是黑风寨主。你现在回去练练再来,也来得及。"——给低等级玩家一个知情回头机会(gate 场景 back 选项本来就在)。
|
||||
---
|
||||
|
||||
## 5. 战斗状态声音标识(听觉状态语言的战斗部分)
|
||||
## 5. 战斗状态声音
|
||||
|
||||
| 状态 | 声音标识 | 资产 |
|
||||
| 状态 | 声音 |
|
||||
|---|---|
|
||||
| 战斗开始 | `bgm/battle` 400ms + `btl_start_<enemy>` |
|
||||
| 玩家回合 | `sfx/turn_player`(≤0.4s)+ 等待声或指令名循环 |
|
||||
| 敌方前摇 | `tel_*` 或 danger earcon |
|
||||
| 胜利 | `sfx/victory`(≤1.2s)+ BGM 1.5s 出 / 2s 入 explore |
|
||||
| 战败 | `hurt` + `btl_lose` + battle 2s 淡出 |
|
||||
|
||||
`turn_player` 于 PLAYER_SELECT 进入时播;与前摇/指令语音留 200ms 间隙。T0 用它当「轮到你」锚点。
|
||||
|
||||
---
|
||||
|
||||
## 6. 新增语音(台词意图;×2 性别)
|
||||
|
||||
| id | 全文(26 号口径) | 用途 |
|
||||
|---|---|---|
|
||||
| 战斗开始 | `bgm/battle` 400ms 切入(10 文档 §7)+ 现有 `btl_start_<enemy>` | 已有 |
|
||||
| **玩家回合开始** | 新增 `sfx/turn_player`:一声轻亮的剑鸣/木鱼短音("轮到你"的听觉标点,每回合都出现,必须极短 ≤0.4s、不烦) | **新增(程序合成即可,上行双音)** |
|
||||
| 敌方前摇 | 现有 `tel_<enemy>` + 窗口开启 `beat` 轻震(addendum §1) | 已有 |
|
||||
| **胜利** | 新增 `sfx/victory`:3 音上行短号角(≤1.2s),随后 BGM 过渡(10 文档 §7 的 1.5s 出/2s 入) | **新增(SA3:"triumphant short brass fanfare, 3 rising notes, wuxia style, under 1.5 seconds")** |
|
||||
| 战败 | 现有 `hurt` + `btl_lose` + battle BGM 2s 淡出 | 已有 |
|
||||
| `tut_b0` | 战斗里,左右滑选招式,单击出手。听到这个声音,就是你的回合。先滑一滑。 | T0 |
|
||||
| `tut_b2` | 就是现在,点一下挡住。 | T2(替换双击句) |
|
||||
| `tut_b6` | 来不及挡,就选防御。左右滑,选防御,单击。 | T3 |
|
||||
| `btl_flee_fail` | 没甩掉!它追上来了。 | 逃跑失败 |
|
||||
| `boss1_warn` | 里面就是黑风寨主。你现在回去练练再来,也来得及。 | 低级进门 |
|
||||
|
||||
`turn_player` 在每回合 PLAYER_SELECT 进入时播;教学战 T0 的"指令切换"教学正好以它为锚("听到这个声音,就是你的回合"——写进 `tut_b0` 台词)。
|
||||
instruct 沿用 ch1。若资产仍是旧「双击格挡」句:游戏层改播新 id 或临时改词,**不在本次改 voice-ids 文件**。
|
||||
|
||||
## 6. 新增语音(补录清单,×2 性别,交音频总监)
|
||||
---
|
||||
|
||||
| id | 台词全文 | 用途 |
|
||||
|---|---|---|
|
||||
| `tut_b0` | 战斗里,左右滑选招式,单击出手。听到这个声音,就是你的回合。先滑一滑,试试。 | 教学 T0("这个声音"= turn_player,旁白落音后 0.5s 播 turn_player 示范) |
|
||||
| `tut_b6` | 来不及格挡,就选防御。左右滑,选防御,单击。 | 教学 T3 |
|
||||
| `btl_flee_fail` | 没甩掉!它追上来了。 | Lv≥3 逃跑失败 |
|
||||
| `boss1_warn` | 里面就是黑风寨主。你现在回去练练再来,也来得及。 | Lv<3 首次到 boss1 |
|
||||
## 7. 验收
|
||||
|
||||
instruct 沿用 ch1 台词表常量(female=Serena / male=Uncle_Fu,讲武侠故事/说书人)。
|
||||
- 首战:乱点也不死(锁底 1);四步都能被迷茫/看门狗推进。
|
||||
- 格挡课:**单击**通过;双击因当单击也可通过,但不得把「请双击」写进提示。
|
||||
- 第 2 场野狼每刀 ≤2、前摇可听变慢。
|
||||
- Lv2 逃跑必成;Lv3 后失败可格挡。
|
||||
- Lv2 到 Boss 门前听到 `boss1_warn`。
|
||||
- `turn_player` 每回合出现且不与前摇叠。
|
||||
- 无声操作 0;iOS 无震时格挡仍有 tel/earcon。
|
||||
|
||||
## 7. 验收点
|
||||
---
|
||||
|
||||
- 首战:不做任何正确操作也不死(锁底 1);四步每步都能被看门狗兜底推进。
|
||||
- 保护档实测:第 2 场战斗野狼每刀 ≤2 伤、前摇明显变慢(可听)。
|
||||
- Lv2 逃跑必成 ×10 次;Lv3 后逃跑出现失败且失败后可格挡。
|
||||
- Lv2 到 Boss 门前听到 `boss1_warn`;Lv3 到则不播。
|
||||
- `turn_player` 每回合出现且不与前摇音/指令语音叠放(回合切换处留 200ms 间隙)。
|
||||
## 8. 废止
|
||||
|
||||
| 废止 | 改为 |
|
||||
|---|---|
|
||||
| T2「双击格挡」 | 窗口单击;同向滑冗余 |
|
||||
| 教学复读同一句说明书 | 三档提示 + 第 3 次演示 |
|
||||
| 逃跑失败「白打」不可挡 | 失败进入可格挡前摇 |
|
||||
| 状态只靠震 | `turn_player` + 等待声/指令名 + 回执 |
|
||||
|
||||
保护档数字、遭遇表、Boss 例外、`turn_player`/`victory` 资产需求:**保留**。
|
||||
|
||||
Reference in New Issue
Block a user