refactor(field): 重构驻场光环数据结构,分离元数据与数值

1.  新增FieldEntry类型,将驻场词条的uuid与生效数值分离
2.  重构FieldSkillSet,移除各档位重复配置,仅保留基础元数据
3.  更新所有使用驻场词条的业务代码,适配新的数据结构
4.  修复数值渲染逻辑,使用词条携带的实际数值而非配置固化值
This commit is contained in:
panFD
2026-08-11 22:36:28 +08:00
parent e328892679
commit 450a8b81e5
13 changed files with 196 additions and 228 deletions

View File

@@ -37,6 +37,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { CardTriggerType } from "../common/config/CardSet";
import { EquipPoolList } from "../common/config/EquipSet";
import { SkillSet, SkillOverrides, FieldSkillSet } from "../common/config/SkillSet";
import { FieldEntry } from "../common/config/heroSet";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { smc } from "../common/SingletonModuleComp";
@@ -93,8 +94,8 @@ export class EquipBoxComp extends CCComp {
private keep_waves: number = 0;
/** 技能覆写参数自定义伤害、Buff等 */
private overrides?: SkillOverrides;
/** 驻场技能 UUID 列表 */
public field: number[] = [];
/** 驻场技能词条列表uuid 指向 FieldSkillSet 底座value 为生效数值) */
public field: FieldEntry[] = [];
/** 卡牌自定义图标ID优先级最高未定义则按 trigger_type 自动取) */
private card_icon?: string;
@@ -425,7 +426,7 @@ export class EquipBoxComp extends CCComp {
if (this.trigger_type === CardTriggerType.Interval) {
iconId = this.s_uuid ? SkillSet[this.s_uuid]?.icon : undefined;
} else if (this.trigger_type === CardTriggerType.Field) {
const fieldUuid = this.field?.[0];
const fieldUuid = this.field?.[0]?.uuid;
iconId = fieldUuid ? FieldSkillSet[fieldUuid]?.icon : undefined;
}
}

View File

@@ -584,7 +584,7 @@ export class HInfoComp extends CCComp {
if (config.trigger_type === CardTriggerType.Interval) {
iconId = config.skill ? SkillSet[config.skill]?.icon : undefined;
} else if (config.trigger_type === CardTriggerType.Field) {
const fieldUuid = config.field?.[0];
const fieldUuid = config.field?.[0]?.uuid;
iconId = fieldUuid ? FieldSkillSet[fieldUuid]?.icon : undefined;
}
}

View File

@@ -36,6 +36,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { CardTriggerType, CardConfig } from "../common/config/CardSet";
import { SkillCardList } from "../common/config/SCardSet";
import { SkillOverrides } from "../common/config/SkillSet";
import { FieldEntry } from "../common/config/heroSet";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { smc } from "../common/SingletonModuleComp";
@@ -93,8 +94,8 @@ export class SkillBoxComp extends CCComp {
private keep_waves: number = 0;
/** 技能覆写参数自定义伤害、Buff等 */
private overrides?: SkillOverrides;
/** 驻场技能 UUID 列表 */
public field: number[] = [];
/** 驻场技能词条列表uuid 指向 FieldSkillSet 底座value 为生效数值) */
public field: FieldEntry[] = [];
/** 卡牌自定义图标ID优先级最高未定义则按 trigger_type 自动取) */
private card_icon?: string;

View File

@@ -61,7 +61,7 @@ export class TalentItemComp extends CCComp {
let iconId: string | undefined;
if (!config.skill && config.field && config.field.length > 0) {
// 驻场卡:用 FieldSkillSet[field[0]].icon
const fieldUuid = config.field[0];
const fieldUuid = config.field[0].uuid;
iconId = FieldSkillSet[fieldUuid]?.icon || `${fieldUuid}`;
} else if (config.skill) {
// 技能卡:用 SkillSet[skill].icon