fix(技能): 修正友方技能效果中AP计算错误的问题

将AP加成除以100以匹配正确的数值比例,避免技能效果过强
This commit is contained in:
panw
2026-03-24 10:31:07 +08:00
parent 382f6d2b32
commit b51a68bc8f

View File

@@ -195,7 +195,7 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
private applyFriendlySkillEffects(_s_uuid: number, _skillLv: number, config: SkillConfig, _heroView: HeroViewComp, _cAttrsComp: HeroAttrsComp, targets: HeroViewComp[], _targetPos: Vec3 | null) { private applyFriendlySkillEffects(_s_uuid: number, _skillLv: number, config: SkillConfig, _heroView: HeroViewComp, _cAttrsComp: HeroAttrsComp, targets: HeroViewComp[], _targetPos: Vec3 | null) {
const kind = config.kind ?? SkillKind.Support; const kind = config.kind ?? SkillKind.Support;
const sUp = SkillUpList[_s_uuid] ?? SkillUpList[1001]; const sUp = SkillUpList[_s_uuid] ?? SkillUpList[1001];
const sAp =config.ap+sUp.ap*_skillLv; const sAp =(config.ap+sUp.ap*_skillLv)/100;
const sHit=config.hit_count+sUp.hit_count*_skillLv; const sHit=config.hit_count+sUp.hit_count*_skillLv;
const selectedTargets = this.pickRandomFriendlyTargets(targets, sHit); const selectedTargets = this.pickRandomFriendlyTargets(targets, sHit);
const applyTargets = kind === SkillKind.Heal ? this.sortTargetsByLowestHp(selectedTargets) : selectedTargets; const applyTargets = kind === SkillKind.Heal ? this.sortTargetsByLowestHp(selectedTargets) : selectedTargets;
@@ -204,10 +204,11 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
const model = target.ent.get(HeroAttrsComp); const model = target.ent.get(HeroAttrsComp);
if (!model || model.is_dead) continue; if (!model || model.is_dead) continue;
if (kind === SkillKind.Heal && sAp !== 0) { if (kind === SkillKind.Heal && sAp !== 0) {
const addHp = model.add_hp(sAp*_cAttrsComp.ap); const addHp = Math.floor(model.add_hp(sAp*_cAttrsComp.ap));
target.health(addHp); target.health(addHp);
} else if (kind === SkillKind.Shield && sAp !== 0) { } else if (kind === SkillKind.Shield && sAp !== 0) {
model.add_shield(sAp*_cAttrsComp.ap); const addShield = Math.floor(sAp*_cAttrsComp.ap);
model.add_shield(addShield);
} }
if (!config.buffs || config.buffs.length === 0) continue; if (!config.buffs || config.buffs.length === 0) continue;
for (const buffConf of config.buffs) { for (const buffConf of config.buffs) {