fix(herosListComp): 修复英雄大招和技能图标显示逻辑

1.  调整大招技能图标锁定状态判断,改为恒不锁定
2.  统一触发、复活技能的等级显示逻辑,固定等级为1
3.  补充技能等级计算的注释说明
This commit is contained in:
pan
2026-08-25 11:13:12 +08:00
parent 0ccf8abcf4
commit ac6fc21fb6

View File

@@ -515,15 +515,13 @@ export class HerosListComp extends CCComp {
const lv = Math.max(1, smc.getHeroOuterLv(hero.uuid)) const lv = Math.max(1, smc.getHeroOuterLv(hero.uuid))
// ---- 大招:skills[1] 及以后 ---- // ---- 大招:skills[1] 及以后(英雄出场即激活,与能量条同语义,恒不锁定) ----
Object.values(hero.skills).slice(1).forEach(hSkill => { Object.values(hero.skills).slice(1).forEach(hSkill => {
// 与 Hero.load 同式:技能等级 = 配置 lv + 英雄等级 - 2,> 0 才视为已解锁 // 技能等级展示与 buildSkillDesc 同规则:lv_entries 取 ≤lv 最大档的 s_lv,无生效档回退配置 lv
const unlocked = hSkill.lv + lv - 2 > 0
// 技能等级展示与 buildSkillDesc 同规则:lv_entries 取 ≤lv 最大档的 s_lv
const sLv = hSkill.lv_entries?.length const sLv = hSkill.lv_entries?.length
? (hSkill.lv_entries.filter(e => e.lv <= lv).pop()?.s_lv ?? hSkill.lv) ? (hSkill.lv_entries.filter(e => e.lv <= lv).pop()?.s_lv ?? hSkill.lv)
: hSkill.lv : hSkill.lv
this.addSkillIcon(hSkill.uuid, sLv, !unlocked, false) this.addSkillIcon(hSkill.uuid, sLv, false, false)
}) })
// ---- 触发技能:按 PANEL_TRIGGER_TYPES 顺序追加 ---- // ---- 触发技能:按 PANEL_TRIGGER_TYPES 顺序追加 ----
@@ -578,7 +576,8 @@ export class HerosListComp extends CCComp {
for (const e of sorted) { if (e.lv <= lv) active = e } for (const e of sorted) { if (e.lv <= lv) active = e }
const pick = active ?? sorted[0] const pick = active ?? sorted[0]
for (const entry of pick.uuids) { for (const entry of pick.uuids) {
this.addSkillIcon(entry.uuid, pick.lv, !active, true) // 词条档位无 s_lv 概念,技能等级恒为 1(等级标签展示技能等级而非解锁的英雄等级)
this.addSkillIcon(entry.uuid, 1, !active, true)
} }
} }
@@ -589,7 +588,8 @@ export class HerosListComp extends CCComp {
let active: LvReviveEntry | undefined let active: LvReviveEntry | undefined
for (const e of sorted) { if (e.lv <= lv) active = e } for (const e of sorted) { if (e.lv <= lv) active = e }
const pick = active ?? sorted[0] const pick = active ?? sorted[0]
this.addSkillIcon(pick.s_uuid, pick.lv, !active, false) // 复活档位无 s_lv 概念,技能等级恒为 1(等级标签展示技能等级而非解锁的英雄等级)
this.addSkillIcon(pick.s_uuid, 1, !active, false)
} }
// ======================== 英雄动画 ======================== // ======================== 英雄动画 ========================