战斗管理系统基础
This commit is contained in:
@@ -1,24 +1,37 @@
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { BattleState } from "./BattleStateComp";
|
||||
import { BattleStateComp } from "./BattleStateComp";
|
||||
import { DamageResult } from "../damage/DamageComp";
|
||||
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(BattleState);
|
||||
|
||||
return ecs.allOf(BattleStateComp);
|
||||
}
|
||||
|
||||
update(e: ecs.Entity) {
|
||||
const state = e.get(BattleState);
|
||||
const state = e.get(BattleStateComp);
|
||||
if (state.isEnded) {
|
||||
// 清理所有残留伤害组件
|
||||
ecs.query(ecs.allOf(DamageResult)).forEach(entity => {
|
||||
entity.remove(DamageResult);
|
||||
});
|
||||
// 清理战斗残留组件
|
||||
this.cleanComponents();
|
||||
|
||||
// 重置战斗状态
|
||||
state.isEnded = false;
|
||||
// 重置状态
|
||||
state.reset();
|
||||
console.log(`战斗结束,持续时间: ${Date.now() - state.startTime}ms`);
|
||||
}
|
||||
}
|
||||
|
||||
private cleanComponents() {
|
||||
console.log("cleanComponents");
|
||||
console.log("DamageResult",ecs.query(ecs.allOf(DamageResult)));
|
||||
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(DamageResult)).forEach(entity => entity.remove(DamageResult));
|
||||
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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user