CheckpointUpgrade.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  2. import { Checkpoint } from "../Checkpoint";
  3. import { CheckpointModelLevelComp } from "../model/CheckpointModelLevel";
  4. import { InitCheckpointComp } from "./InitCheckpoint";
  5. /**
  6. * 关卡升级
  7. */
  8. @ecs.register('CheckpointUpgrade')
  9. export class CheckpointUpgradeComp extends ecs.Comp {
  10. /** 当前等级 */
  11. lv: number = 0;
  12. reset() {
  13. this.lv = 0;
  14. }
  15. }
  16. export class CheckpointUpgradeSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
  17. filter(): ecs.IMatcher {
  18. return ecs.allOf(CheckpointUpgradeComp, CheckpointModelLevelComp);
  19. }
  20. entityEnter(e: Checkpoint): void {
  21. let rlm = e.CheckpointModelLevel;
  22. let ru = e.CheckpointUpgrade;
  23. if (ru.lv == 0)
  24. rlm.vm.lv++; // 提升一级
  25. else
  26. rlm.vm.lv = ru.lv; // 设置等级
  27. // 当前等级配置
  28. rlm.rtluCurrent.init(rlm.vm.lv);
  29. // 下个关卡配置
  30. rlm.rtluNext.init(rlm.vm.lv + 1);
  31. rlm.vm.stationCount = rlm.rtluNext.stationCount;
  32. rlm.vm.gridCount = rlm.rtluNext.gridCount;
  33. rlm.vm.peopleCount = rlm.rtluNext.peopleCount;
  34. e.remove(CheckpointUpgradeComp);
  35. e.add(InitCheckpointComp)
  36. }
  37. }