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;