refactor(ui&logic): 调整UI边距与英雄属性计算逻辑
1. 修改ui3.plist.meta里两个UI元素的border边距配置 2. 重构HeroBoxComp的属性增量计算逻辑,修正属性加成只统计临时增益而非等级成长 3. 优化HeroSkillDesc的富文本样式,新增数值描边效果统一UI视觉风格
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user