Files
SoundGame/docs/design/11-rpg-battle-rebalance.md
T

8.1 KiB
Raw Blame History

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 间隙)。