refactor(hero): 优化调试日志输出并添加调试工具方法
添加条件日志方法 debugLog 和 debugWarn 来统一管理调试输出 将 HeroAtkSystem 中的 console.log 调用改为条件输出 启用 HeroViewComp 的调试模式以便开发时查看日志
This commit is contained in:
@@ -151,7 +151,7 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
|
|||||||
const isCrit = this.checkChance(damageEvent.Attrs[Attrs.CRITICAL]-TAttrsComp.Attrs[Attrs.CRITICAL_RESIST]);
|
const isCrit = this.checkChance(damageEvent.Attrs[Attrs.CRITICAL]-TAttrsComp.Attrs[Attrs.CRITICAL_RESIST]);
|
||||||
// 计算基础伤害
|
// 计算基础伤害
|
||||||
let damage = this.dmgCount(damageEvent,TAttrsComp);
|
let damage = this.dmgCount(damageEvent,TAttrsComp);
|
||||||
console.log("[HeroAtkSystem] dmgCount",damage)
|
if (this.debugMode) console.log("[HeroAtkSystem] dmgCount",damage)
|
||||||
if (isCrit) {
|
if (isCrit) {
|
||||||
// 暴击伤害计算
|
// 暴击伤害计算
|
||||||
// 使用施法者的暴击伤害加成属性(damageEvent.Attrs 快照)
|
// 使用施法者的暴击伤害加成属性(damageEvent.Attrs 快照)
|
||||||
@@ -162,10 +162,10 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
|
|||||||
CAttrsComp?.useValueTalByAttr(Attrs.CRITICAL); // 清除施法者的暴击buff
|
CAttrsComp?.useValueTalByAttr(Attrs.CRITICAL); // 清除施法者的暴击buff
|
||||||
|
|
||||||
}
|
}
|
||||||
console.log("[HeroAtkSystem] after crit",damage)
|
if (this.debugMode) console.log("[HeroAtkSystem] after crit",damage)
|
||||||
// 护盾吸收
|
// 护盾吸收
|
||||||
damage =Math.floor(this.absorbShield(TAttrsComp, damage))
|
damage =Math.floor(this.absorbShield(TAttrsComp, damage))
|
||||||
console.log("[HeroAtkSystem] after shield",damage)
|
if (this.debugMode) console.log("[HeroAtkSystem] after shield",damage)
|
||||||
if (damage <= 0) return reDate;
|
if (damage <= 0) return reDate;
|
||||||
// 应用伤害到数据层
|
// 应用伤害到数据层
|
||||||
TAttrsComp.hp -= damage;
|
TAttrsComp.hp -= damage;
|
||||||
|
|||||||
@@ -26,7 +26,20 @@ export interface BuffInfo {
|
|||||||
@ccclass('HeroViewComp') // 定义Cocos Creator 组件
|
@ccclass('HeroViewComp') // 定义Cocos Creator 组件
|
||||||
@ecs.register('HeroView', false) // 定义ECS 组件
|
@ecs.register('HeroView', false) // 定义ECS 组件
|
||||||
export class HeroViewComp extends CCComp {
|
export class HeroViewComp extends CCComp {
|
||||||
private debugMode: boolean = false; // 是否启用调试模式
|
private debugMode: boolean = true; // 是否启用调试模式
|
||||||
|
|
||||||
|
// 添加条件日志方法
|
||||||
|
private debugLog(...args: any[]): void {
|
||||||
|
if (this.debugMode) {
|
||||||
|
console.log(...args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private debugWarn(...args: any[]): void {
|
||||||
|
if (this.debugMode) {
|
||||||
|
console.warn(...args);
|
||||||
|
}
|
||||||
|
}
|
||||||
// ==================== View 层属性(表现相关)====================
|
// ==================== View 层属性(表现相关)====================
|
||||||
as: HeroSpine = null!
|
as: HeroSpine = null!
|
||||||
status:String = "idle"
|
status:String = "idle"
|
||||||
@@ -44,7 +57,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
get model() {
|
get model() {
|
||||||
// 🔥 修复:添加安全检查,防止ent为null时的访问异常
|
// 🔥 修复:添加安全检查,防止ent为null时的访问异常
|
||||||
if (!this.ent) {
|
if (!this.ent) {
|
||||||
console.warn("[HeroViewComp] ent is null, returning null for model");
|
this.debugWarn("[HeroViewComp] ent is null, returning null for model");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return this.ent.get(HeroAttrsComp);
|
return this.ent.get(HeroAttrsComp);
|
||||||
@@ -161,7 +174,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
// 不再基于血量是否满来决定显示状态,只更新进度条
|
// 不再基于血量是否满来决定显示状态,只更新进度条
|
||||||
let hp=this.model.hp;
|
let hp=this.model.hp;
|
||||||
let hp_max=this.model.Attrs[Attrs.HP_MAX];
|
let hp_max=this.model.Attrs[Attrs.HP_MAX];
|
||||||
console.log("hp_show",hp,hp_max)
|
this.debugLog("hp_show",hp,hp_max)
|
||||||
this.top_node.getChildByName("hp").getComponent(ProgressBar).progress = hp / hp_max;;
|
this.top_node.getChildByName("hp").getComponent(ProgressBar).progress = hp / hp_max;;
|
||||||
this.scheduleOnce(() => {
|
this.scheduleOnce(() => {
|
||||||
this.top_node.getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp / hp_max;;
|
this.top_node.getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp / hp_max;;
|
||||||
@@ -173,7 +186,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
if(!this.top_node.active) return
|
if(!this.top_node.active) return
|
||||||
let mp=this.model.mp;
|
let mp=this.model.mp;
|
||||||
let mp_max=this.model.Attrs[Attrs.MP_MAX];
|
let mp_max=this.model.Attrs[Attrs.MP_MAX];
|
||||||
console.log("mp_show",mp,mp_max)
|
this.debugLog("mp_show",mp,mp_max)
|
||||||
this.top_node.getChildByName("mp").getComponent(ProgressBar).progress = mp / mp_max;
|
this.top_node.getChildByName("mp").getComponent(ProgressBar).progress = mp / mp_max;
|
||||||
this.scheduleOnce(() => {
|
this.scheduleOnce(() => {
|
||||||
this.top_node.getChildByName("mp").getChildByName("mpb").getComponent(ProgressBar).progress = mp / mp_max;
|
this.top_node.getChildByName("mp").getChildByName("mpb").getComponent(ProgressBar).progress = mp / mp_max;
|
||||||
@@ -331,7 +344,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
realDead(){
|
realDead(){
|
||||||
// 🔥 修复:添加model安全检查,防止实体销毁过程中的空指针异常
|
// 🔥 修复:添加model安全检查,防止实体销毁过程中的空指针异常
|
||||||
if (!this.model) {
|
if (!this.model) {
|
||||||
console.warn("[HeroViewComp] realDead called but model is null, skipping");
|
this.debugWarn("[HeroViewComp] realDead called but model is null, skipping");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(this.model.fac === FacSet.HERO){
|
if(this.model.fac === FacSet.HERO){
|
||||||
@@ -472,3 +485,8 @@ export class HeroViewComp extends CCComp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user