From 0d7f53b463628ff1ab463f0472d3bbad8f700319 Mon Sep 17 00:00:00 2001 From: panFD Date: Sun, 23 Aug 2026 17:47:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor(heroComp):=20=E6=8B=86=E5=88=86?= =?UTF-8?q?=E7=B2=BE=E7=AE=80=E8=8B=B1=E9=9B=84=E5=8D=A1=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将原本CardConfig中的英雄卡必要字段抽离为HeroCardConfig, 仅保留CHeroComp组件需要的渲染交互字段,减少不必要的依赖和字段。 --- assets/script/game/common/config/heroSet.ts | 14 ++++++++++++++ assets/script/game/map/CHeroComp.ts | 15 +++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 8a662c20..fe0e73ac 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -325,6 +325,20 @@ export interface heroInfo { /** 分级能力说明,索引0=1级,依次递增;信息面板逐条展示各等级技能与能力 */ infos?: string[]; } + +/** + * 英雄卡配置(CHeroComp 专用,从 CardConfig 精简) + * 仅保留英雄卡渲染和交互必需的字段 + */ +export interface HeroCardConfig { + uuid: number; + name?: string; + info?: string; + cost: number; + card_lv: number; + base_card_lv?: number; +} + /** * 技能基础信息接口 */ diff --git a/assets/script/game/map/CHeroComp.ts b/assets/script/game/map/CHeroComp.ts index 02617a72..31aded44 100644 --- a/assets/script/game/map/CHeroComp.ts +++ b/assets/script/game/map/CHeroComp.ts @@ -19,8 +19,7 @@ import { mLogger } from "../common/Logger"; import { _decorator, Node, Sprite, Label, RichText, NodeEventType, Vec3, Tween, tween, UIOpacity, SpriteFrame, resources, AnimationClip } from "cc"; import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; -import { CardConfig } from "../common/config/CardSet"; -import { HeroInfo } from "../common/config/heroSet"; +import { HeroInfo, HeroCardConfig } from "../common/config/heroSet"; import { buildSkillDescMoreRich, ISkillDescSource } from "../common/config/HeroSkillDesc"; import { oops } from "db://oops-framework/core/Oops"; import { GameEvent } from "../common/config/GameEvent"; @@ -83,7 +82,7 @@ export class CHeroComp extends CCComp { // ======================== 运行时状态 ======================== /** 当前槽位承载的卡牌配置,null 表示空槽 */ - private cardData: CardConfig | null = null; + private cardData: HeroCardConfig | null = null; /** 是否已购买 */ private isPurchased: boolean = false; /** 是否已缓存基准 Y/Z 坐标(首次 setSlotPosition 时确定) */ @@ -153,17 +152,14 @@ export class CHeroComp extends CCComp { * * @param data 卡牌配置,传 null 时清空显示 */ - applyCardData(data: CardConfig | null): void { + applyCardData(data: HeroCardConfig | null): void { mLogger.log(this.debugMode, "CHeroComp", "applyCardData", { nodeName: this.node?.name, nodeUuid: this.node?.uuid, uuid: data?.uuid ?? null, - type: data?.type ?? null, name: data?.name ?? null, card_lv: data?.card_lv ?? null, - hero_lv: data?.hero_lv ?? null, cost: data?.cost ?? null, - icon: data?.icon ?? null, nodeActiveBefore: this.node?.active }); @@ -595,8 +591,7 @@ export class CHeroComp extends CCComp { oops.message.dispatchEvent(GameEvent.CardUsed, this); mLogger.log(this.debugMode, "CHeroComp", "hero card purchased", { - uuid: used.uuid, - type: used.type + uuid: used.uuid }); } @@ -613,7 +608,7 @@ export class CHeroComp extends CCComp { * @param data 卡牌配置,null 时清空显示 * @returns 是否成功接收(true = 接收并刷新 UI) */ - applyDrawCard(data: CardConfig | null): boolean { + applyDrawCard(data: HeroCardConfig | null): boolean { this.applyCardData(data); return !!data; }