fix(英雄攻击系统): 添加护盾状态脏标记以同步状态变化

在护盾完全或部分吸收伤害时,设置dirty_shield标记以确保状态同步
This commit is contained in:
walkpan
2026-01-01 13:37:25 +08:00
parent 8d9eb61d7a
commit 7a6d04f6c9

View File

@@ -449,6 +449,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
TAttrsComp.shield = 0; TAttrsComp.shield = 0;
TAttrsComp.Attrs[Attrs.SHIELD_MAX] = 0; TAttrsComp.Attrs[Attrs.SHIELD_MAX] = 0;
} }
TAttrsComp.dirty_shield = true;
console.log(`[HeroAtkSystem] 护盾值完全吸收伤害 ${damage}`); console.log(`[HeroAtkSystem] 护盾值完全吸收伤害 ${damage}`);
return {remainingDamage: 0, absorbedDamage: damage}; return {remainingDamage: 0, absorbedDamage: damage};
} else { } else {
@@ -456,6 +457,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
const remainingDamage = damage - TAttrsComp.shield; const remainingDamage = damage - TAttrsComp.shield;
TAttrsComp.shield = 0; TAttrsComp.shield = 0;
TAttrsComp.Attrs[Attrs.SHIELD_MAX] = 0; TAttrsComp.Attrs[Attrs.SHIELD_MAX] = 0;
TAttrsComp.dirty_shield = true;
console.log(`[HeroAtkSystem] 护盾值部分吸收伤害 ${absorbedDamage}`); console.log(`[HeroAtkSystem] 护盾值部分吸收伤害 ${absorbedDamage}`);
return {remainingDamage, absorbedDamage}; return {remainingDamage, absorbedDamage};
} }