feat(hero-ui): 新增普攻lv2强化档独立展示功能

实现英雄图鉴中普攻lv2强化档的单独展示逻辑:
1. 为技能档位渲染添加minLv参数,支持裁剪低档位
2. 新增普攻lv2专属模式,图标/名称取lv1,弹窗仅展示lv2+档位
3. 自动为符合条件的普攻强化档生成独立技能图标
4. 适配等级显示偏移,配置Lv2显示为Lv1
This commit is contained in:
pan
2026-09-04 15:25:35 +08:00
parent c48d497bd8
commit 22e91fc99d
4 changed files with 68 additions and 22 deletions

View File

@@ -542,9 +542,11 @@ function buildTierLines(tiers: ISkillTierInfo[], triggerLabel: string): HeroSkil
* @param heroUuid 英雄 uuid(HeroInfo key)
* @param skillUuid 技能 uuid(skills key / 触发组 s_uuid / FieldSkillSet uuid / 复活 SkillSet uuid)
* @param slot 技能所属槽位(可空):指定时仅在该槽位查找;缺省按上述顺序自动定位
* @param minLv 最低展示档(默认 1):传 2 时裁剪掉 sLv<2 的档,仅保留 lv2+ 档位
* (普攻强化档作为独立技能展示的场景,如 heroSet 普攻 lv2 档单独出图标)
* @returns 档位行数组;技能不属于该英雄时返回 []
*/
export function buildHeroSkillTierLines(heroUuid: number, skillUuid: number, slot?: SkillTriggerType): HeroSkillTierLine[] {
export function buildHeroSkillTierLines(heroUuid: number, skillUuid: number, slot?: SkillTriggerType, minLv: number = 1): HeroSkillTierLine[] {
const hero = HeroInfo[heroUuid];
if (!hero) return [];
@@ -577,12 +579,13 @@ export function buildHeroSkillTierLines(heroUuid: number, skillUuid: number, slo
// 光环路径(无 ISkillTierInfo 中间结构,直接生成 HeroSkillTierLine)
if (tiers.length === 0) {
const fieldLines = collectFieldTierLines(hero, skillUuid);
if (fieldLines.length > 0) return fieldLines;
if (fieldLines.length > 0) return minLv > 1 ? fieldLines.filter(l => l.sLv >= minLv) : fieldLines;
// 复活已纳入 dead 触发组,通过 dead 路径处理
return [];
}
return buildTierLines(tiers, triggerLabel);
const lines = buildTierLines(tiers, triggerLabel);
return minLv > 1 ? lines.filter(l => l.sLv >= minLv) : lines;
}
/**