feat(英雄): 动态计算技能卡牌的虚拟攻击力
- 根据卡牌等级给予基础成长,使用与英雄升级相同的公式 - 获取场上最高攻击力英雄的数值,确保后期治疗和增益效果足够 - 移除固定的基准攻击力,使技能数值更适应实际战斗场景
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -88,7 +88,21 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
|||||||
|
|
||||||
// 构造一个模拟的 HeroAttrsComp 用于数值计算,只包含基础卡牌伤害计算所需的属性
|
// 构造一个模拟的 HeroAttrsComp 用于数值计算,只包含基础卡牌伤害计算所需的属性
|
||||||
const mockAttrs = new HeroAttrsComp();
|
const mockAttrs = new HeroAttrsComp();
|
||||||
mockAttrs.ap = 100; // 基准攻击力,可以根据设计需求调整
|
|
||||||
|
// 动态计算卡牌的虚拟攻击力:
|
||||||
|
// 1. 根据卡牌等级给予基础成长(同英雄升级公式,基准设为 100)
|
||||||
|
let baseAp = 100 * Math.pow(FightSet.MERGE_NEED, cardLv - 1);
|
||||||
|
let highestAp = baseAp;
|
||||||
|
|
||||||
|
// 2. 获取场上最高攻击力的英雄,保证后期奶量/增益绝对够用
|
||||||
|
ecs.query(ecs.allOf(HeroAttrsComp)).forEach(e => {
|
||||||
|
const attr = e.get(HeroAttrsComp);
|
||||||
|
if (attr && attr.fac === FacSet.HERO && !attr.is_dead && attr.ap > highestAp) {
|
||||||
|
highestAp = attr.ap;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mockAttrs.ap = highestAp;
|
||||||
mockAttrs.critical = 0;
|
mockAttrs.critical = 0;
|
||||||
mockAttrs.freeze_chance = 0;
|
mockAttrs.freeze_chance = 0;
|
||||||
mockAttrs.back_chance = 0;
|
mockAttrs.back_chance = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user