"""All constants, colors, card data, faction data, and deck presets.""" # --- Window --- WINDOW_WIDTH = 1280 WINDOW_HEIGHT = 720 FPS = 60 # --- 国风水墨色板 (Chinese Ink Painting Palette) --- # 基础色 INK_BLACK = (20, 15, 10) # 墨黑 PAPER_WHITE = (245, 235, 220) # 宣纸白 GRAY = (128, 128, 128) DARK_GRAY = (64, 60, 55) LIGHT_GRAY = (192, 185, 175) # 传统色 ZHU_HONG = (190, 50, 40) # 朱红 SONGHUA_GREEN = (70, 140, 80) # 松花绿 DIAN_BLUE = (50, 80, 140) # 靛蓝 TENG_HUANG = (210, 170, 50) # 藤黄 JIANG_BROWN = (140, 80, 40) # 酱褐 QING_CYAN = (55, 120, 150) # 青色 ZI_PURPLE = (100, 55, 140) # 紫色 ORANGE = (200, 130, 45) # 橙 GOLD = (210, 175, 55) # 金 SILVER = (185, 180, 170) # 银 # 兼容旧名 BLACK = INK_BLACK WHITE = PAPER_WHITE RED = ZHU_HONG GREEN = SONGHUA_GREEN BLUE = DIAN_BLUE YELLOW = TENG_HUANG BROWN = JIANG_BROWN CYAN = QING_CYAN PURPLE = ZI_PURPLE DARK_RED = (139, 30, 30) DARK_GREEN = (30, 90, 30) # 水墨渐变色阶 (从淡到浓) INK_WASH_1 = (210, 200, 185) # 淡墨 INK_WASH_2 = (175, 165, 150) # 轻墨 INK_WASH_3 = (130, 120, 108) # 中墨 INK_WASH_4 = (80, 72, 62) # 浓墨 INK_WASH_5 = (35, 28, 20) # 焦墨 # 背景色 BG_COLOR = (235, 225, 205) # 宣纸底色 FIELD_COLOR = (225, 218, 198) # 淡宣纸 FRONTLINE_COLOR = (215, 205, 185) # 前线区 HIGHLIGHT_COLOR = (220, 200, 120, 128) VALID_TARGET = (100, 200, 100, 100) # --- 阵营色 (Faction Colors - muted ink-wash tones) --- FACTION_COLORS = { "qin": (160, 50, 45), # 秦 - 朱砂 (Vermillion) "qi": (65, 125, 70), # 齐 - 松绿 (Pine Green) "chu": (100, 55, 130), # 楚 - 葡紫 (Grape Purple) "yan": (55, 115, 145), # 燕 - 青瓷 (Celadon) "han": (170, 135, 50), # 韩 - 古金 (Antique Gold) "zhao": (165, 85, 40), # 赵 - 赭石 (Sienna) "wei": (50, 70, 145), # 魏 - 靛蓝 (Indigo) "neutral": (110, 105, 95), # 中立 - 墨灰 (Ink Gray) "ally": (160, 140, 75), # 盟国 - 古铜 (Bronze) } # --- Layout --- ENEMY_INFO_HEIGHT = 40 ENEMY_HAND_HEIGHT = 50 ACTION_BAR_HEIGHT = 50 HAND_HEIGHT = 120 BATTLEFIELD_AVAILABLE = WINDOW_HEIGHT - ENEMY_INFO_HEIGHT - ENEMY_HAND_HEIGHT - HAND_HEIGHT - ACTION_BAR_HEIGHT ZONE_HEIGHT = BATTLEFIELD_AVAILABLE // 3 CARD_WIDTH = 80 CARD_HEIGHT = 110 FIELD_CARD_WIDTH = 70 FIELD_CARD_HEIGHT = 95 CAPITAL_WIDTH = 80 CAPITAL_HEIGHT = 60 HAND_CARD_SPACING = 85 SLOT_SPACING = 85 ENEMY_SUPPORT_Y = ENEMY_INFO_HEIGHT + ENEMY_HAND_HEIGHT FRONTLINE_Y = ENEMY_SUPPORT_Y + ZONE_HEIGHT PLAYER_SUPPORT_Y = FRONTLINE_Y + ZONE_HEIGHT PLAYER_HAND_Y = PLAYER_SUPPORT_Y + ZONE_HEIGHT ACTION_BAR_Y = WINDOW_HEIGHT - ACTION_BAR_HEIGHT MAX_SUPPORT_SLOTS = 5 MAX_FRONTLINE_SLOTS = 5 MAX_HAND_SIZE = 8 # --- Game Rules --- STARTING_CAPITAL_HP = 20 MAX_PROVISIONS = 10 DECK_SIZE = 30 STARTING_HAND_SIZE = 4 FATIGUE_START_DAMAGE = 1 # --- Rarity --- RARITY_LIMITS = { "common": 3, "rare": 2, "legendary": 1, } # --- Unit Types --- UNIT_TYPES = ["infantry", "cavalry", "chariot", "archer", "siege"] # ============================================================ # CARD DATABASE # ============================================================ CARD_DATABASE = { # ==================== 秦 (Qin) ==================== "qin_tiesying": { "id": "qin_tiesying", "name": "铁鹰剑士", "faction": "qin", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 3, "defense": 3, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "qin_qiangnu": { "id": "qin_qiangnu", "name": "强弩手", "faction": "qin", "type": "unit", "unit_type": "archer", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "qin_bubing": { "id": "qin_bubing", "name": "秦锐士", "faction": "qin", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "qin_qibing": { "id": "qin_qibing", "name": "秦骑兵", "faction": "qin", "type": "unit", "unit_type": "cavalry", "cost": 4, "op_cost": 1, "attack": 4, "defense": 2, "max_hp": 2, "description": "骑兵·冲锋", "abilities": ["charge"], "rarity": "common", }, "qin_gongcheng": { "id": "qin_gongcheng", "name": "攻城弩", "faction": "qin", "type": "unit", "unit_type": "siege", "cost": 5, "op_cost": 2, "attack": 3, "defense": 1, "max_hp": 3, "description": "攻城·对都城双倍伤害", "abilities": ["siege", "ranged"], "rarity": "rare", }, "qin_shangyang": { "id": "qin_shangyang", "name": "商鞅变法", "faction": "qin", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_all", "effect_params": {"attack_bonus": 1, "defense_bonus": 0, "duration": 1}, "description": "所有友方单位+1攻击", "rarity": "rare", }, "qin_lianheng": { "id": "qin_lianheng", "name": "连横", "faction": "qin", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "damage_all_front", "effect_params": {"damage": 2, "target": "enemy"}, "description": "对所有敌方前线单位造成2伤害", "rarity": "rare", }, "qin_jiancu": { "id": "qin_jiancu", "name": "剑卒突击", "faction": "qin", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "damage", "effect_params": {"damage": 2, "target_type": "any"}, "description": "对一个单位造成2伤害", "rarity": "common", }, "qin_shihuang": { "id": "qin_shihuang", "name": "始皇帝令", "faction": "qin", "type": "order", "cost": 5, "op_cost": 0, "effect_type": "damage_hq", "effect_params": {"damage": 5}, "description": "对敌方都城造成5伤害", "rarity": "legendary", }, # ==================== 齐 (Qi) ==================== "qi_jiji": { "id": "qi_jiji", "name": "齐技击", "faction": "qi", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 3, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "qi_shangren": { "id": "qi_shangren", "name": "临淄商人", "faction": "qi", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 1, "defense": 2, "max_hp": 3, "description": "部署时:抽1牌", "abilities": ["draw_on_deploy:1"], "rarity": "common", }, "qi_gongshou": { "id": "qi_gongshou", "name": "齐弓手", "faction": "qi", "type": "unit", "unit_type": "archer", "cost": 3, "op_cost": 1, "attack": 3, "defense": 2, "max_hp": 2, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "qi_tianqi": { "id": "qi_tianqi", "name": "天齐战车", "faction": "qi", "type": "unit", "unit_type": "chariot", "cost": 5, "op_cost": 2, "attack": 4, "defense": 4, "max_hp": 4, "description": "战车·无视报复", "abilities": ["no_retaliation"], "rarity": "rare", }, "qi_tongshang": { "id": "qi_tongshang", "name": "通商宽农", "faction": "qi", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "gain_provisions", "effect_params": {"amount": 3}, "description": "获得3粮草", "rarity": "common", }, "qi_jixia": { "id": "qi_jixia", "name": "稷下学宫", "faction": "qi", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "draw", "effect_params": {"count": 2}, "description": "抽2牌", "rarity": "rare", }, "qi_sunbin": { "id": "qi_sunbin", "name": "孙膑兵法", "faction": "qi", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "damage", "effect_params": {"damage": 3, "target_type": "enemy_unit"}, "description": "对一个敌方单位造成3伤害", "rarity": "rare", }, "qi_fuguo": { "id": "qi_fuguo", "name": "富国强兵", "faction": "qi", "type": "order", "cost": 4, "op_cost": 0, "effect_type": "buff_all", "effect_params": {"attack_bonus": 1, "defense_bonus": 1, "duration": 1}, "description": "所有友方单位+1/+1", "rarity": "legendary", }, # ==================== 楚 (Chu) ==================== "chu_manbing": { "id": "chu_manbing", "name": "楚蛮兵", "faction": "chu", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 3, "defense": 4, "max_hp": 4, "description": "步兵·高防御", "abilities": [], "rarity": "common", }, "chu_wuyi": { "id": "chu_wuyi", "name": "巫医", "faction": "chu", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 1, "defense": 3, "max_hp": 3, "description": "回合开始时恢复友方单位1HP", "abilities": ["heal_all:1"], "rarity": "common", }, "chu_gongshou": { "id": "chu_gongshou", "name": "楚弓手", "faction": "chu", "type": "unit", "unit_type": "archer", "cost": 3, "op_cost": 1, "attack": 2, "defense": 3, "max_hp": 3, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "chu_zhancha": { "id": "chu_zhancha", "name": "楚战车", "faction": "chu", "type": "unit", "unit_type": "chariot", "cost": 5, "op_cost": 2, "attack": 4, "defense": 5, "max_hp": 5, "description": "战车·无视报复", "abilities": ["no_retaliation"], "rarity": "rare", }, "chu_gushou": { "id": "chu_gushou", "name": "固守", "faction": "chu", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_all", "effect_params": {"attack_bonus": 0, "defense_bonus": 2, "duration": 1}, "description": "所有友方单位+2防御", "rarity": "common", }, "chu_cici": { "id": "chu_cici", "name": "楚辞鼓舞", "faction": "chu", "type": "order", "cost": 4, "op_cost": 0, "effect_type": "heal_hq", "effect_params": {"amount": 5}, "description": "恢复都城5HP", "rarity": "rare", }, "chu_dazhao": { "id": "chu_dazhao", "name": "楚国之怒", "faction": "chu", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "damage_all_front", "effect_params": {"damage": 1, "target": "enemy"}, "description": "对所有敌方前线单位造成1伤害", "rarity": "rare", }, "chu_xiangyu": { "id": "chu_xiangyu", "name": "霸王降世", "faction": "chu", "type": "order", "cost": 6, "op_cost": 0, "effect_type": "summon", "effect_params": {"unit_id": "chu_manbing", "count": 2, "zone": "support"}, "description": "召唤2个楚蛮兵到营地", "rarity": "legendary", }, # ==================== 燕 (Yan) ==================== "yan_qibing": { "id": "yan_qibing", "name": "燕骑", "faction": "yan", "type": "unit", "unit_type": "cavalry", "cost": 2, "op_cost": 0, "attack": 3, "defense": 1, "max_hp": 2, "description": "骑兵·行动费用-1", "abilities": ["charge"], "rarity": "common", }, "yan_cike": { "id": "yan_cike", "name": "刺客", "faction": "yan", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 4, "defense": 1, "max_hp": 1, "description": "可攻击敌方营地单位", "abilities": ["can_attack_support"], "rarity": "rare", }, "yan_bubing": { "id": "yan_bubing", "name": "燕步兵", "faction": "yan", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "步兵", "abilities": [], "rarity": "common", }, "yan_gongshou": { "id": "yan_gongshou", "name": "燕弓手", "faction": "yan", "type": "unit", "unit_type": "archer", "cost": 3, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "yan_jingke": { "id": "yan_jingke", "name": "荆轲刺秦", "faction": "yan", "type": "order", "cost": 4, "op_cost": 0, "effect_type": "damage_hq", "effect_params": {"damage": 4}, "description": "对敌方都城造成4伤害", "rarity": "rare", }, "yan_jixing": { "id": "yan_jixing", "name": "急行军", "faction": "yan", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "move_to_front", "effect_params": {}, "description": "将一个友方单位移至前线", "rarity": "common", }, "yan_tuxi": { "id": "yan_tuxi", "name": "突袭", "faction": "yan", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_type", "effect_params": {"unit_type": "cavalry", "attack_bonus": 2, "defense_bonus": 0, "duration": 1}, "description": "所有骑兵+2攻击", "rarity": "common", }, "yan_yanzhao": { "id": "yan_yanzhao", "name": "燕昭王求贤", "faction": "yan", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "draw", "effect_params": {"count": 2}, "description": "抽2牌", "rarity": "rare", }, # ==================== 韩 (Han) ==================== "han_nubing": { "id": "han_nubing", "name": "韩弩兵", "faction": "han", "type": "unit", "unit_type": "archer", "cost": 2, "op_cost": 1, "attack": 1, "defense": 3, "max_hp": 3, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "han_shushi": { "id": "han_shushi", "name": "术士", "faction": "han", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "部署时:对敌单位造成2伤害", "abilities": ["damage_on_deploy:2"], "rarity": "common", }, "han_jianbing": { "id": "han_jianbing", "name": "韩剑兵", "faction": "han", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 3, "defense": 3, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "han_qibing": { "id": "han_qibing", "name": "韩骑兵", "faction": "han", "type": "unit", "unit_type": "cavalry", "cost": 4, "op_cost": 1, "attack": 3, "defense": 2, "max_hp": 3, "description": "骑兵·冲锋", "abilities": ["charge"], "rarity": "common", }, "han_weiwei": { "id": "han_weiwei", "name": "围魏救赵", "faction": "han", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "bounce", "effect_params": {"target_type": "enemy_front"}, "description": "将一个敌方前线单位返回手牌", "rarity": "rare", }, "han_fubing": { "id": "han_fubing", "name": "伏兵", "faction": "han", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "destroy_damaged", "effect_params": {}, "description": "消灭一个受伤的敌方单位", "rarity": "rare", }, "han_liannu": { "id": "han_liannu", "name": "连弩齐射", "faction": "han", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "damage_all_front", "effect_params": {"damage": 1, "target": "enemy"}, "description": "对所有敌方前线单位造成1伤害", "rarity": "common", }, "han_shenjian": { "id": "han_shenjian", "name": "神臂弓", "faction": "han", "type": "order", "cost": 4, "op_cost": 0, "effect_type": "damage_hq", "effect_params": {"damage": 4}, "description": "对敌方都城造成4伤害", "rarity": "legendary", }, # ==================== 赵 (Zhao) ==================== "zhao_bianqi": { "id": "zhao_bianqi", "name": "赵边骑", "faction": "zhao", "type": "unit", "unit_type": "cavalry", "cost": 3, "op_cost": 1, "attack": 4, "defense": 2, "max_hp": 2, "description": "骑兵·冲锋", "abilities": ["charge"], "rarity": "common", }, "zhao_tieqi": { "id": "zhao_tieqi", "name": "铁骑", "faction": "zhao", "type": "unit", "unit_type": "cavalry", "cost": 5, "op_cost": 2, "attack": 5, "defense": 3, "max_hp": 4, "description": "骑兵·无视报复", "abilities": ["charge", "no_retaliation"], "rarity": "rare", }, "zhao_bubing": { "id": "zhao_bubing", "name": "赵步兵", "faction": "zhao", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "zhao_gongshou": { "id": "zhao_gongshou", "name": "赵弓骑", "faction": "zhao", "type": "unit", "unit_type": "archer", "cost": 3, "op_cost": 1, "attack": 3, "defense": 2, "max_hp": 2, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "zhao_qixi": { "id": "zhao_qixi", "name": "奇袭", "faction": "zhao", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_type", "effect_params": {"unit_type": "cavalry", "attack_bonus": 2, "defense_bonus": 0, "duration": 1}, "description": "所有骑兵+2攻击", "rarity": "common", }, "zhao_wuling": { "id": "zhao_wuling", "name": "武灵王令", "faction": "zhao", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "buff_all", "effect_params": {"attack_bonus": 2, "defense_bonus": 0, "duration": 1}, "description": "所有友方骑兵+2攻击", "rarity": "rare", }, "zhao_chongfeng": { "id": "zhao_chongfeng", "name": "冲锋号令", "faction": "zhao", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "move_to_front", "effect_params": {}, "description": "将一个友方单位移至前线", "rarity": "common", }, "zhao_lianpo": { "id": "zhao_lianpo", "name": "廉颇之勇", "faction": "zhao", "type": "order", "cost": 4, "op_cost": 0, "effect_type": "buff_single", "effect_params": {"attack_bonus": 3, "defense_bonus": 3, "duration": 1}, "description": "一个友方单位+3/+3", "rarity": "legendary", }, # ==================== 魏 (Wei) ==================== "wei_wuzu": { "id": "wei_wuzu", "name": "魏武卒", "faction": "wei", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 2, "defense": 4, "max_hp": 4, "description": "步兵·高防御", "abilities": [], "rarity": "common", }, "wei_zhongzhuang": { "id": "wei_zhongzhuang", "name": "重装步兵", "faction": "wei", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 3, "defense": 3, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "wei_gongshou": { "id": "wei_gongshou", "name": "魏弓手", "faction": "wei", "type": "unit", "unit_type": "archer", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "wei_qibing": { "id": "wei_qibing", "name": "魏骑兵", "faction": "wei", "type": "unit", "unit_type": "cavalry", "cost": 4, "op_cost": 1, "attack": 4, "defense": 2, "max_hp": 3, "description": "骑兵·冲锋", "abilities": ["charge"], "rarity": "common", }, "wei_zhengjun": { "id": "wei_zhengjun", "name": "整军备战", "faction": "wei", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_type", "effect_params": {"unit_type": "infantry", "attack_bonus": 1, "defense_bonus": 1, "duration": 1}, "description": "所有步兵+1/+1", "rarity": "common", }, "wei_diaodu": { "id": "wei_diaodu", "name": "调度", "faction": "wei", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "move_to_front", "effect_params": {}, "description": "将一个友方单位移至前线", "rarity": "common", }, "wei_lianbao": { "id": "wei_lianbao", "name": "连环堡", "faction": "wei", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "buff_all", "effect_params": {"attack_bonus": 0, "defense_bonus": 2, "duration": 2}, "description": "所有友方单位+2防御持续2回合", "rarity": "rare", }, "wei_weiliaozi": { "id": "wei_weiliaozi", "name": "尉缭子兵法", "faction": "wei", "type": "order", "cost": 5, "op_cost": 0, "effect_type": "damage_all_front", "effect_params": {"damage": 3, "target": "enemy"}, "description": "对所有敌方前线单位造成3伤害", "rarity": "legendary", }, # ==================== 中立牌 (Neutral) ==================== "neutral_miliao": { "id": "neutral_miliao", "name": "密探", "faction": "neutral", "type": "unit", "unit_type": "infantry", "cost": 1, "op_cost": 1, "attack": 1, "defense": 1, "max_hp": 2, "description": "部署时:抽1牌", "abilities": ["draw_on_deploy:1"], "rarity": "common", }, "neutral_yimin": { "id": "neutral_yimin", "name": "义民", "faction": "neutral", "type": "unit", "unit_type": "infantry", "cost": 1, "op_cost": 1, "attack": 1, "defense": 2, "max_hp": 2, "description": "步兵", "abilities": [], "rarity": "common", }, "neutral_liangcao": { "id": "neutral_liangcao", "name": "粮草补给", "faction": "neutral", "type": "order", "cost": 0, "op_cost": 0, "effect_type": "gain_provisions", "effect_params": {"amount": 2}, "description": "获得2粮草", "rarity": "common", }, # ==================== 盟国 (Ally) ==================== # --- 鲁 (Lu) --- "ally_lu_dizi": { "id": "ally_lu_dizi", "name": "孔门弟子", "faction": "ally", "ally_state": "鲁", "type": "unit", "unit_type": "infantry", "cost": 1, "op_cost": 1, "attack": 1, "defense": 2, "max_hp": 2, "description": "部署时:抽1牌", "abilities": ["draw_on_deploy:1"], "rarity": "common", }, "ally_lu_liyue": { "id": "ally_lu_liyue", "name": "礼乐教化", "faction": "ally", "ally_state": "鲁", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_all", "effect_params": {"attack_bonus": 0, "defense_bonus": 1, "duration": 1}, "description": "所有友方+1防御", "rarity": "common", }, "ally_lu_gongjiang": { "id": "ally_lu_gongjiang", "name": "鲁国工匠", "faction": "ally", "ally_state": "鲁", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "部署时:获得2粮草", "abilities": ["gain_on_deploy:2"], "rarity": "common", }, "ally_lu_xingtan": { "id": "ally_lu_xingtan", "name": "杏坛讲学", "faction": "ally", "ally_state": "鲁", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "draw", "effect_params": {"count": 2}, "description": "抽2牌", "rarity": "rare", }, # --- 宋 (Song) --- "ally_song_shanggu": { "id": "ally_song_shanggu", "name": "商贾", "faction": "ally", "ally_state": "宋", "type": "unit", "unit_type": "infantry", "cost": 1, "op_cost": 1, "attack": 1, "defense": 2, "max_hp": 2, "description": "部署时:获得2粮草", "abilities": ["gain_on_deploy:2"], "rarity": "common", }, "ally_song_ren": { "id": "ally_song_ren", "name": "宋襄之仁", "faction": "ally", "ally_state": "宋", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "heal_hq", "effect_params": {"amount": 3}, "description": "恢复都城3HP", "rarity": "common", }, "ally_song_chongji": { "id": "ally_song_chongji", "name": "宋国重骑", "faction": "ally", "ally_state": "宋", "type": "unit", "unit_type": "cavalry", "cost": 4, "op_cost": 1, "attack": 4, "defense": 2, "max_hp": 2, "description": "骑兵·冲锋", "abilities": ["charge"], "rarity": "rare", }, "ally_song_yishang": { "id": "ally_song_yishang", "name": "殷商遗礼", "faction": "ally", "ally_state": "宋", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "heal_all", "effect_params": {"amount": 2}, "description": "所有友方单位恢复2HP", "rarity": "rare", }, # --- 吴 (Wu) --- "ally_wu_wugou": { "id": "ally_wu_wugou", "name": "吴钩武士", "faction": "ally", "ally_state": "吴", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 3, "defense": 1, "max_hp": 2, "description": "步兵·高攻", "abilities": [], "rarity": "common", }, "ally_wu_sunwu": { "id": "ally_wu_sunwu", "name": "孙武兵法", "faction": "ally", "ally_state": "吴", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "damage_all_front", "effect_params": {"damage": 2, "target": "enemy"}, "description": "对所有敌方前线单位造成2伤害", "rarity": "rare", }, "ally_wu_shuijun": { "id": "ally_wu_shuijun", "name": "吴国水军", "faction": "ally", "ally_state": "吴", "type": "unit", "unit_type": "archer", "cost": 3, "op_cost": 1, "attack": 2, "defense": 3, "max_hp": 3, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "ally_wu_wuzixu": { "id": "ally_wu_wuzixu", "name": "伍子胥复仇", "faction": "ally", "ally_state": "吴", "type": "order", "cost": 5, "op_cost": 0, "effect_type": "damage_hq", "effect_params": {"damage": 4}, "description": "对敌方都城造成4伤害", "rarity": "legendary", }, # --- 越 (Yue) --- "ally_yue_nvjian": { "id": "ally_yue_nvjian", "name": "越女剑客", "faction": "ally", "ally_state": "越", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "步兵·冲锋", "abilities": ["charge"], "rarity": "common", }, "ally_yue_woxin": { "id": "ally_yue_woxin", "name": "卧薪尝胆", "faction": "ally", "ally_state": "越", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "draw_self_damage", "effect_params": {"count": 1, "self_damage": 2}, "description": "抽1牌,都城-2HP", "rarity": "common", }, "ally_yue_sishi": { "id": "ally_yue_sishi", "name": "越国死士", "faction": "ally", "ally_state": "越", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 4, "defense": 1, "max_hp": 1, "description": "步兵·无视报复", "abilities": ["no_retaliation"], "rarity": "rare", }, "ally_yue_jinggang": { "id": "ally_yue_jinggang", "name": "精钢剑", "faction": "ally", "ally_state": "越", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "buff_single", "effect_params": {"attack_bonus": 2, "defense_bonus": 0, "duration": 1}, "description": "一个友方单位+2攻击", "rarity": "common", }, # --- 郑 (Zheng) --- "ally_zheng_xiangao": { "id": "ally_zheng_xiangao", "name": "弦高犒师", "faction": "ally", "ally_state": "郑", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "bounce", "effect_params": {"target_type": "enemy_front"}, "description": "将一个敌方前线单位返回手牌", "rarity": "common", }, "ally_zheng_jianshi": { "id": "ally_zheng_jianshi", "name": "郑国剑士", "faction": "ally", "ally_state": "郑", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 2, "defense": 3, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "ally_zheng_zichan": { "id": "ally_zheng_zichan", "name": "子产治郑", "faction": "ally", "ally_state": "郑", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "destroy_damaged", "effect_params": {}, "description": "消灭一个受伤的敌方单位", "rarity": "rare", }, "ally_zheng_shangdui": { "id": "ally_zheng_shangdui", "name": "郑国商队", "faction": "ally", "ally_state": "郑", "type": "unit", "unit_type": "infantry", "cost": 1, "op_cost": 1, "attack": 1, "defense": 1, "max_hp": 2, "description": "部署时:获得3粮草", "abilities": ["gain_on_deploy:3"], "rarity": "common", }, # --- 陈 (Chen) --- "ally_chen_wuzhu": { "id": "ally_chen_wuzhu", "name": "宛丘巫祝", "faction": "ally", "ally_state": "陈", "type": "unit", "unit_type": "infantry", "cost": 2, "op_cost": 1, "attack": 1, "defense": 3, "max_hp": 3, "description": "回合开始时恢复友方1HP", "abilities": ["heal_all:1"], "rarity": "common", }, "ally_chen_maobing": { "id": "ally_chen_maobing", "name": "陈国矛兵", "faction": "ally", "ally_state": "陈", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 2, "defense": 4, "max_hp": 4, "description": "步兵·高防御", "abilities": [], "rarity": "common", }, "ally_chen_wuyu": { "id": "ally_chen_wuyu", "name": "舞雩祭", "faction": "ally", "ally_state": "陈", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "heal_hq", "effect_params": {"amount": 4}, "description": "恢复都城4HP", "rarity": "common", }, "ally_chen_wugu": { "id": "ally_chen_wugu", "name": "巫蛊之术", "faction": "ally", "ally_state": "陈", "type": "order", "cost": 3, "op_cost": 0, "effect_type": "damage", "effect_params": {"damage": 3, "target_type": "enemy_unit"}, "description": "对一个敌方单位造成3伤害", "rarity": "rare", }, # --- 蔡 (Cai) --- "ally_cai_tongjian": { "id": "ally_cai_tongjian", "name": "蔡侯铜剑", "faction": "ally", "ally_state": "蔡", "type": "order", "cost": 2, "op_cost": 0, "effect_type": "damage", "effect_params": {"damage": 3, "target_type": "enemy_unit"}, "description": "对一个敌方单位造成3伤害", "rarity": "common", }, "ally_cai_jingbing": { "id": "ally_cai_jingbing", "name": "蔡国精兵", "faction": "ally", "ally_state": "蔡", "type": "unit", "unit_type": "infantry", "cost": 3, "op_cost": 1, "attack": 3, "defense": 3, "max_hp": 3, "description": "步兵", "abilities": [], "rarity": "common", }, "ally_cai_shoushou": { "id": "ally_cai_shoushou", "name": "蔡国射手", "faction": "ally", "ally_state": "蔡", "type": "unit", "unit_type": "archer", "cost": 3, "op_cost": 1, "attack": 2, "defense": 2, "max_hp": 2, "description": "弓手·可从营地射击", "abilities": ["ranged"], "rarity": "common", }, "ally_cai_qingtong": { "id": "ally_cai_qingtong", "name": "青铜铸造", "faction": "ally", "ally_state": "蔡", "type": "order", "cost": 1, "op_cost": 0, "effect_type": "buff_single", "effect_params": {"attack_bonus": 1, "defense_bonus": 1, "duration": 1}, "description": "一个友方单位+1/+1", "rarity": "common", }, } # ============================================================ # KEYWORDS SYSTEM # ============================================================ KEYWORDS = { "charge": {"name": "冲锋", "icon": "冲", "desc": "部署当回合可移动并攻击", "color": (200, 130, 45)}, "ranged": {"name": "射击", "icon": "射", "desc": "可从营地攻击,不受报复", "color": (55, 115, 140)}, "no_retaliation": {"name": "强袭", "icon": "强", "desc": "攻击时不受报复反击", "color": (170, 50, 40)}, "siege": {"name": "攻城", "icon": "城", "desc": "对都城造成双倍伤害", "color": (160, 80, 40)}, "draw_on_deploy": {"name": "部署抽牌", "icon": "抽", "desc": "部署时抽X张牌", "color": (50, 70, 140)}, "damage_on_deploy": {"name": "部署伤害", "icon": "伤", "desc": "部署时对随机敌造成X伤害", "color": (180, 60, 50)}, "gain_on_deploy": {"name": "部署获利", "icon": "获", "desc": "部署时获得X粮草", "color": (190, 160, 45)}, "heal_all": {"name": "治疗", "icon": "愈", "desc": "回合开始恢复友方X HP", "color": (65, 130, 70)}, "can_attack_support": {"name": "渗透", "icon": "渗", "desc": "可攻击敌方营地单位", "color": (90, 50, 130)}, } # ============================================================ # FACTION DEFINITIONS # ============================================================ FACTIONS = { "qin": { "id": "qin", "name": "秦国", "leader": "秦始皇", "passive_id": "military_reward", "passive_name": "军功爵制", "passive_desc": "每消灭一个敌方单位,获得1粮草", "capital_hp": 20, }, "qi": { "id": "qi", "name": "齐国", "leader": "齐桓公", "passive_id": "extra_provision", "passive_name": "管仲之策", "passive_desc": "每回合额外获得1粮草", "capital_hp": 20, }, "chu": { "id": "chu", "name": "楚国", "leader": "楚庄王", "passive_id": "fortified_capital", "passive_name": "楚国天险", "passive_desc": "都城拥有25HP(而非20HP)", "capital_hp": 25, }, "yan": { "id": "yan", "name": "燕国", "leader": "燕昭王", "passive_id": "cavalry_discount", "passive_name": "突袭战术", "passive_desc": "骑兵行动费用-1", "capital_hp": 20, }, "han": { "id": "han", "name": "韩国", "leader": "韩昭侯", "passive_id": "archer_bonus", "passive_name": "劲弩之术", "passive_desc": "弓手对敌方都城额外造成1伤害", "capital_hp": 20, }, "zhao": { "id": "zhao", "name": "赵国", "leader": "赵武灵王", "passive_id": "cavalry_power", "passive_name": "胡服骑射", "passive_desc": "骑兵+1攻击", "capital_hp": 20, }, "wei": { "id": "wei", "name": "魏国", "leader": "魏文侯", "passive_id": "infantry_armor", "passive_name": "魏武卒", "passive_desc": "步兵+1防御", "capital_hp": 20, }, } # ============================================================ # DECK PRESETS (30 cards each) # ============================================================ DECK_PRESETS = { "qin": { "faction": "qin", "cards": [ "qin_tiesying", "qin_tiesying", "qin_tiesying", "qin_qiangnu", "qin_qiangnu", "qin_qiangnu", "qin_bubing", "qin_bubing", "qin_bubing", "qin_qibing", "qin_qibing", "qin_gongcheng", "qin_gongcheng", "qin_shangyang", "qin_shangyang", "qin_lianheng", "qin_jiancu", "qin_jiancu", "qin_jiancu", "qin_shihuang", "neutral_miliao", "neutral_miliao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_yimin", "neutral_liangcao", ], }, "qi": { "faction": "qi", "cards": [ "qi_jiji", "qi_jiji", "qi_jiji", "qi_shangren", "qi_shangren", "qi_shangren", "qi_gongshou", "qi_gongshou", "qi_gongshou", "qi_tianqi", "qi_tianqi", "qi_tongshang", "qi_tongshang", "qi_tongshang", "qi_jixia", "qi_sunbin", "qi_sunbin", "qi_fuguo", "neutral_miliao", "neutral_miliao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_yimin", "neutral_yimin", "neutral_miliao", "neutral_yimin", ], }, "chu": { "faction": "chu", "cards": [ "chu_manbing", "chu_manbing", "chu_manbing", "chu_wuyi", "chu_wuyi", "chu_wuyi", "chu_gongshou", "chu_gongshou", "chu_gongshou", "chu_zhancha", "chu_zhancha", "chu_gushou", "chu_gushou", "chu_gushou", "chu_cici", "chu_dazhao", "chu_dazhao", "chu_xiangyu", "neutral_miliao", "neutral_miliao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_yimin", "neutral_yimin", "neutral_miliao", "neutral_yimin", ], }, "yan": { "faction": "yan", "cards": [ "yan_qibing", "yan_qibing", "yan_qibing", "yan_cike", "yan_cike", "yan_bubing", "yan_bubing", "yan_bubing", "yan_gongshou", "yan_gongshou", "yan_gongshou", "yan_jingke", "yan_jixing", "yan_jixing", "yan_jixing", "yan_tuxi", "yan_tuxi", "yan_yanzhao", "yan_yanzhao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_miliao", "neutral_miliao", "neutral_miliao", "neutral_yimin", "neutral_yimin", ], }, "han": { "faction": "han", "cards": [ "han_nubing", "han_nubing", "han_nubing", "han_shushi", "han_shushi", "han_shushi", "han_jianbing", "han_jianbing", "han_jianbing", "han_qibing", "han_qibing", "han_weiwei", "han_weiwei", "han_fubing", "han_liannu", "han_liannu", "han_liannu", "han_shenjian", "neutral_miliao", "neutral_miliao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_yimin", "neutral_miliao", "neutral_yimin", "neutral_yimin", ], }, "zhao": { "faction": "zhao", "cards": [ "zhao_bianqi", "zhao_bianqi", "zhao_bianqi", "zhao_tieqi", "zhao_tieqi", "zhao_bubing", "zhao_bubing", "zhao_bubing", "zhao_gongshou", "zhao_gongshou", "zhao_gongshou", "zhao_qixi", "zhao_qixi", "zhao_qixi", "zhao_wuling", "zhao_chongfeng", "zhao_chongfeng", "zhao_lianpo", "neutral_miliao", "neutral_miliao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_yimin", "neutral_yimin", "neutral_miliao", "neutral_yimin", ], }, "wei": { "faction": "wei", "cards": [ "wei_wuzu", "wei_wuzu", "wei_wuzu", "wei_zhongzhuang", "wei_zhongzhuang", "wei_zhongzhuang", "wei_gongshou", "wei_gongshou", "wei_gongshou", "wei_qibing", "wei_qibing", "wei_zhengjun", "wei_zhengjun", "wei_zhengjun", "wei_diaodu", "wei_diaodu", "wei_diaodu", "wei_lianbao", "wei_weiliaozi", "neutral_miliao", "neutral_miliao", "neutral_liangcao", "neutral_liangcao", "neutral_liangcao", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_yimin", "neutral_miliao", "neutral_yimin", ], }, }