155 lines
5.2 KiB
TypeScript
155 lines
5.2 KiB
TypeScript
import { config } from "../constants/config"
|
|
import { respath } from "../constants/respath"
|
|
import { G_getMonthInfo } from "../models/DCManager"
|
|
import { StorageManager } from "../models/StorageManager"
|
|
import { UIManager } from "../models/UIManager"
|
|
import { Utility_ConvertSecondToString } from "../utils/utility"
|
|
import { Difficulty } from "./Difficulty"
|
|
|
|
const { regClass, property } = Laya
|
|
|
|
@regClass()
|
|
export class Home extends Laya.Script {
|
|
declare owner: Laya.Box
|
|
|
|
@property(Laya.Image)
|
|
public bg_dc: Laya.Image
|
|
|
|
@property(Laya.Image)
|
|
public icon_dc: Laya.Image
|
|
|
|
@property(Laya.Label)
|
|
public label_dc_title: Laya.Label
|
|
|
|
@property(Laya.Label)
|
|
public label_dc_date: 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
|
|
|
|
@property(Laya.Box)
|
|
public btn_new_blue: Laya.Box
|
|
|
|
@property(Laya.Box)
|
|
public btn_go: Laya.Box
|
|
|
|
@property(Laya.Box)
|
|
public btn_new_white: Laya.Box
|
|
|
|
// 组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次
|
|
onAwake(): void {
|
|
const user = StorageManager.getInstance().getUser()
|
|
const now = new Date()
|
|
const nowYear = now.getFullYear()
|
|
const nowMonth = now.getMonth() + 1
|
|
const nowDay = now.getDate()
|
|
const find = G_getMonthInfo(nowYear, nowMonth)
|
|
if (find) {
|
|
this.icon_dc.skin = find.icon_res
|
|
if (user.get_doneCountByDate(nowYear, nowMonth) >= find.dayCount) {
|
|
this.bg_dc.skin = respath.home_top_dc_bg_finish
|
|
this.label_dc_title.color = "#ffffff"
|
|
this.label_dc_date.color = "#ffffff"
|
|
} else {
|
|
this.bg_dc.skin = respath.home_top_dc_bg_normal
|
|
this.label_dc_title.color = "#2d3138"
|
|
this.label_dc_date.color = "#2d3138"
|
|
}
|
|
} else {
|
|
this.bg_dc.skin = respath.home_top_dc_bg_normal
|
|
this.label_dc_title.color = "#2d3138"
|
|
this.label_dc_date.color = "#2d3138"
|
|
}
|
|
|
|
const stageID = `${nowYear}-${nowMonth}-${nowDay}`
|
|
this.label_dc_date.text = `${config.MONTH_ABBRS[nowMonth - 1]} ${nowDay}`
|
|
|
|
const 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
|
|
const stageName = `${config.MONTH_ABBRS[nowMonth - 1]} ${nowDay}`
|
|
StorageManager.getInstance().newStage(stageID, config.STAGE_TYPE.DC, stageName)
|
|
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()
|
|
})
|
|
}
|
|
|
|
this.btn_new_blue.on(Laya.Event.CLICK, this, this.onClickNew)
|
|
this.btn_new_white.on(Laya.Event.CLICK, this, this.onClickNew)
|
|
this.btn_go.on(Laya.Event.CLICK, this, () => {
|
|
UIManager.getInstance().loadStageUI(config.DEFAULT_STAGE_ID)
|
|
this.owner.destroy()
|
|
})
|
|
|
|
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 {
|
|
const doStage = StorageManager.getInstance().getStage(config.DEFAULT_STAGE_ID)
|
|
if (doStage) {
|
|
console.log("当前主线关卡进行中 mistake=", doStage.get_mistake())
|
|
if (doStage.get_mistake() >= config.MISTAKE_MAX) {
|
|
this.btn_new_blue.visible = true
|
|
this.btn_new_white.visible = false
|
|
this.btn_go.visible = false
|
|
} else {
|
|
this.btn_new_blue.visible = false
|
|
this.btn_new_white.visible = true
|
|
this.btn_go.visible = true
|
|
|
|
const label_time = this.btn_go.getChildByName("time").getChildByName("label_time") as Laya.Label
|
|
const duration = doStage.get_duration()
|
|
const 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
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public onClickNew(_evt: Laya.Event): void {
|
|
Laya.loader.load(respath.difficulty_ui_res).then((go) => {
|
|
const prefab = go.create()
|
|
const 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()
|
|
})
|
|
})
|
|
}
|
|
}
|