refactor: 重命名Logger类并增加错误日志方法
- 将Logger类重命名为mLogger以符合命名规范 - 新增error方法用于统一错误输出 - 在多个组件中替换console.log/warn/error为mLogger的对应方法 - 为多个组件添加debugMode属性以控制模块级日志开关 - 新增HeroMasterComp组件框架
This commit is contained in:
@@ -2,12 +2,16 @@ import { _decorator,Button,EventHandler,EventTouch,Label,NodeEventType,resources
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { mLogger } from "../common/Logger";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/** 视图层对象 */
|
||||
@ccclass('CardControllerComp')
|
||||
@ecs.register('CardController', false)
|
||||
export class CardControllerComp extends CCComp {
|
||||
@property({ tooltip: "是否启用调试日志" })
|
||||
private debugMode: boolean = false;
|
||||
|
||||
touch_time:number = 0
|
||||
in_touch:boolean = false
|
||||
bbg:any=null
|
||||
@@ -16,11 +20,11 @@ export class CardControllerComp extends CCComp {
|
||||
protected onLoad(): void {
|
||||
}
|
||||
start() {
|
||||
console.log("CardControllerComp start",this.node)
|
||||
mLogger.log(this.debugMode, 'CardController', "CardControllerComp start",this.node)
|
||||
this.page_init()
|
||||
}
|
||||
onAdded(args:any){
|
||||
console.log("CardControllerComp onAdded",args)
|
||||
mLogger.log(this.debugMode, 'CardController', "CardControllerComp onAdded",args)
|
||||
smc.map.MapView.scene.mapLayer.node.getChildByName("loading").active=false;
|
||||
}
|
||||
protected update(dt: number): void {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { mLogger } from "../common/Logger";
|
||||
import { _decorator, Label, Node, tween, Vec3, Color, Sprite, Tween, SpriteAtlas, resources } from "cc";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||
@@ -24,6 +25,9 @@ interface ICardEvent {
|
||||
@ccclass('MissionCardComp')
|
||||
@ecs.register('MissionCard', false)
|
||||
export class MissionCardComp extends CCComp {
|
||||
@property({ tooltip: "是否启用调试日志" })
|
||||
private debugMode: boolean = false;
|
||||
|
||||
/** 视图层逻辑代码分离演示 */
|
||||
@property(Node)
|
||||
card1:Node = null!
|
||||
@@ -376,7 +380,7 @@ export class MissionCardComp extends CCComp {
|
||||
// 加载图集
|
||||
resources.load("gui/uicons", SpriteAtlas, (err, atlas) => {
|
||||
if (err) {
|
||||
console.error("[MissionCardComp] Failed to load uicons atlas", err);
|
||||
mLogger.error(this.debugMode, 'MissionCard', "[MissionCardComp] Failed to load uicons atlas", err);
|
||||
return;
|
||||
}
|
||||
this.uiconsAtlas = atlas;
|
||||
@@ -395,7 +399,7 @@ export class MissionCardComp extends CCComp {
|
||||
}
|
||||
|
||||
selectCard(e: any, index: string) {
|
||||
console.log("selectCard", index)
|
||||
mLogger.log(this.debugMode, 'MissionCard', "selectCard", index)
|
||||
let _index = parseInt(index);
|
||||
// 如果已经选择过,则不再处理
|
||||
if (this.hasSelected) return;
|
||||
@@ -406,7 +410,7 @@ export class MissionCardComp extends CCComp {
|
||||
|
||||
if (selectedData && selectedCardNode) {
|
||||
this.hasSelected = true;
|
||||
console.log("选择卡片:", selectedData.name, "类型:", selectedData.type);
|
||||
mLogger.log(this.debugMode, 'MissionCard', "选择卡片:", selectedData.name, "类型:", selectedData.type);
|
||||
|
||||
// 未选中的卡片缩小
|
||||
const cards = [this.card1, this.card2, this.card3, this.card4];
|
||||
@@ -432,7 +436,24 @@ export class MissionCardComp extends CCComp {
|
||||
.call(() => {
|
||||
// 根据类型直接操作 smc.role (如果是主角)
|
||||
// 确保只影响主角,避免广播事件导致所有实体生效
|
||||
const role = smc.role;
|
||||
let role = smc.role;
|
||||
|
||||
// 容错处理:如果 smc.role 为空,尝试通过 ECS 查询查找主角
|
||||
if (!role) {
|
||||
console.warn("[MissionCard] smc.role 为空,尝试查找主角实体...");
|
||||
// @ts-ignore
|
||||
const entities = ecs.query(ecs.allOf(HeroAttrsComp));
|
||||
for (const e of entities) {
|
||||
const attrs = e.get(HeroAttrsComp);
|
||||
if (attrs && attrs.is_master) {
|
||||
role = e;
|
||||
smc.role = e; // 修复 smc.role 引用
|
||||
console.log("[MissionCard] 成功找回主角实体并修复 smc.role");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (role) {
|
||||
switch (selectedData.type) {
|
||||
case CardType.Talent:
|
||||
@@ -441,10 +462,10 @@ export class MissionCardComp extends CCComp {
|
||||
const talComp = role.get(TalComp);
|
||||
if (talComp) {
|
||||
const beforeCount = Object.keys(talComp.Tals).length;
|
||||
console.log(`[MissionCard] Talent Before: Count=${beforeCount}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Talent Before: Count=${beforeCount}`);
|
||||
talComp.addTal(selectedData.uuid);
|
||||
const afterCount = Object.keys(talComp.Tals).length;
|
||||
console.log(`[MissionCard] Talent After: Count=${afterCount}, Added=${selectedData.uuid}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Talent After: Count=${afterCount}, Added=${selectedData.uuid}`);
|
||||
}
|
||||
break;
|
||||
case CardType.Skill:
|
||||
@@ -453,10 +474,10 @@ export class MissionCardComp extends CCComp {
|
||||
const skillComp = role.get(HeroSkillsComp);
|
||||
if (skillComp) {
|
||||
const beforeCount = Object.keys(skillComp.skills).length;
|
||||
console.log(`[MissionCard] Skill Before: Count=${beforeCount}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Skill Before: Count=${beforeCount}`);
|
||||
skillComp.addSkill(selectedData.uuid);
|
||||
const afterCount = Object.keys(skillComp.skills).length;
|
||||
console.log(`[MissionCard] Skill After: Count=${afterCount}, Added=${selectedData.uuid}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Skill After: Count=${afterCount}, Added=${selectedData.uuid}`);
|
||||
}
|
||||
break;
|
||||
case CardType.Partner:
|
||||
@@ -470,7 +491,7 @@ export class MissionCardComp extends CCComp {
|
||||
const potion = PotionCards[selectedData.uuid];
|
||||
if (potion) {
|
||||
const beforeVal = attrsComp.Attrs[potion.attr] || 0;
|
||||
console.log(`[MissionCard] Potion Before: Attr[${potion.attr}]=${beforeVal}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Potion Before: Attr[${potion.attr}]=${beforeVal}`);
|
||||
|
||||
const buffConf: BuffConf = {
|
||||
buff: potion.attr,
|
||||
@@ -482,7 +503,7 @@ export class MissionCardComp extends CCComp {
|
||||
attrsComp.addBuff(buffConf);
|
||||
smc.updateHeroInfo(attrsComp);
|
||||
|
||||
console.log(`[MissionCard] Potion Applied: ${potion.desc}, Value=${potion.value}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Potion Applied: ${potion.desc}, Value=${potion.value}`);
|
||||
oops.gui.toast(potion.desc);
|
||||
}
|
||||
}
|
||||
@@ -500,7 +521,7 @@ export class MissionCardComp extends CCComp {
|
||||
if (roleAttrs) {
|
||||
roleBefore = roleAttrs.Attrs[attrCard.attr] || 0;
|
||||
}
|
||||
console.log(`[MissionCard] Attr Before: Global=${globalBefore}, Hero=${roleBefore}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Attr Before: Global=${globalBefore}, Hero=${roleBefore}`);
|
||||
|
||||
if (!smc.global_attrs[attrCard.attr]) {
|
||||
smc.global_attrs[attrCard.attr] = [0, 0];
|
||||
@@ -516,7 +537,7 @@ export class MissionCardComp extends CCComp {
|
||||
smc.updateHeroInfo(attrsComp);
|
||||
|
||||
const roleAfter = attrsComp.Attrs[attrCard.attr] || 0;
|
||||
console.log(`[MissionCard] Attr After: Global=${current[0]}, Hero=${roleAfter}`);
|
||||
mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Attr After: Global=${current[0]}, Hero=${roleAfter}`);
|
||||
}
|
||||
oops.gui.toast(attrCard.desc);
|
||||
}
|
||||
@@ -542,7 +563,7 @@ export class MissionCardComp extends CCComp {
|
||||
/** 看广告关闭 Lock */
|
||||
watchAdCloseLock() {
|
||||
// TODO: 此处接入 IAA 广告 SDK
|
||||
console.log("播放激励视频广告...");
|
||||
mLogger.log(this.debugMode, 'MissionCard', "播放激励视频广告...");
|
||||
|
||||
// 模拟广告播放成功回调
|
||||
this.isLocked = false;
|
||||
|
||||
@@ -10,6 +10,7 @@ import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { UIID } from "../common/config/GameUIConfig";
|
||||
import { SkillView } from "../skill/SkillView";
|
||||
import { FightSet, getLevelRewardType, CardType, FacSet } from "../common/config/GameSet";
|
||||
import { mLogger } from "../common/Logger";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
|
||||
@@ -19,6 +20,9 @@ const { ccclass, property } = _decorator;
|
||||
@ccclass('MissionComp')
|
||||
@ecs.register('MissionComp', false)
|
||||
export class MissionComp extends CCComp {
|
||||
@property({ tooltip: "是否启用调试日志" })
|
||||
private debugMode: boolean = false;
|
||||
|
||||
// VictoryComp:any = null;
|
||||
// reward:number = 0;
|
||||
// reward_num:number = 0;
|
||||
@@ -84,7 +88,7 @@ export class MissionComp extends CCComp {
|
||||
|
||||
// 升级奖励触发
|
||||
onLevelUp(event: string, args: any) {
|
||||
console.log(`[MissionComp] 英雄升级到 ${args.lv} 级!`);
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 英雄升级到 ${args.lv} 级!`);
|
||||
this.call_cards(args.lv)
|
||||
// 获取当前等级对应的奖励类型
|
||||
|
||||
@@ -96,7 +100,7 @@ export class MissionComp extends CCComp {
|
||||
call_cards(lv:number){
|
||||
const rewardType = getLevelRewardType(lv);
|
||||
|
||||
console.log(`[MissionComp] 触发奖励选择, 类型: ${rewardType}`);
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 触发奖励选择, 类型: ${rewardType}`);
|
||||
|
||||
// 默认每级都触发属性选择
|
||||
oops.message.dispatchEvent(GameEvent.AttrSelect);
|
||||
@@ -119,7 +123,7 @@ export class MissionComp extends CCComp {
|
||||
}
|
||||
showLevelUpReward() {
|
||||
// TODO: 显示三选一技能/属性奖励界面
|
||||
console.log("[MissionComp] 显示升级奖励界面 (TODO)");
|
||||
mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] 显示升级奖励界面 (TODO)");
|
||||
}
|
||||
|
||||
//奖励发放
|
||||
@@ -128,7 +132,7 @@ export class MissionComp extends CCComp {
|
||||
}
|
||||
|
||||
do_mon_dead(event:any,data:any){
|
||||
// console.log("[MissionComp] do_mon_dead",event,data)
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] do_mon_dead",event,data)
|
||||
smc.vmdata.mission_data.mon_num--
|
||||
// 计算并增加经验
|
||||
// data 应该是怪物组件或包含怪物信息的对象
|
||||
@@ -219,7 +223,7 @@ do_ad(){
|
||||
// smc.mission.play = false;
|
||||
smc.mission.pause = true;
|
||||
// oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||
console.log("[MissionComp] open_Victory",is_hero_dead,this.revive_times)
|
||||
mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] open_Victory",is_hero_dead,this.revive_times)
|
||||
oops.gui.open(UIID.Victory,{
|
||||
victory:false,
|
||||
rewards:this.rewards,
|
||||
@@ -232,13 +236,13 @@ do_ad(){
|
||||
onReviveSuccess() {
|
||||
if (this.revive_times > 0) {
|
||||
this.revive_times--;
|
||||
console.log(`[MissionComp] 玩家复活,剩余次数: ${this.revive_times}`);
|
||||
mLogger.log(this.debugMode, 'MissionComp', `[MissionComp] 玩家复活,剩余次数: ${this.revive_times}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fight_end(){
|
||||
// console.log("任务结束")
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "任务结束")
|
||||
// 延迟0.5秒后执行任务结束逻辑
|
||||
this.scheduleOnce(() => {
|
||||
smc.mission.play=false
|
||||
@@ -247,7 +251,7 @@ do_ad(){
|
||||
}
|
||||
|
||||
mission_end(){
|
||||
// console.log("[MissionComp] mission_end")
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "[MissionComp] mission_end")
|
||||
// 合并 FightEnd 逻辑:清理组件、停止游戏循环
|
||||
smc.mission.play=false
|
||||
this.cleanComponents()
|
||||
@@ -273,6 +277,7 @@ do_ad(){
|
||||
this.spawnedSpecialIndices.clear(); // 重置特殊刷怪记录
|
||||
|
||||
// 重置全局属性加成和主角引用 (确保新一局数据干净)
|
||||
console.log(`[MissionComp] data_init 重置 smc.role 为 null`);
|
||||
smc.role = null;
|
||||
|
||||
// 重置英雄数据,确保新一局是初始状态
|
||||
@@ -301,7 +306,7 @@ do_ad(){
|
||||
};
|
||||
|
||||
|
||||
// console.log("[MissionComp]局内数据初始化",smc.vmdata.mission_data)
|
||||
// mLogger.log(this.debugMode, 'MissionComp', "[MissionComp]局内数据初始化",smc.vmdata.mission_data)
|
||||
}
|
||||
|
||||
private cleanComponents() {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { _decorator, v3, Vec3 } from "cc";
|
||||
import { mLogger } from "../common/Logger";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||
import { Monster } from "../hero/Mon";
|
||||
@@ -16,7 +17,10 @@ const { ccclass, property } = _decorator;
|
||||
/** 视图层对象 */
|
||||
@ccclass('MissionMonCompComp')
|
||||
@ecs.register('MissionMonComp', false)
|
||||
export class MissionMonCompComp extends CCComp {
|
||||
export class MissionMonCompComp extends CCComp {
|
||||
@property({ tooltip: "是否启用调试日志" })
|
||||
private debugMode: boolean = false;
|
||||
|
||||
// 刷怪队列 (主要用于特殊事件插队)
|
||||
private MonQueue: Array<{
|
||||
uuid: number,
|
||||
@@ -82,7 +86,7 @@ export class MissionMonCompComp extends CCComp {
|
||||
this.MonQueue = []
|
||||
this.spawnCount = 0
|
||||
|
||||
console.log("[MissionMonComp] Starting Wave System (15-min Cycle)");
|
||||
mLogger.log(this.debugMode, 'MissionMonComp', "[MissionMonComp] Starting Wave System (15-min Cycle)");
|
||||
}
|
||||
|
||||
protected update(dt: number): void {
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
*/
|
||||
|
||||
import { HeroInfo } from "../common/config/heroSet";
|
||||
import { mLogger } from "../common/Logger";
|
||||
|
||||
/**
|
||||
* 怪物类型枚举
|
||||
@@ -283,7 +284,7 @@ function applyGrowthFormula(baseStat: number, waveFactor: number, growthType: Gr
|
||||
export function getMonAttr(stage: number, uuid: number, monType: MonType = MonType.NORMAL, timeInSeconds: number = 0): MonAttrs {
|
||||
const baseMonster = HeroInfo[uuid];
|
||||
if (!baseMonster) {
|
||||
console.warn(`[RogueConfig] 未找到怪物ID: ${uuid}`);
|
||||
mLogger.warn(true, 'RogueConfig', `[RogueConfig] 未找到怪物ID: ${uuid}`);
|
||||
return { hp: 100, mp: 100, ap: 10, def: 0, speed: 100 };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user