feat(art): 封印黑批(用户拍板 2026-09-28)——封印色 封印紫 #7C3AA8→封印黑 #000000(紫与微光蓝族色相冲突,黑无色相天然合规):UiKit.SEAL_PURPLE→SEAL_BLACK+board_view/board_fx_view 换色+胜利彩带紫位改亮金(紫赤 Boss 独占不入装饰)+样张脚本同步(旗面/图例/UIKIT 键)+字体素材路径随迁目录收敛(artwork/ui-reuse);文档七文件现行规则改封印黑(圣经 §4.1 条目重写+v2.11 行/character-design/comfyui/远程单 purple→black 十六进制重锁/清单/battle.md),历史注记与 v2.10 行按 ADR 纪律留痕不改;冒烟 557/0+ui_probe/ui_input_probe PASS+样张机检 12/12+doc 三闸零新增
This commit is contained in:
1 parent
33281d5052
commit
e440360ea5
12 files changed
+31
-30
No files matched your search
@@ -47,7 +47,7 @@ CHAR_DIR = ("game", "assets", "art", "character")
|
||||
ICON_DIR = ("game", "assets", "ui", "icons")
|
||||
OUT_PNG = os.path.join(ROOT, "artwork", "mockups", "sample-batch-v1-2026-09-26.png")
|
||||
OUT_REPORT = os.path.join(ROOT, "artwork", "mockups", "sample-v1-机检报告-2026-09-26.md")
|
||||
T_FONT = asset_root("design", "art", "candidates", "ui-reuse-2026-09-23",
|
||||
T_FONT = asset_root("artwork", "ui-reuse-2026-09-23",
|
||||
"4-字体", "fusion-pixel-12px(OFL)", "fusion-pixel-12px-proportional-latin.ttf")
|
||||
ZH_FONT = r"C:\Windows\Fonts\msyh.ttc"
|
||||
|
||||
@@ -57,7 +57,7 @@ INK_COLD = (19, 46, 54) # 青墨 1-3 #132E36
|
||||
INK_OCHRE = (60, 37, 12) # 赭墨 4-5 #3C250C
|
||||
INK_RUST = (74, 30, 20) # 锈墨 6-8 #4A1E14
|
||||
PLATE = (245, 234, 211) # 数字色牌 #F5EAD3
|
||||
SEAL_PURPLE = (124, 58, 168) # 封印紫 #7C3AA8(旗朱退役 2026-09-26)
|
||||
SEAL_BLACK = (0, 0, 0) # 封印黑 #000000(旗朱→封印紫→封印黑 2026-09-28——紫与微光蓝族色相冲突退役)
|
||||
DANGER_RED = (168, 50, 31) # 危险红 #A8321F
|
||||
REWARD_GOLD = (240, 168, 40) # 奖励金 #F0A828
|
||||
HERO_BLUE = (46, 134, 222) # 小人蓝 #2E86DE(候选,样张批冻结——对照表 §5.1)
|
||||
@@ -72,7 +72,7 @@ GLOW_FAMILY = {"attack": "通用增益", "defense": "通用增益", "weaken": "
|
||||
"action": "通用增益", "gp": "通用增益", "heal": "治疗",
|
||||
"pierce": "穿刺", "magic": "魔法", "blast": "群伤"}
|
||||
# 游戏 UiKit 常量(A4 混排对表——ui_kit.gd 实测值)
|
||||
UIKIT = {"INK": INK, "FLAG_RED": SEAL_PURPLE, "GOLD": REWARD_GOLD, "RED_MINE": RED_MINE,
|
||||
UIKIT = {"INK": INK, "FLAG_RED": SEAL_BLACK, "GOLD": REWARD_GOLD, "RED_MINE": RED_MINE,
|
||||
"PANEL_STAGE": (216, 200, 172), "PANEL_HERO": (232, 220, 196),
|
||||
"PANEL_DATA": (226, 210, 182), "PANEL_BORDER": (120, 106, 88),
|
||||
"BRICK": (201, 175, 131), "FLOOR": (179, 154, 120)}
|
||||
@@ -448,7 +448,7 @@ def render_main_board():
|
||||
d = ImageDraw.Draw(board)
|
||||
px, py = fx0 + cell // 2 - 2, fy0 + 8
|
||||
d.line([(px, py), (px, fy0 + cell - 10)], fill=(222, 210, 186), width=3)
|
||||
d.polygon([(px, py), (px + 18, py + 6), (px, py + 12)], fill=SEAL_PURPLE) # 旗面恒画右
|
||||
d.polygon([(px, py), (px + 18, py + 6), (px, py + 12)], fill=SEAL_BLACK) # 旗面恒画右
|
||||
d.ellipse([px - 3, fy0 + cell - 12, px + 3, fy0 + cell - 6], fill=INK)
|
||||
|
||||
# 雷格巢穴(已开,程序占位——素材缺口,画面内标注)
|
||||
@@ -671,7 +671,7 @@ def run_checks(board, placement, records, band, gmap, canvas_img=None):
|
||||
"违例格 %s" % viol if viol else "五格中心区全净")
|
||||
# A1 色板对表 + 禁入带扫描
|
||||
frozen = {"INK": INK, "青墨": INK_COLD, "赭墨": INK_OCHRE, "锈墨": INK_RUST, "PLATE": PLATE,
|
||||
"旗朱": SEAL_PURPLE, "危险红": DANGER_RED, "奖励金": REWARD_GOLD}
|
||||
"封印黑": SEAL_BLACK, "危险红": DANGER_RED, "奖励金": REWARD_GOLD}
|
||||
check("A1a", "色板对表圣经 §4.1 冻结值", True, "%s" % {k: "#%02X%02X%02X" % v for k, v in frozen.items()})
|
||||
band_hit = scan_banned_hue(board)
|
||||
check("A1b", "禁入带 HSV300°-345° 零命中", band_hit == 0, "命中 %d 像素(抽样)" % band_hit)
|
||||
@@ -818,7 +818,7 @@ def main():
|
||||
# S4 图例
|
||||
oy4 = oy3 + s3.size[1] + 30
|
||||
x = 20
|
||||
for name, rgb in [("封印紫", SEAL_PURPLE), ("危险红", DANGER_RED), ("奖励金", REWARD_GOLD),
|
||||
for name, rgb in [("封印黑", SEAL_BLACK), ("危险红", DANGER_RED), ("奖励金", REWARD_GOLD),
|
||||
("小人蓝(候选)", HERO_BLUE), ("接触带微光(候选)", CONTACT_GLOW)]:
|
||||
d.rectangle([x, oy4, x + 34, oy4 + 34], fill=rgb, outline=(90, 80, 66))
|
||||
d.text((x - 4, oy4 + 38), name, col=(225, 215, 195), font=F_LBL2) if False else d.text((x - 4, oy4 + 38), name, font=F_LBL2, fill=(225, 215, 195))
|
||||
|
||||
Reference in new issue
Block a user