| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
- import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
- import { SingletonModuleComp } from "../../common/SingletonModuleComp";
- import { Checkpoint } from "../Checkpoint";
- import { CheckpointModelLevelComp } from "../model/CheckpointModelLevel";
- import { InitCheckpointComp } from "./InitCheckpoint";
- /**
- * 关卡升级
- */
- @ecs.register('CheckpointUpgrade')
- export class CheckpointUpgradeComp extends ecs.Comp {
- /** 当前等级 */
- lv: number = 0;
- reset() {
- this.lv = 0;
- }
- }
- export class CheckpointUpgradeSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
- filter(): ecs.IMatcher {
- return ecs.allOf(CheckpointUpgradeComp, CheckpointModelLevelComp);
- }
- entityEnter(e: Checkpoint): void {
- let rlm = e.CheckpointModelLevel;
- let ru = e.CheckpointUpgrade;
- if (ru.lv == 0)
- rlm.vm.lv++; // 提升一级
- else
- rlm.vm.lv = ru.lv; // 设置等级
- const rnd = Math.floor(Math.random() * 3)
- // 当前等级配置
- rlm.rtluCurrent.init(rlm.vm.lv);
- if (rlm.rtluCurrent.vehicleType == null) {
- if (rlm.vm.vehicleType == null) { // 没有下一关信息用随机
- rlm.rtluCurrent.vehicleType = rnd
- } else { // 用下一关信息
- rlm.rtluCurrent.vehicleType = rlm.vm.vehicleType
- }
- }
- ecs.getSingleton(SingletonModuleComp).account.AccountModel.lv = rlm.vm.lv
- // 下个关卡配置
- rlm.rtluNext.init(rlm.vm.lv + 1);
- rlm.vm.stationCount = rlm.rtluNext.stationCount;
- rlm.vm.gridRowCount = rlm.rtluNext.gridRowCount;
- rlm.vm.gridColCount = rlm.rtluNext.gridColCount;
- rlm.vm.peopleCount = rlm.rtluNext.peopleCount;
- if (rlm.rtluNext.vehicleType == null) {
- rlm.rtluNext.vehicleType = rnd
- rlm.vm.vehicleType = rnd
- } else {
- rlm.vm.vehicleType = rlm.rtluNext.vehicleType
- }
- e.remove(CheckpointUpgradeComp);
- e.add(InitCheckpointComp)
- }
- }
|