refactor(技能系统): 移除事件通信,直接调用方法添加技能
- 删除 HeroSkillsComp 中监听 GameEvent.UseSkillCard 的代码 - 在 MissionCardComp 中直接调用 HeroSkillsComp.addSkill() 方法 - 简化组件间通信方式,避免不必要的事件派发
This commit is contained in:
@@ -45,20 +45,11 @@ export class HeroSkillsComp extends ecs.Comp {
|
||||
ai_timer: number = 0;
|
||||
|
||||
onLoad() {
|
||||
oops.message.on(GameEvent.UseSkillCard, this.onUseSkillCard, this);
|
||||
|
||||
}
|
||||
|
||||
onDestroy() {
|
||||
oops.message.off(GameEvent.UseSkillCard, this.onUseSkillCard, this);
|
||||
}
|
||||
|
||||
private onUseSkillCard(event: string, args: any) {
|
||||
const attrsComp = this.ent.get(HeroAttrsComp);
|
||||
if (!attrsComp || !attrsComp.is_master) return;
|
||||
|
||||
const s_uuid = args as number;
|
||||
console.log(`[HeroSkills] 收到技能选择事件,添加技能 ID: ${s_uuid}`);
|
||||
this.addSkill(s_uuid, HSSet.skill);
|
||||
|
||||
}
|
||||
|
||||
// ==================== 辅助方法 ====================
|
||||
@@ -280,7 +271,6 @@ export class HeroSkillsComp extends ecs.Comp {
|
||||
}
|
||||
|
||||
reset() {
|
||||
oops.message.off(GameEvent.UseSkillCard, this.onUseSkillCard, this);
|
||||
this.skills = {};
|
||||
}
|
||||
setMaxAuto(on: boolean) {
|
||||
|
||||
Reference in New Issue
Block a user