99 lines
8.1 KiB
Markdown
99 lines
8.1 KiB
Markdown
# 11 · 《剑与声》战斗重构规范(rpg battle rebalance)
|
||
|
||
> **给开发的实现要点摘要**
|
||
> 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. 现状问题(对应用户反馈)
|
||
|
||
- "第一次进战斗必须说明清楚交互方式":现教学战只有格挡(tut_b1/b2)+ 攻击(tut_b3)两步,**防御指令和指令切换本身没教**——玩家不知道左右滑能选招式、不知道有防御。
|
||
- "战斗太难、要循序渐进":现版所有战斗前摇恒 1.0s、敌人满伤害,第一场正式战斗(enc_wolf)和 Boss 战用同一反应标准;逃跑非 Boss 必成但没有"失败"概念,缺少梯度。
|
||
|
||
## 2. 首战教学化(enc_teach_wolf 重排为四步)
|
||
|
||
教学战流水(teachStage 状态扩为 4 段,每段旁白引导 → 玩家亲手执行 → 确认后进下一段;每段 8s 无操作给一次重复提示,绝不卡死):
|
||
|
||
| 步 | stage | 旁白(新增语音 id,台词表见 §6) | 玩家动作 | 通过条件 |
|
||
|---|---|---|---|---|
|
||
| T0 | `menu` | `tut_b0`:"战斗里,左右滑选招式,单击出手。先试试,滑一滑。" | 左右滑 ≥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);格挡放在攻击后是让它成为"回合交换"的一部分而非孤立动作。
|
||
|
||
## 3. 难度曲线(新手保护分档)
|
||
|
||
保护档位由 `stats.battlesWon`(已完成战斗场数)决定,**每场战斗开始时取档**:
|
||
|
||
| 档 | 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 | 现版数值 |
|
||
|
||
### 第一章遭遇战数值表(最终版,含推荐等级)
|
||
|
||
| 遭遇战 | 敌人 | 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) |
|
||
|
||
等级节奏校验:教学狼 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 伤。会格挡=稳过,不格挡=紧过,符合"技巧有收益"原则。
|
||
|
||
**Boss 保护例外**:enc_boss1 始终标准档(battlesWon 再多也不再放宽;battlesWon 不足 5 时打 Boss 也不享受 1.5s 前摇——Boss 是毕业考)。实现:`enc.boss` 已存在,取档时 `boss ? 标准 : 按 battlesWon`。
|
||
|
||
## 4. 逃跑规则
|
||
|
||
| 玩家等级 | 普通战斗 | Boss/剧情战(flee:false) |
|
||
|---|---|---|
|
||
| Lv < 3 | **100% 成功**(新手保护) | 不可逃(btl_noflee) |
|
||
| Lv ≥ 3 | 70% 成功;失败:播 `btl_flee_fail`(新增)→ 敌方直接进入正常前摇回合(**可格挡**,不白打) | 不可逃 |
|
||
|
||
实现:现版 `_fleeCheck` 是 flee 布尔直出;改为 `{ allowed, rate }`:`allowed=false` 播 btl_noflee;`rate = lv<3 ? 1.0 : 0.7`,失败走 ENEMY_TELEGRAPH。
|
||
|
||
**进 Boss 战提示**:首次进入 enc_boss1 且 Lv<3 时,门前插播 `boss1_warn`(新增):"里面就是黑风寨主。你现在回去练练再来,也来得及。"——给低等级玩家一个知情回头机会(gate 场景 back 选项本来就在)。
|
||
|
||
## 5. 战斗状态声音标识(听觉状态语言的战斗部分)
|
||
|
||
| 状态 | 声音标识 | 资产 |
|
||
|---|---|---|
|
||
| 战斗开始 | `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 淡出 | 已有 |
|
||
|
||
`turn_player` 在每回合 PLAYER_SELECT 进入时播;教学战 T0 的"指令切换"教学正好以它为锚("听到这个声音,就是你的回合"——写进 `tut_b0` 台词)。
|
||
|
||
## 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 |
|
||
|
||
instruct 沿用 ch1 台词表常量(female=Serena / male=Uncle_Fu,讲武侠故事/说书人)。
|
||
|
||
## 7. 验收点
|
||
|
||
- 首战:不做任何正确操作也不死(锁底 1);四步每步都能被看门狗兜底推进。
|
||
- 保护档实测:第 2 场战斗野狼每刀 ≤2 伤、前摇明显变慢(可听)。
|
||
- Lv2 逃跑必成 ×10 次;Lv3 后逃跑出现失败且失败后可格挡。
|
||
- Lv2 到 Boss 门前听到 `boss1_warn`;Lv3 到则不播。
|
||
- `turn_player` 每回合出现且不与前摇音/指令语音叠放(回合切换处留 200ms 间隙)。
|