From e194132731d7defb4d1cd2b0e4eadf6ac3a77a34 Mon Sep 17 00:00:00 2001 From: walkpan Date: Thu, 14 May 2026 22:53:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=9A=B4=E5=87=BB?= =?UTF-8?q?=E6=8A=97=E6=80=A7=E5=92=8C=E5=86=B0=E5=86=BB=E6=8A=97=E6=80=A7?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=B9=B6=E5=AE=8C=E5=96=84=E6=9A=B4=E5=87=BB?= =?UTF-8?q?=E5=86=B0=E5=86=BB=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 在HeroAttrs枚举中新增critical_res和freeze_res属性 2. 在HeroAttrsComp中添加对应抗性属性并在重置方法中初始化 3. 修改暴击和冰冻判定逻辑,加入抗性减免计算 --- .trae/rules/git-commit-message.md | 3 ++- assets/script/game/common/config/HeroAttrs.ts | 2 ++ assets/script/game/hero/HeroAtkSystem.ts | 5 +++-- assets/script/game/hero/HeroAttrsComp.ts | 4 ++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.trae/rules/git-commit-message.md b/.trae/rules/git-commit-message.md index 99f24731..ae4160a8 100644 --- a/.trae/rules/git-commit-message.md +++ b/.trae/rules/git-commit-message.md @@ -3,4 +3,5 @@ alwaysApply: true scene: git_message --- -在此处编写规则,自定义 AI 生成提交信息的风格。 +采用中文提交信息 + diff --git a/assets/script/game/common/config/HeroAttrs.ts b/assets/script/game/common/config/HeroAttrs.ts index ae9b962e..5c5e25c8 100644 --- a/assets/script/game/common/config/HeroAttrs.ts +++ b/assets/script/game/common/config/HeroAttrs.ts @@ -24,9 +24,11 @@ export enum Attrs { // ==================== 暴击与命中属性 ==================== critical = "critical", // 暴击率 critical_damage = "critical_damage", // 暴击伤害 + critical_res = "critical_res", // 暴击抗性 // ==================== 特殊效果属性 ==================== freeze_chance = "freeze_chance", // 冰冻概率 + freeze_res = "freeze_res", // 冰冻抗性 knockback_chance = "knockback_chance", // 击退概率 knockback_distance = "knockback_distance", // 击退距离强化 knockback_res = "knockback_res", // 击退抗性 diff --git a/assets/script/game/hero/HeroAtkSystem.ts b/assets/script/game/hero/HeroAtkSystem.ts index 5d87ce35..1198b26f 100644 --- a/assets/script/game/hero/HeroAtkSystem.ts +++ b/assets/script/game/hero/HeroAtkSystem.ts @@ -135,7 +135,8 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd // 暴击判定 // 使用施法者的暴击率属性(damageEvent.Attrs 快照),- 被攻击者的暴击抗性属 - const isCrit = this.checkChance(damageEvent.Attrs[Attrs.critical]); + const criticalChance = (damageEvent.Attrs[Attrs.critical] || 0) - (TAttrsComp.critical_res || 0); + const isCrit = this.checkChance(criticalChance); // 计算基础伤害 let damage = this.dmgCount(damageEvent,TAttrsComp); @@ -189,7 +190,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd mLogger.log(this.debugMode, 'HeroAtkSystem', ` 英雄${TAttrsComp.hero_name} (uuid: ${TAttrsComp.hero_uuid}) 受到 eid:${casterEid} 的 伤害 ${damage},${isCrit?"暴击":"普通"}攻击,技能ID ${damageEvent.s_uuid}`); // 冰冻判定 - const freezeChance = damageEvent.Attrs[Attrs.freeze_chance] || 0; + const freezeChance = (damageEvent.Attrs[Attrs.freeze_chance] || 0) - (TAttrsComp.freeze_res || 0); const isFrost = !TAttrsComp.isFrost() && this.checkChance(freezeChance); // 击退判定 diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index d5abadf2..afc1ace9 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -42,7 +42,9 @@ export class HeroAttrsComp extends ecs.Comp { // ==================== 特殊属性 ==================== critical: number = 0; // 暴击率 + critical_res: number = 0; // 暴击抗性 freeze_chance: number = 0; // 冰冻概率 + freeze_res: number = 0; // 冰冻抗性 knockback_chance: number = 0; // 击退概率 knockback_distance: number = 0; // 击退距离强化 knockback_res: number = 0; // 击退抗性 @@ -299,7 +301,9 @@ export class HeroAttrsComp extends ecs.Comp { this.atked = undefined; this.revive = undefined; this.critical = 0; + this.critical_res = 0; this.freeze_chance = 0; + this.freeze_res = 0; this.knockback_chance = 0; this.knockback_distance = 0; this.knockback_res = 0;