From 20be2ae135a9e45acc6c3446f1ef148ef3254ae8 Mon Sep 17 00:00:00 2001 From: walkpan Date: Sun, 4 Jan 2026 23:00:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=88=98=E6=96=97=E7=B3=BB=E7=BB=9F):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=87=BB=E9=80=80=E6=A6=82=E7=8E=87=E5=92=8C?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=8A=97=E6=80=A7=E5=B1=9E=E6=80=A7=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=87=BB=E9=80=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为英雄和怪物添加BACK_CHANCE和CON_RES属性 修改击退判定逻辑,考虑攻击者的击退概率和被攻击者的控制抗性 移除直接调用targetView.back()的硬编码击退逻辑 --- assets/script/game/hero/Hero.ts | 3 ++- assets/script/game/hero/HeroAtkSystem.ts | 10 +++++----- assets/script/game/hero/Mon.ts | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/assets/script/game/hero/Hero.ts b/assets/script/game/hero/Hero.ts index 8bd9e6d2..96a4546f 100644 --- a/assets/script/game/hero/Hero.ts +++ b/assets/script/game/hero/Hero.ts @@ -116,7 +116,8 @@ export class Hero extends ecs.Entity { // 初始化 buff/debuff 系统 model.initAttrs(); model.Attrs[Attrs.REVIVE_COUNT]=1 - + model.Attrs[Attrs.BACK_CHANCE]=20 + model.Attrs[Attrs.CON_RES]=10 this.add(hv); oops.message.dispatchEvent(GameEvent.MasterCalled,{uuid:uuid}) const move = this.get(HeroMoveComp); diff --git a/assets/script/game/hero/HeroAtkSystem.ts b/assets/script/game/hero/HeroAtkSystem.ts index 07d4cb3f..96c97771 100644 --- a/assets/script/game/hero/HeroAtkSystem.ts +++ b/assets/script/game/hero/HeroAtkSystem.ts @@ -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); diff --git a/assets/script/game/hero/Mon.ts b/assets/script/game/hero/Mon.ts index b03906c2..03ecf725 100644 --- a/assets/script/game/hero/Mon.ts +++ b/assets/script/game/hero/Mon.ts @@ -127,7 +127,8 @@ export class Monster extends ecs.Entity { model.Attrs[Attrs.AP] = ap; model.Attrs[Attrs.SPEED] = speed; // 使用成长后的速度 model.Attrs[Attrs.DIS] = hero.dis; - + model.Attrs[Attrs.BACK_CHANCE]=15 + model.Attrs[Attrs.CON_RES]=10 // ✅ 初始化技能数据(迁移到 HeroSkillsComp) skillsComp.initSkills(hero.skills, uuid, this);