CheckpointUpgrade.ts 1.7 KB

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