fix: 大小王角标不显示 — background_color 被全局白底覆盖

draw_joker 用 design.get('background_color', default) 试图取 fallback,
但整副牌默认就是白底,所以 fallback 永远走不到。
大王显示成白底 + 白字 = 看不到,小王同理。

修复:从 project.card_overrides[card_key] 单独读 background_color,
没有就硬编码回默认绿/红(不被 project.design 全局色污染)。
This commit is contained in:
Developer
2026-06-02 10:09:48 +08:00
parent 8a253132bb
commit 0a22a0c0d2

View File

@@ -296,8 +296,14 @@ def draw_joker(canvas, design, which, project, card_key, asset):
"""绘制大小王:独立背景 + 主体图 + 文字"""
w, h = canvas.size
# 优先用单牌覆盖的背景色
bg_color = design.get('background_color', '#1B5E20' if which == 'big' else '#B71C1C')
# 大小王默认有自己的背景色(绿/红),不被整副牌的 background_color 覆盖
# 除非用户显式在 card_overrides 里设了 background_color
default_bg = '#1B5E20' if which == 'big' else '#B71C1C'
card_overrides = (project.card_overrides or {}).get(card_key, {})
if 'background_color' in card_overrides:
bg_color = card_overrides['background_color']
else:
bg_color = default_bg
canvas.paste(hex_to_rgba(bg_color, 255), (0, 0, w, h))
# 主体图