refactor(hero&shield): 优化护盾系统逻辑与英雄配置
1. 修复护盾吸收数值计算错误,正确返回实际吸收伤害量 2. 调整护盾计数逻辑,改为按次数统计而非伤害量 3. 更新护盾相关提示文本与UI表现 4. 重构小铁卫与小刺客的英雄成长配置,补充详细设计文档 5. 删除冗余的旧版英雄配置文件
This commit is contained in:
@@ -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 };
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user