Files
heros/assets/script/game/battle/BattleEndSystem.ts
2025-02-03 22:30:38 +08:00

34 lines
1.4 KiB
TypeScript

import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { BattleStateComp } from "./BattleStateComp";
import { HeroViewComp } from "../hero/HeroViewComp";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { HCardComp } from "../map/HCardComp";
@ecs.register('BattleEndSystem')
export class BattleEndSystem extends ecs.ComblockSystem {
filter(): ecs.IMatcher {
return ecs.allOf(BattleStateComp);
}
update(e: ecs.Entity) {
const state = e.get(BattleStateComp);
if (state.isEnded) {
// 清理战斗残留组件
this.cleanComponents();
// 重置状态
state.reset();
console.log(`战斗结束,持续时间: ${Date.now() - state.startTime}ms`);
}
}
private cleanComponents() {
console.log("cleanComponents");
console.log("HCardComp",ecs.query(ecs.allOf(HCardComp)));
console.log("HeroSkillsComp",ecs.query(ecs.allOf(HeroSkillsComp)));
console.log("HeroViewComp",ecs.query(ecs.allOf(HeroViewComp)));
ecs.query(ecs.allOf(HCardComp)).forEach(entity => entity.remove(HCardComp));
ecs.query(ecs.allOf(HeroSkillsComp)).forEach(entity => entity.remove(HeroSkillsComp));
ecs.query(ecs.allOf(HeroViewComp)).forEach(entity => entity.remove(HeroViewComp));
}
}