diff --git a/assets/script/game/hero/HeroAtkSystem.ts b/assets/script/game/hero/HeroAtkSystem.ts index 8bcf8861..946d676f 100644 --- a/assets/script/game/hero/HeroAtkSystem.ts +++ b/assets/script/game/hero/HeroAtkSystem.ts @@ -518,16 +518,12 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpda } private absorbShield(TAttrsComp: HeroAttrsComp, damage: number): { remainingDamage: number, absorbedDamage: number } { - mLogger.log(this.debugMode, 'HeroAtkSystem', `absorbShield: ${TAttrsComp.hero_name}, shield=${TAttrsComp.shield}, damage=${damage}`); if (TAttrsComp.shield <= 0) { - mLogger.log(this.debugMode, 'HeroAtkSystem', `absorbShield: shield <= 0, no absorb`); return { remainingDamage: damage, absorbedDamage: 0 }; } const absorbed = Math.min(TAttrsComp.shield, damage); - const oldShield = TAttrsComp.shield; TAttrsComp.shield = Math.max(0, TAttrsComp.shield - absorbed); TAttrsComp.dirty_shield = true; - mLogger.log(this.debugMode, 'HeroAtkSystem', `absorbShield: ${TAttrsComp.hero_name}, absorbed=${absorbed}, shield ${Math.floor(oldShield)} -> ${Math.floor(TAttrsComp.shield)}, dirty_shield=true`); return { remainingDamage: damage - absorbed, absorbedDamage: absorbed }; } diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index d02fbada..351edeeb 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -154,14 +154,10 @@ export class HeroAttrsComp extends ecs.Comp { add_shield(value: number) { const oldShield = this.shield; const addValue = Math.max(0, Math.floor(value)); - if (addValue <= 0) { - mLogger.log(this.debugMode, 'HeroAttrs', `add_shield: addValue=${addValue} <= 0, skip`); - return; - } + if (addValue <= 0) return; this.shield += addValue; if (this.shield < 0) this.shield = 0; this.dirty_shield = true; // 标记护盾需要更新 - mLogger.log(this.debugMode, 'HeroAttrs', `add_shield: ${this.hero_name}, old=${Math.floor(oldShield)}, add=${addValue}, new=${Math.floor(this.shield)}, dirty_shield=true`); } add_hp_max(value: number) { this.hp_max += value diff --git a/assets/script/game/hero/HeroTopBarComp.ts b/assets/script/game/hero/HeroTopBarComp.ts index 370a99ab..6ed1d505 100644 --- a/assets/script/game/hero/HeroTopBarComp.ts +++ b/assets/script/game/hero/HeroTopBarComp.ts @@ -137,16 +137,11 @@ export class HeroTopBarComp extends CCComp { /** 更新护盾数值条(显示具体数值,无上限) */ public shieldShow(shield: number = 0): void { - if (!this.shieldProgressBar) { - console.log('[HeroTopBarComp] shieldShow: shieldProgressBar is null'); - return; - } + if (!this.shieldProgressBar) return; // 护盾条直接显示具体数值,progress 固定为 1(满条显示) this.shieldProgressBar.progress = 1; // 护盾节点显隐 - const shouldActive = shield > 0; - console.log(`[HeroTopBarComp] shieldShow: shield=${shield}, active=${shouldActive}, node=${this.shieldProgressBar.node.name}`); - this.shieldProgressBar.node.active = shouldActive; + this.shieldProgressBar.node.active = shield > 0; } /** diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts index 21a05412..221ffe70 100644 --- a/assets/script/game/hero/HeroViewComp.ts +++ b/assets/script/game/hero/HeroViewComp.ts @@ -140,11 +140,9 @@ export class HeroViewComp extends CCComp { if (this.model.dirty_shield) { - mLogger.log(this.debugMode, 'HeroViewComp', `update dirty_shield: shield=${this.model.shield}, calling shieldShow`); this.topBar.shieldShow(this.model.shield); // 护盾耗尽时隐藏护盾特效 if (this.model.shield <= 0) { - mLogger.log(this.debugMode, 'HeroViewComp', `update dirty_shield: shield <= 0, hiding shield fx`); this.hideShieldFx(); } this.model.dirty_shield = false; @@ -319,39 +317,25 @@ export class HeroViewComp extends CCComp { private shieldFxNode: Node | null = null; add_shield(shield: number) { - mLogger.log(this.debugMode, 'HeroViewComp', `add_shield called, shield=${shield}, model.shield=${this.model?.shield}, model exists=${!!this.model}`); // 护盾数据更新由 Model 层处理,这里只负责视图表现 if (this.model && this.model.shield > 0) { this.topBar.shieldShow(this.model.shield); this.showShieldFx(); - mLogger.log(this.debugMode, 'HeroViewComp', `add_shield: showing shield fx, model.shield=${this.model.shield}`); - } else { - mLogger.log(this.debugMode, 'HeroViewComp', `add_shield: skipped, model.shield=${this.model?.shield}`); } } - /** 显示护盾常驻特效(使用 this.node 下已放置的 shielded 节点) */ + /** 显示护盾常驻特效(动态加载并挂载到 this.node 下) */ private showShieldFx() { - if (!this.shieldFxNode) { - this.shieldFxNode = this.node.getChildByName("shielded"); - mLogger.log(this.debugMode, 'HeroViewComp', `showShieldFx: found shielded node=${!!this.shieldFxNode}`); - } - if (this.shieldFxNode && !this.shieldFxNode.active) { - this.shieldFxNode.active = true; - mLogger.log(this.debugMode, 'HeroViewComp', `showShieldFx: activated shielded node`); - } else { - mLogger.log(this.debugMode, 'HeroViewComp', `showShieldFx: shielded node already active or not found, active=${this.shieldFxNode?.active}`); - } + if (this.shieldFxNode && this.shieldFxNode.isValid) return; + this.shieldFxNode = this.createFxNode("game/skill/buff/shielded", this.node, undefined); } /** 隐藏护盾常驻特效 */ private hideShieldFx() { - if (this.shieldFxNode && this.shieldFxNode.active) { - this.shieldFxNode.active = false; - mLogger.log(this.debugMode, 'HeroViewComp', `hideShieldFx: deactivated shielded node`); - } else { - mLogger.log(this.debugMode, 'HeroViewComp', `hideShieldFx: shielded node not active or not found, active=${this.shieldFxNode?.active}`); + if (this.shieldFxNode && this.shieldFxNode.isValid) { + this.shieldFxNode.destroy(); } + this.shieldFxNode = null; } health(hp: number = 0) { diff --git a/assets/script/game/hero/SCastSystem.ts b/assets/script/game/hero/SCastSystem.ts index d933c240..259954dd 100644 --- a/assets/script/game/hero/SCastSystem.ts +++ b/assets/script/game/hero/SCastSystem.ts @@ -539,9 +539,7 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate } else if (kind === SkillKind.Shield && sAp !== 0) { // 护盾值 = ap% × 施法者最终最大生命(getFinalHpMax 含驻场光环与计时 buff 加成) const addShield = Math.max(0, Math.floor(_cAttrsComp.getFinalHpMax() * sAp / 100)); - mLogger.log(this.debugMode, 'SCastSystem', `applyActualFriendlyEffect Shield: caster=${_cAttrsComp.hero_name}, target=${model.hero_name}, casterHpMax=${_cAttrsComp.getFinalHpMax()}, sAp=${sAp}, addShield=${addShield}, targetOldShield=${model.shield}`); model.add_shield(addShield); - mLogger.log(this.debugMode, 'SCastSystem', `applyActualFriendlyEffect Shield: after add_shield, targetNewShield=${model.shield}, dirty_shield=${model.dirty_shield}`); } if (config.buff_type !== undefined) {