import { respath } from "../constants/respath"; import { config } from "../constants/config"; import { UIManager } from "../models/UIManager"; import { StorageManager } from "../models/StorageManager"; import { LevelManager } from "../models/LevelManager"; import { EventManager, EVENT_TYPES } from "../models/EventManager"; import { Difficulty } from "./Difficulty"; const { regClass, property } = Laya; @regClass() export class GameOver extends Laya.Script { declare owner : Laya.Box; @property(Laya.Sprite) public btn_second: Laya.Sprite @property(Laya.Sprite) public btn_restart: Laya.Sprite @property(Laya.Sprite) public btn_newOrClose: Laya.Sprite @property(Laya.Label) public label_newOrClose: Laya.Label //组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次 onAwake(): void { this.btn_second.on(Laya.Event.CLICK, this, (evt: Laya.Event) => { var doStage = StorageManager.getInstance().getStage() doStage.set_mistake(doStage.get_mistake()-1) EventManager.getInstance().DispatchEvent(EVENT_TYPES.NOT_UPDATE_MISTAKE) this.owner.destroy() }) this.btn_restart.on(Laya.Event.CLICK, this, (evt: Laya.Event) => { var doStage = StorageManager.getInstance().getStage() var stageID = doStage.get_stageID() var type = doStage.get_stageType() var difficulty = doStage.get_difficulty() StorageManager.getInstance().cleanStage() var user = StorageManager.getInstance().getUser() StorageManager.getInstance().newStage(stageID, type, difficulty, difficulty, user.get_progress(difficulty)) UIManager.getInstance().loadStageUI(stageID); this.owner.destroy() }) var doStage = StorageManager.getInstance().getStage() var type = doStage.get_stageType() if (type == config.STAGE_TYPE.MAIN) { this.label_newOrClose.text = "New Game" this.btn_newOrClose.on(Laya.Event.CLICK, this, (evt: Laya.Event) => { Laya.loader.load(respath.difficulty_ui_res).then((go)=>{ var prefab = go.create() var d = UIManager.getInstance().getUIRoot().addChild(prefab).getComponent(Difficulty) d.onInit((value: string)=> { console.log("选择难度", value) StorageManager.getInstance().cleanStage() var user = StorageManager.getInstance().getUser() var index = user.get_progress(value) var levelStr = LevelManager.getInstance().getLevelStr(value, index) if (!levelStr || levelStr.length <= 0) {//说明当前难度已经打通了,所以给他从头开始 user.update_progress(value, 0) } StorageManager.getInstance().newStage(config.DEFAULT_STAGE_ID, config.STAGE_TYPE.MAIN, value, value, user.get_progress(value)) UIManager.getInstance().loadStageUI(config.DEFAULT_STAGE_ID); this.owner.destroy() }) }) }) } else { this.label_newOrClose.text = "Close" this.btn_newOrClose.on(Laya.Event.CLICK, this, (evt: Laya.Event) => { UIManager.getInstance().loadDCUI() UIManager.getInstance().closeStageUI(); this.owner.destroy() }) } } }