refactor: 统一替换内置console日志为可配置化日志系统
1. 将各业务模块中的硬编码console日志替换为自定义Logger模块,新增DEBUG开关控制日志输出 2. 为MissSkillsComp新增道具卡牌使用处理逻辑,支持药水类技能直接给全队施加buff 3. 修复了道具卡牌事件监听绑定错误的问题 4. 新增了hero预制体的meta配置文件 5. 调整了装备预制体的UI布局参数
This commit is contained in:
@@ -28,7 +28,9 @@ import { SBox } from "./SBox";
|
||||
import { oops } from "db://oops-framework/core/Oops";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
import { BoxSet } from "../common/config/GameSet";
|
||||
import { SkillOverrides } from "../common/config/SkillSet";
|
||||
import { SkillOverrides, SkillSet } from "../common/config/SkillSet";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { buffManager } from "../hero/BuffManager";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/** 技能槽位数据结构 */
|
||||
@@ -74,7 +76,7 @@ export class MissSkillsComp extends CCComp {
|
||||
/** 注册事件监听 */
|
||||
onLoad() {
|
||||
oops.message.on(GameEvent.UseSkillCard, this.onUseSkillCard, this);
|
||||
oops.message.on(GameEvent.UseItemCard, this.onUseSkillCard, this);
|
||||
oops.message.on(GameEvent.UseItemCard, this.onUseItemCard, this);
|
||||
oops.message.on(GameEvent.RemoveSkillBox, this.onRemoveSkillBox, this);
|
||||
}
|
||||
|
||||
@@ -82,7 +84,7 @@ export class MissSkillsComp extends CCComp {
|
||||
onDestroy() {
|
||||
super.onDestroy();
|
||||
oops.message.off(GameEvent.UseSkillCard, this.onUseSkillCard, this);
|
||||
oops.message.off(GameEvent.UseItemCard, this.onUseSkillCard, this);
|
||||
oops.message.off(GameEvent.UseItemCard, this.onUseItemCard, this);
|
||||
oops.message.off(GameEvent.RemoveSkillBox, this.onRemoveSkillBox, this);
|
||||
}
|
||||
|
||||
@@ -149,6 +151,42 @@ export class MissSkillsComp extends CCComp {
|
||||
this.addSkill(skillUuid, card_lv, payload?.overrides);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理药水卡使用事件:直接对全队存活英雄施加计时 buff,不经过 SBox 施法流程。
|
||||
*
|
||||
* 设计:
|
||||
* 药水是"即时全队强化",无需节点、动画、槽位;
|
||||
* 从技能配置取 timed_buff_id,遍历 heroGrid 对每个存活英雄 applyBuff,
|
||||
* buff_value 覆写值透传到 ActiveBuff.value_override。
|
||||
*
|
||||
* @param event 事件名
|
||||
* @param args 卡牌数据(含 skill、overrides)
|
||||
*/
|
||||
private onUseItemCard(event: string, args: any) {
|
||||
const payload = args ?? event;
|
||||
const skillId = Number(payload?.skill ?? 0);
|
||||
const config = SkillSet[skillId];
|
||||
if (!config) {
|
||||
mLogger.warn(this.debugMode, "MissSkillsComp", `potion skill ${skillId} config not found`);
|
||||
return;
|
||||
}
|
||||
const buffId = config.timed_buff_id;
|
||||
if (buffId === undefined) {
|
||||
mLogger.warn(this.debugMode, "MissSkillsComp", `potion skill ${skillId} has no timed_buff_id`);
|
||||
return;
|
||||
}
|
||||
const buffValue = payload?.overrides?.buff_value;
|
||||
let applied = 0;
|
||||
for (const eid of smc.mission.heroGrid) {
|
||||
if (eid <= 0) continue;
|
||||
const entity = ecs.getEntityByEid(eid);
|
||||
if (!entity) continue;
|
||||
buffManager.applyBuff(entity, buffId, 0, 0, buffValue !== undefined ? { value: buffValue } : undefined);
|
||||
applied++;
|
||||
}
|
||||
mLogger.log(this.debugMode, "MissSkillsComp", `potion applied: skill=${skillId} buff=${buffId} value=${buffValue} heroes=${applied}`);
|
||||
}
|
||||
|
||||
start() {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user