战斗系统 重构继续

This commit is contained in:
2025-10-30 10:39:46 +08:00
parent a79cb9f35d
commit 2d358e450d
23 changed files with 515 additions and 911 deletions

View File

@@ -2,7 +2,7 @@ import { instantiate, Node, Prefab, Vec3 ,v3,resources,SpriteFrame,Sprite,Sprite
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { smc } from "../common/SingletonModuleComp";
import { HeroModelComp } from "./HeroModelComp";
import { HeroAttrsComp } from "./HeroAttrsComp";
import { HeroViewComp } from "./HeroViewComp";
import { BoxSet, FacSet } from "../common/config/BoxSet";
import { HeroInfo, HeroPos, HType } from "../common/config/heroSet";
@@ -17,13 +17,13 @@ import { EBusComp } from "./EBusComp";
@ecs.register(`Hero`)
export class Hero extends ecs.Entity {
HeroModel!: HeroModelComp;
HeroModel!: HeroAttrsComp;
View!: HeroViewComp;
BattleMove!: BattleMoveComp;
protected init() {
this.addComponents<ecs.Comp>(
BattleMoveComp,
HeroModelComp,
HeroAttrsComp,
TalComp,
EBusComp,
);
@@ -31,7 +31,7 @@ export class Hero extends ecs.Entity {
destroy(): void {
this.remove(HeroViewComp);
this.remove(HeroModelComp);
this.remove(HeroAttrsComp);
this.remove(TalComp);
this.remove(EBusComp);
super.destroy();
@@ -53,7 +53,7 @@ export class Hero extends ecs.Entity {
node.setPosition(pos)
// console.log("hero load",pos)
var hv = node.getComponent(HeroViewComp)!;
const model = this.get(HeroModelComp);
const model = this.get(HeroAttrsComp);
let hero = HeroInfo[uuid]; // 共用英雄数据
// 设置 View 层属性(表现相关)
@@ -127,16 +127,16 @@ export class HeroLifecycleSystem extends ecs.ComblockSystem
implements ecs.IEntityEnterSystem, ecs.IEntityRemoveSystem {
filter() {
return ecs.allOf(HeroModelComp);
return ecs.allOf(HeroAttrsComp);
}
entityEnter(e: ecs.Entity): void {
// 英雄实体创建时的特殊处理
console.log(`英雄进入世界: ${e.get(HeroModelComp).hero_name}`);
console.log(`英雄进入世界: ${e.get(HeroAttrsComp).hero_name}`);
}
entityRemove(e: ecs.Entity): void {
// 英雄实体销毁时的清理工作
console.log(`英雄离开世界: ${e.get(HeroModelComp).hero_name}`);
console.log(`英雄离开世界: ${e.get(HeroAttrsComp).hero_name}`);
}
}