2025-05-19 19:51:17 +08:00
|
|
|
import { respath } from "../constants/respath";
|
|
|
|
|
import { config } from "../constants/config";
|
2025-05-14 12:17:47 +08:00
|
|
|
import { UIManager } from "../models/UIManager";
|
2025-05-19 19:51:17 +08:00
|
|
|
import { StorageManager } from "../models/StorageManager";
|
|
|
|
|
import { LevelManager } from "../models/LevelManager";
|
2025-05-19 20:58:15 +08:00
|
|
|
import { EventManager, EVENT_TYPES } from "../models/EventManager";
|
2025-05-19 19:51:17 +08:00
|
|
|
import { Difficulty } from "./Difficulty";
|
2025-05-14 12:17:47 +08:00
|
|
|
|
|
|
|
|
const { regClass, property } = Laya;
|
|
|
|
|
|
|
|
|
|
@regClass()
|
|
|
|
|
export class GameOver extends Laya.Script {
|
|
|
|
|
declare owner : Laya.Box;
|
|
|
|
|
|
|
|
|
|
|
2025-05-19 20:58:15 +08:00
|
|
|
@property(Laya.Sprite)
|
|
|
|
|
public btn_second: Laya.Sprite
|
2025-05-14 12:17:47 +08:00
|
|
|
|
2025-05-19 20:58:15 +08:00
|
|
|
@property(Laya.Sprite)
|
|
|
|
|
public btn_restart: Laya.Sprite
|
|
|
|
|
|
|
|
|
|
@property(Laya.Sprite)
|
2025-05-20 17:41:43 +08:00
|
|
|
public btn_newOrClose: Laya.Sprite
|
|
|
|
|
@property(Laya.Label)
|
|
|
|
|
public label_newOrClose: Laya.Label
|
2025-05-14 12:17:47 +08:00
|
|
|
|
|
|
|
|
//组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次
|
|
|
|
|
onAwake(): void {
|
2025-05-19 20:58:15 +08:00
|
|
|
|
|
|
|
|
this.btn_second.on(Laya.Event.CLICK, this, (evt: Laya.Event) => {
|
2025-05-20 17:41:43 +08:00
|
|
|
var doStage = StorageManager.getInstance().getStage()
|
2025-05-19 20:58:15 +08:00
|
|
|
doStage.set_mistake(doStage.get_mistake()-1)
|
2025-05-20 17:41:43 +08:00
|
|
|
EventManager.getInstance().DispatchEvent(EVENT_TYPES.NOT_UPDATE_MISTAKE)
|
2025-05-19 20:58:15 +08:00
|
|
|
this.owner.destroy()
|
|
|
|
|
})
|
|
|
|
|
|
2025-05-14 12:17:47 +08:00
|
|
|
this.btn_restart.on(Laya.Event.CLICK, this, (evt: Laya.Event) => {
|
2025-05-20 17:41:43 +08:00
|
|
|
var doStage = StorageManager.getInstance().getStage()
|
|
|
|
|
var stageID = doStage.get_stageID()
|
|
|
|
|
var type = doStage.get_stageType()
|
2025-05-19 19:51:17 +08:00
|
|
|
var difficulty = doStage.get_difficulty()
|
2025-05-20 17:41:43 +08:00
|
|
|
StorageManager.getInstance().cleanStage()
|
2025-05-22 19:12:00 +08:00
|
|
|
StorageManager.getInstance().newStage(stageID, type, difficulty, difficulty)
|
2025-05-20 17:41:43 +08:00
|
|
|
UIManager.getInstance().loadStageUI(stageID);
|
2025-05-19 19:51:17 +08:00
|
|
|
this.owner.destroy()
|
2025-05-14 12:17:47 +08:00
|
|
|
})
|
|
|
|
|
|
2025-05-20 17:41:43 +08:00
|
|
|
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()
|
2025-05-22 19:12:00 +08:00
|
|
|
StorageManager.getInstance().newStage(config.DEFAULT_STAGE_ID, config.STAGE_TYPE.MAIN, value, value)
|
2025-05-20 17:41:43 +08:00
|
|
|
UIManager.getInstance().loadStageUI(config.DEFAULT_STAGE_ID);
|
|
|
|
|
this.owner.destroy()
|
|
|
|
|
})
|
2025-05-19 19:51:17 +08:00
|
|
|
})
|
|
|
|
|
})
|
2025-05-20 17:41:43 +08:00
|
|
|
}
|
|
|
|
|
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()
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-05-14 12:17:47 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|