feat(战斗系统): 添加击退概率和控制抗性属性并调整击退逻辑

为英雄和怪物添加BACK_CHANCE和CON_RES属性
修改击退判定逻辑,考虑攻击者的击退概率和被攻击者的控制抗性
移除直接调用targetView.back()的硬编码击退逻辑
This commit is contained in:
walkpan
2026-01-04 23:00:41 +08:00
parent 9ab8ccdb92
commit 20be2ae135
3 changed files with 9 additions and 7 deletions

View File

@@ -180,9 +180,9 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
TAttrsComp.hp -= damage; // 应用伤害到数据层
// 受击者产生击退效果
if (damage > 0 && targetView) {
targetView.back();
}
// if (damage > 0 && targetView) {
// targetView.back();
// }
smc.updateHeroInfo(TAttrsComp); // 更新英雄数据到 VM
if (this.debugMode) {
@@ -193,9 +193,9 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
//反伤判定 并应用到施法者
this.check_thorns(TAttrsComp, caster?.ent,damage);
// 击退判定
// 使用施法者的击退概率属性damageEvent.Attrs 快照)
// 使用施法者的击退概率属性damageEvent.Attrs 快照) - 被攻击者的控制抗性
// 击退成功后需要清理施法者的相关天赋buff
const isBack = this.checkChance(damageEvent.Attrs[Attrs.BACK_CHANCE] || 0);
const isBack = this.checkChance((damageEvent.Attrs[Attrs.BACK_CHANCE] || 0) - (TAttrsComp.Attrs[Attrs.CON_RES] || 0));
if (isBack) CAttrsComp?.useValueTalByAttr(Attrs.BACK_CHANCE);