fixed # 修复部分天书乱斗的问题

This commit is contained in:
2026-10-12 15:10:31 +08:00
parent 0205bbebc6
commit 279f2d9b0a
19 changed files with 888 additions and 103 deletions
@@ -0,0 +1,79 @@
# 青青子衿 BOSS 官网对照核实
核实日期:2026-10-12。依据用户指定的[三国杀官网公告](https://www.sanguosha.com/news/20210916_6804_0316),网页显示发布时间为 2021-09-23。这里只核实该公告,不推定它代表当前官方客户端规则。
更新:用户已逐项确认修复范围。现已修正狼顾、妄尊、夺玺、引雷、张角体力,以及下述范围差异全部条目,并同步描述和提示。远虑阴间虚拟伤害、无双/神戟/战甲增强按用户决定保留,远虑文本已明确“视为”。下文“当前源码”及“本轮没有修改”是修复前核实记录;最终验收结果见 `../comet/changes/shuying-skill-tianshu-review/verification.md`。
难度映射:官网休闲 → 术樱普通(normal);官网普通 → 术樱困难(hard);官网困难 → 术樱阴间(nightmare)。范围为六名 BOSS、22 个不同技能,排除梦三及网页的虚拟偶像技能。
本轮没有修改技能源码、配置、测试或 Comet 正式验收文件。上轮 Comet 的 60 次通过是已确认修复范围的验收,不能证明所有技能与本公告相符。
## 已确认的主要差异
| 技能 | 公告基准(按术樱难度表达) | 当前源码及描述 | 位置 |
| --- | --- | --- | --- |
| 狼顾 | 阴间判定接受黑色 | 所有难度仅接受黑桃;只有黑桃静态描述,未注册动态描述 | `skill.js:263`、`translate.js:16` |
| 远虑 | 困难、阴间均为真实伤害 | 阴间额外传入 `unreal`;动态描述多出“过”字 | `skill.js:296`、`dynamicTranslate.js:24` |
| 无双 | 无增伤条款 | 主技能另外增加未响应时伤害 +1,普通/困难每回合 1 次、阴间 2 次;描述包含此增强 | `skill.js:309`、`dynamicTranslate.js:32` |
| 神戟 | 各难度额外摸牌均为 2;困难额外杀为 1 | 困难额外摸 3、额外杀 2;阴间额外摸 4。动态描述同样采用这些数值 | `skill.js:448`、`skill.js:459`、`dynamicTranslate.js:37` |
| 战甲 | 阴间仍摸 2 | 阴间摸 3,动态描述也写 3 | `skill.js:533`、`dynamicTranslate.js:54` |
| 妄尊 | 阴间反击门槛为造成过伤害 | 所有难度均要求累计伤害 >1;阴间造成恰好 1 点时不反击。动态描述同样未切换门槛 | `skill.js:769`、`skill.js:800`、`dynamicTranslate.js:78` |
| 夺玺 | 阴间只由自己摸 2 | 阴间让自己与摸牌角色各摸 2;提示、动态描述也如此 | `skill.js:826`、`skill.js:862`、`dynamicTranslate.js:84` |
| 引雷 | 困难仅回合外;阴间不限回合 | 源码在所有难度排除自己的回合;静态描述又没有回合外条件,没有动态描述 | `skill.js:1158`、`translate.js:54` |
这些是与指定公告的确定差异。是否保留包内增强属于产品决定,尤其无双;此前“允许再次增伤”的决定仍保留,本报告不据此擅自删除增强。
## 描述与实现还存在的范围差异
- **疑神**:描述与公告一致。源码 `skill.js:118–126` 使用可操作的 `gainPlayerCard` 选装备,未在代码中随机选装备;判定目标的困难分支随机选择的是有可获得装备的敌人。若按公告要求随机装备,需要更换选牌方式。
- **反馈**:描述保留逐点触发含义;源码 `skill.js:158–174` 每个 `damageEnd` 只获得一张牌,未按 `trigger.num` 逐点处理,且只接受敌方来源。引擎伤害流程对一次多点伤害只有一个 `damageEnd`。这些限制未体现在描述中。
- **狼顾**:除主要差异外,`skill.js:245、254` 把牌的原持有者限制为敌人;描述没有此限制。
- **暴虐**:描述数值上限 3/4/5 正确。`skill.js:613` 在满血时完全跳过技能,因此不会执行最后的失去体力;`skill.js:625` 也把可伤害角色限制为敌人,描述未写该限制。
- **雷击**:描述一致,`skill.js:1002–1005` 选人范围只含敌人。
- **谏征**:描述正确切换黑色杀的接管规则;`skill.js:1063、1070` 还要求使用者为敌人,且已有目标含非敌人,描述没有这两项条件。
上述阵营限制可能是包内 AI/模式适配,但这是推断,不能作为与公告一致的证明。
## 22 个技能的覆盖结果
“核心一致”仅表示本轮未发现公告主要条款或描述的明确差异,不等于真实游戏、联机或所有交互已验证。
| BOSS | 技能 | 核实结果 |
| --- | --- | --- |
| 曹操 | 奸雄 | 核心一致 |
| 曹操 | 凌霸 | 核心一致,阴间伤害切换正确 |
| 曹操 | 疑神 | 描述一致,随机选装备方式不符 |
| 司马懿 | 反馈 | 描述一致,逐点触发与来源范围不符 |
| 司马懿 | 鬼才 | 核心一致 |
| 司马懿 | 狼顾 | 阴间判定与描述不符,另有限制来源阵营 |
| 司马懿 | 远虑 | 阴间使用虚拟伤害,另有描述错字 |
| 吕布 | 马术 | 引用引擎标准技能,核心一致 |
| 吕布 | 无双 | 包内额外增伤,无公告依据 |
| 吕布 | 神戟 | 困难及阴间数值不符 |
| 吕布 | 战甲 | 阴间摸牌数不符 |
| 董卓 | 酒池 | 核心一致 |
| 董卓 | 肉林 | 核心一致 |
| 董卓 | 暴虐 | 描述及上限正确,满血触发及选人范围不符 |
| 董卓 | 驭布 | 困难黑桃、阴间黑色;描述与修复后实现一致 |
| 袁术 | 庸肆 | 核心条款及描述一致 |
| 袁术 | 妄尊 | 阴间反击条件不符 |
| 袁术 | 夺玺 | 阴间摸牌对象不符 |
| 张角 | 鬼道 | 核心一致 |
| 张角 | 雷击 | 描述一致,选人范围不符 |
| 张角 | 谏征 | 难度描述一致,额外阵营限制未写明 |
| 张角 | 引雷 | 困难描述缺条件,阴间实现多条件 |
## 顺带核实的难度配置
`tianshu/config.js:116–121` 中六名 BOSS 追加技能均从困难开始授予,与映射后的公告一致。起始手牌 6/8/10 一致。五名 BOSS 的体力 10/20/30 一致;张角公告为 8/16/24,当前原始体力 4 加共用模板 6/16/26,实际配置为 10/20/30。
张角相关位置:`pve/boss/sets/qingqingzijin/character.js:60`、`tianshu/config.js:56`、`tianshu/config.js:121`;体力生成链:`tianshu/extension.js:438–439`。
## 验证证据与限制
- 成功下载官方原始 HTML,逐表核对六名 BOSS 的三个难度;网页桌面版/移动版重复表格内容相同。
- 对现有真实模块进行临时定向调用:确认神戟三难度数值、阴间战甲摸 3、狼顾梅花失败、妄尊恰好 1 点不反击、夺玺两方各摸 2、远虑传入 `unreal`、引雷自己回合不触发、暴虐满血不触发。
- 引擎 `noname/library/element/content.js:11120` 在 `unreal` 时不扣体力,所以远虑差异影响实际体力,并非日志措辞差异。
- 驭布沿用当前候选的难度与多目标回归证据。本轮未重复执行整个修复套件,也未进行游戏或联机实测。
所有未列明完整路径的技能文件,均位于 `D:/Work/noname-shuying/pve/boss/sets/qingqingzijin/`。