diff --git a/assets/script/game/map/EquipBoxComp.ts b/assets/script/game/map/EquipBoxComp.ts index 98e6e05f..93fb670b 100644 --- a/assets/script/game/map/EquipBoxComp.ts +++ b/assets/script/game/map/EquipBoxComp.ts @@ -24,7 +24,7 @@ * - 销毁时通过 GameEvent.RemoveSkillBox 通知 MissSkillsComp 回收槽位 * * 依赖: - * - CardPoolList / CardTriggerType(CardSet)—— 通用卡牌类型定义 + * - CardTriggerType(CardSet)—— 卡牌触发类型定义 * - EquipPoolList(EquipSet)—— 装备卡池配置(查询触发配置) * - SkillSet —— 技能静态配置(icon 字段) * - GameEvent —— 各类游戏事件 @@ -34,7 +34,7 @@ import { mLogger } from "../common/Logger"; import { _decorator, Node, Prefab, Sprite, Label, Vec3, resources, SpriteAtlas, tween, v3, Tween, NodeEventType } 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 { CardPoolList, CardTriggerType } from "../common/config/CardSet"; +import { CardTriggerType } from "../common/config/CardSet"; import { EquipPoolList } from "../common/config/EquipSet"; import { SkillSet, SkillOverrides, FieldSkillSet } from "../common/config/SkillSet"; import { oops } from "db://oops-framework/core/Oops"; @@ -150,14 +150,9 @@ export class EquipBoxComp extends CCComp { private onNodeClicked() { if (!this.initialized) return; oops.audio.playEffect("music/button"); - // 点击时弹出 HInfoComp,传入卡牌 UUID 和等级以启用预览模式 - // 优先从装备卡池查找,找不到再从技能卡池查找 - const config = EquipPoolList.find(c => c.uuid === this.s_uuid || c.skill === this.s_uuid) - ?? CardPoolList.find(c => c.uuid === this.s_uuid || c.skill === this.s_uuid); - const cardUuid = config ? config.uuid : this.s_uuid; - + // 点击装备盒弹出 HInfoComp,从 EquipPoolList 查询配置 oops.gui.remove(UIID.HInfo); - oops.gui.open(UIID.HInfo, { heroUuid: cardUuid, heroLv: this.card_lv, poolLv: config?.pool_lv ?? 1, isSkillCard: true }); + oops.gui.open(UIID.HInfo, { heroUuid: this.s_uuid, heroLv: this.card_lv, poolLv: 1, isSkillCard: true, isEquipCard: true }); } /** diff --git a/assets/script/game/map/HInfoComp.ts b/assets/script/game/map/HInfoComp.ts index c59d8bf5..9ec7e1c4 100644 --- a/assets/script/game/map/HInfoComp.ts +++ b/assets/script/game/map/HInfoComp.ts @@ -36,6 +36,7 @@ import { MissionHeroComp } from "./MissionHeroComp"; import { MoveComp } from "../hero/MoveComp"; import { FacSet, getLvColor } from "../common/config/GameSet"; import { CKind, CardPoolList, CardConfig, CardTriggerType } from "../common/config/CardSet"; +import { EquipPoolList } from "../common/config/EquipSet"; import { SkillSet } from "../common/config/SkillSet"; import { CardBgComp } from "./CardBgComp"; import { MissionEconomy } from "./MissionEconomy"; @@ -100,6 +101,8 @@ export class HInfoComp extends CCComp { private previewLv: number = 1; private previewPoolLv: number = 1; private isSkillCard: boolean = false; + /** 是否为装备卡预览(决定从 EquipPoolList 查询配置) */ + private isEquipCard: boolean = false; /** 英雄名字标签缓存引用 */ private nameLabel: Label | null = null; /** 技能信息标签缓存引用 */ @@ -126,9 +129,9 @@ export class HInfoComp extends CCComp { this.bindEvents(); } - onAdded(args: { eid?: number; heroUuid?: number; heroLv?: number; poolLv?: number; isSkillCard?: boolean }) { + onAdded(args: { eid?: number; heroUuid?: number; heroLv?: number; poolLv?: number; isSkillCard?: boolean, isEquipCard?: boolean }) { if (args?.heroUuid) { - this.bindPreviewData(args.heroUuid, args.heroLv ?? 1, args.poolLv ?? 1, args.isSkillCard ?? false); + this.bindPreviewData(args.heroUuid, args.heroLv ?? 1, args.poolLv ?? 1, args.isSkillCard ?? false, args.isEquipCard ?? false); return; } const eid = args?.eid ?? 0; @@ -182,7 +185,10 @@ export class HInfoComp extends CCComp { if (this.icon_node) this.icon_node.active = false; if (this.skill_icon_node) this.skill_icon_node.active = true; - const config = CardPoolList.find(c => c.uuid === heroUuid); + // 根据来源从对应卡池查询配置 + const config = this.isEquipCard + ? EquipPoolList.find(c => c.uuid === heroUuid) + : CardPoolList.find(c => c.uuid === heroUuid); if (!config) return; if (this.nameLabel) this.nameLabel.string = config.name ?? ""; @@ -285,12 +291,13 @@ export class HInfoComp extends CCComp { * 绑定静态预览数据(卡牌点击查看)。 * 通过 HeroInfo/CardPoolList 配置 × 等级计算初始值,不绑定 ECS 实体。 */ - bindPreviewData(heroUuid: number, heroLv: number, poolLv: number, isSkillCard: boolean = false) { + bindPreviewData(heroUuid: number, heroLv: number, poolLv: number, isSkillCard: boolean = false, isEquipCard: boolean = false) { this.isPreview = true; this.previewUuid = heroUuid; this.previewLv = heroLv; this.previewPoolLv = poolLv; this.isSkillCard = isSkillCard; + this.isEquipCard = isEquipCard; if (this.sell_node) this.sell_node.active = false; if (this.close_node) this.close_node.active = true; this.cacheLabels();