- 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>
192 lines
9.8 KiB
JavaScript
192 lines
9.8 KiB
JavaScript
///////////////////////////////////////////////////////////////
|
||
////////// 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 //文字:提示文案
|
||
}
|
||
};
|