refactor(hero&shield): 优化护盾系统逻辑与英雄配置

1. 修复护盾吸收数值计算错误,正确返回实际吸收伤害量
2. 调整护盾计数逻辑,改为按次数统计而非伤害量
3. 更新护盾相关提示文本与UI表现
4. 重构小铁卫与小刺客的英雄成长配置,补充详细设计文档
5. 删除冗余的旧版英雄配置文件
This commit is contained in:
pan
2026-07-24 09:44:43 +08:00
parent ee7c0ea69c
commit 42d0959b05
7 changed files with 42 additions and 983 deletions

View File

@@ -151,10 +151,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
damage = shieldResult.remainingDamage;
if (shieldResult.absorbedDamage > 0) {
// 【评分系统 - 防御分】统计护盾成功抵挡伤害的次数
smc.vmdata.scores.shield_block_count += shieldResult.absorbedDamage;
smc.vmdata.scores.shield_block_count += 1;
}
mLogger.log(this.debugMode, 'HeroAtkSystem', " after shield", damage)
// 显示护盾吸收飘字
// 显示护盾格挡飘字
if (shieldResult.absorbedDamage > 0 && targetView) {
targetView.shield_tip(shieldResult.absorbedDamage);
}
@@ -171,7 +171,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
}
}
// 增加受击计数并触发 atked 技能
// 受击计数:只有实际造成伤害才 +1被格挡不计数
TAttrsComp.atked_count++;
this.checkAndTriggerAtkedSkills(TAttrsComp, targetView);
@@ -399,13 +399,13 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
* 护盾吸收伤害
*
* 护盾吸收逻辑:
* 1. 护盾值大于 0 时,抵挡本次伤害
* 1. 护盾值大于 0 时,抵挡本次伤害(免伤)
* 2. 每次抵挡消耗 1 点护盾值
* 3. 护盾归零时,重置护盾最大值属性
*
* @param TAttrsComp 被攻击者的属性组件(包含当前护盾值)
* @param damage 原始伤害值
* @returns {remainingDamage, absorbedDamage} 剩余伤害值和吸收的护盾
* @returns {remainingDamage, absorbedDamage} 剩余伤害值和被格挡的伤害
*/
private absorbShield(TAttrsComp: HeroAttrsComp, damage: number): { remainingDamage: number, absorbedDamage: number } {
if (TAttrsComp.shield <= 0) {
@@ -418,7 +418,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda
}
TAttrsComp.dirty_shield = true;
mLogger.log(this.debugMode, 'HeroAtkSystem', ` 护盾抵挡1次伤害剩余次数 ${TAttrsComp.shield}`);
return { remainingDamage: 0, absorbedDamage: 1 };
return { remainingDamage: 0, absorbedDamage: damage };
}
/**