动态配置dc日历

This commit is contained in:
2025-05-29 20:08:37 +08:00
parent 7eccab8794
commit 699a210062
2 changed files with 74 additions and 25 deletions

View File

@@ -1,5 +1,6 @@
import { config } from "./constants/config" import { config } from "./constants/config"
import { respath } from "./constants/respath" import { respath } from "./constants/respath"
import { DCManager } from "./models/DCManager"
import { LevelManager } from "./models/LevelManager" import { LevelManager } from "./models/LevelManager"
import { StorageManager } from "./models/StorageManager" import { StorageManager } from "./models/StorageManager"
@@ -13,6 +14,7 @@ export class Main extends Laya.Script {
onAwake() { onAwake() {
console.log("Game onAwake") console.log("Game onAwake")
config.DEBUG = this.debug config.DEBUG = this.debug
DCManager.getInstance().init()
LevelManager.getInstance().init() LevelManager.getInstance().init()
StorageManager.getInstance().init() StorageManager.getInstance().init()

View File

@@ -1,33 +1,33 @@
import { respath } from "../constants/respath" import { respath } from "../constants/respath"
export const MONTH_LIST = [ export const MONTH_LIST = [
{ year: 2024, month: 12, begin: 0, dayCount: 31, icon_res: respath.trophy_12 }, { year: 2024, month: 12, begin: 0, dayCount: 31, icon_res: respath.trophy_12 }
{ year: 2025, month: 1, begin: 3, dayCount: 31, icon_res: respath.trophy_01 }, // { year: 2025, month: 1, begin: 3, dayCount: 31, icon_res: respath.trophy_01 },
{ year: 2025, month: 2, begin: 6, dayCount: 30, icon_res: respath.trophy_02 }, // { year: 2025, month: 2, begin: 6, dayCount: 30, icon_res: respath.trophy_02 },
{ year: 2025, month: 3, begin: 6, dayCount: 31, icon_res: respath.trophy_03 }, // { year: 2025, month: 3, begin: 6, dayCount: 31, icon_res: respath.trophy_03 },
{ year: 2025, month: 4, begin: 2, dayCount: 30, icon_res: respath.trophy_04 }, // { year: 2025, month: 4, begin: 2, dayCount: 30, icon_res: respath.trophy_04 },
{ year: 2025, month: 5, begin: 4, dayCount: 31, icon_res: respath.trophy_05 }, // { year: 2025, month: 5, begin: 4, dayCount: 31, icon_res: respath.trophy_05 },
{ year: 2025, month: 6, begin: 0, dayCount: 30, icon_res: respath.trophy_06 }, // { year: 2025, month: 6, begin: 0, dayCount: 30, icon_res: respath.trophy_06 },
{ year: 2025, month: 7, begin: 2, dayCount: 31, icon_res: respath.trophy_07 }, // { year: 2025, month: 7, begin: 2, dayCount: 31, icon_res: respath.trophy_07 },
{ year: 2025, month: 8, begin: 5, dayCount: 31, icon_res: respath.trophy_08 }, // { year: 2025, month: 8, begin: 5, dayCount: 31, icon_res: respath.trophy_08 },
{ year: 2025, month: 9, begin: 1, dayCount: 30, icon_res: respath.trophy_09 }, // { year: 2025, month: 9, begin: 1, dayCount: 30, icon_res: respath.trophy_09 },
{ year: 2025, month: 10, begin: 3, dayCount: 31, icon_res: respath.trophy_10 }, // { year: 2025, month: 10, begin: 3, dayCount: 31, icon_res: respath.trophy_10 },
{ year: 2025, month: 11, begin: 6, dayCount: 30, icon_res: respath.trophy_11 }, // { year: 2025, month: 11, begin: 6, dayCount: 30, icon_res: respath.trophy_11 },
{ year: 2025, month: 12, begin: 1, dayCount: 31, icon_res: respath.trophy_12 }, // { year: 2025, month: 12, begin: 1, dayCount: 31, icon_res: respath.trophy_12 },
{ year: 2026, month: 1, begin: 4, dayCount: 31, icon_res: respath.trophy_01 }, // { year: 2026, month: 1, begin: 4, dayCount: 31, icon_res: respath.trophy_01 },
{ year: 2026, month: 2, begin: 0, dayCount: 30, icon_res: respath.trophy_02 }, // { year: 2026, month: 2, begin: 0, dayCount: 30, icon_res: respath.trophy_02 },
{ year: 2026, month: 3, begin: 0, dayCount: 31, icon_res: respath.trophy_03 }, // { year: 2026, month: 3, begin: 0, dayCount: 31, icon_res: respath.trophy_03 },
{ year: 2026, month: 4, begin: 3, dayCount: 30, icon_res: respath.trophy_04 }, // { year: 2026, month: 4, begin: 3, dayCount: 30, icon_res: respath.trophy_04 },
{ year: 2026, month: 5, begin: 5, dayCount: 31, icon_res: respath.trophy_05 }, // { year: 2026, month: 5, begin: 5, dayCount: 31, icon_res: respath.trophy_05 },
{ year: 2026, month: 6, begin: 1, dayCount: 30, icon_res: respath.trophy_06 }, // { year: 2026, month: 6, begin: 1, dayCount: 30, icon_res: respath.trophy_06 },
{ year: 2026, month: 7, begin: 3, dayCount: 31, icon_res: respath.trophy_07 }, // { year: 2026, month: 7, begin: 3, dayCount: 31, icon_res: respath.trophy_07 },
{ year: 2026, month: 8, begin: 6, dayCount: 31, icon_res: respath.trophy_08 }, // { year: 2026, month: 8, begin: 6, dayCount: 31, icon_res: respath.trophy_08 },
{ year: 2026, month: 9, begin: 2, dayCount: 30, icon_res: respath.trophy_09 }, // { year: 2026, month: 9, begin: 2, dayCount: 30, icon_res: respath.trophy_09 },
{ year: 2026, month: 10, begin: 4, dayCount: 31, icon_res: respath.trophy_10 }, // { year: 2026, month: 10, begin: 4, dayCount: 31, icon_res: respath.trophy_10 },
{ year: 2026, month: 11, begin: 0, dayCount: 30, icon_res: respath.trophy_11 }, // { year: 2026, month: 11, begin: 0, dayCount: 30, icon_res: respath.trophy_11 },
{ year: 2026, month: 12, begin: 2, dayCount: 31, icon_res: respath.trophy_12 } // { year: 2026, month: 12, begin: 2, dayCount: 31, icon_res: respath.trophy_12 }
] ]
export function G_getMonthInfo(year: number, month: number): any { export function G_getMonthInfo(year: number, month: number): any {
@@ -48,4 +48,51 @@ export class DCManager {
} }
return DCManager.instance return DCManager.instance
} }
public init(): void {
const trophys: Array<string> = []
trophys.push(respath.trophy_01)
trophys.push(respath.trophy_02)
trophys.push(respath.trophy_03)
trophys.push(respath.trophy_04)
trophys.push(respath.trophy_05)
trophys.push(respath.trophy_06)
trophys.push(respath.trophy_07)
trophys.push(respath.trophy_08)
trophys.push(respath.trophy_09)
trophys.push(respath.trophy_10)
trophys.push(respath.trophy_11)
trophys.push(respath.trophy_12)
const now = new Date()
const nowYear = now.getFullYear()
const nowMonth = now.getMonth() + 1
let year = nowYear
let month = nowMonth
if (nowMonth === 12) {
year++
month = 1
}
for (let i = 2025; i <= year; i++) {
let b = false
for (let j = 1; j <= 12; j++) {
const date1 = new Date(`${i}/${j}/1`)
let date2 = new Date(`${i}/${j + 1}/1`)
if (j === 12) {
date2 = new Date(`${i + 1}/1/1`)
}
const seconds = date2.getTime() - date1.getTime()
const dayCount = Math.round(seconds / 1000 / 86400)
const begin = date1.getDay()
MONTH_LIST.push({ year: i, month: j, begin, dayCount, icon_res: trophys[j - 1] })
if (i === year && j === month) {
b = true
break
}
}
if (b) {
break
}
}
}
} }