Files
erqiwang_youle/client/js/01_SubGame/codes/config/Sprites_Cards.js
T
joywayerandClaude Opus 5 ccc41ce092 二七王:修正 Sprites_Table/Cards 注释里 ASCII 版式图的对齐
上两个提交的三处版式图在等宽字体下右边框错位(手牌区示意框、结算底牌区
文案行、已出牌区的牌角标小图)。按「CJK 双宽、其余单宽」重排到等宽,
不改任何数据。

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

497 lines
26 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.2/§5.3 手牌与桌面牌)//
///////////////////////////////////////////////////////////////
// 子游戏精灵段 1001–2999。结构与 Sprites_Table.js 一致:
// View 下 Layer 为图层声明(一个 View 恰好一个图层),其余键是 group 容器;
// 容器内 id 为群组 ID、其余键才是精灵 id。
// 连号精灵逐条写全,不用循环生成——便于人逐张对照编辑器核对。
var EQW_Sprites = EQW_Sprites || {};
// ============================================================================
// 自己手牌区 - Layer 102 (HAND), Group 210 (HAND)
// ============================================================================
/**
* 自己手牌区 - HandView
*
* 用途: 屏幕下部铺开自己的手牌(重叠排列),并在每张牌上叠加牌型标记。
* 两种形态:常态【单排】、庄家埋牌时【双排】。张数上限 36(庄家摸底后 28+8)。
*
* 布局说明(参考图 docs_dev/uiref/等待叫分.png = 单排;
* docs_dev/uiref/庄家埋牌.png = 双排):
*
* 形态一 · 单排(叫分 / 选主 / 出牌阶段,EQW_Layout.HAND_FAN_SINGLE)
* fan/horizontal, anchor center, anchorX=640 anchorY=455, maxWidth=1215,
* 牌尺寸 CARD_SIZE.L = 110×190, spacingMax=0 spacingMin=-78, overlapFrom='left'
*
* x≈35 x≈1250
* ┌──┬──┬──┬──┬──┬──┬──┬──┬── … ──┬──┬──┬──────────┐ y=455
* │K │K │K │K │K │K │K │K │ │K │K │ K │
* │♦ │♦ │♦ │♦ │♦ │♦ │♦ │♦ │ …… │♦ │♦ │ ♦ │
* └──┴──┴──┴──┴──┴──┴──┴──┴── … ──┴──┴──┴──────────┘ y=645
* ↑ HAND_CARD_1(1200) 起自左,逐张右叠;末张整张露出(110px)
* 36 张时每张只露约 32px(spacing -78),与参考图实测 33px 吻合
*
* 形态二 · 双排(仅庄家埋牌阶段,EQW_Layout.HAND_TWO_ROW)
* splitStrategy='floorTop':上排 floor(n/2)、下排 ceil(n/2)(36 张 = 18/18)
* ROW_TOP anchorX=644 anchorY=285 maxWidth=928 spacingMin=-65
* ROW_BOTTOM anchorX=644 anchorY=455 maxWidth=928 spacingMin=-65
*
* ┌──┬──┬──┬── … ──┬──┬──────┐ y=285 ← ROW_TOP
* │K │K │K │ …… │K │ K │
* └──┴──┴──┴── … ──┴──┴──────┘ y=455
* ┌──┬──┬──┬── … ──┬──┬──────┐ y=455 ← ROW_BOTTOM
* │K │K │K │ …… │K │ K │
* └──┴──┴──┴── … ──┴──┴──────┘ y=645
* ⚠ 参考图画的是 17/19 分行,属填充画法(清单 §0.5),不作依据;分行以 floorTop 为准。
*
* 选中态: 整张牌上浮,偏移量 EQW_Anim.HAND_SELECT_OFFSET_Y = -40(SSOT,布局里不重复定义)。
*
* 元素说明:
* - HAND_CARD_1..36 与 HAND_MARK_1..36 【一一对应】(HAND_MARK_i 属于 HAND_CARD_i),
* 同属群组 210;张数少于 36 时隐藏多余精灵并重算间距。
* - 牌面帧 = cardIdToFrame(id)(清单 §0.4 唯一权威转换,前端只此一处实现)。
* - 手牌标记三种互斥、每张牌至多一个,由前端据 flower(主牌花色)本地标注,服务端不下发:
* 帧1 =「拖」红色圆标 —— 该牌属于一组拖拉机
* 帧2 = 橙色五角星 —— 正 2 / 正 7(主花色的 2 和 7)
* 帧3 = 蓝色五角星 —— 除正2正7外的其他主牌(双王、副2、副7、主花色普通牌)
* 在参考图 庄家埋牌.png 下排牌的左下角可看到这三种标记。
* - 【时序】发牌动画从右往左铺开(EQW_Anim.DEAL: 800ms / 每张 20ms 延迟);须先
* setHandCards() 把牌写进 this.data、再播动画,动画回调里只刷界面不写核心数据。
* - 【时序】选主后主牌集合会变(正2/正7 升格),手牌必须按新主牌序重排(清单 §7.2 T-5)。
*
* 资源说明:
* - 牌面: EQW_Images.CARD_FACE_L (501), 60 帧 (10列×6行行优先), 单帧 110×190, 整图 1100×1140
* 帧1–13 黑桃A–K / 帧14–26 红桃 / 帧27–39 梅花 / 帧40–52 方块 /
* 帧53 小王 / 帧54 大王 / 帧55–60 牌背(二七王用帧55)
* - 牌上标记: EQW_Images.MARK_CARD_GROUP (577), 3 帧, 26×26
* - 选中标记: EQW_Images.MARK_SELECTED (578) 尺寸待定,也可只用上浮表现、不出图
*
* 精灵ID分配: 1200–1235(手牌)+ 2100–2135(手牌标记)
* —— 标记另起 2100 段的原因见下方原注释(1236 起接不下 36 个连号)。
*
* @see docs_dev/二七王-UI资源与精灵清单.md §2.7 手牌区 / §5.2 Layer 102 / §6.7 牌区配置
* @see docs_dev/uiref/等待叫分.png
* @see docs_dev/uiref/庄家埋牌.png
*/
//自己手牌区:36 张手牌 + 36 个手牌标记(每张牌一个,见下方裁决说明),同属群组 210(清单 §5.2,Layer 102)
EQW_Sprites.HandView = {
Layer: EQW_Layers.HAND, //102
HandCards: {
id: EQW_Groups.HAND, //210
//—— 36 张手牌,资源 EQW_Images.CARD_FACE_L,帧 = cardIdToFrame(id)(§0.4 唯一权威转换)——
HAND_CARD_1: 1200,
HAND_CARD_2: 1201,
HAND_CARD_3: 1202,
HAND_CARD_4: 1203,
HAND_CARD_5: 1204,
HAND_CARD_6: 1205,
HAND_CARD_7: 1206,
HAND_CARD_8: 1207,
HAND_CARD_9: 1208,
HAND_CARD_10: 1209,
HAND_CARD_11: 1210,
HAND_CARD_12: 1211,
HAND_CARD_13: 1212,
HAND_CARD_14: 1213,
HAND_CARD_15: 1214,
HAND_CARD_16: 1215,
HAND_CARD_17: 1216,
HAND_CARD_18: 1217,
HAND_CARD_19: 1218,
HAND_CARD_20: 1219,
HAND_CARD_21: 1220,
HAND_CARD_22: 1221,
HAND_CARD_23: 1222,
HAND_CARD_24: 1223,
HAND_CARD_25: 1224,
HAND_CARD_26: 1225,
HAND_CARD_27: 1226,
HAND_CARD_28: 1227,
HAND_CARD_29: 1228,
HAND_CARD_30: 1229,
HAND_CARD_31: 1230,
HAND_CARD_32: 1231,
HAND_CARD_33: 1232,
HAND_CARD_34: 1233,
HAND_CARD_35: 1234,
HAND_CARD_36: 1235,
//—— 36 个手牌标记【T-8】,与 HAND_CARD_1..36 一一对应(HAND_MARK_i 属于 HAND_CARD_i)——
//资源 EQW_Images.MARK_CARD_GROUP,帧1=拖(拖拉机) 帧2=橙五角星(正2/正7) 帧3=蓝五角星(其他主牌)。
//【裁决:按「每张牌」而非「每组」】清单 §5.2 的表格写的是「牌型分组标记 ×8」,但 §1.6 明确
//规定三种标记互斥、【每张牌】至多一个,core/CardMark.js 也是按每张牌返回标记的。
//一手 28 张牌通常带 13 个以上标记、36 张埋牌手更多,8 个远远不够——§1.6 是行为规格,
//比 §5.2 表格的措辞更权威,故按 §1.6 扩到与手牌一一对应。
//ID 另起 2100 段:1236 往后接不下 36 个连号(1250 起已是底牌/埋牌区),
//换整段空号 2100–2135 比给别的 View 重新编号更安全。
HAND_MARK_1: 2100,
HAND_MARK_2: 2101,
HAND_MARK_3: 2102,
HAND_MARK_4: 2103,
HAND_MARK_5: 2104,
HAND_MARK_6: 2105,
HAND_MARK_7: 2106,
HAND_MARK_8: 2107,
HAND_MARK_9: 2108,
HAND_MARK_10: 2109,
HAND_MARK_11: 2110,
HAND_MARK_12: 2111,
HAND_MARK_13: 2112,
HAND_MARK_14: 2113,
HAND_MARK_15: 2114,
HAND_MARK_16: 2115,
HAND_MARK_17: 2116,
HAND_MARK_18: 2117,
HAND_MARK_19: 2118,
HAND_MARK_20: 2119,
HAND_MARK_21: 2120,
HAND_MARK_22: 2121,
HAND_MARK_23: 2122,
HAND_MARK_24: 2123,
HAND_MARK_25: 2124,
HAND_MARK_26: 2125,
HAND_MARK_27: 2126,
HAND_MARK_28: 2127,
HAND_MARK_29: 2128,
HAND_MARK_30: 2129,
HAND_MARK_31: 2130,
HAND_MARK_32: 2131,
HAND_MARK_33: 2132,
HAND_MARK_34: 2133,
HAND_MARK_35: 2134,
HAND_MARK_36: 2135
}
};
// ============================================================================
// 底牌区(发牌留桌 8 张)- Layer 103 (TABLE_CARDS), Group 211 (BOTTOM_CARDS)
// ============================================================================
/**
* 底牌区 - BottomCardsView
*
* 用途: 桌面中央上部的 8 张【底牌】——发牌时没有发给玩家、留在桌面的那 8 张。
* 发牌起显示牌背;庄家摸底 / 70 分开底时【同一批精灵】翻成正面。
*
* 布局说明(背面:docs_dev/uiref/等待叫分.png 中央;正面:docs_dev/uiref/叫分确定庄.png、
* docs_dev/uiref/等待庄家选主.png 中央;
* 位置见 EQW_Layout.BOTTOM_CARDS = line/horizontal, anchor center,
* anchorX=655 anchorY=110, 牌尺寸 CARD_SIZE.L 110×190, spacing=-36):
*
* x 居中于 655
* ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬────────────┐ y=110
* │ 背 │ 背 │ 背 │ 背 │ 背 │ 背 │ 背 │ 背 │
* │ │ │ │ │ │ │ │ │
* └──────┴──────┴──────┴──────┴──────┴──────┴──────┴────────────┘ y=300
* ↑ ↑ ↑
* BOTTOM_ BOTTOM_ BOTTOM_
* CARD_1 CARD_2 … (等距 spacing -36,每张露 74px)… CARD_8
* (1250) (1251) (1257)
*
* 翻开后同一批精灵改帧为正面(帧 = cardIdToFrame(id)):
* ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬────────────┐
* │K │K │K │K │K │K │K │K │
* │♦ │♦ │♦ │♦ │♦ │♦ │♦ │♦ │
* └──────┴──────┴──────┴──────┴──────┴──────┴──────┴────────────┘
*
* 元素说明:
* - 未揭示时帧 = 55(牌背);揭示时帧 = cardIdToFrame(id)(清单 §0.4)。
* - 【时序·开底 D-2 已定】翻牌这套 UI 只有一套,两种情形只是【谁能看到】不同:
* 非 70 分坐庄(只摸底)→ 只有庄家看得到这 3 秒,闲家侧保持背面 / 直接收起
* 70 分坐庄(开底) → 全场三人都看得到 3 秒(EQW_Anim.ANCARD_REVEAL_DURATION = 3000)
* 开底【不做倒计时、不做单独的公示面板、不加提示文案】——画面本身已说清楚(§2.8)。
* 3 秒后庄家摸入手牌、闲家侧收起,底牌区隐藏。
* - 【重连不重放】70 分的 3 秒亮牌是上庄时的一次性事件,deskinfo 重连不得补播(§1.4)。
* - 底栏「底牌」按钮再看这 8 张时也复用本区(庄家全程可看,闲家仅开底过的局,S-3)。
* - ⚠ 参考图 等待庄家选主.png 把「开底摊牌」与「等待庄家选主」提示条画在了一起,属叠画
* 示意(§0.5);实际顺序是 开底 3 秒 → 庄家摸底入手 → 选主,摸底后本区即收起。
*
* 资源说明:
* - 牌面: EQW_Images.CARD_FACE_L (501), 60 帧, 单帧 110×190(与手牌同一套资源)
*
* 精灵ID分配: 1250–1257
*
* @see docs_dev/二七王-UI资源与精灵清单.md §1.2 发牌 / §1.4 看底牌·上庄 / §5.3 / §6.7
* @see docs_dev/uiref/等待叫分.png
* @see docs_dev/uiref/叫分确定庄.png
* @see docs_dev/uiref/等待庄家选主.png
*/
//底牌区:发牌留桌 8 张(清单 §5.3,Layer 103 群组 211)
EQW_Sprites.BottomCardsView = {
Layer: EQW_Layers.TABLE_CARDS, //103
BottomCards: {
id: EQW_Groups.BOTTOM_CARDS, //211
//—— 资源 EQW_Images.CARD_FACE_L;未揭示时帧=55(牌背),70分公示/庄家查看时翻正面(帧=cardIdToFrame(id))——
BOTTOM_CARD_1: 1250,
BOTTOM_CARD_2: 1251,
BOTTOM_CARD_3: 1252,
BOTTOM_CARD_4: 1253,
BOTTOM_CARD_5: 1254,
BOTTOM_CARD_6: 1255,
BOTTOM_CARD_7: 1256,
BOTTOM_CARD_8: 1257
}
};
// ============================================================================
// 埋牌底牌展示区 - Layer 103 (TABLE_CARDS), Group 215 (BURY_CARDS)
// ============================================================================
/**
* 埋牌底牌展示区 - BuryCardsView
*
* 用途: 小局结算时亮出【埋牌底牌】——庄家埋牌阶段从手里扣下的那 8 张。
* 用最小的牌面尺寸档 S,摆在小局结算面板的上半部。
*
* 术语区分(清单 §2.6 已统一,别混):
* 「底牌」 = 发牌留桌的 8 张 → BottomCardsView(群组 211),协议字段 bottomcards
* 「埋牌底牌」= 庄家埋下的 8 张 → 本 View(群组 215),协议字段 burycards / bottom.cards
*
* 布局说明(参考图 docs_dev/uiref/小局结算.png 中央面板内那排小牌;
* 位置见 EQW_Layout.BURY_CARDS = line/horizontal, anchor center,
* anchorX=640 anchorY=163, 牌尺寸 CARD_SIZE.S 50×70, spacing=2):
*
* ┌──────────────────────────────────────────┐ y=140 ← RESULT_BOTTOM_PANEL(1800)
* │ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │ y=163 (见 Sprites_Result.js)
* │ │10││10││10││10││10││10││10││10│ │
* │ │♠ ││♥ ││♣ ││♦ ││♠ ││♥ ││♣ ││♦ │ │ y=233
* │ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘ │
* │ 叫分2子 底牌 20x0 │ ← RESULT_BOTTOM_TEXT(1801)
* └──────────────────────────────────────────┘ y=288
* ↑ ↑ ↑
* BURY_ BURY_ BURY_
* CARD_1 CARD_2 …(等距 spacing +2,不重叠)… CARD_8
* (1258) (1259) (1265)
*
* 本区居中于 x=640,与外层面板(EQW_Layout.RESULT_BOTTOM_PANEL = 430,140,420×148)
* 的中心 x=640 对齐;8×50 + 7×2 = 414,正好落在面板 420 宽度之内。
*
* 元素说明:
* - 数据取结算包 bottom.cards,【恒有】(design §11:牌局结束需要亮出底牌)——
* 即便闲家未扣底也照常亮 8 张,只是面板文案里的倍数位显示 0。
* - 帧 = cardIdToFrame(id),恒为正面(本区只在结算时出现,不存在牌背态)。
* - 【容错】投降结算只有 aset、无 bottom 分组 → 结算面板必须容忍底牌区缺失,
* 不能因读不到 bottom.cards 就崩或显示空框(§1.8)。
* - 底栏「扣底」按钮(清单 §2.6,尚无精灵)看的也是这 8 张。
*
* 资源说明:
* - 牌面: EQW_Images.CARD_FACE_S (503), 60 帧, 单帧 50×70, 整图 500×420
* 帧排布与 CARD_FACE_L 完全一致(§0.4)
*
* 精灵ID分配: 1258–1265
*
* @see docs_dev/二七王-UI资源与精灵清单.md §1.8 末轮扣底 + 小局结算 / §5.3 / §6.7
* @see docs_dev/uiref/小局结算.png
*/
//埋牌底牌展示区:结算时亮出的埋牌底牌 8 张(清单 §5.3,Layer 103 群组 215)
EQW_Sprites.BuryCardsView = {
Layer: EQW_Layers.TABLE_CARDS, //103
BuryCards: {
id: EQW_Groups.BURY_CARDS, //215
//—— 资源 EQW_Images.CARD_FACE_S,帧 = cardIdToFrame(id)——
BURY_CARD_1: 1258,
BURY_CARD_2: 1259,
BURY_CARD_3: 1260,
BURY_CARD_4: 1261,
BURY_CARD_5: 1262,
BURY_CARD_6: 1263,
BURY_CARD_7: 1264,
BURY_CARD_8: 1265
}
};
// ============================================================================
// 三家已出牌区 - Layer 103 (TABLE_CARDS), Group 212 / 213 / 214
// ============================================================================
/**
* 三家已出牌区 - PlayAreaView
*
* 用途: 出牌阶段,三家各有一块区域展示【本轮】打出的牌(中号牌面 CARD_FACE_M)。
* 每家一个群组、各预置 28 张(= 单次出牌张数上限,甩牌最多可甩满手牌)。
*
* 布局说明(参考图 docs_dev/uiref/出牌2.png;
* 位置见 EQW_Layout.PLAY_AREA,三家共用 base + bySeat 三个变体:
* fan/horizontal, 牌尺寸 CARD_SIZE.M 90×155, maxWidth=170,
* spacingMax=-35 spacingMin=-62):
*
* ┌──────────────────────────────────────────────────────────────┐ y=0
* │ ┌ 顶部信息条 ┐ │
* │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
* │ │头像│ │K K │ │K K │ │头像│ │ y≈120
* │ └────┘ │ 大│ │ 大│ └────┘ │
* │ └────┘ └────┘ │
* │ LEFT 258,120 RIGHT 1022,120 │
* │ overlapFrom='right' overlapFrom='left' │
* │ (左右镜像:同参数,堆叠朝向相反) │
* │ │
* │ ┌────┐ │
* │ │K K │ ← SELF 650,265 │ y≈265
* │ │ 庄│ overlapFrom='left' │
* │ ┌──┴────┘ │
* │ │拖拉机│ ← 牌型标签,贴首张牌 bottomLeft │
* │ └──────┘ │
* │ │
* │ ┌─────────── 自己手牌区(Layer 102)────────────┐ │ y≈455
* └──────────────────────────────────────────────────────────────┘ y=720
*
* 单个出牌区的内部结构(以自己为例):
*
* PLAY_SELF_1(1300) 起自左,逐张右叠(fan 压缩,最多 28 张)
* ↓
* ┌────┬────┬────────┐
* │ K │ K │ K │ 每张牌【右上角】可再叠一个角标:
* │ ♦ │ ♦ │ ♦ [庄]│ MARK_BANKER_CORNER(572) 28×28「庄」橙色斜标
* └────┴────┴────────┘ MARK_JOKER_BIG(573) 34×34「大/小」王圆标
* ┌──────┐ —— 贴的是运行时才确定的某一张牌,故
* │拖拉机│ EQW_Layout.PLAY_CARD_CORNER_MARK 只给模板
* └──────┘ (corner/offset),target/w/h 由调用方注入
* ↑ PLAY_SELF_TYPE_BG(1328) + PLAY_SELF_TYPE_TEXT(1329)
* EQW_Layout.PLAY_TYPE_LABEL: attach 首张牌 bottomLeft, offsetY=-24, 76×24
* 首槽是【固定】精灵(PLAY_SELF_1 / PLAY_LEFT_1 / PLAY_RIGHT_1),非动态目标
*
* 元素说明:
* - 牌面帧 = cardIdToFrame(id)(§0.4);数据取 chupai1/2/3 的 seat + cards。
* - 牌型标签当前【只出「毙」一种】——EQW_Images.LABEL_CARDTYPE 只做这一帧;
* 数据层仍保留 毙/垫/混合出牌 三种标识以备扩展,但不出图、不显示。
* ⚠ 参考图 出牌2.png 左下角的橙色「拖拉机」标签是设计示意,与当前资源定案(只做「毙」)
* 不一致,实现时以资源注释为准(清单 §7.2 T-11 标签种类以美术稿为准,尚未定案)。
* - 甩牌的真实结构只能读 chupai1.shuai({tractors, pairs, singles}),
* 【不得据 cardtype 反推】(协议 §11 明确警告)。
* - 【时序·一轮结束】maxseat 高亮 → 三家出牌区收牌 → 若有 grade 播捡分飘字
* (OverlayView 的 GRADE_FLOAT)并累加顶部「抓分」列 → 下一轮由 maxseat 先出。
* - 【为什么预置而不复制】号段每家 100 个、容量充裕,且需要叠压 z 序与出牌动画、
* 逐张独立控制,故不使用 SpriteCopyUtils,避免显式清理负担(清单 §5.6a 判据表)。
*
* 资源说明:
* - 牌面: EQW_Images.CARD_FACE_M (502), 60 帧, 单帧 90×155, 整图 900×930
* - 牌型标签底: EQW_Images.LABEL_CARDTYPE (576), 1 帧, 76×24
* - 牌角标: EQW_Images.MARK_BANKER_CORNER (572) 1 帧 28×28 /
* EQW_Images.MARK_JOKER_BIG (573) 2 帧 34×34(帧1=大王 帧2=小王)
*
* 精灵ID分配: 1300–1329(自己)/ 1400–1429(左上家)/ 1500–1529(右上家)
*
* @see docs_dev/二七王-UI资源与精灵清单.md §2.3 已出牌区 / §1.7 出牌对局 / §5.3 / §6.7
* @see docs_dev/uiref/出牌.png
* @see docs_dev/uiref/出牌2.png
*/
//三家已出牌区:自己/左上家/右上家 各 28 张牌 + 牌型标签底 + 标签文字(清单 §5.3,Layer 103 群组 212/213/214)
EQW_Sprites.PlayAreaView = {
Layer: EQW_Layers.TABLE_CARDS, //103
PlaySelf: {
id: EQW_Groups.PLAY_SELF, //212 自己
//—— 本轮打出的牌,资源 EQW_Images.CARD_FACE_M,帧 = cardIdToFrame(id)——
PLAY_SELF_1: 1300,
PLAY_SELF_2: 1301,
PLAY_SELF_3: 1302,
PLAY_SELF_4: 1303,
PLAY_SELF_5: 1304,
PLAY_SELF_6: 1305,
PLAY_SELF_7: 1306,
PLAY_SELF_8: 1307,
PLAY_SELF_9: 1308,
PLAY_SELF_10: 1309,
PLAY_SELF_11: 1310,
PLAY_SELF_12: 1311,
PLAY_SELF_13: 1312,
PLAY_SELF_14: 1313,
PLAY_SELF_15: 1314,
PLAY_SELF_16: 1315,
PLAY_SELF_17: 1316,
PLAY_SELF_18: 1317,
PLAY_SELF_19: 1318,
PLAY_SELF_20: 1319,
PLAY_SELF_21: 1320,
PLAY_SELF_22: 1321,
PLAY_SELF_23: 1322,
PLAY_SELF_24: 1323,
PLAY_SELF_25: 1324,
PLAY_SELF_26: 1325,
PLAY_SELF_27: 1326,
PLAY_SELF_28: 1327,
PLAY_SELF_TYPE_BG: 1328, //图片:牌型标签底,资源 EQW_Images.LABEL_CARDTYPE,attach 该区首张牌 bottomLeft
PLAY_SELF_TYPE_TEXT: 1329 //文字:标签文案(当前只出「毙」一种,见 EQW_Images.LABEL_CARDTYPE 用途说明)
},
PlayLeft: {
id: EQW_Groups.PLAY_LEFT, //213 左上家,结构同 212
//—— 本轮打出的牌,资源 EQW_Images.CARD_FACE_M,帧 = cardIdToFrame(id)——
PLAY_LEFT_1: 1400,
PLAY_LEFT_2: 1401,
PLAY_LEFT_3: 1402,
PLAY_LEFT_4: 1403,
PLAY_LEFT_5: 1404,
PLAY_LEFT_6: 1405,
PLAY_LEFT_7: 1406,
PLAY_LEFT_8: 1407,
PLAY_LEFT_9: 1408,
PLAY_LEFT_10: 1409,
PLAY_LEFT_11: 1410,
PLAY_LEFT_12: 1411,
PLAY_LEFT_13: 1412,
PLAY_LEFT_14: 1413,
PLAY_LEFT_15: 1414,
PLAY_LEFT_16: 1415,
PLAY_LEFT_17: 1416,
PLAY_LEFT_18: 1417,
PLAY_LEFT_19: 1418,
PLAY_LEFT_20: 1419,
PLAY_LEFT_21: 1420,
PLAY_LEFT_22: 1421,
PLAY_LEFT_23: 1422,
PLAY_LEFT_24: 1423,
PLAY_LEFT_25: 1424,
PLAY_LEFT_26: 1425,
PLAY_LEFT_27: 1426,
PLAY_LEFT_28: 1427,
PLAY_LEFT_TYPE_BG: 1428,
PLAY_LEFT_TYPE_TEXT: 1429
},
PlayRight: {
id: EQW_Groups.PLAY_RIGHT, //214 右上家,结构同 212
//—— 本轮打出的牌,资源 EQW_Images.CARD_FACE_M,帧 = cardIdToFrame(id)——
PLAY_RIGHT_1: 1500,
PLAY_RIGHT_2: 1501,
PLAY_RIGHT_3: 1502,
PLAY_RIGHT_4: 1503,
PLAY_RIGHT_5: 1504,
PLAY_RIGHT_6: 1505,
PLAY_RIGHT_7: 1506,
PLAY_RIGHT_8: 1507,
PLAY_RIGHT_9: 1508,
PLAY_RIGHT_10: 1509,
PLAY_RIGHT_11: 1510,
PLAY_RIGHT_12: 1511,
PLAY_RIGHT_13: 1512,
PLAY_RIGHT_14: 1513,
PLAY_RIGHT_15: 1514,
PLAY_RIGHT_16: 1515,
PLAY_RIGHT_17: 1516,
PLAY_RIGHT_18: 1517,
PLAY_RIGHT_19: 1518,
PLAY_RIGHT_20: 1519,
PLAY_RIGHT_21: 1520,
PLAY_RIGHT_22: 1521,
PLAY_RIGHT_23: 1522,
PLAY_RIGHT_24: 1523,
PLAY_RIGHT_25: 1524,
PLAY_RIGHT_26: 1525,
PLAY_RIGHT_27: 1526,
PLAY_RIGHT_28: 1527,
PLAY_RIGHT_TYPE_BG: 1528,
PLAY_RIGHT_TYPE_TEXT: 1529
}
};