feat(英雄): 为主角添加天赋组件支持

只有主角角色会初始化天赋组件,用于管理角色的天赋系统
This commit is contained in:
panw
2026-01-04 16:42:02 +08:00
parent 497d1f18d8
commit 7309f98b51

View File

@@ -12,6 +12,7 @@ import { time } from "console";
import { getNeAttrs, getAttrs ,Attrs} from "../common/config/HeroAttrs"; import { getNeAttrs, getAttrs ,Attrs} from "../common/config/HeroAttrs";
import { HeroSkillsComp } from "./HeroSkills"; import { HeroSkillsComp } from "./HeroSkills";
import { HeroMoveComp } from "./HeroMove"; import { HeroMoveComp } from "./HeroMove";
import { TalComp } from "./TalComp";
/** 角色实体 */ /** 角色实体 */
@ecs.register(`Hero`) @ecs.register(`Hero`)
@@ -20,6 +21,7 @@ export class Hero extends ecs.Entity {
HeroSkills!: HeroSkillsComp; HeroSkills!: HeroSkillsComp;
View!: HeroViewComp; View!: HeroViewComp;
HeroMove!: HeroMoveComp; HeroMove!: HeroMoveComp;
TalComp!: TalComp;
protected init() { protected init() {
this.addComponents<ecs.Comp>( this.addComponents<ecs.Comp>(
HeroMoveComp, HeroMoveComp,
@@ -38,6 +40,7 @@ export class Hero extends ecs.Entity {
this.remove(HeroViewComp); this.remove(HeroViewComp);
this.remove(HeroAttrsComp); this.remove(HeroAttrsComp);
this.remove(HeroSkillsComp); this.remove(HeroSkillsComp);
this.remove(TalComp);
super.destroy(); super.destroy();
} }
@@ -80,6 +83,15 @@ export class Hero extends ecs.Entity {
model.fac = FacSet.HERO; model.fac = FacSet.HERO;
model.is_master = is_master; model.is_master = is_master;
// 只有主角才挂载天赋组件
if (is_master) {
this.add(TalComp);
const talComp = this.get(TalComp);
if (talComp) {
talComp.init(uuid);
}
}
// ✅ 初始化技能数据(迁移到 HeroSkillsComp // ✅ 初始化技能数据(迁移到 HeroSkillsComp
skillsComp.initSkills(hero.skills, uuid, this); skillsComp.initSkills(hero.skills, uuid, this);