refactor(ui&logic): 调整UI边距与英雄属性计算逻辑

1.  修改ui3.plist.meta里两个UI元素的border边距配置
2.  重构HeroBoxComp的属性增量计算逻辑,修正属性加成只统计临时增益而非等级成长
3.  优化HeroSkillDesc的富文本样式,新增数值描边效果统一UI视觉风格
This commit is contained in:
pan
2026-08-11 10:52:23 +08:00
parent 4eba1c8ad8
commit de763efb0f
4 changed files with 591 additions and 615 deletions

View File

@@ -557,13 +557,19 @@ export class HeroBoxComp extends CCComp {
}
// ---- AP / HP ----
// plus附加值= 最终值 - 当前等级基础值;基础值 = 1 级原始 base + 等级成长 + ap/hp_bonus 一次性奖励。
// Why: base_ap/base_hp 是不含任何等级增长的原始值,直接用 final-base 会把升级带来的
// 属性增长也计入增量。这里补齐等级增长作为基准,使 plus 仅反映 buff/光环等临时增益。
const lv = Math.max(1, Math.floor(this.model.lv ?? 1));
const grow = hero ? calcGrowBonus(hero, lv) : { ap: 0, hp: 0 };
const finalAp = Math.max(0, Math.floor(this.model.getFinalAp()));
const baseAp = Math.max(0, Math.floor(this.model.base_ap ?? 0));
this.setStatRow(this.ap_all_label, this.ap_plus_label, finalAp, finalAp - baseAp);
const lvBaseAp = Math.max(0, Math.floor((this.model.base_ap ?? 0) + grow.ap + HeroBoxComp.sumBonus(hero?.ap_bonus, lv)));
this.setStatRow(this.ap_all_label, this.ap_plus_label, finalAp, finalAp - lvBaseAp);
const finalHp = Math.max(0, Math.floor(this.model.getFinalHpMax()));
const baseHp = Math.max(0, Math.floor(this.model.base_hp ?? 0));
this.setStatRow(this.hp_all_label, this.hp_plus_label, finalHp, finalHp - baseHp);
const lvBaseHp = Math.max(0, Math.floor((this.model.base_hp ?? 0) + grow.hp + HeroBoxComp.sumBonus(hero?.hp_bonus, lv)));
this.setStatRow(this.hp_all_label, this.hp_plus_label, finalHp, finalHp - lvBaseHp);
// ---- 图标UUID 变化时重新加载首帧动画) ----
if (hero && heroUuid !== this.iconHeroUuid) {