Files
erqiwang_youle/client/js/01_SubGame/codes/config/Sprites_Cards.js
T
joywayerandClaude Opus 5 ee65871694 二七王:手牌标记精灵扩到与手牌一一对应(36 个),并钉死精灵总数
清单 §5.2 表格写的是「牌型分组标记 ×8」,但 §1.6 明确规定三种标记互斥、【每张牌】
至多一个,core/CardMark.js 也是按每张牌返回标记的。一手 28 张牌通常带 13 个以上标记、
36 张埋牌手更多,8 个远远不够。§1.6 是行为规格、比表格措辞更权威,故按 §1.6 裁决:
HAND_MARK_1..36 与 HAND_CARD_1..36 一一对应。

- ID 另起 2100–2135 整段空号:1236 往后接不下 36 个连号(1250 起已是底牌/埋牌区),
  换空号段比给别的 View 重新编号更安全;仍落在子游戏段 1001–2999,无重复。
- 守卫补「手牌与标记 1..36 一一对应且同群组」检查。
- 精灵总数由「> 200」改为钉死 387(test_constants / test_spriteindex 两处同一个数),
  布局节点数同理已钉死——松下界删掉整个 View 都还能通过。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 22:25:19 +08:00

252 lines
8.5 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 || {};
//自己手牌区: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 张(清单 §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
}
};
//埋牌底牌展示区:结算时亮出的埋牌底牌 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
}
};
//三家已出牌区:自己/左上家/右上家 各 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
}
};