Files
erqiwang_youle/client/js/01_SubGame/codes/config/Sprites_Action.js
T
joywayerandClaude Opus 5 0c58ae67db 二七王:倒计时与结算得分改用数字图精灵,收尾几处命名与文档订正
- CD_LEFT/CD_RIGHT/CD_SELF(1150-1152)由文字精灵改为多帧图数字精灵:
  资源 NUM_COUNTDOWN,纯秒数无后缀;对应布局节点 P_COUNTDOWN 的 h 改取
  NUM_STYLE.COUNTDOWN.charHeight,w 留到运行时注入。
- 结算得分 RESULT_SCORE_LEFT/RIGHT/SELF(1805-1807)同理由文字精灵改为
  数字图精灵(NUM_RESULT_WIN/NUM_RESULT_LOSE),与大局结算已有的
  ACC_TPL_SCORE_NUM 保持一致;布局节点随之调整,移除不再使用的
  TEXT_STYLE.SCORE_BIG。
- NUM_CALL_SCORE 第16帧由"待美术与规则确认"改为明确的"无后缀"(叫分档位
  面板只显示纯数字,"N子"角标是独立文字精灵);NUM_MAIN_SUIT_COUNT /
  NUM_RESULT_WIN / NUM_RESULT_LOSE 第16帧仍待确认,不改。
- Layout_Action.js 的 CALL_BTN_SCORE_TEXT、Layout_Result.js 的
  RESULT_SCORE_TEXT 改名为 CALL_BTN_SCORE_NUM / RESULT_SCORE_NUM:
  两者驱动的都是数字图精灵,_TEXT 后缀误导;同步测试引用。
- docs/client/development-guide/02:订正"SpriteManager 第1154行"这一失效
  行号引用(回退后该行号落在 setTextWithWidth 体内),改为不写死行号。
- docs_dev 清单同步:§2.4/§5.4/§5.6/§6.6/§6.9 倒计时与结算得分的精灵类型
  描述、§6.6/§6.9 对应布局参数。
- test_constants.js 的 NUM_STYLE 同源守卫表新增 COUNTDOWN、RESULT_WIN、
  RESULT_LOSE 三对(连同改名后的 CALL_BTN_SCORE_NUM),共 6 条新断言。

精灵总数、布局节点总数均未变(378 / 61),只改类型与命名,不增删。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-27 00:54:42 +08:00

