feat(new8/R3): 双游戏收口修复轮 + 验证档案(radio G1-G6 / dungeon E0-1..E1-2)
- radio:帮助链去重(同等待点二次=beat震+earcon,全量口令38→20)/rep_low警告震/空点轻震/状态链重排(状态在前)/「首播必完整、复播可即掐」显式规则登记/G3核查为设计使然转断言;221→246断言 - dungeon:看门狗双轨制(无操作轨+无进展轨,30/60/90s三级升级到导航接管)/跳教学90s自动滚出(2403s→95s内)/踩楼梯到达即报贴身铁器/band1新词「带回来一点,不多」全管线重录/逃跑长按900ms+提示句;1610→1642断言 - R3 验证(进行中已入库部分):全量回归 9/9 全绿;R3 转写×4;P2/P3/P4 终审×6份(radio 满分档首评/三审,dungeon 4/4.5/3-4 全票愿意玩,无P0);两处独立定址同一残余=漫游型迷路刷不响无进展轨(R4 第一条) - 8套件+guide全绿;Mureka 累计 $0.87/$2.00
This commit is contained in:
@@ -482,3 +482,58 @@ V3(arg_muffled/brake_screech 等 11 件 SA3 资产)维持「等待 HF token
|
||||
- dungeon 款全量回归本轮 FAIL:另一 agent 并行改动 `web/engine/{audio,gesture}.js` 与
|
||||
`web/dungeon/**` 进行中(失败点为 dungeon 网格/侧墙与 tut 旁白断言,与 radio 无关);
|
||||
radio与其余 6 款全绿。
|
||||
|
||||
## R3 修复回归(round2 synthesis G1-G6 打磨轮,2026-09-02)
|
||||
|
||||
> 证据源:research/new8/radio/round2/{synthesis,live-player,p1-blind,p3-office}.md。
|
||||
> 断言全部落在 `web/radio/test/playtest.mjs`「R3 修复回归」块 + 主路径/中断复述两处顺序断言改写;
|
||||
> **playtest 断言总数 R2=221 → R3=246(+25)**,全绿。未新增台词/资产(G1 选纯音频标记方案,
|
||||
> 零 TTS 管线动作;voice_text.json / voice-ids 无改动)。
|
||||
|
||||
### G5 显式规则登记(P1 要求,F4/F5 隐式行为升格)
|
||||
|
||||
**规则语句**:radio 的跳过公平契约 = **「首播必完整、复播可即掐」**——
|
||||
|
||||
- **首播必完整**(公平底线,玩家没听过的内容不许被抢跑):
|
||||
1. 抉择提示句 p*(voice/p1..p9)首播不可跳(PROMPT_RE 门),播中左右滑仅缓存
|
||||
`pendingChoice`、句尾当刻才生效(W2 契约零插播;播中连滑取最后一次);
|
||||
2. 链末关键句(等待单击 / `@x` 过场转移 / 直入抉择提示交接前的末句,如蛋糕句、点题句)
|
||||
首播不可跳(F5 链末句保护);
|
||||
3. **ASK 恢复首句例外**:断点续玩恢复链本属局面复述(复播),但其首句仍受 F4 跳句锁
|
||||
保护——首句播完才武装跳句。锁只锁这一句、播完即释放,**不得升级为永久保护**
|
||||
(live 局 B + 会话 C 双向验证:恢复链第二句 0.2s 即可跳)。
|
||||
- **复播可即掐**(效率面,已完整交付过的内容不再强制重听):F4 锁只锁首播一句且播完即释放,
|
||||
**锁不随复播重新武装**(关菜单局面复述 / 双击重听回放同一句时单击照常跳过);F5 只护交接前
|
||||
末句本身,链中段句首播复播均可跳;复播期间播中滑动照常预缓存抉择、句尾即生效(V1 断言)。
|
||||
|
||||
注:p* 复播(双击重听/看门狗复述)仍不可跳、仍句尾生效——比 P1 建议的「复播即掐即生效」更保守;
|
||||
R2 live 已将 4 处截断全数归因玩家 tap 且 P1/P3 均接受现状,按代码实际契约登记并断言。
|
||||
|
||||
### G1-G6 逐条
|
||||
|
||||
| 项 | 选型 / 改法(web/radio/game.js) | 回归断言(✅=已断言) |
|
||||
|---|---|---|
|
||||
| G1 帮助链去重 | **选型:纯音频标记(不加新台词)**。「只震+earcon+sys_help 现有句」方案被否——sys_help 为单文件 26 字整句,无「首句」子资产,重播即逐字重复,恰是待修问题。实现:`_helpSeen`(Set,实例级,不跨实例持久化,sys_skip 每实例一次同款口径)按**等待点**键控(ONAIR/INTRO 按 nodeId、BRIDGE 整段、ENDING 按结局、菜单整段);`_helpSpokenOnce`:同键第 1 次全量口播,第 2 次起 `vibrate('beat')` + nudge earcon(复用统一 8 音词表零新增;guide 无公开单发 earcon API,经 `_playEarcon` 直用,`_startRing` 直用引擎总线同款先例;guide=off 时只震)。状态句照播(复述状态=合法帮助,P1 先例);新等待点首滑仍全量口令,非全局静默 | ✅ 同一等待点第 2 次上滑不重播 sys_help(ONAIR/ENDING 两态);✅ 状态句照播(prog/rep 各 2 次);✅ beat 轻震标记;✅ nudge earcon;✅ 新等待点(z1_a)首滑仍全量口令 |
|
||||
| G2 rep_low warning 震 | R1 P3-3 遗留。原实现 `enterBridge` 跨档分支 `vibrate('warning')` **实际不可达**(rep 唯一减分组合 p1右+p2右 从 0→-1 不跨档,`lastAnnouncedTier` 初值即 low)。修:`_tierCue()` 挂在**全部 rep_low 播报位**——RING/ONAIR/BRIDGE/ENDING 四处上滑复听,rep_low 整句出口同时手腕有感(BRIDGE 跨档分支保留不动) | ✅ RING 上滑复听 rep_low 附 warning 震(live 局 B t=198.5/497.5 证据位);✅ ONAIR 上滑同款;✅ ENDING 上滑同款 |
|
||||
| G3 k1_a/k1_b male 回退 | **核查结论:回退正常,非静默,不修。** k1_a/k1_b 为糖糖 NPC 平铺组资产(设计即单音色 Vivian 童声、不做双性别,§5.3);male 设置下引擎候选链 `voice/male/k1_a.{ogg,m4a}`(404,符合预期)→ `voice/k1_a.ogg`(200)命中平铺版播出(web-engine-api.md voice 路径解析)。**文档注记**:live 局 B 观测的「同通电话声线跳变」实为主播声部(随 settings.voice 换声)与糖糖童声(恒定)在同通内交替,属「电话音质感」设计使然;不补双性别资产(违反 NPC ≤5 音色约束与 §5.3 设计) | ✅ male 先尝试性别目录 male/k1_a、k1_b(404 属设计);✅ 平铺版播出(voicePlays 各 1);✅ 零「资产缺失」console.error(真静默则修——实测无需修) |
|
||||
| G4 空点确认轻震 | R1 P3-1 / R2 P3-4 遗留。不可跳句(p* 首播 / F5 尾句 / F4 锁)上的单击「点了但没选上」,gesture 层确认震 [20] 游戏侧无法撤销(engine/gesture.js 不在本轮改动清单)——游戏层补一记最轻 beat [8] 形成可区分签名(20→8 连击 ≠ 真确认的单记 20),消解「像点上了」误导;落点 `_onStoryGesture` / `_onEndingGesture` 两处 tap 屏蔽分支 | ✅ F4 锁内单击 beat 震;✅ F5 尾句单击 beat 震(「p9 后空点」证据位);✅ p* 不可跳句单击 beat 震(R1 P3-1 证据位) |
|
||||
| G5 显式规则 | 纯登记 + 断言,无代码改动(F4/F5/V1 现有实现即规则本体);规则语句见上节。新增断言锁「锁不随复播重新武装」(复播可即掐的反向面:保护不得扩大化) | ✅ ASK 恢复首句锁内单击不跳(例外);✅ 复播(关菜单局面复述)首句单击照常跳过;✅ 链末关键句首播不可跳(F5 引用);✅ p* 首播单击不跳(引用);(F4/F4b/F5/F5b/V1 既有断言为规则其余各半) |
|
||||
| G6 状态链重排 | P1 两次建议、纯排序改动 → 本轮做。`_withHelp()` 把帮助句接在状态链尾:「当前通号 → 口碑 → 帮助」。ONAIR/INTRO(有状态时 prog → rep → sys_help)、BRIDGE(下一通 prog → rep → sys_help)、ENDING(结局主句 → rep → sys_help);RING 本就状态在前且无帮助句(§2.3 RING 行),天然满足;MENU 链无通号/口碑状态句,G6 不适用(仅 G1 去重,帮助保持在前)。§2.3 表内「帮助+状态」措辞由本节登记更新(状态在前),正文不改 | ✅ ONAIR 顺序 prog_c1 → rep_low → sys_help;✅ BRIDGE 顺序 prog_c2 → rep_mid → sys_help(原断言改写);✅ ENDING 顺序 e4_a → rep_low → sys_help;✅ 中断复述 ONAIR 顺序 prog_c3 → rep_mid → sys_help(原断言改写) |
|
||||
|
||||
### 顺带补的 SA3 音效接线断言
|
||||
|
||||
主路径补 `sfx/onair_sting`(开场台标)/`sfx/line_drop`(幕间挂断)/`sfx/tape_static`(p9 直面)
|
||||
接线计数断言(arg_muffled ×2 / brake_screech / phone_ring 已有);静态审计
|
||||
`STABLE_AUDIO_PENDING` 注释更新为「SA3 12 件已全部补产,清单降级为守卫」。
|
||||
|
||||
### 观察项(按裁定不动代码)
|
||||
|
||||
- 复播晚点 +7.6s 一次性事件(live P3-3):一次性观测,未加断言盯防(避免为仪器怪癖加约束)。
|
||||
- mid-prompt 生效掐选项句尾(live P3-6):设计备注维持,G5 规则已按现状登记。
|
||||
- harness 丢 tap 仪器怪癖(live P3-5):记入 R3 协议(tap 后 listen 一次确认再重发),非游戏侧。
|
||||
|
||||
### 遗留
|
||||
|
||||
- 无新增遗留。G1 去重集合为实例级(重进游戏首滑仍是完整口令)——如 R3 复评希望跨实例
|
||||
记忆(localStorage 持久化「已听过口令」),列 v2 候选,本轮不加(保持与 sys_skip 每实例
|
||||
一次同口径,避免老玩家重进被静默)。
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
> - male instruct 常量:`低沉醇厚的男声,像探窟向导,沉稳有力`
|
||||
> - 两常量全表统一(含教学/战斗/结算),禁止句级变体。
|
||||
> - 数字规避:层数(7 句)/血量(4 档)/金币(4 档)/面朝(4 句)/威胁(4 句)/战利(3 档)/死因(3 档)/元进度(3 档)全部分档整句,无运行时拼接。
|
||||
> - 多音字自查:全表无「血」「重(chóng/zhòng 歧义句)」「爪」「挨」「壳」「栅」;「重听」一律写「重新听」;「重新」为规范 sanctioned 常用词(sys_menu_help / sys_menu_restart)保留。「回声回来越快」已去掉助词「得」。余留风险 2 处已标注:`btl_bat` 的「蝠」(读 fú,试听异常则整句改「盲眼蝙蝠扑了过来」);`unlock_potion` 的「行囊」(xíng náng 固定词,试听确认)。
|
||||
> - 多音字自查:全表无「血」「重(chóng/zhòng 歧义句)」「爪」「挨」「壳」「栅」;「重听」一律写「重新听」;「重新」为规范 sanctioned 常用词(sys_menu_help / sys_menu_restart)保留。「回声回来越快」已去掉助词「得」。余留风险 2 处已标注:`btl_bat` 的「蝠」(读 fú,试听异常则整句改「盲眼蝙蝠扑了过来」);`unlock_potion` 的「行囊」(xíng náng 固定词,试听确认)。R3 新句自查:`gold_some`(带回来一点,不多——无多音字风险);`tut_flee_hold`(想逃跑,按住别松手——无风险)。
|
||||
> - 向导/卡关通道句(gd_*、stair_*、nav_*):trigger 见表;接线纪律按 14 号文档——watchdog/纠错句 idle-only、onceKey 同局限次、向导插播一律 queue:true;开发轮次须将本表 gd_* 条目登记进 14 号文档增补。
|
||||
> - 管线:`tools/gen_voice_dual.py` 照录(--game dungeon);生成后 `--convert` 落盘 + `tools/check_all_assets.py` 终检(双格式配对、双性别集合一致)。
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
| `sys_continue_ask` | 检测到探窟记录。单击继续,右滑重新开始。 | 有存档进游戏(TITLE) |
|
||||
| `sys_new_run` | 新的探窟,开始了。 | 新周目开始 |
|
||||
|
||||
## T 组 · 教学演练 DRILL(旁白 ×19)
|
||||
## T 组 · 教学演练 DRILL(旁白 ×20)
|
||||
|
||||
| id | 台词全文 | 触发/语境 |
|
||||
|---|---|---|
|
||||
@@ -38,12 +38,13 @@
|
||||
| `tut_parry_miss` | 没挡住也别怕,它伤不到你。 | D8 格挡失败 |
|
||||
| `tut_attack` | 现在单击,挥拳打它。 | D8 你的回合 |
|
||||
| `tut_kill` | 打中了,就是这样。 | D8 击杀 |
|
||||
| `tut_flee_hold` | 想逃跑,按住别松手。 | R3:战斗长按未满 900ms 松手(取消逃跑)时的区分提示,每场 1 次 |
|
||||
| `tut_stairs` | 铁器的回声,就是下潜的楼梯。 | D9 |
|
||||
| `tut_stairs_on` | 楼梯就在脚下。单击,下潜。 | 首次踏上楼梯格 |
|
||||
| `tut_done` | 教学完了。地窟很深,小心走。 | DRILL 完成 |
|
||||
| `tut_skip` | 已跳过教学。单击脉冲,先听听四周。 | 下滑跳过教学 |
|
||||
|
||||
## S 组 · 系统/菜单/状态(旁白 ×35)
|
||||
## S 组 · 系统/菜单/状态(旁白 ×36)
|
||||
|
||||
| id | 台词全文 | 触发/语境 |
|
||||
|---|---|---|
|
||||
@@ -67,7 +68,8 @@
|
||||
| `st_hp_2` | 你受了点伤。 | 50~75% |
|
||||
| `st_hp_3` | 你伤势不轻。 | 25~50% |
|
||||
| `st_hp_4` | 你命悬一线。 | ≤25%(danger earcon + warning 震,降档才播) |
|
||||
| `st_gold_1` | 口袋空空。 | 元进度总金币 <50 |
|
||||
| `st_gold_1` | 口袋空空。 | 元进度总金币 =0(R3 起 band0 专用:真的一枚没有) |
|
||||
| `gold_some` | 带回来一点,不多。 | R3 E1-2:金币档 1(0<金<50)真话句——上滑状态链 / SETTLE / TITLE 三处共用(修「捡到金币→口袋空空」谎报) |
|
||||
| `st_gold_2` | 有些积蓄。 | 50~200 |
|
||||
| `st_gold_3` | 收获可观。 | 200~600 |
|
||||
| `st_gold_4` | 腰包鼓鼓。 | >600 |
|
||||
@@ -80,7 +82,7 @@
|
||||
| `st_threat_right` | 右边有脚步声。 | 右侧 5 格内有怪 |
|
||||
| `st_threat_both` | 两边都有动静。 | 两侧皆有 |
|
||||
| `st_best_1` | 你还没到过第三层。 | TITLE 元进度·最深层数档 1 |
|
||||
| `st_best_2` | 你到过中层。 | 档 2(最深 3-5 层) |
|
||||
| `st_best_2` | 你最远到过中层。 | 档 2(最深 3-5 层;R3 措辞加「最远」——live P3:防误读为"本局到过",已重录) |
|
||||
| `st_best_3` | 你到过最深层。 | 档 3(最深 ≥6 层) |
|
||||
|
||||
## E 组 · 探索事件(旁白 ×9)
|
||||
@@ -172,8 +174,8 @@
|
||||
|
||||
---
|
||||
|
||||
**合计:125 句 ×2 性别 = 250 条音频**(×2 格式 = 500 文件;无 NPC 平铺件)。死亡结算链 =
|
||||
`die_intro → die_cause_X → die_adv_Y → st_floor_N(复用)→ meta_gold_X → settle_stronger → settle_again`;
|
||||
通关链 = `settle_win_1 → settle_win_2 → meta_gold_X → unlock 段 → settle_again`;
|
||||
上滑局面复述链 = `st_floor_N → st_hp_X → st_gold_X → st_face_X → st_threat_X`。
|
||||
**合计:127 句 ×2 性别 = 254 条音频**(×2 格式 = 508 文件;无 NPC 平铺件。R3:125 + `gold_some` + `tut_flee_hold`;`st_best_2` 措辞重录不加句)。
|
||||
死亡结算链 = `die_intro → die_cause_X → die_adv_Y → st_floor_N(复用)→ meta_gold_X(band1 且金>0 时为 gold_some)→ settle_stronger → settle_again`;
|
||||
通关链 = `settle_win_1 → settle_win_2 → meta_gold_X(同上)→ unlock 段 → settle_again`;
|
||||
上滑局面复述链 = `st_floor_N → st_hp_X → st_gold_X(band1 且金>0 时为 gold_some)→ st_face_X → st_threat_X`。
|
||||
主设计触发逻辑对照 [16-dungeon.md](16-dungeon.md) §4-§11;资产规模核对见其 §9。
|
||||
|
||||
@@ -575,3 +575,105 @@ choice 签名本作不使用(无抉择态;菜单是 menu)。菜单回绕
|
||||
- 场景 9:L3 带路从「整段先东西后南北 + 每步必播」改为「最短路首步 + 改向必播/同向 1.5s 节流」
|
||||
(§10.3 L3 口径的听感与保险丝友好修订)。
|
||||
- 台词/资产表:无新增 voice;新增 sfx `amb_cave`、`turn_tick`(SYN,双格式,QC 数字见上)。
|
||||
|
||||
### R3 修复回归(2026-09-02,E0-1/E0-2/E1-1/E1-2 收口轮)
|
||||
|
||||
> 证据源:research/new8/dungeon/round2/(synthesis 裁定 + live-player + p1/p2/p3/p4)。
|
||||
> 本轮**引擎零改动**(E0-1 看门狗改造全部在游戏层);radio 并行改动中,回归时全绿。
|
||||
> 回归:8 套 playtest + guide.test 全绿,dungeon 1610 → **1642** 断言(escape 140 / radio 246 /
|
||||
> rhythm 141 / rpg 188 / simon 132 / space 155 / storyline 82 / guide 122,0 失败)。
|
||||
|
||||
#### E0-1 看门狗饿死(P0,四票共识)
|
||||
|
||||
- **根因**:`_stuck.lastAct` 按 §10.3「任何有效手势重置」口径单轨计时——「一直在动手的迷路者」
|
||||
(乱按/无效手势)永远攒不满 60s,暗示→明示→带路三级链零触发。live 实证:压力局 253 对 earcon、
|
||||
最长 2223s 无语音窗、0 句提示;P1 结论「『每次手势后重挂』的口径恰好被乱按永久饿死」。
|
||||
- **修(双轨制)**:
|
||||
- ① **无操作轨**(§10.3 原样保留,仅探索态生效):任何有效手势重置,60/120/180s。
|
||||
- ② **无进展轨**(新增):只由**状态推进**重置(楼层/格位置/战斗回合/拾取,`_progressTrack()`,
|
||||
挂点在 `_walkStep` 移动、`_playerTurn` 回合推进、`_progress()` 事件与各状态进入点),30/60/90s
|
||||
三级升级:**earcon**(复用 `sfx/turn_tick`,不占台词通道、不排队)→ **短句**(`stair_hint_a/b`)→
|
||||
**导航接管**(`_navRouteVoices()` 最短路首步方向 + 楼梯指向,进入导航模式每步校正、60s 周期重报)。
|
||||
- 两轨短句内容同级(无操作轨 L1 = 无进展轨 L2)交叉登记防重复播;明示级 `stair_dir_*` 只由无操作轨
|
||||
兑现登记。站立不动(两轨同时走时)经无进展轨 30/60/90s 即升级——比 §10.3 的 180s 更早拿到带路,
|
||||
两轨并行取先到;§10.3 的 60/120/180 口径在无操作轨原样保留。
|
||||
- **断言(场景 13A/13B)**:`E0-1: 乱按 96s 全程零位移(无操作轨持续被手势重置)`、
|
||||
`E0-1: 无进展 30s 级 → earcon(复用合成回执音,乱按饿不死)`、`E0-1: 无进展 60s 级 → 短句 stair_hint_a`、
|
||||
`E0-1: 无进展 90s 级 → 导航接管(播最短路首步方向)`、`E0-1: 接管后进入导航模式`、
|
||||
`E0-1: 接管首步方向必可通行(楼梯指向,不指墙)`、`E0-1: 乱按 96s 语音总量有上界(≤4)`、
|
||||
`E0-1: 有真实进展(格位置持续推进)零卡关语音零 earcon(不误伤正常玩家)`。
|
||||
|
||||
#### E0-2 跳教学路径密度回归(P0,P3 抓获)
|
||||
|
||||
- **根因**:压力局 t=52.5 起困在教学 D9(tap=脉冲,零位移零步骤推进)39 分钟——D9 看门狗 30s 升级句
|
||||
同样被「每次手势重挂」饿死;skip 后再 79 分钟零遭遇零指向。R1 乱按局 75s 即滚出教学的逃生口在 R2
|
||||
形同虚设(2403s)。
|
||||
- **修**:① 教学态共享无进展轨(`_stuckArm` 5s 轮询扩到 DRILL;`_drillEnter` 步骤推进/格位置/战斗回合
|
||||
均重置):30s earcon → 60s 短句(仅 D9 给 `stair_hint_a`——教学句不重播 §10.2,非寻路步骤无方向话
|
||||
可给、短句级跳过登记)→ **90s 教学接管 = `_drillSkip()` 自动滚出教学**(播 `tut_skip`、drillDone 入账、
|
||||
落回探索态由导航链接手),恢复 R1「乱按 ~75s 出教学」口径并落在 P3 要求的 90-120s 内;做对了
|
||||
(步骤推进/走动)永不误触发。② 密度保底对跳教学局本就全路径生效(`_fillMainPathDensity` 在
|
||||
`_tryGenFloor` 内无条件执行),本轮补上「跳教学种子局实测 `_floor`」的直证断言;skip 后进探索即享
|
||||
E0-1 导航接管。
|
||||
- **断言(场景 13C/13D)**:`E0-2: 跳教学种子局主路径密度不变式(最长真空 ≤12 格)`、
|
||||
`E0-2: 跳教学后 Ns 内必有指向语音(≤120s;R2 压力局 skip 后 79 分钟零指向)`、
|
||||
`E0-2: 教学乱按零进展 ≤95s 内自动滚出教学(R2 压力局 2403s)`、`E0-2: 教学乱按 30s 级 earcon 先到`、
|
||||
`E0-2: D9 乱按 60s 级给方向话 stair_hint_a(看门狗长嘴)`、`E0-2: 接管播 tut_skip`。
|
||||
|
||||
#### E1-1 到达即报(P1,live)
|
||||
|
||||
- **根因**:站楼梯格 tap 被下潜模态截走(补测局 t=1288.7 实演),「铁器=楼梯」贴身回声只能靠相邻格
|
||||
脉冲兑现,教学 D9 承诺在输入层不可达(本局两次到站都靠 tut_stairs_on 而非铁器音找到楼梯)。
|
||||
- **修(产品裁定「到达即报」)**:`_onStairCell` 踏格瞬间自动播贴身铁器回声(`echo_1` 即刻 +
|
||||
`mat_stair` +120ms,编码同脉冲贴身档)+ 既有提示句(每层首达 `tut_stairs_on` / 窟主未清
|
||||
`evt_stairs_lock`)。**不占输入通道**:单击仍是下潜确认,脉冲/其他手势语义零变化。
|
||||
- **断言**:场景 2 `R3 E1-1 到达即报:踩上楼梯格瞬间自动播贴身铁器回声(echo_1+mat_stair,全程零玩家脉冲)`
|
||||
+ `R3 E1-1: 到达即报不占输入通道——tap 仍是下潜确认(照常下潜)`;场景 13E
|
||||
`E1-1: 踏上(被锁的)楼梯格自动播贴身铁器回声` + `E1-1: 到达置位 _onStairs` +
|
||||
`E1-1: 窟主未清 → 到达即报铁器 + evt_stairs_lock`。
|
||||
|
||||
#### E1-2 band1 档位账目(P1,P2/P4 共识)
|
||||
|
||||
- **根因**:`_goldBand` 把 0<金<50 与 =0 同播「口袋空空」/「这趟没带回什么」——教学拾取(蝠 3 金、
|
||||
堆 10-30 金)后即谎报(P2:49 秒自打脸,其后 6600s 里 27 次「口袋空空」)。
|
||||
- **修**:新录 band1 真话句 `gold_some`「带回来一点,不多。」(8 字,多音字自查无风险);**=0 保留
|
||||
`st_gold_1`/`meta_gold_1` 空手措辞(band0 口径不变)**。新增 `_stGoldVoice()`/`_metaGoldVoice()`
|
||||
统一出口:上滑状态链 / SETTLE / TITLE 三处共用同一条(管线单条、账本仍同一 `_goldBand`)。
|
||||
- **管线**:16-dungeon-voice-ids.md 与 gen_voice_dual.py 两表一致 → `source env.d/tts.sh` +
|
||||
`flock .gpu.lock .venv-tts/bin/python tools/gen_voice_dual.py --game dungeon --gender both
|
||||
--only gold_some,tut_flee_hold,st_best_2` 单批重录(gold_some m 1.84s / f 2.08s)→ `--convert`
|
||||
(dungeon 254 文件 ogg+m4a)→ `tools/extract_voice_text.py` 刷新 voice_text.json(8 游戏 706 句)→
|
||||
`tools/check_all_assets.py` 全过(dungeon 307+307 双格式、双性别各 127、零解码失败)。
|
||||
- **断言**:场景 4 `上滑链前 4 段有序(…gold_some band1 真话…)`(教学蝠 3 金实证)、场景 13E
|
||||
`E1-2: 上滑金币档 0<金<50 播 gold_some(不再谎报「口袋空空」)`、
|
||||
`E1-2: SETTLE band1(0<金<50)同步播 gold_some`、`E1-2: 金=0 保留 meta_gold_1 空手措辞`;
|
||||
场景 6a 死亡链序第 5 段与金币档断言改 gold_some。
|
||||
|
||||
#### 打磨(P2/P3 顺手带)
|
||||
|
||||
- **逃跑长按 ≥900ms**:`_fleeArm()`/`_battleFleeCancel()`——战斗态 longpress(引擎 450ms 判定)先武装,
|
||||
按满 `FLEE_HOLD_MS=900` 才真正 `_flee()`;未满松手 = 取消 + error 震 + 每场 1 句区分提示
|
||||
`tut_flee_hold`「想逃跑,按住别松手。」(新录)。探索态 450ms 走步不变;<450ms tap 优先判定不变
|
||||
(引擎层)。断言:场景 5 `战斗长按 ~650ms(<900ms)松手 = 不逃(R3 打磨)`、
|
||||
`短长按取消伴随 error 震`、`取消播区分提示 tut_flee_hold(每场 1 次)`;原「长按逃跑必成挨一下」
|
||||
「Boss 拒绝」断言原样通过(按住不放的路径不变,harness 短步进 longpress 配对不受影响)。
|
||||
- **st_best_2 措辞**:「你到过中层。」→「你最远到过中层。」(live P3:bestFloor 是前世纪录,防误读为
|
||||
「本局到过」;同 id 重录)。st_floor 序列经复核无缺陷(settle 链报深度正是 P3 表扬项),不动。
|
||||
- **台词账目**:125 → **127 句**(+`gold_some` +`tut_flee_hold`;`st_best_2` 重录不加句);
|
||||
playtest 资产校验同步改 127。
|
||||
|
||||
#### R3 老断言口径变更登记
|
||||
|
||||
- 场景 4 上滑链第 3 段:`st_gold_1` → `gold_some`(教学蝠 3 金落 band1 真话档)。
|
||||
- 场景 6a 死亡链序与金币档断言:`meta_gold_1` → `gold_some`(settle 金 40 = band1 且 >0)。
|
||||
- 资产校验:voice 台词总数 125 → 127。
|
||||
- 其余全部原样通过:卡关三级 60/120/180(场景 9 全链)、导航逐步校正/节流/nav_done、进展重置分级、
|
||||
队列礼仪、探索 60s 语音上界、呼吸层 20s 节奏、guide=off 30s 静默(earcon 属 sfx 内容层不违约)、
|
||||
E3/E4、屏蔽兜底、D0-D9 教学全链。
|
||||
|
||||
#### 遗留(本轮未动,沿用 R3 synthesis 悬置项)
|
||||
|
||||
- 8s nudge「earcon+首句短词」半可验改造(synthesis §2 P2/P3,未列入本轮修复清单)与 amb_cave 听感
|
||||
人测(roadmap §4)。
|
||||
- 教学跳过标志跨会话不一致、探针通道隔离:harness/仪器侧。
|
||||
- P3 建议「上滑加第 6 句最近铁器方位」「撞墙归因句」:未列入本轮清单,留终审裁定。
|
||||
|
||||
Reference in New Issue
Block a user