Files
SoundGame/web/hunt
xsl d78df35b5c fix(hunt): v2 九修 S1-S9 落地——10 人并发模拟迭代裁定(同阵容复测:去留 6/10→10/10)
研究闭环:v1 三轮 28 局四死因(失衡/社交真空/交互摩擦/观光羞辱)→ 四视角分析 →
synthesis S1-S9 裁定 → 实施 → 同 10 人配置复测两轮 20 局。依据 research/hunt-sim/
(synthesis.md / metrics-v2.md / report.md),设计登记 23-hunt.md §16。

服务端 hunt-room.js:
- S5 协作人声包:真人座位角色接线(杀熊/三连杀/旋风斩≥3 播角色句、greet 全座位);
  满编真人房呼喊 2.5s 无 bot 应答 → 邻座角色代答 help_ack;喊话预算 10s 窗 2→3
- S7 难度重构:waveCounts 4 人房 ×4/3;alignPincers 第 3-5 波齐压拍(跨座位同种类
  同秒进内圈,种子确定性保持);mobYielded bot 对人类防区怪让位 2s(只约束 bot,
  不拦真人避免挥空真话说谎);gradeForEx 双轴评级(S=耐久≥9 且 ≥2 人各 6 杀,
  单人带飞局上限 A)

客户端 game.js:
- S1 WAVE 下滑恒出击(无怪=空挥真话),菜单收窄到波间休整窗(E3 修订)——
  v1 误触菜单单人单局最多 14 次清零
- S2 冷却首拦才震 + 就绪 beat 轻叮(v1 全场 666 次乱滑连震)
- S3 0 杀不播 kill_band0(「你还没开张」下架;复测 P08 0杀→12杀)
- S4 看门狗重定义:本波出过手一级语音不触发、语音闲置每局 ≤1、一级降纯震
- S5③ help_call/help_ack 永不超时丢弃
- S6 后半平面 loop 低通 750Hz 第二线索(N/S 判读 63/69%→75/81%)
- S8 教学作答步(T1-T3)下滑不再误跳
- S9 状态链按变化播(「固若金汤」复读归零)

测试同步:hunt-sim A1/A2/A12 断言更新(真人 greet/波次缩放/预算 3)、
playtest Block 3 按 S1 新语义改写(战斗中下滑=空挥 + 波间菜单)

回归:hunt-sim 16/16 + playtest 213 + guide 132 + engine-voice 19 全绿;
balance-scan:挂机局 5/8 落 C/失守带(v1 恒满血)、optimal 单人带飞封顶 A
遗留:营地零损耗未破(18/20 局余10)——v3 头号,参数方案 report.md §5
2026-09-19 11:06:18 +08:00
..

围猎(HUNT · Night Hunt)

2-4 人实时联机纯音频协作守卫。夜幕降临,野兽从四面八方围上来——你和队友 背背守住营地篝火,听声音的方向滑过去就是一刀,撑过五波,天亮就赢。

本作是"纯音频 MMORPG"路线的第一阶段最小验证切片:实时同步(零依赖 WebSocket + 服务端权威)、音频信道拥挤控制(R1-R8)、空间音频协作 (方位=声像 pan + 防区分工)。设计全文见 docs/design/23-hunt.md。

玩法

  • 圆形猎场,猎人位于营地中心篝火旁。野兽从 8 个罗盘方位的边缘逼近 (全程 8-12 秒):声像就是小地图——狼的碎步、熊的重步从它所在的 方向传来,越近越响;后半平面(身后)的声音会发闷(音量 ×0.6)。
  • 突入中心 = 营地耐久受损(饿狼 -1,暴熊 -2;初始 10,全队共享)。 耐久归零 = 营地失守(立即终局);撑过 5 波 = 胜利结算(评级 S~C)。
  • 同刻最多只有最近的 3 只野兽的脚步可闻(听觉视野裁剪);6 秒外的 野兽只有生成时的一声呼啸。威胁播报只说近处有几只,不报方位—— 方位永远靠耳朵听声像。
  • 空位由 bot 猎手补齐(开局至少 3 猎人):阿岩(憨厚男声)、小筝(轻快 女声)、老周(沙哑老年男声)。bot 的喊话从它防区的方向传来;断线 30 秒 内重连可回槽,超时由老猎手(bot)顶上。

手势

手势 战斗态(WAVE)
四向滑 出击:滑向映射 90° 弧(上→北弧、右→东弧、下→南弧、左→西弧),击杀弧内贴近(≤4 秒)最近一只;冷却 2.5 秒。上/下滑弧内无可打怪时:上滑=状态链、下滑=菜单(三件套保留的语境折中)
单击 呼喊支援:队友收到你防区方位的空间化喊话 + 警告震动,空闲 bot 朝你侧补位 10 秒;节流 5 秒
双击 旋风斩就绪 → 放出(清全场内圈,冷却 8 秒,冷却完成有语音提示);冷却中 → 重新听威胁播报
上滑 状态链:营地耐久档 → 波次档 → 在场猎人数 → 自己击杀档
下滑 菜单(不暂停——联机实时,菜单开着怪物照走)
长按 旁白快进(引擎内置)

标题/大厅/结算遵循全局约定:单击=快速匹配/立即开局/再来一局,双击=重听, 上滑=个人最佳/在场猎人/最佳段,下滑=菜单。菜单固定 3 项:回到猎场 / 重新听帮助 / 退出房间回大厅(单击循环、双击确认、下滑关闭)。

教学(首局)

首次进入自动开教学房(单人 + 2 bot,教学波零惩罚):T0 规则总述 → T1 朝声音方向滑杀教学狼 → T2 单击呼喊听 bot 应答 → T3 双击旋风斩 → T4 上滑状态链;任意时刻下滑跳过。教学完同场直接接续第 1 波。

运行

bash web/serve.sh        # Node 零依赖服务器(静态 + REST + /ws/hunt 同端口)
# 浏览器打开 http://<局域网地址>:8000/hunt/ ,2-4 人同 WiFi 各开一页即同局

测试

tools/node/bin/node web/hunt/test/playtest.mjs
# 无头试玩:虚拟时钟 + mock 浏览器环境 + 内存回路 WS mock(按 23 §6 协议
# 注入 joined/ev/snap/err),覆盖 13 号文档 §24 客户端侧全部断言