fix(技能): 修复技能等级计算错误,默认等级从1改为0
将技能相关计算的默认等级从1统一修正为0,确保等级计算逻辑的一致性。具体包括: - HeroAttrsComp.getSkillLevel() 方法在无效技能ID时返回0 - Hero实体构建技能模型时使用Math.max确保最低等级为0 - SDataCom组件初始化skill_lv为0 - Skill实体加载时skill_lv参数默认值改为0,计算时使用Math.max(0, skill_lv)
This commit is contained in:
@@ -83,8 +83,8 @@ export class Hero extends ecs.Entity {
|
||||
for (const key in hero.skills) {
|
||||
const skill = hero.skills[key];
|
||||
if (!skill) continue;
|
||||
//用于增量 计算最终技能等级:英雄等级与技能初始等级均从1开始,需各减1抵消,故-2
|
||||
model.skills[skill.uuid] = { ...skill, lv: skill.lv + hero_lv - 2, ccd: skill.cd };
|
||||
//用于增量 计算最终技能等级:英雄等级与技能初始等级均从1开始,需各减1抵消,故-2,最低等级时0
|
||||
model.skills[skill.uuid] = { ...skill, lv: Math.max(0,skill.lv + hero_lv - 2), ccd: skill.cd };
|
||||
}
|
||||
model.updateSkillDistanceCache();
|
||||
|
||||
|
||||
@@ -139,8 +139,8 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
return this.frost_end_time > 0
|
||||
}
|
||||
getSkillLevel(skillId: number): number {
|
||||
if (!skillId) return 1;
|
||||
return this.skills[skillId]?.lv ?? 1;
|
||||
if (!skillId) return 0;
|
||||
return this.skills[skillId]?.lv ?? 0;
|
||||
}
|
||||
|
||||
getSkillIds(): number[] {
|
||||
|
||||
Reference in New Issue
Block a user