refactor(heroComp): 拆分精简英雄卡配置接口

将原本CardConfig中的英雄卡必要字段抽离为HeroCardConfig,
仅保留CHeroComp组件需要的渲染交互字段,减少不必要的依赖和字段。
This commit is contained in:
panFD
2026-08-23 17:47:03 +08:00
parent 954ee10244
commit 0d7f53b463
2 changed files with 19 additions and 10 deletions

View File

@@ -325,6 +325,20 @@ export interface heroInfo {
/** 分级能力说明索引0=1级依次递增信息面板逐条展示各等级技能与能力 */ /** 分级能力说明索引0=1级依次递增信息面板逐条展示各等级技能与能力 */
infos?: string[]; infos?: string[];
} }
/**
* 英雄卡配置CHeroComp 专用,从 CardConfig 精简)
* 仅保留英雄卡渲染和交互必需的字段
*/
export interface HeroCardConfig {
uuid: number;
name?: string;
info?: string;
cost: number;
card_lv: number;
base_card_lv?: number;
}
/** /**
* 技能基础信息接口 * 技能基础信息接口
*/ */

View File

@@ -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 { _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 { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { CardConfig } from "../common/config/CardSet"; import { HeroInfo, HeroCardConfig } from "../common/config/heroSet";
import { HeroInfo } from "../common/config/heroSet";
import { buildSkillDescMoreRich, ISkillDescSource } from "../common/config/HeroSkillDesc"; import { buildSkillDescMoreRich, ISkillDescSource } from "../common/config/HeroSkillDesc";
import { oops } from "db://oops-framework/core/Oops"; import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
@@ -83,7 +82,7 @@ export class CHeroComp extends CCComp {
// ======================== 运行时状态 ======================== // ======================== 运行时状态 ========================
/** 当前槽位承载的卡牌配置null 表示空槽 */ /** 当前槽位承载的卡牌配置null 表示空槽 */
private cardData: CardConfig | null = null; private cardData: HeroCardConfig | null = null;
/** 是否已购买 */ /** 是否已购买 */
private isPurchased: boolean = false; private isPurchased: boolean = false;
/** 是否已缓存基准 Y/Z 坐标(首次 setSlotPosition 时确定) */ /** 是否已缓存基准 Y/Z 坐标(首次 setSlotPosition 时确定) */
@@ -153,17 +152,14 @@ export class CHeroComp extends CCComp {
* *
* @param data 卡牌配置,传 null 时清空显示 * @param data 卡牌配置,传 null 时清空显示
*/ */
applyCardData(data: CardConfig | null): void { applyCardData(data: HeroCardConfig | null): void {
mLogger.log(this.debugMode, "CHeroComp", "applyCardData", { mLogger.log(this.debugMode, "CHeroComp", "applyCardData", {
nodeName: this.node?.name, nodeName: this.node?.name,
nodeUuid: this.node?.uuid, nodeUuid: this.node?.uuid,
uuid: data?.uuid ?? null, uuid: data?.uuid ?? null,
type: data?.type ?? null,
name: data?.name ?? null, name: data?.name ?? null,
card_lv: data?.card_lv ?? null, card_lv: data?.card_lv ?? null,
hero_lv: data?.hero_lv ?? null,
cost: data?.cost ?? null, cost: data?.cost ?? null,
icon: data?.icon ?? null,
nodeActiveBefore: this.node?.active nodeActiveBefore: this.node?.active
}); });
@@ -595,8 +591,7 @@ export class CHeroComp extends CCComp {
oops.message.dispatchEvent(GameEvent.CardUsed, this); oops.message.dispatchEvent(GameEvent.CardUsed, this);
mLogger.log(this.debugMode, "CHeroComp", "hero card purchased", { mLogger.log(this.debugMode, "CHeroComp", "hero card purchased", {
uuid: used.uuid, uuid: used.uuid
type: used.type
}); });
} }
@@ -613,7 +608,7 @@ export class CHeroComp extends CCComp {
* @param data 卡牌配置null 时清空显示 * @param data 卡牌配置null 时清空显示
* @returns 是否成功接收true = 接收并刷新 UI * @returns 是否成功接收true = 接收并刷新 UI
*/ */
applyDrawCard(data: CardConfig | null): boolean { applyDrawCard(data: HeroCardConfig | null): boolean {
this.applyCardData(data); this.applyCardData(data);
return !!data; return !!data;
} }