feat: 新增技能图标英雄语境覆写功能

1. 扩展SkillOverrides接口,新增icon字段支持自定义图标
2. 前端常量与编辑器适配:新增字符串型覆写类型与图标候选选择器
3. 新增getHeroSkillIcon工具函数,实现英雄专属图标优先级加载逻辑
4. 修复并优化技能图标展示逻辑,支持同底座技能不同英雄差异化图标
5. 重构部分英雄配置格式,统一代码风格
This commit is contained in:
pan
2026-09-04 16:25:57 +08:00
parent 2a2abf24b2
commit e97de40d2e
7 changed files with 178 additions and 59 deletions

View File

@@ -35,7 +35,7 @@ import { oops } from "db://oops-framework/core/Oops";
import { CardTriggerType, CardConfig } from "../common/config/CardSet";
import { SkillSet, FieldSkillSet } from "../common/config/SkillSet";
import { SkillCardList } from "../common/config/SCardSet";
import { FieldEntry, SkillTriggerType } from "../common/config/heroSet";
import { FieldEntry, SkillTriggerType, HeroInfo, getHeroSkillIcon } from "../common/config/heroSet";
import { buildCardDescRich } from "../common/config/CardSkillText";
import { buildHeroSkillTierLines, buildHeroGroupTierLines, HeroSkillTierLine } from "../common/HeroSkillText";
import { smc } from "../common/SingletonModuleComp";
@@ -372,6 +372,10 @@ export class SinfoComp extends CCComp {
/** 解析图标ID */
private resolveIconId(p: SInfoParams): string | undefined {
if (p.card_icon) return p.card_icon;
// 英雄图鉴模式:英雄语境图标优先(overrides.icon 覆写),底座 icon 兜底
if (p.hero_uuid) {
return getHeroSkillIcon(HeroInfo[p.hero_uuid], p.uuid, p.hero_slot, p.hero_group);
}
// 技能卡:从 SkillCardList 查 icon
const skillCard = SkillCardList.find(c => c.uuid === p.uuid || c.skill === p.uuid);
if (skillCard?.icon) return skillCard.icon;