1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { LevelMgr } from "../../levelMgr";
- import { Utils } from "../common/utils";
- import { GameSysLogic } from "../update/gameSysLogic";
- enum ENestConditionState {
- none,
- start,
- done,
- }
- export class NestCondition extends GameSysLogic {
- time: number = 0;
- num: number;
- call: Function = null;
- state: ENestConditionState = ENestConditionState.none;
- name: string;
- _str:string;
- fill(str: string = '[4;5]'){
- str = Utils.strReplaceSeparator(str);
- let obj = JSON.parse(str);
- // console.log(obj);
- this.time = obj[0];
- this.num = obj[1];
- this._str = str;
- console.log(this.name,`[${this._str}]`,'create');
- }
- start(){
- this.state = ENestConditionState.start;
- console.log(this.name,`[${this._str}]`,'start');
- }
- isDone(){
- return this.state == ENestConditionState.done;
- }
- gameUpdate(dt){
- if(this.state != ENestConditionState.start) return;
- this.time -= dt;
- if(this.time <= 0 && LevelMgr.inst.getMonsterCnt() <= this.num) {
- console.log(this.name,`[${this._str}]`,'done');
- this.state = ENestConditionState.done;
- this.call && this.call();
- }
- }
- }
|