二七王:修复出牌操作条/亮牌历史布局越界,补主牌统计条改名遗漏

- I1:Layers.js 群组 206 改名遗漏一处注释(亮牌信息条 → 主牌统计条),全仓复查确认无第二处
- I2:出牌操作条补「提示」项后 anchor:center 导致已有两项挤偏,改用 anchor:left 并反推
  anchorX=446,令「出牌」按钮回到参考图实测 x≈556(求解器验证:446/556/748)
- I3:HIST_FAN/MING_FAN 的 maxWidth 反推算错(旧注释「488」有误,实际总宽恒等于
  maxWidth=500),导致 RIGHT 座位整排超出画布 5px;收窄为 490 使三座位求解结果落在
  0-1280 内,订正注释与清单 §6.9c 对应文字
- M3:同步修正计划文档里遗留的旧名「亮牌信息条/亮牌条」
- M6:test_constants.js 补 items[].key 的三命名空间解析守卫(此前完全无守卫)
- M5/M7:订正 ACC_ROW_TEXT_GRID 与扣底按钮宽度的估值依据说明
- M1/M2:清单 §6.9 子节重新排序为 6.9a→6.9b→6.9c 并统一标题层级,修正脚注星号误渲染

client/tests/run.js 与 server/games/erqiwang/test/run.js 均全绿,精灵总数(380)/
布局节点数(83) 两个钉死断言未变。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-27 09:06:01 +08:00
co-authored by Claude Opus 5
parent 8f36b61620
commit 2b1dd0d947
7 changed files with 87 additions and 37 deletions
@@ -1441,7 +1441,9 @@ EOF
// 均落在框架保留段,与下列不冲突。
var EQW_Layers = EQW_Layers || {
TABLE_STATIC: 101, // 牌桌常驻:顶部信息条、玩家位附加标记、亮牌信息条、底栏
TABLE_STATIC: 101, // 牌桌常驻:顶部信息条、玩家位附加标记、主牌统计条、底栏
// ↑ 2026-08-27 改名「亮牌信息条」→「主牌统计条」:与 design §8.2 的「亮牌」同名异实,
// 见清单 §0.3 群组表下的修订说明
HAND: 102, // 自己手牌区(单排 / 埋牌双排)
TABLE_CARDS: 103, // 桌面牌:底牌区、三家已出牌区、埋牌底牌展示区
ACTION: 104, // 阶段操作区:叫分面板、选主/投降面板、埋牌/出牌操作条、倒计时
@@ -1460,7 +1462,7 @@ var EQW_Layers = EQW_Layers || {
- [ ] **Step 2: 写 `Groups.js`**
照清单 §0.3 群组表逐条录入(201–250),格式同上:每条一行注释说明用途。必须包含:
`201` 顶部信息条、`202/203/204` 左上家/右上家/自己的附加标记、`205` 底栏功能按钮组、`206` 亮牌信息条、`210` 自己手牌、`211` 底牌区、`212/213/214` 自己/左上家/右上家已出牌区、`215` 埋牌底牌区、`220` 叫分面板、`221` 选主/投降面板、`222` 埋牌操作条、`223` 出牌操作条、`224` 倒计时、`230` 桌面浮层、`240` 小局结算、`241` 大局总结算、`242` 出牌历史、`243` 明牌面板、`244` 冲关牌型叠加层(清单 §5.6a)、`250` 建房规则选项。
`201` 顶部信息条、`202/203/204` 左上家/右上家/自己的附加标记、`205` 底栏功能按钮组、`206` 主牌统计条(2026-08-27 由「亮牌信息条」改名,见清单 §0.3 群组表下的修订说明)、`210` 自己手牌、`211` 底牌区、`212/213/214` 自己/左上家/右上家已出牌区、`215` 埋牌底牌区、`220` 叫分面板、`221` 选主/投降面板、`222` 埋牌操作条、`223` 出牌操作条、`224` 倒计时、`230` 桌面浮层、`240` 小局结算、`241` 大局总结算、`242` 出牌历史、`243` 明牌面板、`244` 冲关牌型叠加层(清单 §5.6a)、`250` 建房规则选项。
- [ ] **Step 3: 写 `ImageResources.js`**
@@ -1603,8 +1605,8 @@ EQW_Sprites.PlayerMarkView = {
// ... SelfMark(群组 204)同理
};
// ... 其余 View 按清单 §5.1 续:亮牌条(群组 206,1030–1031)、
// 底栏(群组 205,1040–1055)
// ... 其余 View 按清单 §5.1 续:主牌统计条(群组 206,1030–1031,2026-08-27 由「亮牌条」
// 改名,见清单 §0.3 群组表下的修订说明)、底栏(群组 205,1040–1055)
```
清单 §5.1 里 `1110–1115 P_RIGHT_*`「结构同 202」是省略写法,**必须展开写全**:`P_RIGHT_BANKER:1110`、`P_RIGHT_ZHU_BG:1111`、`P_RIGHT_ZHU_TEXT:1112`、`P_RIGHT_PAIR_BG:1113`、`P_RIGHT_PAIR_TEXT:1114`、`P_RIGHT_STATUS_TEXT:1115`。
@@ -1949,7 +1951,7 @@ EQW_Layout.TEXT_STYLE = {
- [ ] **Step 2: 写 `Layout_Table.js`**
照清单 §6.5(顶部信息条、亮牌条、底栏、庄标、提示按钮组、平台语音/聊天钮坐标)与 §6.6(头像框 `bySeat`、庄印章、主N/对N 角标、状态文字、倒计时、提示气泡朝向)逐条录入。示例:
照清单 §6.5(顶部信息条、主牌统计条【2026-08-27 由「亮牌条」改名,见清单 §0.3 群组表下的修订说明】、底栏、庄标、提示按钮组、平台语音/聊天钮坐标)与 §6.6(头像框 `bySeat`、庄印章、主N/对N 角标、状态文字、倒计时、提示气泡朝向)逐条录入。示例:
```js
var EQW_Layout = EQW_Layout || {};