round3: G1 gd_answer提前一小节(根因=排程压窗起点) + G2教学降难DDA + G3 count-in修复(根因=未重排调度队列) + G4 escape目标链 + G5 simon双击根治(重听改上滑,重录3句) + G6轮成功/破纪录 + G7 space方向呼喊 + 22语音文件 + guide93断言全绿

This commit is contained in:
SoundGame Dev
2026-08-31 01:40:51 +08:00
parent ec89629eb4
commit 9f8096377e
537 changed files with 1046 additions and 432 deletions
+15 -6
View File
@@ -31,11 +31,12 @@
* 语音 id 权威清单:docs/design/04-space-voice-ids.md(52 句双性别);
* 旧 num 拼接件、n_ 前缀件、intro1-4/hit1/hit2/gameover/restart 全部弃用。
*
* 向导层(docs/design/14-guide-layer.md + round2 synthesis F2.2/F6):对局第 1 次
* 受击(保护期外)在归因链播完后补指令式 gd_hit_hint、第 2 次补 gd_last_life
* (idle-only:挂在语音空闲点);警报音效 600ms 去重、danger 震 ≥400ms 去抖;
* 结算链换 _speakGuarded(资产缺失不卡结算 BGM);对局期长按快进豁免
* (setRateBoostEnabled);状态签名 earcon 与状态 BGM 同点。
* 向导层(docs/design/14-guide-layer.md + round2 synthesis F2.2/F6 + round3 G7):
* 对局第 1 次受击(保护期外)在归因链播完后补指令式 gd_hit_hint、第 2 次补
* gd_last_life(idle-only:挂在语音空闲点);警报音效 600ms 去重、danger 震
* ≥400ms 去抖;loud 警报档(撞击前 500ms)同窗播 dir_<dir> 超短方向呼喊
* (voice 层直达、全档位,G7);结算链换 _speakGuarded(资产缺失不卡结算 BGM);
* 对局期长按快进豁免(setRateBoostEnabled);状态签名 earcon 与状态 BGM 同点。
*/
import { Game } from '../engine/game.js';
import { Guide } from '../engine/guide.js';
@@ -461,7 +462,15 @@ export class SpaceGame extends Game {
if (this.obstacles.has(ob)) this._alarm(0.5);
});
this._after(impactAt - ALARM_LEAD_MS / 2 - now, () => {
if (this.obstacles.has(ob)) this._alarm(1);
if (this.obstacles.has(ob)) {
this._alarm(1);
// G7(round3):loud 档(撞击前 500ms)同窗超短方向呼喊 dir_<dir>——与
// 警报分属 voice/sfx 两通道,天然同时不互顶(引擎 duck 压 BGM 保证可闻),
// 噪音环境下方位不再只装在呼啸单通道(P3 round2 P0)。游戏反馈层全档位
// (gd_economy 先例);直达式播放不排队——呼喊必须赶在撞击前,宁可顶掉
// 里程/充能类短句,也不排到链尾迟到。
this.audio.play(`voice/dir_${ob.dir}`);
}
});
this._after(impactAt - now, () => this._resolve(ob));
}