Files
sudoku/src/views/GameOver.ts

81 lines
3.0 KiB
TypeScript
Raw Normal View History

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";
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-26 19:57:17 +08:00
import { DOStage } from "../models/DOStage";
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-26 19:57:17 +08:00
2025-05-14 12:17:47 +08:00
2025-05-26 19:57:17 +08:00
public onSetStageInfo(doStage: DOStage): void {
2025-05-19 20:58:15 +08:00
this.btn_second.on(Laya.Event.CLICK, this, (evt: Laya.Event) => {
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-26 21:17:05 +08:00
var stageID = doStage.get_stageID()
var type = doStage.get_stageType()
var difficulty = doStage.get_difficulty()
StorageManager.getInstance().newStage(stageID, type, difficulty, difficulty)
UIManager.getInstance().loadStageUI(stageID);
this.owner.destroy()
2025-05-14 12:17:47 +08:00
})
2025-05-20 17:41:43 +08:00
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) => {
2025-05-26 19:57:17 +08:00
if (config.H_SCREEN) {
var user = StorageManager.getInstance().getUser()
user.update_progress(doStage.get_difficulty(), doStage.get_stageIndex()+1)//主线关卡更新难度进度
var difficulty = doStage.get_difficulty()
StorageManager.getInstance().newStage(config.DEFAULT_STAGE_ID, config.STAGE_TYPE.MAIN, difficulty, difficulty)
UIManager.getInstance().loadStageUI(config.DEFAULT_STAGE_ID);
this.owner.destroy()
}
else {
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().newStage(config.DEFAULT_STAGE_ID, config.STAGE_TYPE.MAIN, value, value)
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
2025-05-26 19:57:17 +08:00
}
2025-05-14 12:17:47 +08:00
}