二七王:确立「余主公示」「底牌公示」术语,核查「亮牌」冲突
术语决策: - A 庄家手牌达门槛后公开数量/结构 → 仍叫「亮牌」(保持不变) - B 有人报无主后展示各家剩余主牌数与对数 → 新术语「余主公示」 - C 70 分坐庄摸底牌前向全场亮 8 张底牌 3 秒 → 新术语「底牌公示」 - 「亮主」确认为选主界面的标题文案、不是规则术语,三份文档均注明不得 用它指代任何规则 「亮牌」冲突核查结论:无同名不同义,但有三处字面相近而语义方向相反的 读错风险——亮牌 vs 明牌(一个给数量、一个给牌面,方向还相反)、亮牌 vs 亮主(只差一字且同在庄家阶段)、亮牌 vs「亮出底牌」。故在 design 术语表、 协议 §0.0b、前端清单 §0.0 各加一张四类「公开信息」对照表,一句话口诀: 「亮牌」「余主公示」只给数字,「明牌」「底牌公示」才给牌面。 design.md:术语表新增 亮牌 / 余主公示 / 明牌 / 底牌公示 四条定义 + 易混对照表;§4、§9、§12.1 正文启用新术语。 packet_protocol.md:新增 §0.0b 术语小节;seatlist 第 5 位、ancard3s、 baozhu 三处字段说明冠以对应术语。 前端清单:§0.0 补对照表,§2.5 改名为「自己的主牌统计 + 余主公示」。 另据新图 等待庄家选主.png 抽出一个通用部件「状态提示条」(§2.8): 深色半透条 + 居中白字,等待类(等待庄家选主…)与即时反馈类(强甩失败) 共用同一套精灵,只切位置预设与文案。原单列的 BAR_SHUAICUO 并入该部件。 新增 T-32(该图底牌仍摊着与 design §4 的先后顺序对不上,需确认)、 T-33(等待类文案清单待定)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+53
-13
@@ -6,7 +6,7 @@
|
||||
>
|
||||
> **权威源**:玩法规则以 `server/games/erqiwang/docs/design/design.md` 为准;下发字段以 `server/games/erqiwang/docs/protocol/packet_protocol.md` 为准;前端规范以 `docs/client/development-guide/` 为准。本文只做「规则/协议 → 界面资源」的映射,**不重新定义规则**。
|
||||
>
|
||||
> **参考图**:`./uiref/*.png`,共 15 张,设计分辨率 1280×720。
|
||||
> **参考图**:`./uiref/*.png`,共 16 张,设计分辨率 1280×720。
|
||||
|
||||
---
|
||||
|
||||
@@ -52,6 +52,21 @@
|
||||
|
||||
> ✅ `design.md` 与 `packet_protocol.md` **已同步此变更**(S-5 完成),协议字段名也已拆分为 `bottomcards` / `burycards`(S-4 完成)。
|
||||
|
||||
#### 四类「公开信息」——名字像、含义差很远
|
||||
|
||||
| 术语 | 谁公开给谁 | 给的是什么 | 触发 | 界面位置 | 字段 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| **亮牌** | 庄家 → 两个闲家 | **只有数量/结构** | 庄家埋牌后手牌达门槛(design §8.2) | **暂无**(T-30) | `liangpai` |
|
||||
| **余主公示** | 全体 → 全体 | **只有数量**(剩余主牌数、主对数) | 任一玩家报无主(design §9) | 他家头像下 `主N` `对N` 角标(§2.5) | `seatlist[seat][4]`、`baozhu` |
|
||||
| **明牌** | 他家 → 请求者 | **具体牌面** | 可查牌 + 无主,点按钮(design §9) | 遮罩面板(§1.7 D-6) | `mingpai.others[].zhucards` |
|
||||
| **底牌公示** | 桌面 → 所有玩家 | **具体牌面**(8 张底牌) | 70 分坐庄,摸底牌前 3 秒(design §4) | 复用底牌区翻牌(§1.4 D-2) | `ancard3s` + `bottomcards` |
|
||||
|
||||
一句话记:**「亮牌」「余主公示」只给数字,「明牌」「底牌公示」才给牌面**。
|
||||
|
||||
> **「亮主」不是术语**——它是**选主界面的标题文案**(庄家选主牌花色那一步,见 `亮主.png`),与上表四项都无关。文档与代码里不要拿它指代任何规则。
|
||||
>
|
||||
> 另:**自己**的主牌统计条(手牌上方 `x对 x主`,§2.5)**不属于上表任何一项**——那是本地统计、始终显示,不涉及"公开"。
|
||||
|
||||
---
|
||||
|
||||
### 0.1 设计基准与座位映射
|
||||
@@ -514,6 +529,10 @@ EQW_RoomOptions = {
|
||||
| **70 分坐庄** | **全场三人都能看到** |
|
||||
|
||||
因此**不需要单独的「公示」面板**,只是同一套翻牌表现的可见范围不同——精灵复用 §5.3 群组 211(底牌区),无需新增。
|
||||
|
||||
【图:等待庄家选主.png】即闲家视角下的底牌公示:中央 8 张底牌翻正面摊开,下方一条 `等待庄家选主` 状态提示条(见 §2.8)。
|
||||
|
||||
> ⚠️ **T-32**:该图里底牌**仍摊着**、同时提示「等待庄家选主」。但 design §4 的顺序是「公示 3 秒 → 庄家摸入手牌 → 选主」——按此,选主阶段底牌应已被庄家摸走、不该还摊在桌面。是 mock 把两个状态画在一起,还是 70 分局的底牌要一直摊到庄家选完主?需确认。
|
||||
- 上庄后统一更新:顶部信息条 `叫分` 列 = `grade`、角标 = `multiple`;`banker` 对应玩家位显示 **`庄` 印章**(含底栏自己位)。
|
||||
- 三处 `庄` 印章是三个独立精灵(左上 / 右上 / 底栏),按 `banker` 显隐其一。
|
||||
- **重连不重放**:协议明确 70 分的 3 秒亮牌是上庄时的一次性事件,`deskinfo` 重连**不重放**——前端不得在重连时补播。
|
||||
@@ -646,14 +665,14 @@ EQW_RoomOptions = {
|
||||
|
||||
**甩错提示(D-3 已定)** 【图:强甩失败.png】:
|
||||
|
||||
- 收到 `shuaicuo === 1` 时,在桌面中央弹一条**深色半透条**:**`强甩失败`**(白字,x≈462 y≈172 w≈363 h≈50)。
|
||||
- 收到 `shuaicuo === 1` 时,用**通用状态提示条**(§2.8)显示 **`强甩失败`**,取「即时反馈类」位置预设。
|
||||
- **不做收回动画**——甩出的牌不演"飞回手里",直接按服务端下发的 `cards`(那张被强制打出的最小主牌单张)落牌即可。
|
||||
- 提示条自动淡出,时长进配置。
|
||||
|
||||
**报无主(D-4 已定)**:
|
||||
**报无主 → 余主公示(D-4 已定)**:
|
||||
|
||||
- **不做全场提示**。报无主本身没有独立的提示表现。
|
||||
- 唯一的界面变化是:**他家的 `主N` / `对N` 角标出现**(服务端 `baozhu=1` 并整表刷新 `seatlist`,仅可查牌模式)。详见 §2.5。
|
||||
- 唯一的界面变化是**余主公示**生效:他家的 `主N` / `对N` 角标出现(服务端 `baozhu=1` 并整表刷新 `seatlist`,仅可查牌模式)。详见 §2.5。
|
||||
- 自己的主牌统计条**本来就一直显示**,不因报无主而变化。
|
||||
|
||||
**明牌**(design §9.3):
|
||||
@@ -888,14 +907,14 @@ EQW_RoomOptions = {
|
||||
- **归零后停在 `0` 继续显示,不隐藏**:协议 §0.3 明确归零不触发任何动作、牌局原地等待该玩家;隐藏会被误读为「已超时/已跳过」。
|
||||
- 精灵:群组 224,号段 1150–1159。
|
||||
|
||||
### 2.5 主牌统计(自己)+ 报无主标签(他家)【图:多张】
|
||||
### 2.5 自己的主牌统计 + 余主公示(他家)【图:多张】
|
||||
|
||||
**这是两套不同的东西,别混为一谈**:
|
||||
|
||||
| 谁的 | 显示在 | 何时显示 | 数据来源 |
|
||||
| --- | --- | --- | --- |
|
||||
| **自己的主牌统计** | 手牌**上方偏左**(x≈35 y≈400 那条) | **有手牌时始终显示**,与报无主无关 | 前端据 `flower` 本地统计自己手牌 |
|
||||
| **他家的主牌数 / 对数** | 左上、右上家**头像下方**的 `主N` `对N` 角标 | **仅可查牌模式 + 已报无主**(design §9) | `seatlist[seat][4]` = `[剩余主牌数, 剩余主对数]` |
|
||||
| **他家的主牌数 / 对数**(**余主公示**) | 左上、右上家**头像下方**的 `主N` `对N` 角标 | **仅可查牌模式 + 已报无主**(design §9) | `seatlist[seat][4]` = `[剩余主牌数, 剩余主对数]` |
|
||||
|
||||
**自己的主牌统计条**(群组 206):
|
||||
|
||||
@@ -903,13 +922,13 @@ EQW_RoomOptions = {
|
||||
- **始终显示、本地计算**——自己的手牌自己完全可见,不需要服务端下发,也不受查牌模式与报无主影响。
|
||||
- 参考图里的 `主牌对子: 1对` 即此条。
|
||||
|
||||
**他家的 `主N` / `对N` 角标**(群组 202 / 203,结构见 §2.2):
|
||||
**余主公示:他家的 `主N` / `对N` 角标**(群组 202 / 203,结构见 §2.2):
|
||||
|
||||
- 一个**图片底 + 一个文字精灵**,两家各一组。
|
||||
- 初始 `[-1,-1]` 时隐藏;一旦全场有人报无主,服务端整表刷新 `seatlist` 并下发,两家的角标同时出现。
|
||||
- 不可查牌模式下**永不出现**。
|
||||
|
||||
> ⚠️ **协议里的 `liangpai` 字段目前没有对应的界面位置**。它是 design §8.2 的「庄家亮牌」——庄家埋牌后手牌达标时向**闲家**亮出的统计(主牌总数/对子数/拖拉机数、王数、7 数、2 数),与上面两者都不是一回事。服务端照常下发,前端**当前不渲染**。展示位置待定,见 §7.2 **T-30**。
|
||||
> ⚠️ **「亮牌」(`liangpai`)目前没有界面位置**。它是 design §8.2 的规则——庄家埋牌后手牌达门槛时向**闲家**公开的统计(主牌总数/对子数/拖拉机数、王数、7 数、2 数),与上面两者都不是一回事。服务端照常下发,前端**当前不渲染**。展示位置待定,见 §7.2 **T-30**。
|
||||
|
||||
|
||||
### 2.6 底栏 【图:全部】
|
||||
@@ -966,6 +985,22 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
|
||||
- 牌上标记(`拖` 圆标、⭐、🔵)见 T-8。
|
||||
- 精灵:群组 210,号段 1200–1249。
|
||||
|
||||
### 2.8 状态提示条(通用)【图:等待庄家选主.png / 强甩失败提示.png】
|
||||
|
||||
一条**深色半透圆角条 + 居中白字**,用于显示当前在等谁、或一次性的即时反馈。整个牌局复用**同一个**精灵,只换文字与位置。
|
||||
|
||||
| 用途 | 文案示例 | 位置(实测估值) |
|
||||
| --- | --- | --- |
|
||||
| **等待类**(常驻到状态结束) | `等待庄家选主`、`等待庄家埋牌`、`等待XX叫分` | 桌面中央 x≈500 y≈373 w≈320 h≈47 |
|
||||
| **即时反馈类**(自动淡出) | `强甩失败` | 桌面中央偏上 x≈462 y≈172 w≈363 h≈50 |
|
||||
|
||||
- 两类**共用一套精灵**(`BAR_TOAST` + 文字精灵),位置由布局配置的两个预设切换。
|
||||
- 文案表进配置,不在代码里写死字符串。
|
||||
- 精灵:图层 105 群组 230,`1760` 条底 + `1761` 文字。
|
||||
- 【T-33】等待类提示条的完整文案清单(各阶段分别显示什么)待定;即时反馈类目前只有 `强甩失败` 一条。
|
||||
|
||||
> 原 §5.5 的 `BAR_SHUAICUO`(1754/1759)并入本部件——甩错只是这条通用提示条的一种文案,不必单独出图。
|
||||
|
||||
---
|
||||
|
||||
## 3. 图片资源总表
|
||||
@@ -1063,7 +1098,7 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 651 | `BUBBLE_TISHI` | 踩 / 没分 / 有分 提示气泡 | **6**(3×2) | **帧1=踩·箭头向左 帧2=没分·箭头向左 帧3=有分·箭头向左 帧4=踩·箭头向右 帧5=没分·箭头向右 帧6=有分·箭头向右**。帧序内层是 `tip`(1踩/2没分/3有分)、外层是箭头朝向 → `frame = (arrowRight ? 3 : 0) + tip`。**箭头向左 = 头像在气泡左侧**、箭头向右 = 头像在气泡右侧 | 待定 |
|
||||
| ~~652~~ | ~~`TXT_BAOZHU`~~ | **不需要**:报无主不做全场提示(D-4),只让他家 `主N`/`对N` 角标出现 | —— | —— | —— |
|
||||
| 653 | `BAR_SHUAICUO` | **`强甩失败`** 提示条底(深色半透,白字居中) | 1 | 深色半透圆角条,文字用文字精灵 | 363 × 50 |
|
||||
| 653 | `BAR_TOAST` | **通用状态提示条**底(深色半透圆角,白字居中)——`等待庄家选主` / `强甩失败` 等共用(§2.8) | 1 | 可九宫拉伸,按文案长度变宽 | 363 × 50 |
|
||||
| 654 | `TXT_GRADE_FLOAT` | 捡分飘字底(`20分` 金色) | 1 | 待定 | 待定 |
|
||||
| ~~655~~ | ~~`PANEL_BOTTOM_3S`~~ | **不需要**:底牌 3 秒展示复用庄家翻底牌那套 UI(D-2),仅可见范围不同 | —— | —— | —— |
|
||||
|
||||
@@ -1211,8 +1246,9 @@ design 与协议均**未定义任何音效**。以下是按牌类游戏常规推
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1750–1752 | `BUBBLE_TISHI_LEFT/RIGHT/SELF` | 图片 ×3 | 踩/没分/有分 气泡(按发送者位置) | `BUBBLE_TISHI` 帧 = tip |
|
||||
| ~~1753~~ | ~~`TXT_BAOZHU`~~ | —— | **不需要**(D-4) | —— |
|
||||
| 1754 | `BAR_SHUAICUO` | 图片 | `强甩失败` 提示条底 | `BAR_SHUAICUO` |
|
||||
| 1759 | `TXT_SHUAICUO` | 文字 | `强甩失败` 文案 | —— |
|
||||
| ~~1754 / 1759~~ | ~~`BAR_SHUAICUO`~~ | —— | 并入下方通用状态提示条 | —— |
|
||||
| 1760 | `BAR_TOAST` | 图片 | 通用状态提示条底(§2.8) | `BAR_TOAST` |
|
||||
| 1761 | `TXT_TOAST` | 文字 | 提示文案(等待类 / 即时反馈类共用) | —— |
|
||||
| 1755 | `GRADE_FLOAT_BG` | 图片 | 捡分飘字底 | `TXT_GRADE_FLOAT` |
|
||||
| 1756 | `GRADE_FLOAT_TEXT` | 文字 | `20分` | —— |
|
||||
| ~~1757 / 1758~~ | ~~`BOTTOM_3S_*`~~ | —— | **不需要**(D-2:底牌 3 秒展示复用底牌区翻牌,仅可见范围不同) | —— |
|
||||
@@ -1590,6 +1626,8 @@ CARD_SIZE: {
|
||||
| 埋牌 · 操作条 | `line` + `items` | `direction:horizontal anchorX:640 anchorY:165 itemHeight:63 spacing:45 anchor:center`,`items:[180,60,180]`(提示 / 倒计时 / 埋牌) |
|
||||
| 出牌 · 操作条 | `line` + `items` | `direction:horizontal anchorX:640 anchorY:345 itemHeight:55 spacing:35 anchor:center`,`items:[75,157]`(倒计时 / 出牌) |
|
||||
| 捡分飘字 | `point` | `x:570 y:180 w:170 h:55`;另配 `floatRise:-60`、`floatDuration:800`(动画参数也进配置) |
|
||||
| 状态提示条 · 等待类 | `point` | `x:500 y:373 w:320 h:47`(§2.8) |
|
||||
| 状态提示条 · 即时反馈类 | `point` | `x:462 y:172 w:363 h:50`;另配 `toastDuration:1500` |
|
||||
|
||||
### 6.9 结算区配置
|
||||
|
||||
@@ -1736,8 +1774,10 @@ codes/config/
|
||||
|
||||
| 编号 | 问题 | 影响 |
|
||||
| --- | --- | --- |
|
||||
| **T-30** | 协议 `liangpai`(design §8.2 庄家亮牌:主牌总数/对子数/拖拉机数、王数、7 数、2 数)**当前没有界面位置**。要不要显示?显示在哪(庄家头像旁?闲家侧的独立条?)? | 服务端照常下发,前端暂不渲染;确定后可能需新增一处 UI |
|
||||
| **T-30** | **亮牌**(`liangpai`,design §8.2)**当前没有界面位置**。要不要显示?显示在哪(庄家头像旁?闲家侧独立条?)? | 服务端照常下发,前端暂不渲染;确定后可能需新增一处 UI |
|
||||
| **T-31** | 大局结算面板的「基础分」与「总得分」两行分别对应什么?参考图两者数值相同(`基础分30`/`总得分30`),是 mock 巧合还是确有区别? | S-6 的字段定义 |
|
||||
| **T-32** | `等待庄家选主.png` 里底牌仍摊着、同时提示「等待庄家选主」,但 design §4 的顺序是「公示 3 秒 → 庄家摸入手牌 → 选主」。是 mock 叠画,还是 70 分局底牌要摊到选主结束? | §1.4 底牌区的收起时机 |
|
||||
| **T-33** | 「等待类」状态提示条的完整文案清单(各阶段分别显示什么) | §2.8 文案配置表 |
|
||||
|
||||
#### T-5 手牌排序(已定)
|
||||
|
||||
@@ -1940,7 +1980,7 @@ data.bottom.cards // 结算包
|
||||
| `server/games/erqiwang/docs/design/design.md` | **玩法规则权威源**。本文引用其条款,不重新定义规则;术语「底牌 / 埋牌底牌」已同步(见 §0.0) |
|
||||
| `server/games/erqiwang/docs/protocol/packet_protocol.md` | **协议字段权威源**。本文的「渲染什么」全部溯源到具体字段 |
|
||||
| `docs/client/development-guide/` | **前端规范权威源**。ID 范围、组件范式、红线均以其为准 |
|
||||
| `docs_dev/uiref/*.png` | 参考图,15 张(牌桌态 + 叫分按钮面板 + 大局结算 + 强甩失败 + 1 张建房**样式范式**,末者内容属他游戏、不可照抄) |
|
||||
| `docs_dev/uiref/*.png` | 参考图,16 张(牌桌态 + 叫分按钮面板 + 大局结算 + 强甩失败 + 等待庄家选主 + 1 张建房**样式范式**,末者内容属他游戏、不可照抄) |
|
||||
| `client/js/gameabc-framework/ui/AlignmentUtils.js` | **布局求解的框架能力**。§6 的配置参数名与其入参一一对应,配置可原样喂入 |
|
||||
| `client/js/gameabc-framework/ui/SpriteCopyUtils.js` | 精灵复制。用于算奖牌型、大局结算玩家栏、出牌历史 / 明牌(§5.6a 判据表) |
|
||||
| `client/js/gameabc-framework/templates/*.template.js` | 常量文件写法蓝本。本清单落地为常量文件时按其格式 |
|
||||
|
||||
Reference in New Issue
Block a user