diff --git a/assets/script/game/hero/Hero.ts b/assets/script/game/hero/Hero.ts index ca71cf72..2ae5f494 100644 --- a/assets/script/game/hero/Hero.ts +++ b/assets/script/game/hero/Hero.ts @@ -154,9 +154,9 @@ export class Hero extends ecs.Entity { } -/** 英雄生命周期系统:监听实体进入与移除并输出调试日志 */ -@ecs.register('HeroLifecycleSystem') -export class HeroLifecycleSystem extends ecs.ComblockSystem +/** 统一生命周期系统:按 fac 区分英雄与怪物并输出日志 */ +@ecs.register('BattleEntityLifecycleSystem') +export class BattleEntityLifecycleSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem, ecs.IEntityRemoveSystem { /** 仅处理拥有 MoveComp 的实体 */ @@ -164,23 +164,33 @@ export class HeroLifecycleSystem extends ecs.ComblockSystem return ecs.allOf(MoveComp); } + /** 基于阵营生成日志名称 */ + private resolveLabel(heroAttrs: HeroAttrsComp | null) { + if (!heroAttrs) return "未知"; + if (heroAttrs.fac === FacSet.HERO) return "英雄"; + if (heroAttrs.fac === FacSet.MON) return "怪物"; + return "未知"; + } + /** 实体进入世界时记录日志 */ entityEnter(e: ecs.Entity): void { const heroAttrs = e.get(HeroAttrsComp); + const label = this.resolveLabel(heroAttrs); if (heroAttrs) { - mLogger.log(heroAttrs.debugMode, 'HeroLifecycle', `英雄进入世界: ${heroAttrs.hero_name}`); + mLogger.log(heroAttrs.debugMode, 'BattleEntityLifecycle', `${label}进入世界: ${heroAttrs.hero_name}`); } else { - mLogger.log(true, 'HeroLifecycle', `英雄进入世界: 实体ID ${e.eid}`); + mLogger.log(true, 'BattleEntityLifecycle', `${label}进入世界: 实体ID ${e.eid}`); } } /** 实体离开世界时记录日志 */ entityRemove(e: ecs.Entity): void { const heroAttrs = e.get(HeroAttrsComp); + const label = this.resolveLabel(heroAttrs); if (heroAttrs) { - mLogger.log(heroAttrs.debugMode, 'HeroLifecycle', `英雄离开世界: ${heroAttrs.hero_name}`); + mLogger.log(heroAttrs.debugMode, 'BattleEntityLifecycle', `${label}离开世界: ${heroAttrs.hero_name}`); } else { - mLogger.log(true, 'HeroLifecycle', `英雄离开世界: 实体ID ${e.eid}`); + mLogger.log(true, 'BattleEntityLifecycle', `${label}离开世界: 实体ID ${e.eid}`); } } } diff --git a/assets/script/game/hero/Mon.ts b/assets/script/game/hero/Mon.ts index e14c8b7d..8f3f68a5 100644 --- a/assets/script/game/hero/Mon.ts +++ b/assets/script/game/hero/Mon.ts @@ -7,7 +7,6 @@ import { HeroInfo } from "../common/config/heroSet"; import { HeroAttrsComp } from "./HeroAttrsComp"; import { HeroViewComp } from "./HeroViewComp"; import { MoveComp } from "./MoveComp"; -import { mLogger } from "../common/Logger"; /** 怪物实体:负责怪物对象池复用、属性初始化、入场动画与回收 */ @ecs.register(`Monster`) export class Monster extends ecs.Entity { @@ -226,35 +225,3 @@ export class Monster extends ecs.Entity { } } -/** 怪物生命周期系统:监听实体进入与移除并输出调试日志 */ -@ecs.register('MonLifecycleSystem') -export class MonLifecycleSystem extends ecs.ComblockSystem - implements ecs.IEntityEnterSystem, ecs.IEntityRemoveSystem { - /** 调试开关,控制系统日志输出 */ - debugMode: boolean = false; - - /** 仅处理拥有 MoveComp 的实体 */ - filter() { - return ecs.allOf(MoveComp); - } - - /** 实体进入世界时记录日志 */ - entityEnter(e: ecs.Entity): void { - const heroAttrs = e.get(HeroAttrsComp); - if (heroAttrs) { - mLogger.log(this.debugMode, 'MonLifecycleSystem', `怪物进入世界: ${heroAttrs.hero_name}`); - } else { - mLogger.log(this.debugMode, 'MonLifecycleSystem', `怪物进入世界: 实体ID ${e.eid}`); - } - } - - /** 实体离开世界时记录日志 */ - entityRemove(e: ecs.Entity): void { - const heroAttrs = e.get(HeroAttrsComp); - if (heroAttrs) { - mLogger.log(this.debugMode, 'MonLifecycleSystem', `怪物离开世界: ${heroAttrs.hero_name}`); - } else { - mLogger.log(this.debugMode, 'MonLifecycleSystem', `怪物离开世界: 实体ID ${e.eid}`); - } - } -}