192 lines
9.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
///////////////////////////////////////////////////////////////
////////// EQW_Sprites: 精灵结构(清单 §5.4/§5.5 阶段操作区与浮层)
///////////////////////////////////////////////////////////////
// 子游戏精灵段 1001–2999。结构与 Sprites_Table.js 一致:
// View 下 Layer 为图层声明(一个 View 恰好一个图层),其余键是 group 容器;
// 容器内 id 为群组 ID、其余键才是精灵 id。
// 连号精灵逐条写全,不用循环生成。
var EQW_Sprites = EQW_Sprites || {};
//叫分面板:14 档位按钮 + 「不叫」按钮(清单 §5.4,Layer 104 群组 220)
EQW_Sprites.CallPanelView = {
Layer: EQW_Layers.ACTION, //104
CallPanel: {
id: EQW_Groups.CALL_PANEL, //220
CALL_PANEL_BG: 1600, //图片:面板底,资源 EQW_Images.PANEL_CALL_SCORE
CALL_HINT_BG: 1601, //图片:提示条底,资源 EQW_Images.BAR_HINT_TOP
CALL_HINT_TEXT: 1602, //文字:「70分坐庄才可投降」
//—— 14 档位按钮底(含角标底),资源 EQW_Images.BTN_CALL_SCORE,档位 70..5,
// 帧1=浅黄+蓝角标(70/65/60/55) 帧2=金黄+绿角标(50/45/40) 帧3=橙+深橙角标(35..5) 帧4=灰(不可选),
// 颜色按档位位置固定,仅因不可叫切换到灰帧4 ——
CALL_BTN_1: 1603,
CALL_BTN_2: 1604,
CALL_BTN_3: 1605,
CALL_BTN_4: 1606,
CALL_BTN_5: 1607,
CALL_BTN_6: 1608,
CALL_BTN_7: 1609,
CALL_BTN_8: 1610,
CALL_BTN_9: 1611,
CALL_BTN_10: 1612,
CALL_BTN_11: 1613,
CALL_BTN_12: 1614,
CALL_BTN_13: 1615,
CALL_BTN_14: 1616,
//—— 14 档位分数数字(多帧图数字精灵),资源 EQW_Images.NUM_CALL_SCORE(16 帧固定帧序),
// 字符宽见 EQW_Layout.NUM_STYLE.CALL_SCORE.charWidth。
// 显示用 SpriteManager.setNumberImage(spriteId, '70', charWidth):整串交给引擎按字符逐帧渲染、
// 精灵宽度自动按字符数调整,故 14 档(其中 13 档是两位数)各只需【一个】精灵,不拆十位/个位 ——
CALL_BTN_NUM_1: 1617,
CALL_BTN_NUM_2: 1618,
CALL_BTN_NUM_3: 1619,
CALL_BTN_NUM_4: 1620,
CALL_BTN_NUM_5: 1621,
CALL_BTN_NUM_6: 1622,
CALL_BTN_NUM_7: 1623,
CALL_BTN_NUM_8: 1624,
CALL_BTN_NUM_9: 1625,
CALL_BTN_NUM_10: 1626,
CALL_BTN_NUM_11: 1627,
CALL_BTN_NUM_12: 1628,
CALL_BTN_NUM_13: 1629,
CALL_BTN_NUM_14: 1630,
//—— 14 档位 multiple 子数角标文字(「2子」…「15子」),随爬坡规则开关变 ——
CALL_BTN_BADGE_1: 1631,
CALL_BTN_BADGE_2: 1632,
CALL_BTN_BADGE_3: 1633,
CALL_BTN_BADGE_4: 1634,
CALL_BTN_BADGE_5: 1635,
CALL_BTN_BADGE_6: 1636,
CALL_BTN_BADGE_7: 1637,
CALL_BTN_BADGE_8: 1638,
CALL_BTN_BADGE_9: 1639,
CALL_BTN_BADGE_10: 1640,
CALL_BTN_BADGE_11: 1641,
CALL_BTN_BADGE_12: 1642,
CALL_BTN_BADGE_13: 1643,
CALL_BTN_BADGE_14: 1644,
CALL_BTN_NONE: 1645, //图片:「不叫」按钮,资源 EQW_Images.BTN_NO_CALL
CALL_BTN_NONE_TEXT: 1646 //文字:按钮文案「不叫」
}
};
//选主/投降面板:4 花色按钮 + 投降按钮(清单 §5.4,Layer 104 群组 221)
//
//以下键号在源清单中被显式判定「不需要」,本文件不占用,留空号以便追溯(美术改一张图 5 帧出图,
//花色图标与右上角角标底已并入 BTN_SUIT_CHOOSE 各帧,2026-08-26):
// 1656–1659 MAIN_SUIT_ICON_1..4 —— 花色图标并入 BTN_SUIT_CHOOSE 帧1–4
// 1660–1663 MAIN_SUIT_COUNT_1..4 —— 原文字精灵,改为下方数字图片精灵(键名沿用,ID 改到 1674–1677)
// 1664–1667 MAIN_SUIT_PAIR_BG_1..4 —— 角标底并入 BTN_SUIT_CHOOSE 帧1–4
// 1673 MAIN_BTN_SURRENDER_TEXT —— 「投降」二字并入 BTN_SUIT_CHOOSE 帧5
// 1678–1681 原 MAIN_SUIT_COUNT_3/4_TENS/ONES —— 张数改回「一个花色一个精灵」(多帧图数字,见下:
// SpriteManager.setNumberImage 一个精灵就能显示整串),上一轮的十位/个位拆分作废,
// 空出的 4 个 ID 不复用(2026-08-26)
EQW_Sprites.ChooseMainView = {
Layer: EQW_Layers.ACTION, //104
ChooseMain: {
id: EQW_Groups.CHOOSE_MAIN, //221
MAIN_TITLE_BG: 1650, //图片:「亮主」斜角条,资源 EQW_Images.BAR_CHOOSE_MAIN
MAIN_TITLE_TEXT: 1651, //文字:「亮主」
//—— 4 个花色按钮,资源 EQW_Images.BTN_SUIT_CHOOSE,帧 = 花色序号 1–4(服务端 flower 编号),
// 该帧已含「按钮底 + 花色图标 + 右上角蓝色角标底」——
MAIN_SUIT_BTN_1: 1652,
MAIN_SUIT_BTN_2: 1653,
MAIN_SUIT_BTN_3: 1654,
MAIN_SUIT_BTN_4: 1655,
//—— 4 个对数角标文字:「N对」,叠在对应花色按钮的角标底之上 ——
MAIN_SUIT_PAIR_TEXT_1: 1668,
MAIN_SUIT_PAIR_TEXT_2: 1669,
MAIN_SUIT_PAIR_TEXT_3: 1670,
MAIN_SUIT_PAIR_TEXT_4: 1671,
//—— 4 个花色张数数字精灵(多帧图数字精灵,一花色一个):该花色在庄家手中的张数
// (两副牌单花色最多 26 张,两位数),资源 EQW_Images.NUM_MAIN_SUIT_COUNT(16 帧固定帧序,
// 第16帧=后缀「张」),字符宽见 EQW_Layout.NUM_STYLE.MAIN_SUIT_COUNT.charWidth。
// 显示用 SpriteManager.setNumberImage(spriteId, '26张', charWidth),整串一个精灵搞定,
// 不拆十位/个位(2026-08-26)——
MAIN_SUIT_COUNT_1: 1674,
MAIN_SUIT_COUNT_2: 1675,
MAIN_SUIT_COUNT_3: 1676,
MAIN_SUIT_COUNT_4: 1677,
MAIN_BTN_SURRENDER: 1672 //图片:「投降」按钮,资源 EQW_Images.BTN_SUIT_CHOOSE 帧5(已含底与「投降」字)
}
};
//操作条:埋牌操作条(群组 222)+ 出牌操作条(群组 223),同一屏幕位置随阶段互斥展示(清单 §5.4)
EQW_Sprites.OperationBarView = {
Layer: EQW_Layers.ACTION, //104
BuryBar: {
id: EQW_Groups.BURY_BAR, //222
BURY_BTN_TIP: 1700, //图片:「提示」按钮,资源 EQW_Images.BTN_TIP
BURY_BTN_TIP_TEXT: 1701, //文字:按钮文案「提示」
BURY_BTN_SUBMIT: 1702, //图片:「埋牌」按钮,资源 EQW_Images.BTN_BURY,帧1=可提交 帧2=灰(未满8张)
BURY_BTN_SUBMIT_TEXT: 1703 //文字:「埋牌 (N/8)」
},
PlayBar: {
id: EQW_Groups.PLAY_BAR, //223
PLAY_BTN_SUBMIT: 1710, //图片:「出牌」按钮,资源 EQW_Images.BTN_PLAY,帧1=可出 帧2=灰
PLAY_BTN_SUBMIT_TEXT: 1711, //文字:按钮文案「出牌」
PLAY_BTN_TIP: 1712, //图片:「提示」按钮(出牌阶段必备),资源 EQW_Images.BTN_TIP
PLAY_BTN_TIP_TEXT: 1713 //文字:按钮文案「提示」
}
};
//倒计时:左上家/右上家/自己 三处操作区倒计时(清单 §5.4,Layer 104 群组 224)
//
//三处均为【多帧图数字精灵】(非文字精灵):玩家视线焦点、视觉权重最高的数字,参考图是带描边/渐变
//的美术字,文字精灵做不出这个效果。资源 EQW_Images.NUM_COUNTDOWN(16 帧固定帧序),纯秒数无后缀。
//显示用 SpriteManager.setNumberImage(spriteId, '15', charWidth),charWidth 见
//EQW_Layout.NUM_STYLE.COUNTDOWN.charWidth(2026-08-27,与 NUM_STYLE.COUNTDOWN 一起落地)
EQW_Sprites.CountdownView = {
Layer: EQW_Layers.ACTION, //104
Countdown: {
id: EQW_Groups.COUNTDOWN, //224
CD_LEFT: 1150, //多帧图数字精灵:左上家位倒计时
CD_RIGHT: 1151, //多帧图数字精灵:右上家位倒计时
CD_SELF: 1152 //多帧图数字精灵:自己操作区倒计时
}
};
//桌面浮层:提示气泡 + 通用状态提示条 + 捡分飘字(清单 §5.5,Layer 105 群组 230)
//
//以下键号在源清单中被显式判定「不需要」,本文件不占用,留空号以便追溯:
// 1753 TXT_BAOZHU —— 报无主不做全场提示(D-4),只让他家 主N/对N 角标出现
// 1754/1759 BAR_SHUAICUO —— 甩错提示并入通用状态提示条 BAR_TOAST/TXT_TOAST(§2.8)
// 1757/1758 BOTTOM_3S_* —— 70分底牌亮3秒复用底牌区翻牌(D-2),仅可见范围不同,不单独建精灵
EQW_Sprites.OverlayView = {
Layer: EQW_Layers.OVERLAY, //105
Overlay: {
id: EQW_Groups.OVERLAY, //230
//—— 提示气泡:踩/没分/有分,按发送者位置三选一显示,资源 EQW_Images.BUBBLE_TISHI,
// 帧 = (arrowRight ? 3 : 0) + tip(tip:1踩 2没分 3有分);朝向为配置项 arrowRight,非按座位硬判(清单 §6.6)——
BUBBLE_TISHI_LEFT: 1750, //左上家气泡:头像在气泡左侧,箭头向左,帧1–3,attach 头像框 hAlign:right
BUBBLE_TISHI_RIGHT: 1751, //右上家气泡:头像在气泡右侧,箭头向右,帧4–6,attach 头像框 hAlign:left
BUBBLE_TISHI_SELF: 1752, //自己气泡:头像在气泡左侧,箭头向左,帧1–3(本人看不到自己气泡,仅对家可见,见清单 §6.6)
GRADE_FLOAT_BG: 1755, //图片:捡分飘字底,资源 EQW_Images.TXT_GRADE_FLOAT
GRADE_FLOAT_TEXT: 1756, //文字:「20分」
BAR_TOAST: 1760, //图片:通用状态提示条底(等待类/即时反馈类共用,收敛为 3 条,见清单 §2.8),资源 EQW_Images.BAR_TOAST,可九宫拉伸
TXT_TOAST: 1761 //文字:提示文案
}
};