From 62264deeed2c3d6a2dd6c54290794586b091b1f0 Mon Sep 17 00:00:00 2001 From: pan Date: Mon, 27 Jul 2026 15:33:46 +0800 Subject: [PATCH] refactor(hero card): add card_lv background color logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增updateBgNode方法根据card_lv切换英雄背景节点颜色 2. 为所有基础卡牌配置补充缺失的card_lv字段 3. 调整配置项字段顺序保持代码整洁 --- assets/script/game/common/config/CardSet.ts | 9 ++++--- assets/script/game/map/CHeroComp.ts | 27 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/assets/script/game/common/config/CardSet.ts b/assets/script/game/common/config/CardSet.ts index ea880a01..19dedcd7 100644 --- a/assets/script/game/common/config/CardSet.ts +++ b/assets/script/game/common/config/CardSet.ts @@ -154,6 +154,7 @@ HeroList.forEach(uuid => { pool_lv: CardLV.LV1, kind: CKind.Hero, hero_lv: 1, + card_lv: 1, base_pool_lv: 1, }); }); @@ -191,22 +192,22 @@ export interface SpecialRefreshCardConfig extends CardConfig { */ export const SpecialUpgradeCardList: Record = { 7001: { - uuid: 7001, type: CardType.SpecialUpgrade, cost: 10, weight: 18, pool_lv: CardLV.LV1, kind: CKind.Card, name: t("scard_name_7001"), info: t("scard_info_7001"), + uuid: 7001, type: CardType.SpecialUpgrade, cost: 10, weight: 18, pool_lv: CardLV.LV1, kind: CKind.Card, card_lv: 1, name: t("scard_name_7001"), info: t("scard_info_7001"), currentLv: 0, targetLv: 0, }, } export const SpecialRefreshCardList: Record = { 7101: { - uuid: 7101, type: CardType.SpecialRefresh, cost: 3, weight: 14, pool_lv: CardLV.LV1, kind: CKind.Card, name: t("scard_name_7101"), info: t("scard_info_7101"), + uuid: 7101, type: CardType.SpecialRefresh, cost: 3, weight: 14, pool_lv: CardLV.LV1, kind: CKind.Card, card_lv: 1, name: t("scard_name_7101"), info: t("scard_info_7101"), refreshLv: 0, refreshHeroType: SpecialRefreshHeroType.Melee, }, 7102: { - uuid: 7102, type: CardType.SpecialRefresh, cost: 3, weight: 14, pool_lv: CardLV.LV1, kind: CKind.Card, name: t("scard_name_7102"), info: t("scard_info_7102"), + uuid: 7102, type: CardType.SpecialRefresh, cost: 3, weight: 14, pool_lv: CardLV.LV1, kind: CKind.Card, card_lv: 1, name: t("scard_name_7102"), info: t("scard_info_7102"), refreshLv: 0, refreshHeroType: SpecialRefreshHeroType.Ranged, }, 7103: { - uuid: 7103, type: CardType.SpecialRefresh, cost: 4, weight: 12, pool_lv: CardLV.LV1, kind: CKind.Card, name: t("scard_name_7103"), info: t("scard_info_7103"), + uuid: 7103, type: CardType.SpecialRefresh, cost: 4, weight: 12, pool_lv: CardLV.LV1, kind: CKind.Card, card_lv: 1, name: t("scard_name_7103"), info: t("scard_info_7103"), refreshLv: 0, refreshHeroType: SpecialRefreshHeroType.Any, }, } diff --git a/assets/script/game/map/CHeroComp.ts b/assets/script/game/map/CHeroComp.ts index 232a42f3..5ccfebc3 100644 --- a/assets/script/game/map/CHeroComp.ts +++ b/assets/script/game/map/CHeroComp.ts @@ -292,6 +292,9 @@ export class CHeroComp extends CCComp { } } + // 背景:按 card_lv 激活对应颜色子节点(1→green 2→blue 3→purple 4→red 5→yellow) + this.updateBgNode(); + // 描述词条(最多显示 3 条,对应 fied1/fied2/fied3) const fieldLabels = [this.fied1, this.fied2, this.fied3]; const desc = hero?.info || this.cardData.info || ""; @@ -321,6 +324,30 @@ export class CHeroComp extends CCComp { this.playEnterAnim(); } + /** + * 根据 card_lv 切换 bg_node 下的颜色子节点显示。 + * 等级与颜色对应关系: + * card_lv 1 → green + * card_lv 2 → blue + * card_lv 3 → purple + * card_lv 4 → red + * card_lv 5 → yellow + */ + private updateBgNode() { + if (!this.bg_node || !this.cardData) return; + const lvToColor: Record = { + 1: "green", + 2: "blue", + 3: "purple", + 4: "red", + 5: "yellow", + }; + const targetColor = lvToColor[this.cardData.card_lv ?? 1]; + this.bg_node.children.forEach(child => { + child.active = (child.name === targetColor); + }); + } + // ======================== 动画效果 ======================== /** 入场动画时长(秒) */