rp_10012/assets/Game/SlotRanking/scripts/SlotRankingDataManager.ts
TJH f1d53bda11
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 46s
龙虎榜修改
2025-12-26 14:12:21 +08:00

96 lines
2.6 KiB
TypeScript

export class SlotRankingDataManager {
static _instance: SlotRankingDataManager = null;
static get instance(): SlotRankingDataManager {
if (!this._instance) {
this._instance = new SlotRankingDataManager();
}
return this._instance;
}
_rankList: any = null;
set rankList(list: any) { this._rankList = list; }
get rankList(): any { return this._rankList; }
getCurTimeIsBiggerThanRankMaxCloseTime(): boolean {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
// 代表当前没有活动开启,则说明关闭入口按钮
return false;
}
let maxCloseTime = 0;
for (let item of this._rankList.List) {
if (item.CloseTime > maxCloseTime) {
maxCloseTime = item.CloseTime;
}
}
return Date.now() <= (maxCloseTime * 1000);
}
getRankListStatus(): number {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return 2;
}
let hasEnabled = false; // 是否有启用的
let hasMaintenance = false; // 是否有维护的
for (let item of this._rankList.List) {
if (item.Status === 0) {
hasEnabled = true;
break;
} else if (item.Status === 1) {
hasMaintenance = true;
}
}
if (hasEnabled) {
return 0;
}
if (hasMaintenance) {
return 1;
}
return 2;
}
getRankListServerId(): string | null {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return null;
}
let id = this._rankList.List[0].Id;
if (!id) {
return null;
}
let parts = id.split('_');
if (parts.length >= 3) {
return parts[2];
}
return null;
}
getRankEndTimeByType(type: string): number | null {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return null;
}
let item = this._rankList.List.find((item: any) => item.Type === type);
return item ? item.EndTime : null;
}
getRankInfoByType(type: string): any | null {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return null;
}
let item = this._rankList.List.find((item: any) => item.Type === type);
return item || null;
}
}