2025-05-15 21:36:03 +08:00
|
|
|
|
2025-05-09 19:10:40 +08:00
|
|
|
import { UIManager } from "../models/UIManager";
|
2025-05-15 21:36:03 +08:00
|
|
|
import { StorageManager } from "../models/StorageManager";
|
2025-05-19 19:51:17 +08:00
|
|
|
import { respath } from "../constants/respath";
|
|
|
|
|
import { Difficulty } from "./Difficulty";
|
|
|
|
|
import { LevelManager } from "../models/LevelManager";
|
|
|
|
|
import { config } from "../constants/config";
|
|
|
|
|
import { Utility_ConvertSecondToString } from "../utils/utility";
|
2025-05-09 19:10:40 +08:00
|
|
|
|
|
|
|
|
const { regClass, property } = Laya
|
|
|
|
|
|
|
|
|
|
@regClass()
|
|
|
|
|
export class Home extends Laya.Script {
|
|
|
|
|
declare owner : Laya.Box;
|
|
|
|
|
|
2025-05-20 18:27:32 +08:00
|
|
|
@property(Laya.Image)
|
|
|
|
|
public bg_dc: Laya.Image;
|
2025-05-20 17:41:43 +08:00
|
|
|
@property(Laya.Label)
|
|
|
|
|
public label_dc_title: Laya.Label;
|
|
|
|
|
@property(Laya.Sprite)
|
|
|
|
|
public btn_play: Laya.Sprite;
|
|
|
|
|
@property(Laya.Sprite)
|
|
|
|
|
public btn_continue: Laya.Sprite;
|
|
|
|
|
@property(Laya.Sprite)
|
|
|
|
|
public btn_more: Laya.Sprite;
|
|
|
|
|
|
2025-05-16 15:30:43 +08:00
|
|
|
@property(Laya.Box)
|
2025-05-19 19:51:17 +08:00
|
|
|
public btn_new_blue: Laya.Box;
|
|
|
|
|
@property(Laya.Box)
|
2025-05-20 17:41:43 +08:00
|
|
|
public btn_go: Laya.Box;
|
2025-05-19 19:51:17 +08:00
|
|
|
@property(Laya.Box)
|
|
|
|
|
public btn_new_white: Laya.Box;
|
2025-05-09 19:10:40 +08:00
|
|
|
|
2025-05-16 15:52:18 +08:00
|
|
|
@property(Laya.Box)
|
|
|
|
|
public btn_clean: Laya.Box;
|
2025-05-13 20:31:44 +08:00
|
|
|
|
2025-05-09 19:10:40 +08:00
|
|
|
//组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次
|
|
|
|
|
onAwake(): void {
|
2025-05-20 17:41:43 +08:00
|
|
|
var user = StorageManager.getInstance().getUser()
|
|
|
|
|
var now = new Date()
|
|
|
|
|
var year = now.getFullYear()
|
|
|
|
|
var month = now.getMonth() + 1
|
|
|
|
|
var dayNow = new Date().getDate()
|
|
|
|
|
var stageID = `${year}-${month}-${dayNow}`
|
2025-05-20 18:27:32 +08:00
|
|
|
|
|
|
|
|
if (user.get_doneCountBydate(year, month) >= 31)
|
|
|
|
|
this.bg_dc.skin = respath.home_top_dc_bg_finish
|
|
|
|
|
else
|
|
|
|
|
this.bg_dc.skin = respath.home_top_dc_bg_normal
|
|
|
|
|
this.label_dc_title.text = `${config.MONTH_ABBRS[month-1]} ${dayNow}`
|
|
|
|
|
|
2025-05-20 17:41:43 +08:00
|
|
|
var progress = user.get_done(stageID)
|
|
|
|
|
if (progress <= 0) {
|
|
|
|
|
this.btn_play.visible = true
|
|
|
|
|
this.btn_continue.visible = false
|
|
|
|
|
this.btn_more.visible = false
|
|
|
|
|
this.btn_play.on(Laya.Event.CLICK, this, ()=>{//Play
|
|
|
|
|
var random = Math.random()
|
|
|
|
|
var value = config.DIFFICULTY_LIST[Math.floor(random*config.DIFFICULTY_LIST.length)]
|
|
|
|
|
var list = LevelManager.getInstance().getLevelList(value)
|
|
|
|
|
random = Math.random()
|
|
|
|
|
var index = Math.floor(random*list.length)
|
|
|
|
|
var stageName = `${config.MONTH_ABBRS[month-1]} ${dayNow}`
|
|
|
|
|
console.log("随机一个关卡", value, index)
|
|
|
|
|
StorageManager.getInstance().newStage(stageID, config.STAGE_TYPE.DC, stageName, value, index)
|
|
|
|
|
UIManager.getInstance().loadStageUI(stageID);
|
|
|
|
|
this.owner.destroy()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
else if (progress >= 1) {
|
|
|
|
|
this.btn_play.visible = false
|
|
|
|
|
this.btn_continue.visible = false
|
|
|
|
|
this.btn_more.visible = true
|
|
|
|
|
this.btn_more.on(Laya.Event.CLICK, this, ()=>{//更多
|
|
|
|
|
UIManager.getInstance().loadDCUI();
|
|
|
|
|
this.owner.destroy()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
this.btn_play.visible = false
|
|
|
|
|
this.btn_continue.visible = true
|
|
|
|
|
this.btn_more.visible = false
|
|
|
|
|
this.btn_continue.on(Laya.Event.CLICK, this, ()=>{//继续
|
|
|
|
|
UIManager.getInstance().loadStageUI(stageID);
|
|
|
|
|
this.owner.destroy()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-05-19 19:51:17 +08:00
|
|
|
this.btn_new_blue.on(Laya.Event.CLICK, this, this.onClickNew)
|
|
|
|
|
this.btn_new_white.on(Laya.Event.CLICK, this, this.onClickNew)
|
2025-05-20 17:41:43 +08:00
|
|
|
this.btn_go.on(Laya.Event.CLICK, this, (evt: Laya.Event)=>{
|
2025-05-19 19:51:17 +08:00
|
|
|
UIManager.getInstance().loadStageUI(config.DEFAULT_STAGE_ID);
|
2025-05-12 22:06:04 +08:00
|
|
|
this.owner.destroy()
|
2025-05-09 19:10:40 +08:00
|
|
|
})
|
2025-05-19 19:51:17 +08:00
|
|
|
var user = StorageManager.getInstance().getUser()
|
2025-05-20 17:41:43 +08:00
|
|
|
if (user.get_done(config.DEFAULT_STAGE_ID) >= 1) {
|
|
|
|
|
console.log("当前主线关卡完成")
|
|
|
|
|
this.btn_new_blue.visible = true
|
|
|
|
|
this.btn_new_white.visible = false
|
|
|
|
|
this.btn_go.visible = false
|
|
|
|
|
}
|
|
|
|
|
else {
|
2025-05-19 19:51:17 +08:00
|
|
|
var doStage = StorageManager.getInstance().loadStage(config.DEFAULT_STAGE_ID)
|
2025-05-20 17:41:43 +08:00
|
|
|
if (doStage) {
|
|
|
|
|
console.log("当前主线关卡进行中")
|
|
|
|
|
var label_time = this.btn_go.getChildByName("time").getChildByName("label_time") as Laya.Label
|
|
|
|
|
var duration = doStage.get_duration()
|
|
|
|
|
var timeStr = Utility_ConvertSecondToString(duration)
|
|
|
|
|
label_time.text = `${timeStr} - ${doStage.get_difficulty()}`
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
console.log("当前主线关卡未开始")
|
|
|
|
|
this.btn_new_blue.visible = true
|
|
|
|
|
this.btn_new_white.visible = false
|
|
|
|
|
this.btn_go.visible = false
|
|
|
|
|
}
|
2025-05-19 19:51:17 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//测试逻辑
|
2025-05-13 20:31:44 +08:00
|
|
|
this.btn_clean.on(Laya.Event.CLICK, this, (evt: Laya.Event) => {
|
|
|
|
|
console.log("btn_clean=", evt);
|
2025-05-19 19:51:17 +08:00
|
|
|
StorageManager.getInstance().cleanAll()
|
|
|
|
|
})
|
|
|
|
|
this.btn_clean.visible = config.DEBUG
|
|
|
|
|
//======
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public onClickNew(evt: Laya.Event): void {
|
|
|
|
|
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)
|
2025-05-20 17:41:43 +08:00
|
|
|
StorageManager.getInstance().cleanMainStage()
|
2025-05-19 19:51:17 +08:00
|
|
|
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()
|
|
|
|
|
})
|
2025-05-13 20:31:44 +08:00
|
|
|
})
|
|
|
|
|
}
|
2025-05-09 19:10:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|