refactor(skillDesc): 重构技能描述渲染,支持全档位合并展示

修改了技能描述构建逻辑,新增showLocked参数实现全档位模式:
1. 英雄盒面板现在可以展示技能全部档位,已激活档正常高亮,未激活档位灰色弱化
2. 重构了buildReviveLine、buildSkillLines等核心函数,拆分逻辑适配多档位展示
3. 新增locked和nextValues字段支持未激活状态和未来档位数值拼接
4. 优化了富文本渲染规则,区分激活/未激活样式
This commit is contained in:
pan
2026-08-04 17:18:35 +08:00
parent 57c7934571
commit 1b1244c33c
2 changed files with 170 additions and 51 deletions

View File

@@ -438,10 +438,11 @@ export class HeroBoxComp extends CCComp {
const finalCritDmg = this.model.getFinalCritDamage();
this.setStatRow(this.crit_dmg_all_label, this.crit_dmg_plus_label, finalCritDmg, finalCritDmg - (this.model.crit_damage ?? 0), "%");
// ---- 技能描述(当前等级触发技能,读运行时 model 最终配置;数值富文本高亮) ----
// ---- 技能描述(全档位合并:每技能一行,等级置前 + 已/未激活状态,数值富文本高亮) ----
if (this.skill_label && this.skill_label.isValid) {
// 缓存未变则跳过重设,避免 refresh 降频内 RichText 重复重解析排版;隐藏「技能名」仅保留效果描述
const desc = buildSkillDescRich(this.model, false);
// 缓存未变则跳过重设,避免 refresh 降频内 RichText 重复重解析排版
// showName=false 不显示技能名仅保留效果showLocked=true 合并全档位(未来档数值灰色拼接,未激活技能整行灰色)
const desc = buildSkillDescRich(this.model, false, true);
if (desc !== this.skillDescCache) {
this.skillDescCache = desc;
this.skill_label.string = desc;