feat(战斗系统): 添加击退概率和控制抗性属性并调整击退逻辑
为英雄和怪物添加BACK_CHANCE和CON_RES属性 修改击退判定逻辑,考虑攻击者的击退概率和被攻击者的控制抗性 移除直接调用targetView.back()的硬编码击退逻辑
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user