格式化代码
This commit is contained in:
@@ -1,43 +1,38 @@
|
||||
|
||||
|
||||
|
||||
import { respath } from "../constants/respath"
|
||||
|
||||
|
||||
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: 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: 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: 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: 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: 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: 12, begin: 1, dayCount: 31, icon_res: respath.trophy_12},
|
||||
{ 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: 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: 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: 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: 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: 11, begin: 6, dayCount: 30, icon_res: respath.trophy_11 },
|
||||
{ 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: 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: 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: 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: 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: 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: 12, begin: 2, dayCount: 31, icon_res: respath.trophy_12},
|
||||
{ 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: 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: 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: 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: 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: 11, begin: 0, dayCount: 30, icon_res: respath.trophy_11 },
|
||||
{ year: 2026, month: 12, begin: 2, dayCount: 31, icon_res: respath.trophy_12 }
|
||||
]
|
||||
|
||||
|
||||
export function G_getMonthInfo(year: number, month: number): any {
|
||||
for (var i=0; i<MONTH_LIST.length; i++) {
|
||||
var obj = MONTH_LIST[i]
|
||||
for (let i = 0; i < MONTH_LIST.length; i++) {
|
||||
const obj = MONTH_LIST[i]
|
||||
if (obj.year == year && obj.month == month) {
|
||||
return obj
|
||||
}
|
||||
@@ -46,14 +41,11 @@ export function G_getMonthInfo(year: number, month: number): any {
|
||||
}
|
||||
|
||||
export class DCManager {
|
||||
|
||||
private static instance: DCManager
|
||||
public static getInstance(): DCManager {
|
||||
if (!DCManager.instance) {
|
||||
DCManager.instance = new DCManager()
|
||||
}
|
||||
return DCManager.instance
|
||||
private static instance: DCManager
|
||||
public static getInstance(): DCManager {
|
||||
if (!DCManager.instance) {
|
||||
DCManager.instance = new DCManager()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return DCManager.instance
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,81 +1,79 @@
|
||||
|
||||
|
||||
import { DataBlock } from "../types/global";
|
||||
import type { DataBlock } from "../types/global"
|
||||
import { StorageManager } from "./StorageManager"
|
||||
|
||||
export class DOBlock {
|
||||
private data: DataBlock
|
||||
private preset: boolean = false// 预设格子
|
||||
private correct: number = 0
|
||||
private checked: boolean = false// 是否正确
|
||||
|
||||
private data: DataBlock
|
||||
private preset: boolean = false//预设格子
|
||||
private correct: number = 0;
|
||||
private checked: boolean = false//是否正确
|
||||
|
||||
constructor(dataBlock: DataBlock, preset: boolean, correct: number) {
|
||||
this.data = dataBlock
|
||||
this.preset = preset
|
||||
this.correct = correct
|
||||
this.checked = preset || (dataBlock.show == correct)
|
||||
}
|
||||
|
||||
constructor(dataBlock: DataBlock, preset: boolean, correct: number) {
|
||||
this.data = dataBlock
|
||||
this.preset = preset
|
||||
this.correct = correct
|
||||
this.checked = preset || (dataBlock.show == correct)
|
||||
}
|
||||
// ====================================持久化数据
|
||||
public get_index(): number {
|
||||
return this.data.index
|
||||
}
|
||||
|
||||
//====================================持久化数据
|
||||
public get_index(): number {
|
||||
return this.data.index
|
||||
}
|
||||
public get_show(): number {
|
||||
return this.data.show
|
||||
}
|
||||
|
||||
public get_show(): number {
|
||||
return this.data.show
|
||||
}
|
||||
public set_show(show: number): void {
|
||||
this.data.show = show
|
||||
this.checked = show == this.get_correct()
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public set_show(show: number): void {
|
||||
this.data.show = show
|
||||
this.checked = show == this.get_correct()
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_score(): number {
|
||||
return this.data.score
|
||||
}
|
||||
public set_score(score: number): void {
|
||||
this.data.score = score
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_score(): number {
|
||||
return this.data.score
|
||||
}
|
||||
|
||||
public get_notes(): Array<number> {
|
||||
return this.data.notes
|
||||
}
|
||||
public add_note(noteNumber: number): void {
|
||||
if (this.data.notes.indexOf(noteNumber) < 0) {
|
||||
this.data.notes.push(noteNumber)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
}
|
||||
public remove_note(noteNumber: number): void {
|
||||
var find = this.data.notes.indexOf(noteNumber)
|
||||
if (find >= 0) {
|
||||
this.data.notes.splice(find, 1)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
}
|
||||
public clean_notes(): void {
|
||||
if (this.data.notes.length > 0) {
|
||||
this.data.notes = new Array()
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
}
|
||||
//====================================持久化数据
|
||||
public set_score(score: number): void {
|
||||
this.data.score = score
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_preset(): boolean {
|
||||
return this.preset
|
||||
public get_notes(): Array<number> {
|
||||
return this.data.notes
|
||||
}
|
||||
|
||||
public add_note(noteNumber: number): void {
|
||||
if (!this.data.notes.includes(noteNumber)) {
|
||||
this.data.notes.push(noteNumber)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
}
|
||||
|
||||
public get_correct(): number {
|
||||
return this.correct
|
||||
public remove_note(noteNumber: number): void {
|
||||
const find = this.data.notes.indexOf(noteNumber)
|
||||
if (find >= 0) {
|
||||
this.data.notes.splice(find, 1)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
}
|
||||
|
||||
public get_checked(): boolean {
|
||||
return this.checked
|
||||
public clean_notes(): void {
|
||||
if (this.data.notes.length > 0) {
|
||||
this.data.notes = []
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
}
|
||||
// ====================================持久化数据
|
||||
|
||||
public get_preset(): boolean {
|
||||
return this.preset
|
||||
}
|
||||
|
||||
public get_correct(): number {
|
||||
return this.correct
|
||||
}
|
||||
|
||||
}
|
||||
public get_checked(): boolean {
|
||||
return this.checked
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +1,21 @@
|
||||
|
||||
|
||||
|
||||
|
||||
export class DOCandy {
|
||||
private show: number
|
||||
private left: number
|
||||
|
||||
private show: number
|
||||
private left: number
|
||||
constructor(show: number, left: number) {
|
||||
this.show = show
|
||||
this.left = left
|
||||
}
|
||||
|
||||
constructor(show: number, left: number) {
|
||||
this.show = show
|
||||
this.left = left
|
||||
}
|
||||
public get_show(): number {
|
||||
return this.show
|
||||
}
|
||||
|
||||
public get_show(): number {
|
||||
return this.show
|
||||
}
|
||||
public get_left(): number {
|
||||
return this.left
|
||||
}
|
||||
|
||||
public get_left(): number {
|
||||
return this.left
|
||||
}
|
||||
public set_left(left: number): void {
|
||||
this.left = left
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
public set_left(left: number): void {
|
||||
this.left = left
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,190 +1,197 @@
|
||||
|
||||
|
||||
import { StorageManager } from "./StorageManager"
|
||||
import type { DataBlock, DataStage, DataUndo } from "../types/global"
|
||||
import { DOBlock } from "./DOBlock"
|
||||
import { DataBlock, DataUndo, DataStage } from "../types/global"
|
||||
import { LevelManager } from "./LevelManager"
|
||||
|
||||
import { StorageManager } from "./StorageManager"
|
||||
|
||||
export class DOStage {
|
||||
private data: DataStage
|
||||
private blocks: Array<DOBlock> = []
|
||||
|
||||
private data: DataStage
|
||||
private blocks: Array<DOBlock> = new Array()
|
||||
private letterToNumber: Map<string, number>
|
||||
private numberToLetter: Map<number, string>
|
||||
|
||||
private letterToNumber: Map<string, number>;
|
||||
private numberToLetter: Map<number, string>;
|
||||
constructor(dataStage: DataStage) {
|
||||
this.data = dataStage
|
||||
|
||||
constructor(dataStage: DataStage) {
|
||||
this.data = dataStage
|
||||
this.letterToNumber = new Map()
|
||||
this.letterToNumber.set("A", 1)
|
||||
this.letterToNumber.set("B", 2)
|
||||
this.letterToNumber.set("C", 3)
|
||||
this.letterToNumber.set("D", 4)
|
||||
this.letterToNumber.set("E", 5)
|
||||
this.letterToNumber.set("F", 6)
|
||||
this.letterToNumber.set("G", 7)
|
||||
this.letterToNumber.set("H", 8)
|
||||
this.letterToNumber.set("I", 9)
|
||||
|
||||
this.letterToNumber = new Map();
|
||||
this.letterToNumber.set("A", 1);
|
||||
this.letterToNumber.set("B", 2);
|
||||
this.letterToNumber.set("C", 3);
|
||||
this.letterToNumber.set("D", 4);
|
||||
this.letterToNumber.set("E", 5);
|
||||
this.letterToNumber.set("F", 6);
|
||||
this.letterToNumber.set("G", 7);
|
||||
this.letterToNumber.set("H", 8);
|
||||
this.letterToNumber.set("I", 9);
|
||||
this.numberToLetter = new Map()
|
||||
this.numberToLetter.set(1, "a")
|
||||
this.numberToLetter.set(2, "b")
|
||||
this.numberToLetter.set(3, "c")
|
||||
this.numberToLetter.set(4, "d")
|
||||
this.numberToLetter.set(5, "e")
|
||||
this.numberToLetter.set(6, "f")
|
||||
this.numberToLetter.set(7, "g")
|
||||
this.numberToLetter.set(8, "h")
|
||||
this.numberToLetter.set(9, "i")
|
||||
|
||||
this.numberToLetter = new Map();
|
||||
this.numberToLetter.set(1, "a");
|
||||
this.numberToLetter.set(2, "b");
|
||||
this.numberToLetter.set(3, "c");
|
||||
this.numberToLetter.set(4, "d");
|
||||
this.numberToLetter.set(5, "e");
|
||||
this.numberToLetter.set(6, "f");
|
||||
this.numberToLetter.set(7, "g");
|
||||
this.numberToLetter.set(8, "h");
|
||||
this.numberToLetter.set(9, "i");
|
||||
const blockMap: Map<number, DataBlock> = new Map()
|
||||
for (var i = 0; i < this.data.blocks.length; i++) {
|
||||
var dataBlock = this.data.blocks[i]
|
||||
blockMap.set(dataBlock.index, dataBlock)
|
||||
}
|
||||
|
||||
var blockMap: Map<number, DataBlock> = new Map()
|
||||
for (var i=0; i<this.data.blocks.length; i++) {
|
||||
var dataBlock = this.data.blocks[i]
|
||||
blockMap.set(dataBlock.index, dataBlock)
|
||||
const levelStr = LevelManager.getInstance().getLevelStr(this.data.difficulty, this.data.index)
|
||||
if (!levelStr || levelStr.length != 81) {
|
||||
console.log("levelStr error", this.data.difficulty, this.data.index, levelStr)
|
||||
}
|
||||
const list = new Map()
|
||||
for (var i = 0; i < levelStr.length; i++) {
|
||||
const letter = levelStr[i]
|
||||
if (this.letterToNumber.has(letter)) { // 预设格子 使用配置文件初始化
|
||||
var show = this.letterToNumber.get(letter)
|
||||
var dataBlock: DataBlock = { index: i, show, score: 0, notes: [] }
|
||||
var doBlock = new DOBlock(dataBlock, true, show)
|
||||
this.blocks.push(doBlock)
|
||||
} else {
|
||||
var show = this.letterToNumber.get(letter.toUpperCase())
|
||||
var dataBlock = blockMap.get(i)
|
||||
if (dataBlock) { // 本地有持久化数据
|
||||
var doBlock = new DOBlock(dataBlock, false, show)
|
||||
this.blocks.push(doBlock)
|
||||
} else {
|
||||
dataBlock = { index: i, show: 0, score: 0, notes: [] }
|
||||
this.data.blocks.push(dataBlock)
|
||||
var doBlock = new DOBlock(dataBlock, false, show)
|
||||
this.blocks.push(doBlock)
|
||||
}
|
||||
|
||||
var levelStr = LevelManager.getInstance().getLevelStr(this.data.difficulty, this.data.index)
|
||||
if (!levelStr || levelStr.length != 81) {
|
||||
console.log("levelStr error", this.data.difficulty, this.data.index, levelStr)
|
||||
if (list.has(letter)) {
|
||||
list.set(letter, list.get(letter) + 1)
|
||||
} else {
|
||||
list.set(letter, 1)
|
||||
}
|
||||
var list = new Map();
|
||||
for (var i=0; i<levelStr.length; i++) {
|
||||
var letter = levelStr[i];
|
||||
if (this.letterToNumber.has(letter)) {//预设格子 使用配置文件初始化
|
||||
var show = this.letterToNumber.get(letter)
|
||||
var dataBlock: DataBlock = {index: i, show: show, score: 0, notes: new Array()}
|
||||
var doBlock = new DOBlock(dataBlock, true, show)
|
||||
this.blocks.push(doBlock)
|
||||
}
|
||||
else {
|
||||
var show = this.letterToNumber.get(letter.toUpperCase())
|
||||
var dataBlock = blockMap.get(i)
|
||||
if (dataBlock) {//本地有持久化数据
|
||||
var doBlock = new DOBlock(dataBlock, false, show)
|
||||
this.blocks.push(doBlock)
|
||||
}
|
||||
else {
|
||||
dataBlock = {index: i, show: 0, score: 0, notes: new Array()}
|
||||
this.data.blocks.push(dataBlock)
|
||||
var doBlock = new DOBlock(dataBlock, false, show)
|
||||
this.blocks.push(doBlock)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (list.has(letter)) {
|
||||
list.set(letter, list.get(letter)+1);
|
||||
}
|
||||
else {
|
||||
list.set(letter, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public getData(): DataStage {
|
||||
return this.data
|
||||
}
|
||||
public getData(): DataStage {
|
||||
return this.data
|
||||
}
|
||||
|
||||
//====================================持久化数据
|
||||
public get_stageID(): string {
|
||||
return this.data.id
|
||||
}
|
||||
public get_stageType(): number {
|
||||
return this.data.type
|
||||
}
|
||||
public get_stageName(): string {
|
||||
return this.data.name
|
||||
}
|
||||
public get_difficulty(): string {
|
||||
return this.data.difficulty
|
||||
}
|
||||
public get_stageIndex(): number {
|
||||
return this.data.index
|
||||
}
|
||||
// ====================================持久化数据
|
||||
public get_stageID(): string {
|
||||
return this.data.id
|
||||
}
|
||||
|
||||
public get_mistake(): number {
|
||||
return this.data.mistake
|
||||
}
|
||||
public set_mistake(mistake: number): void {
|
||||
this.data.mistake = mistake
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_stageType(): number {
|
||||
return this.data.type
|
||||
}
|
||||
|
||||
public get_score(): number {
|
||||
return this.data.score
|
||||
}
|
||||
public set_score(score: number): void {
|
||||
this.data.score = score
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_stageName(): string {
|
||||
return this.data.name
|
||||
}
|
||||
|
||||
public get_duration(): number {
|
||||
return this.data.duration
|
||||
}
|
||||
public set_duration(duration: number): void {//关卡计时
|
||||
this.data.duration = duration
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_difficulty(): string {
|
||||
return this.data.difficulty
|
||||
}
|
||||
|
||||
public get_last_hit_time(): number {
|
||||
return this.data.last_hit_time
|
||||
}
|
||||
public set_last_hit_time(last_hit_time: number): void {
|
||||
this.data.last_hit_time = last_hit_time
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_stageIndex(): number {
|
||||
return this.data.index
|
||||
}
|
||||
|
||||
public get_note_open(): boolean {
|
||||
return this.data.note_open
|
||||
}
|
||||
public set_note_open(note_open: boolean): void {
|
||||
this.data.note_open = note_open
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_mistake(): number {
|
||||
return this.data.mistake
|
||||
}
|
||||
|
||||
public get_select_index(): number {
|
||||
return this.data.select_index
|
||||
}
|
||||
public set_select_index(select_index: number): void {//当前选中
|
||||
this.data.select_index = select_index
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public set_mistake(mistake: number): void {
|
||||
this.data.mistake = mistake
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_hint(): number {
|
||||
return this.data.hint
|
||||
}
|
||||
public set_hint(hint: number): void {//提示
|
||||
this.data.hint = hint
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public get_score(): number {
|
||||
return this.data.score
|
||||
}
|
||||
|
||||
public get_undos(): Array<DataUndo> {
|
||||
return this.data.undos
|
||||
}
|
||||
public add_undo(index: number, show: number=0, notes: Array<number>=new Array()): void {
|
||||
var _notes: Array<number>
|
||||
if (notes) {
|
||||
_notes = new Array()
|
||||
for (var i=0; i<notes.length; i++)
|
||||
_notes.push(notes[i])
|
||||
}
|
||||
var dataUndo: DataUndo = {index: index, show: show, notes: _notes}
|
||||
console.log("add_undo >>>>>>>>>>>>>>>>>>>>>>>>>>>>", JSON.stringify(dataUndo))
|
||||
this.data.undos.push(dataUndo)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
public pop_undo(): DataUndo {
|
||||
var dataUndo: DataUndo
|
||||
if (this.data.undos.length > 0) {
|
||||
dataUndo = this.data.undos[this.data.undos.length-1]
|
||||
this.data.undos.splice(this.data.undos.length-1, 1)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
return dataUndo
|
||||
}
|
||||
//====================================持久化数据
|
||||
public set_score(score: number): void {
|
||||
this.data.score = score
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_blocks(): Array<DOBlock> {
|
||||
return this.blocks
|
||||
public get_duration(): number {
|
||||
return this.data.duration
|
||||
}
|
||||
|
||||
public set_duration(duration: number): void { // 关卡计时
|
||||
this.data.duration = duration
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_last_hit_time(): number {
|
||||
return this.data.last_hit_time
|
||||
}
|
||||
|
||||
public set_last_hit_time(last_hit_time: number): void {
|
||||
this.data.last_hit_time = last_hit_time
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_note_open(): boolean {
|
||||
return this.data.note_open
|
||||
}
|
||||
|
||||
public set_note_open(note_open: boolean): void {
|
||||
this.data.note_open = note_open
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_select_index(): number {
|
||||
return this.data.select_index
|
||||
}
|
||||
|
||||
public set_select_index(select_index: number): void { // 当前选中
|
||||
this.data.select_index = select_index
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_hint(): number {
|
||||
return this.data.hint
|
||||
}
|
||||
|
||||
public set_hint(hint: number): void { // 提示
|
||||
this.data.hint = hint
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public get_undos(): Array<DataUndo> {
|
||||
return this.data.undos
|
||||
}
|
||||
|
||||
public add_undo(index: number, show: number = 0, notes: Array<number> = []): void {
|
||||
let _notes: Array<number>
|
||||
if (notes) {
|
||||
_notes = []
|
||||
for (let i = 0; i < notes.length; i++)
|
||||
_notes.push(notes[i])
|
||||
}
|
||||
}
|
||||
const dataUndo: DataUndo = { index, show, notes: _notes }
|
||||
console.log("add_undo >>>>>>>>>>>>>>>>>>>>>>>>>>>>", JSON.stringify(dataUndo))
|
||||
this.data.undos.push(dataUndo)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
|
||||
public pop_undo(): DataUndo {
|
||||
let dataUndo: DataUndo
|
||||
if (this.data.undos.length > 0) {
|
||||
dataUndo = this.data.undos[this.data.undos.length - 1]
|
||||
this.data.undos.splice(this.data.undos.length - 1, 1)
|
||||
StorageManager.getInstance().onStageChanged()
|
||||
}
|
||||
return dataUndo
|
||||
}
|
||||
// ====================================持久化数据
|
||||
|
||||
public get_blocks(): Array<DOBlock> {
|
||||
return this.blocks
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,171 +1,177 @@
|
||||
import { DataProgress, DataUser, StageProgress, TrophyRecord } from "../types/global";
|
||||
import type { DataProgress, DataUser, StageProgress, TrophyRecord } from "../types/global"
|
||||
import { StorageManager } from "./StorageManager"
|
||||
|
||||
|
||||
export class DOUser {
|
||||
private data: DataUser
|
||||
private mapDones: Map<string, number> = new Map()
|
||||
|
||||
private data: DataUser
|
||||
private mapDones: Map<string, number> = new Map()
|
||||
constructor(dataUser: DataUser) {
|
||||
this.data = dataUser
|
||||
for (let i = 0; i < this.data.dones.length; i++) {
|
||||
const obj = this.data.dones[i]
|
||||
this.mapDones.set(obj.stageID, obj.progress)
|
||||
}
|
||||
}
|
||||
|
||||
constructor(dataUser: DataUser) {
|
||||
this.data = dataUser
|
||||
for (var i=0; i<this.data.dones.length; i++) {
|
||||
var obj = this.data.dones[i]
|
||||
this.mapDones.set(obj.stageID, obj.progress)
|
||||
}
|
||||
}
|
||||
public getData(): DataUser {
|
||||
return this.data
|
||||
}
|
||||
public getData(): DataUser {
|
||||
return this.data
|
||||
}
|
||||
|
||||
//====================================持久化数据
|
||||
public get_done(stageID: string): number {
|
||||
if (this.mapDones.has(stageID)) {
|
||||
return this.mapDones.get(stageID)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
public get_doneCountByDate(year: number, month: number): number {
|
||||
var count = 0
|
||||
var key = `${year}-${month}`
|
||||
this.mapDones.forEach((progres: number, stageID: string)=>{
|
||||
if (stageID.startsWith(key) && progres >= 1) {
|
||||
count ++
|
||||
}
|
||||
})
|
||||
return count
|
||||
}
|
||||
public get_isAllDoneByDate(year: number, month: number): boolean {
|
||||
var boolean = true
|
||||
var key = `${year}-${month}`
|
||||
this.mapDones.forEach((progres: number, stageID: string)=>{
|
||||
if (stageID.startsWith(key) && progres < 1) {
|
||||
boolean = false
|
||||
}
|
||||
})
|
||||
return boolean
|
||||
}
|
||||
public update_stage_done(stageID: string, progress: number): void {
|
||||
var find: StageProgress
|
||||
for (var i=0; i<this.data.dones.length; i++) {
|
||||
var obj = this.data.dones[i]
|
||||
if (obj.stageID == stageID) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (find) {
|
||||
find.progress = progress
|
||||
}
|
||||
else {
|
||||
find = {stageID: stageID, progress: progress}
|
||||
this.data.dones.push(find)
|
||||
}
|
||||
this.mapDones.set(find.stageID, find.progress)
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
// ====================================持久化数据
|
||||
public get_done(stageID: string): number {
|
||||
if (this.mapDones.has(stageID)) {
|
||||
return this.mapDones.get(stageID)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//================奖杯获得记录
|
||||
public get_trophyRecord(year: number, month: number): TrophyRecord {
|
||||
var find: TrophyRecord
|
||||
for (var i=0; i<this.data.trophy_records.length; i++) {
|
||||
var obj = this.data.trophy_records[i]
|
||||
if (obj.year == year && obj.month == month) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
return find
|
||||
}
|
||||
public get_trophyHasNew(): TrophyRecord {
|
||||
var find: TrophyRecord
|
||||
for (var i=0; i<this.data.trophy_records.length; i++) {
|
||||
var obj = this.data.trophy_records[i]
|
||||
if (obj.isNew) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
return find
|
||||
}
|
||||
public set_trophyNew(record: TrophyRecord, isNew: boolean): void {
|
||||
if (record.isNew != isNew) {
|
||||
record.isNew = isNew
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
}
|
||||
public get_trophyHasUnread(): boolean {
|
||||
var unread = false
|
||||
for (var i=0; i<this.data.trophy_records.length; i++) {
|
||||
var obj = this.data.trophy_records[i]
|
||||
if (obj.read == false) {
|
||||
unread = true
|
||||
break
|
||||
}
|
||||
}
|
||||
return unread
|
||||
}
|
||||
public set_trophyAllread(): void {
|
||||
var changed = false
|
||||
for (var i=0; i<this.data.trophy_records.length; i++) {
|
||||
var obj = this.data.trophy_records[i]
|
||||
if (obj.read == false) {
|
||||
obj.read = true
|
||||
changed = true
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
}
|
||||
public add_trophy_record(year: number, month: number, day: number): void {
|
||||
var find
|
||||
for (var i=0; i<this.data.trophy_records.length; i++) {
|
||||
var obj = this.data.trophy_records[i]
|
||||
if (obj.year == year && obj.month == month) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (!find) {
|
||||
this.data.trophy_records.push({year: year, month: month, day: day, isNew: true, read: false})
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
}
|
||||
public get_doneCountByDate(year: number, month: number): number {
|
||||
let count = 0
|
||||
const key = `${year}-${month}`
|
||||
this.mapDones.forEach((progres: number, stageID: string) => {
|
||||
if (stageID.startsWith(key) && progres >= 1) {
|
||||
count++
|
||||
}
|
||||
})
|
||||
return count
|
||||
}
|
||||
|
||||
//=======关卡难度进度
|
||||
public get_progress(difficulty: string): number {
|
||||
var find: DataProgress
|
||||
for (var i=0; i<this.data.progresses.length; i++) {
|
||||
var obj = this.data.progresses[i]
|
||||
if (obj.difficulty == difficulty) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (find) {
|
||||
return find.index
|
||||
}
|
||||
return 0
|
||||
}
|
||||
public update_progress(difficulty: string, index: number): void {
|
||||
var find: DataProgress
|
||||
for (var i=0; i<this.data.progresses.length; i++) {
|
||||
var obj = this.data.progresses[i]
|
||||
if (obj.difficulty == difficulty) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (find) {
|
||||
find.index = index
|
||||
}
|
||||
else {
|
||||
find = {difficulty: difficulty, index: index}
|
||||
this.data.progresses.push(find)
|
||||
}
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
public get_isAllDoneByDate(year: number, month: number): boolean {
|
||||
let boolean = true
|
||||
const key = `${year}-${month}`
|
||||
this.mapDones.forEach((progres: number, stageID: string) => {
|
||||
if (stageID.startsWith(key) && progres < 1) {
|
||||
boolean = false
|
||||
}
|
||||
})
|
||||
return boolean
|
||||
}
|
||||
|
||||
//====================================持久化数据
|
||||
}
|
||||
public update_stage_done(stageID: string, progress: number): void {
|
||||
let find: StageProgress
|
||||
for (let i = 0; i < this.data.dones.length; i++) {
|
||||
const obj = this.data.dones[i]
|
||||
if (obj.stageID == stageID) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (find) {
|
||||
find.progress = progress
|
||||
} else {
|
||||
find = { stageID, progress }
|
||||
this.data.dones.push(find)
|
||||
}
|
||||
this.mapDones.set(find.stageID, find.progress)
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
|
||||
// ================奖杯获得记录
|
||||
public get_trophyRecord(year: number, month: number): TrophyRecord {
|
||||
let find: TrophyRecord
|
||||
for (let i = 0; i < this.data.trophy_records.length; i++) {
|
||||
const obj = this.data.trophy_records[i]
|
||||
if (obj.year == year && obj.month == month) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
return find
|
||||
}
|
||||
|
||||
public get_trophyHasNew(): TrophyRecord {
|
||||
let find: TrophyRecord
|
||||
for (let i = 0; i < this.data.trophy_records.length; i++) {
|
||||
const obj = this.data.trophy_records[i]
|
||||
if (obj.isNew) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
return find
|
||||
}
|
||||
|
||||
public set_trophyNew(record: TrophyRecord, isNew: boolean): void {
|
||||
if (record.isNew != isNew) {
|
||||
record.isNew = isNew
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
}
|
||||
|
||||
public get_trophyHasUnread(): boolean {
|
||||
let unread = false
|
||||
for (let i = 0; i < this.data.trophy_records.length; i++) {
|
||||
const obj = this.data.trophy_records[i]
|
||||
if (obj.read == false) {
|
||||
unread = true
|
||||
break
|
||||
}
|
||||
}
|
||||
return unread
|
||||
}
|
||||
|
||||
public set_trophyAllread(): void {
|
||||
let changed = false
|
||||
for (let i = 0; i < this.data.trophy_records.length; i++) {
|
||||
const obj = this.data.trophy_records[i]
|
||||
if (obj.read == false) {
|
||||
obj.read = true
|
||||
changed = true
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
}
|
||||
|
||||
public add_trophy_record(year: number, month: number, day: number): void {
|
||||
let find
|
||||
for (let i = 0; i < this.data.trophy_records.length; i++) {
|
||||
const obj = this.data.trophy_records[i]
|
||||
if (obj.year == year && obj.month == month) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (!find) {
|
||||
this.data.trophy_records.push({ year, month, day, isNew: true, read: false })
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
}
|
||||
|
||||
// =======关卡难度进度
|
||||
public get_progress(difficulty: string): number {
|
||||
let find: DataProgress
|
||||
for (let i = 0; i < this.data.progresses.length; i++) {
|
||||
const obj = this.data.progresses[i]
|
||||
if (obj.difficulty == difficulty) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (find) {
|
||||
return find.index
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
public update_progress(difficulty: string, index: number): void {
|
||||
let find: DataProgress
|
||||
for (let i = 0; i < this.data.progresses.length; i++) {
|
||||
const obj = this.data.progresses[i]
|
||||
if (obj.difficulty == difficulty) {
|
||||
find = obj
|
||||
break
|
||||
}
|
||||
}
|
||||
if (find) {
|
||||
find.index = index
|
||||
} else {
|
||||
find = { difficulty, index }
|
||||
this.data.progresses.push(find)
|
||||
}
|
||||
StorageManager.getInstance().onUserChanged()
|
||||
}
|
||||
|
||||
// ====================================持久化数据
|
||||
}
|
||||
|
||||
@@ -1,53 +1,48 @@
|
||||
|
||||
|
||||
|
||||
export const EVENT_TYPES = {
|
||||
NOT_UPDATE_MISTAKE: "NOT_UPDATE_MISTAKE",//更新分数
|
||||
NOT_UPDATE_PAUSE: "NOT_UPDATE_PAUSE",//更新暂停状态
|
||||
NOT_UPDATE_MISTAKE: "NOT_UPDATE_MISTAKE", // 更新分数
|
||||
NOT_UPDATE_PAUSE: "NOT_UPDATE_PAUSE", // 更新暂停状态
|
||||
|
||||
NOT_SET_TROPHY_BUTTON: "NOT_SET_TROPHY_BUTTON",
|
||||
NOT_SET_TROPHY_BUTTON: "NOT_SET_TROPHY_BUTTON"
|
||||
}
|
||||
|
||||
|
||||
export class EventManager {
|
||||
|
||||
private static instance: EventManager
|
||||
public static getInstance(): EventManager {
|
||||
if (!EventManager.instance) {
|
||||
EventManager.instance = new EventManager()
|
||||
}
|
||||
return EventManager.instance
|
||||
private static instance: EventManager
|
||||
public static getInstance(): EventManager {
|
||||
if (!EventManager.instance) {
|
||||
EventManager.instance = new EventManager()
|
||||
}
|
||||
return EventManager.instance
|
||||
}
|
||||
|
||||
private listeners: Map<string, Array<any>> = new Map()
|
||||
private listeners: Map<string, Array<any>> = new Map()
|
||||
|
||||
public RegisterEvent(eventID: string, func: any): void {
|
||||
if (this.listeners.has(eventID) == false) {
|
||||
this.listeners.set(eventID, new Array())
|
||||
}
|
||||
var list: Array<any> = this.listeners.get(eventID)
|
||||
var find = list.indexOf(func)
|
||||
if (find < 0) {
|
||||
list.push(func)
|
||||
}
|
||||
public RegisterEvent(eventID: string, func: any): void {
|
||||
if (this.listeners.has(eventID) == false) {
|
||||
this.listeners.set(eventID, [])
|
||||
}
|
||||
|
||||
public UnregisterEvent(eventID: string, func: any): void {
|
||||
if (this.listeners.has(eventID)) {
|
||||
var list: Array<any> = this.listeners.get(eventID)
|
||||
var find = list.indexOf(func)
|
||||
if (find >= 0) {
|
||||
list.splice(find, 1)
|
||||
}
|
||||
}
|
||||
const list: Array<any> = this.listeners.get(eventID)
|
||||
const find = list.indexOf(func)
|
||||
if (find < 0) {
|
||||
list.push(func)
|
||||
}
|
||||
}
|
||||
|
||||
public DispatchEvent(eventID: string, arg: any=null): void {
|
||||
if (this.listeners.has(eventID)) {
|
||||
var list: Array<any> = this.listeners.get(eventID)
|
||||
for (var i=0; i<list.length; i++) {
|
||||
list[i](arg)
|
||||
}
|
||||
}
|
||||
public UnregisterEvent(eventID: string, func: any): void {
|
||||
if (this.listeners.has(eventID)) {
|
||||
const list: Array<any> = this.listeners.get(eventID)
|
||||
const find = list.indexOf(func)
|
||||
if (find >= 0) {
|
||||
list.splice(find, 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DispatchEvent(eventID: string, arg: any = null): void {
|
||||
if (this.listeners.has(eventID)) {
|
||||
const list: Array<any> = this.listeners.get(eventID)
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
list[i](arg)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,157 +1,153 @@
|
||||
import { config } from "../constants/config"
|
||||
|
||||
|
||||
|
||||
const Easy = [
|
||||
"aBCeIGFhdEDFcAHBGIhigBdfecAgHDiFBCaeBEAGHCIdffcIdEAHbgcABfGEdiHIFHaCDGEBDGEHbiaFC",
|
||||
"abecfIgdhdICGhbAFEHGfeAdIcBCFAbigEHDGDhFeABICIEbHdCFGAFaGDBHcEIbCDIGehAFeHIaCFdbG",
|
||||
"AbIGdeHFCHFDbCieaGgEcfaHbDIEiAdBFGcHFHGcEAIBddCBHIGFEaCdfiGBAHEbgeAHCDIfIaHefdCgB",
|
||||
"ACEdBIGHFBHGFacDEIdiFheGAbCcEiBdFHaGhfBGIAecDGadcHeIfBIgCaFHbDEFdAegbcIHEBHICDfGa",
|
||||
"acEIhbgFDFIDAgEBHCBGHfCdeaIDEaBFgicHcFGHAidebIHbDecaGFeBFCIAHdGGDCebHfIAHAiGdfCBE",
|
||||
"aCfDbGHIEGHBIcEFdaedIAFhbCGDFahGiebCHbecaDIGFiGCbEFdAHBEHGIcAfDFiGedACHBCAdFHBgei",
|
||||
"ACGBfIHDeHEBCdgFAIfdIHaegcBDgEAHCIBFIbhFEdaGCcAFGIbDEHgIDebHcfabHADcFEiGEfcigABHd",
|
||||
"AcGFdihBEdHEbGCAifBFIEhaGDCEgADIBfcHhibGcfDEaFDChaEigbGBHCFdEAIIEdabHCFGcAfIEGbHD",
|
||||
"ACGIFbEhdbFEDGhaCIIHDCAEBGFFAIHBDceggdbecfIahHEcAIGdFBeIHFDAGBcdGFbeCHIacbAgHifdE",
|
||||
"aBCeIGFhdEDFcAHBGIhigBdfecAgHDiFBCaeBEAGHCIdffcIdEAHbgcABfGEdiHIFHaCDGEBDGEHbiaFC",
|
||||
"abecfIgdhdICGhbAFEHGfeAdIcBCFAbigEHDGDhFeABICIEbHdCFGAFaGDBHcEIbCDIGehAFeHIaCFdbG",
|
||||
"AbIGdeHFCHFDbCieaGgEcfaHbDIEiAdBFGcHFHGcEAIBddCBHIGFEaCdfiGBAHEbgeAHCDIfIaHefdCgB",
|
||||
"ACEdBIGHFBHGFacDEIdiFheGAbCcEiBdFHaGhfBGIAecDGadcHeIfBIgCaFHbDEFdAegbcIHEBHICDfGa",
|
||||
"acEIhbgFDFIDAgEBHCBGHfCdeaIDEaBFgicHcFGHAidebIHbDecaGFeBFCIAHdGGDCebHfIAHAiGdfCBE",
|
||||
"aCfDbGHIEGHBIcEFdaedIAFhbCGDFahGiebCHbecaDIGFiGCbEFdAHBEHGIcAfDFiGedACHBCAdFHBgei",
|
||||
"ACGBfIHDeHEBCdgFAIfdIHaegcBDgEAHCIBFIbhFEdaGCcAFGIbDEHgIDebHcfabHADcFEiGEfcigABHd",
|
||||
"AcGFdihBEdHEbGCAifBFIEhaGDCEgADIBfcHhibGcfDEaFDChaEigbGBHCFdEAIIEdabHCFGcAfIEGbHD",
|
||||
"ACGIFbEhdbFEDGhaCIIHDCAEBGFFAIHBDceggdbecfIahHEcAIGdFBeIHFDAGBcdGFbeCHIacbAgHifdE"
|
||||
]
|
||||
const Medium = [
|
||||
"achEDIBFGgeIHbFaDCFDBaCGHeIbHaceDGiFCIFGHBeadeGDIFAChbDAGbIeFCHhfEdGCIbaiBcFAhdGE",
|
||||
"ADBeIGhFCGhCDFabiefiECHBgDACGDbaFieHEBIHGCFADhFAIedCbGdAFGbheCIbEhaciDGFIcGFDeaHb",
|
||||
"aDBIEcHFGEGHbDFcaiIFCAGHeDbgHdEIafBCCIaHFbdGeBefGcdIHADCGFbeAIHhbedAIGcFFaIcHgBEd",
|
||||
"AdEGCHfibHGbefIacdCIFABdehgICgHDAbFefahbecDgIEBDIGFCAHbeICAGHDFGFCDheIbADHAFIBGec",
|
||||
"ADeIBFgHCIHFcgabdebGCeDhaIfHfaDeIcGbgIBFacHEdECdBHGFaiFBHAIEDcGDeGHcBiFaCAIgFDEBH",
|
||||
"aDFIEHbcGciHaGbFDEeGBcdFHIAbeadhCgfIGHIfBEcAdFCdGAIeHBDAeHcgibFHFGbIDaECIBcEFADGh",
|
||||
"aDgEICFBHHCFdGBAeIIEBFHacdgcAEgBIdhFDGhCFEiabBFIADHEGCGbciaDHfEEHdbcFgiAFiAHeGbcd",
|
||||
"adHEbCIfGegBfHIDAcIcfgDaHEBDFABIGcHEHIcdfegbaBEGcAHFdIFAdIgBeCHCbihEFAGdghEACDBIF",
|
||||
"aecDbHIGFDGHCFIBEAfiBEGaHCdgAFBIedHcHCEaDFGBIbDIghCFAeibahcdeFGcHdfeGAIBefGIAbCDH",
|
||||
"achEDIBFGgeIHbFaDCFDBaCGHeIbHaceDGiFCIFGHBeadeGDIFAChbDAGbIeFCHhfEdGCIbaiBcFAhdGE",
|
||||
"ADBeIGhFCGhCDFabiefiECHBgDACGDbaFieHEBIHGCFADhFAIedCbGdAFGbheCIbEhaciDGFIcGFDeaHb",
|
||||
"aDBIEcHFGEGHbDFcaiIFCAGHeDbgHdEIafBCCIaHFbdGeBefGcdIHADCGFbeAIHhbedAIGcFFaIcHgBEd",
|
||||
"AdEGCHfibHGbefIacdCIFABdehgICgHDAbFefahbecDgIEBDIGFCAHbeICAGHDFGFCDheIbADHAFIBGec",
|
||||
"ADeIBFgHCIHFcgabdebGCeDhaIfHfaDeIcGbgIBFacHEdECdBHGFaiFBHAIEDcGDeGHcBiFaCAIgFDEBH",
|
||||
"aDFIEHbcGciHaGbFDEeGBcdFHIAbeadhCgfIGHIfBEcAdFCdGAIeHBDAeHcgibFHFGbIDaECIBcEFADGh",
|
||||
"aDgEICFBHHCFdGBAeIIEBFHacdgcAEgBIdhFDGhCFEiabBFIADHEGCGbciaDHfEEHdbcFgiAFiAHeGbcd",
|
||||
"adHEbCIfGegBfHIDAcIcfgDaHEBDFABIGcHEHIcdfegbaBEGcAHFdIFAdIgBeCHCbihEFAGdghEACDBIF",
|
||||
"aecDbHIGFDGHCFIBEAfiBEGaHCdgAFBIedHcHCEaDFGBIbDIghCFAeibahcdeFGcHdfeGAIBefGIAbCDH"
|
||||
]
|
||||
const Hard = [
|
||||
"AEdfiHgCBIFGECbahdcbHGADeIFGIFCDaBeHHDCbGEIFAeabhfICdgbCIAHFDGeFGadEcHBiDHeIBgFac",
|
||||
"aEFGBihCdHcIefdGBAGdbcahIfeIBAFDcegHDHEAGBCiFFgcHIEadBeFHDCGBaicidBHAFEGbAGIeFDHC",
|
||||
"AEGIdchFBFICbehgAdbHDFAGeIchdEgBaFCiGbfchIadeCAIefdbGHdfBaIeChGEGHdCFibAIcaHGbDEf",
|
||||
"afbCGDehiIGhEaFCdBECDIbHAFGhEGADbfICdbifechGAFACHIGbeDgDFBHAIcEcIaDFeGBHBHegCIdaF",
|
||||
"AFhIgCdEBcEGDBHAFIiDbfaeGCHhGIEcfbdafcdBIAHGEBaeHdGCIfEBACFdIHggHcAeiFbDdiFGHBEAC",
|
||||
"agcfdHbEIHBDEIGCaFFiecBAhGDBEghcFIdaDHiAGbEfCCAFiEdGBHGCabfIdHeIDHgAEFCbEFBdHcAIg",
|
||||
"agibdeFchcHDGIfeBAEFbHAcDIgiDCAEBGHFHBeDFGCaIFAGICHBdEgEaCBihfdbIfeHDAGCdCHFGaIeb",
|
||||
"AHbIEDcGFCifgHBAdeGEDAfcIHBBdGHCEFaiIFcbdaHeGHaeFIGBCDeBAcGFdIhFGHDaieBcDcIebhGFA",
|
||||
"AHEbCIGfdiBGDEFHCAdfcHGaBIEBGICfdaeHhCFEAbIdGEAdihgFbcFIAgDECHbcdBAIHegfGEHFbcdAI",
|
||||
"AHECBgFdIBIGDAfhCECfDHIEagbIGHEDcBFAEBFAGichddCaBFHeigFEIgHadbChDcIeBGaFGabFcdiEH",
|
||||
"AEdfiHgCBIFGECbahdcbHGADeIFGIFCDaBeHHDCbGEIFAeabhfICdgbCIAHFDGeFGadEcHBiDHeIBgFac",
|
||||
"aEFGBihCdHcIefdGBAGdbcahIfeIBAFDcegHDHEAGBCiFFgcHIEadBeFHDCGBaicidBHAFEGbAGIeFDHC",
|
||||
"AEGIdchFBFICbehgAdbHDFAGeIchdEgBaFCiGbfchIadeCAIefdbGHdfBaIeChGEGHdCFibAIcaHGbDEf",
|
||||
"afbCGDehiIGhEaFCdBECDIbHAFGhEGADbfICdbifechGAFACHIGbeDgDFBHAIcEcIaDFeGBHBHegCIdaF",
|
||||
"AFhIgCdEBcEGDBHAFIiDbfaeGCHhGIEcfbdafcdBIAHGEBaeHdGCIfEBACFdIHggHcAeiFbDdiFGHBEAC",
|
||||
"agcfdHbEIHBDEIGCaFFiecBAhGDBEghcFIdaDHiAGbEfCCAFiEdGBHGCabfIdHeIDHgAEFCbEFBdHcAIg",
|
||||
"agibdeFchcHDGIfeBAEFbHAcDIgiDCAEBGHFHBeDFGCaIFAGICHBdEgEaCBihfdbIfeHDAGCdCHFGaIeb",
|
||||
"AHbIEDcGFCifgHBAdeGEDAfcIHBBdGHCEFaiIFcbdaHeGHaeFIGBCDeBAcGFdIhFGHDaieBcDcIebhGFA",
|
||||
"AHEbCIGfdiBGDEFHCAdfcHGaBIEBGICfdaeHhCFEAbIdGEAdihgFbcFIAgDECHbcdBAIHegfGEHFbcdAI",
|
||||
"AHECBgFdIBIGDAfhCECfDHIEagbIGHEDcBFAEBFAGichddCaBFHeigFEIgHadbChDcIeBGaFGabFcdiEH"
|
||||
]
|
||||
const Expert = [
|
||||
"AHEIDCFGBiBFGaedchcdghbfIEADfHEIACBgbeADCGHfiGCibFHaDEeaBcHDGIFHIdFgBeAcFGCaeIBhD",
|
||||
"AHEIFGcbDDgBacefhIFIcBdHGeACbdHIFAgehfgEAcIDbEaIGBDHFCIEAFGbdcHBDFchaeiGgCHDEIbAF",
|
||||
"aIBCFDeHGcGFHaeIdbdHEIGBafCFDGahcbieBeaGDIHcFICHEBfdGAHADFEgcbIgBIdcaFEHEFCbiHGAd",
|
||||
"AIBHEFDcGEFcaDGihbHDGBCIAefGHFiadEBCBCAeFHGIdIEDGBcHFaCAiFGebdhfbHdIaCgedgECHbfAi",
|
||||
"aiDHBEfCGCGEFIdhBABFHCaGEdiIDGEHbcAfHABifcdgeECFgDaIHBFBaDEHGiCdECbGIafHGhiacFBed",
|
||||
"aIgdfbhcEdBEHCiGFAFCHEGaBdIIFbCAGDEHcHABDeFigegdIHFCabBDiFEHAGcHACGIDEBFGefabcihd",
|
||||
"AIGdFebCHBfHiaCdGEEDcgHbIaFgcBfeAHIdiHecgDfBAfaDbIhgeccbfaDIeHGhGIECFadbdeAHBGCFI",
|
||||
"baDEHGIFCGIHDCfABEceFAIBgdhfdchGIEABIgAbdEHcFEHbfaCDGIABeGFhciddFiCEabhGHCgIBdFEA",
|
||||
"baicHdegFHEdIFGcABGFCaebhidfbadGCIHEICEfAhBDGdGHBIeaFCAHBEDfGCICDGHBifEaeiFGCADBh",
|
||||
"BaiGFcdEHdFCHEAIGBhEgbDIcfaCidFAeBHGFBACGhEIdghEDibAcfEdBIHFgAcaGHECdFBIICfabGHDe",
|
||||
"bCFIGHADeHAGdFebCIDIEaBcFGHEbHGAFDIcgdCbhieFaafiCEDHBGCEBHdGIafIHAFcbgeDfgDeiACHb",
|
||||
"BdaHFIEGCicHDgEafBEGFBACDIHfbDcEgIHAHAIFBdgceCeGihAbDFDIbEchFaggFCadbHEIaHEGIfcBD",
|
||||
"BDCEFiGAHIHacGBeDFGEFHADIBcEIdfHACgBhCGbDEaFIFABgicdHeaFhiEgbCdDbiaChfeGCGEdbFHIa",
|
||||
"bdEcFAHIGCAIegHFBDFGHBDICaEehfaBDIGCDCgiHeaFBIBAFcgedhaicgEbDHFGeDhAFbcIHFbDiCGEa",
|
||||
"BEaihfcdgCFIGEDAHBgDHACBIFeFIdhaeGbcAHGcBIDEfebcdFGHAIDgeBIHFCaHCbFGAeiDIAfEdcbGH",
|
||||
"BehdIcaFgCfGeAHIbdaIdfBGCheEgcIDFHAbdAFHeBGCiIHBGcaDefFCIBHdeGAHbeaGIFDCGDACfEBIH",
|
||||
"BfHCEGADIIdchAFGbeGaEiBdCHFFBigCADEHHEGBdIfaCDCafhEiGBeGFDIHbCacHdaFBEiGaIbegcHFd",
|
||||
"AHEIDCFGBiBFGaedchcdghbfIEADfHEIACBgbeADCGHfiGCibFHaDEeaBcHDGIFHIdFgBeAcFGCaeIBhD",
|
||||
"AHEIFGcbDDgBacefhIFIcBdHGeACbdHIFAgehfgEAcIDbEaIGBDHFCIEAFGbdcHBDFchaeiGgCHDEIbAF",
|
||||
"aIBCFDeHGcGFHaeIdbdHEIGBafCFDGahcbieBeaGDIHcFICHEBfdGAHADFEgcbIgBIdcaFEHEFCbiHGAd",
|
||||
"AIBHEFDcGEFcaDGihbHDGBCIAefGHFiadEBCBCAeFHGIdIEDGBcHFaCAiFGebdhfbHdIaCgedgECHbfAi",
|
||||
"aiDHBEfCGCGEFIdhBABFHCaGEdiIDGEHbcAfHABifcdgeECFgDaIHBFBaDEHGiCdECbGIafHGhiacFBed",
|
||||
"aIgdfbhcEdBEHCiGFAFCHEGaBdIIFbCAGDEHcHABDeFigegdIHFCabBDiFEHAGcHACGIDEBFGefabcihd",
|
||||
"AIGdFebCHBfHiaCdGEEDcgHbIaFgcBfeAHIdiHecgDfBAfaDbIhgeccbfaDIeHGhGIECFadbdeAHBGCFI",
|
||||
"baDEHGIFCGIHDCfABEceFAIBgdhfdchGIEABIgAbdEHcFEHbfaCDGIABeGFhciddFiCEabhGHCgIBdFEA",
|
||||
"baicHdegFHEdIFGcABGFCaebhidfbadGCIHEICEfAhBDGdGHBIeaFCAHBEDfGCICDGHBifEaeiFGCADBh",
|
||||
"BaiGFcdEHdFCHEAIGBhEgbDIcfaCidFAeBHGFBACGhEIdghEDibAcfEdBIHFgAcaGHECdFBIICfabGHDe",
|
||||
"bCFIGHADeHAGdFebCIDIEaBcFGHEbHGAFDIcgdCbhieFaafiCEDHBGCEBHdGIafIHAFcbgeDfgDeiACHb",
|
||||
"BdaHFIEGCicHDgEafBEGFBACDIHfbDcEgIHAHAIFBdgceCeGihAbDFDIbEchFaggFCadbHEIaHEGIfcBD",
|
||||
"BDCEFiGAHIHacGBeDFGEFHADIBcEIdfHACgBhCGbDEaFIFABgicdHeaFhiEgbCdDbiaChfeGCGEdbFHIa",
|
||||
"bdEcFAHIGCAIegHFBDFGHBDICaEehfaBDIGCDCgiHeaFBIBAFcgedhaicgEbDHFGeDhAFbcIHFbDiCGEa",
|
||||
"BEaihfcdgCFIGEDAHBgDHACBIFeFIdhaeGbcAHGcBIDEfebcdFGHAIDgeBIHFCaHCbFGAeiDIAfEdcbGH",
|
||||
"BehdIcaFgCfGeAHIbdaIdfBGCheEgcIDFHAbdAFHeBGCiIHBGcaDefFCIBHdeGAHbeaGIFDCGDACfEBIH",
|
||||
"BfHCEGADIIdchAFGbeGaEiBdCHFFBigCADEHHEGBdIfaCDCafhEiGBeGFDIHbCacHdaFBEiGaIbegcHFd"
|
||||
]
|
||||
const Extreme = [
|
||||
"BGDiEAfchahcFBDIGEEIFhgCDabFAHGibedcDEGACHbIFCbIEdfGHagDACfEHBihFBDAIcegICEbHGaFd",
|
||||
"BGFAIHDCEDHicegBAfEACFDbIGHidhbCEgFAaEGIhfcDBFCbgadeHIHIedGafBCcbdhFiAEGGFAEbcHID",
|
||||
"BGFHIAdECaiCdBEFGHhDeFcgbaiGFBeAICHdICAGdHEFbdeHCFBGIAFhIBGDACEeBGaHcIDfcadiefhbg",
|
||||
"BhAcGEIDFIGdBaFCHefeCHiDGbaeaBFcIdGHcDGEHAFIBhifgdBEACAcIDFHbEGGbHIEcaFDdFeabGhcI",
|
||||
"BHeadfiCGICAgbHDEFdFgIEcHabgEHdFabICcadBHIfGEFBICGEAdHeiBFAGcHdHdCeIBGfAaGfHcDEBI",
|
||||
"BHFcEdgaigIDAfbEHcCEaIGHBfDdfIGHCAeBhCBeIADGFAGedbFcihFdHBaGIceIacfDEHBGEbGHCIFdA",
|
||||
"biADChGFEEHFIagbDCcGDBFEAHIIaeFHDCGBFBHgIcdEadcGebAhIFHfBAGIECDgDICEbFahaechdFibg",
|
||||
"bICEGDHFAHFeaICdbGaDGbFHEcIEadfcgIHbFGHIbECAdICBhdAfGEcHiDAbgefGBFceiadhDEAGHFBIC",
|
||||
"bieDFaGHcgcaeHiDbFHfDGcBiAECHIBgEFdaDGBHafEciAEFIDcbghFBcaIdheGIdHCEGAFBEAGFBHCID",
|
||||
"BIFCAdhGeDhAEbgFCICEgFHiBDaFBEGDAIHCADHicBEfggciHFeDabHGDBicaefiacdeFGbHEFBaGHCID",
|
||||
"bihCGEADfFAGIbDchEedCfahbigCFDEIGHbaIbEHdaFGCHGaBCfIEdGcFdHbeAIAEBGFIDcHdhIAEcGFB",
|
||||
"CaBhedgfiidHcFGAEbEFGbiahCDAEIGDbFHcFGdIhcebahBCFaEDiGDHAECIBGFbCEdGFIAHGIfaBhCDE",
|
||||
"cbFDEGiAHGIacFHdebdeHibAgFcfdIBCehGABHgAIFECdACEgHdfBIIGbFDCahEeAdHGBCIFHfceAIBDG",
|
||||
"cbgHEaFdIaIdcbfGEHEHFigDBACbFEAIHdCGhcAEDGIBFDGIBFCehaGDCFABHIEiabGHecfdFehdcIaGB",
|
||||
"CbhdAEIGfaEFgibCdhIGDHCFBEafDEBHaGICGibcfdhAehcAIeGFbddFIEbHAcGEHCagIDFBBAGfDCEHI",
|
||||
"CDabGEHIFeFhIaCGDbbgIHdFcAEAcEGhbifdGIbCFdaEHdHfaEiBGciaDFCHEbghEgDbafCIFbceiGDha",
|
||||
"cdgeAIBfhhbFDCgIAeAiEHbFcDGBFICGEdHAdGhBFaECIeACIdHGbfIedFHcagBGhbaEdficfCagiBHed",
|
||||
"cDgIbFEAHehbdGaFICiafecHgDBACIGEBhfdgbdfhiCeAHFECAdbGIBIHAFedcgfGABdCIheDechIGabF",
|
||||
"CEBIAFHGDIhAdEgbcfgFdCbheaIFGHACIDEbeBCGFdIhADaIbHEcFgBIEFGcAdHHdGEiaFbcAcFHDBgie",
|
||||
"cEHGfdIABFIgCAbhedAbDeIHcGfeABFcGdHIHDFBEIACGigChdafbEbFaDHEgIcGCIAbfeDHDHeIGcBFA",
|
||||
"ceIBaDGfhHaGcfiDEbBdFhGEIaCAHbFICEgDGiCdEahbFEfDGhbACIfbhEDGcIAiCeabHFdgdgaIcFBhe",
|
||||
"CeiBaGHDfADGfeHIBCbFHidcegAdHCeFagIBIGECHBAFDFBAgIdcHEEaFHBIDcGgidacfBEHHCBdGefaI",
|
||||
"cEIDAGFHbgDBEFhICAFHAIBCeGdbGFhIeadCACDBGFHIehIecDAGBFdacGEiBfHIfHAcbDEgEbgfhdCai",
|
||||
"CFeabGHIDGBdHEIfcaihACDFBegEGIBadcHFbDcGFHEAIHAFEICgDBAcGihbDFEFIHdgeabcdebfCAIGH",
|
||||
"CFEIAdbgHaHicbgDeFGDBEFhcIAeGHADCIfBIcFghbAdEBADFIEhcGFbcHGIeaDHEADCFGbidigBEaFHc",
|
||||
"CGaBfHIdEHEiacDFBGDbFIgEHcaadcFBgEIHfhECDIGaBBiGHEadFcgCdEIBAHFiAbgHfCEdEFHdacBGI",
|
||||
"CGhAIbfEDFAIEdhcBgDEBCGfHaIIDgbheACFHFcDaIbgeebAGFcIDHGCFibdEHABHDFEaGicaIeHcgDFB",
|
||||
"cHbEFDGAIAdIcgBEFHegfhIAcbDHACbDGfieIbEACFDHgGFdIheACBBCaGEHidfdEhfaIBGcFIGDbCHEa",
|
||||
"cidGHEBFAFaeBDcIGHbHgAFIECdgeIHafdbcAdfecbHIGHbCDIGAEFEFaCBHgDIDCbIGaFheighFEDCAB",
|
||||
"cIFDHAEbgebHgicAfdaGDEFbhCIBDacGFIEHFHIABEGDCgcehdIFABdeGBAHCIFhfciEdbgAIABFCGDhe",
|
||||
"CIFeBahdGHGDIcFebabaegDHIcfdhAbEcFGiIfcaHgdEbEBGDFIcAHFcbhaEgidaEIfGDBhCGdHciBAFE",
|
||||
"DAeFBIHGcFiCHGeBadhGBadCFeIabgIHDECFIEDGCFabhChFBEAdIGbcadfGIHEEdhCiBgFAGfiEAHCdb",
|
||||
"dafibcGHEHIEFdgcbaBCGAHEDIfeHcDgbfaIGBAHIFECDIFdEcAHGbaGBceDIfHFehGaIBdCCdIBfHAEG",
|
||||
"DaFIcbHgebeHGDFAiccgiEAHDFBEBcAHgFDIGHdCfibEaIFabEdGcHHIGfBeCAdFCbDIAehGAdEHGcIBF",
|
||||
"DaibFEGHCGHECIDaBFcFbGHaIDeHiAedbFcGEgFicHBAdBCDAgFheIIEHdAGcfBFDchBIEGAabgFecDiH",
|
||||
"DaIbGFHeCFChaiebdGGeBdCHIFaCbGFADEHIHFAIEbGCdIDEcHgAbFBGcHDafiEEIFGbcdahahdEFiCGB",
|
||||
"dAIcebGFHgBEHFaCiDhcFdgIAbeIDBFaGeHcCeAIDHFgBfGhBcEIdABFgAHCDEIAHdeIFBcGeICGbDhaf",
|
||||
"dbFECIAgHIGaFDHBCeHEcAGbDiFFDBgheiacECGIAFHBDaIHDbceFGcHEbfaGDibfdHIGCEAgaiCEDFhb",
|
||||
"DbgiCFaehcaehbdIGFHIfAEGCBDgfCeIHDABIHAbDCGFEEdbFGAhCIBEDcaiFHGaGHDfBEIcFciGhEbdA",
|
||||
"DEbfcgaHIFaIHDbCegcHGaiEFbDAfebhdIGcidCEGABFHgBHcFIdAEhgfibceDaeIdGafHcBBCaDEhGIF",
|
||||
"dEGHAfIbCBIHcEGFDACFABDIEGhFhbagCdIEEDCfibhAGGAIeHdBCFIGfdcHaEbHCeibaGFDAbdgFechI",
|
||||
"DFACBhGIEgchaIeFDbBEIFDGaChAHFbgidEcedcHAfbGIIGbdecHAFFBGECDIHAcadIHbefGHiEgFACBD",
|
||||
"dfbeahiCgECgiDbfHAAihGFCdeBGbFHCDEAihDIAgecBFcaEBIFgDHFGDCHaBIEIeADBGHFcBHcFEIaGd",
|
||||
"dfeGchaIBICAFbeHgdgBHdAIfceCHIAeBGdfAGBIFDEHcFEDHGCIBaEDgcIFBAHHIfbdAceGbACehGDFi",
|
||||
"dGaICHBFEFBIAedHcGCEhgBFIADHcEdfagBiaIbeHGCDfgDFciBEHAEAdHGCFIbbhgFdIaEcIFcbAEDGh",
|
||||
"dGeihbaCFHFBCADgIECiaeFGBDHEDIgBHcfAbACFDiHEGGHFaEcibdaehBIFDGcFBGdcaEhIICDHgEfaB",
|
||||
"dHcIFGABEIegCABFdHFbADHEIgCaGFebdCHIEDHaCIBFgciBHGFEadbaDGechiFhCIFDageBGfEBiHDca",
|
||||
"dHGaicbeFEacFHBIDgIbFeDghcAHeIDcAFGBFdbHgECaIGcABFIDHeaIHcEFgbDBfDGAHEiCCGEIbdAFh",
|
||||
"DICbAEhgfFaGIHDBCEbEHFCGADIEcBGDIFAhaDFCeHibggHiAFBdECIbehGAcFdcGadIFEhBhFDebcGia",
|
||||
"diGbCEaHFAfCIdhEBghBeAGFCdiCEbDHGFIAIgdfEaBcHFaHcIBgedgcAhBdIFEEDiGfchabbHFEaidgc",
|
||||
"diGEHFBCAHcaIBGEdfeFbCadIhgiGEDFAHBCaHFBcEDGICBDHGIfAegdcFEBAIHbehAIcGfDFaIGdhceb",
|
||||
"eaBdfIHGcIGdCHbFAEfHCAGEDBigcebdHAIFhFAiECGdBBdifAGECHabFecdIHGDiHGBFCeaCEgHIabFD",
|
||||
"EABFHiGcDHdICgaebfcGFBdeAHIaCDHIgBFEbFeaCDIGHiHGEFBdACfbaDECHIGgEHiBfcdadICGahFeB",
|
||||
"eacIBFhdgGHBecDaFIDIfgAhCBECFGHDEiabIdHaGBECFabeCFIGHDfCiBHGdeAHgdFEabIcBEADiCFGh",
|
||||
"EadCFbIhGbGCiahdeffhiGedcABGDbEiFHCACEadhgbFIIfHBcAeGddCfabegiHaBEHGIFDChIGFDcaBE",
|
||||
"BGDiEAfchahcFBDIGEEIFhgCDabFAHGibedcDEGACHbIFCbIEdfGHagDACfEHBihFBDAIcegICEbHGaFd",
|
||||
"BGFAIHDCEDHicegBAfEACFDbIGHidhbCEgFAaEGIhfcDBFCbgadeHIHIedGafBCcbdhFiAEGGFAEbcHID",
|
||||
"BGFHIAdECaiCdBEFGHhDeFcgbaiGFBeAICHdICAGdHEFbdeHCFBGIAFhIBGDACEeBGaHcIDfcadiefhbg",
|
||||
"BhAcGEIDFIGdBaFCHefeCHiDGbaeaBFcIdGHcDGEHAFIBhifgdBEACAcIDFHbEGGbHIEcaFDdFeabGhcI",
|
||||
"BHeadfiCGICAgbHDEFdFgIEcHabgEHdFabICcadBHIfGEFBICGEAdHeiBFAGcHdHdCeIBGfAaGfHcDEBI",
|
||||
"BHFcEdgaigIDAfbEHcCEaIGHBfDdfIGHCAeBhCBeIADGFAGedbFcihFdHBaGIceIacfDEHBGEbGHCIFdA",
|
||||
"biADChGFEEHFIagbDCcGDBFEAHIIaeFHDCGBFBHgIcdEadcGebAhIFHfBAGIECDgDICEbFahaechdFibg",
|
||||
"bICEGDHFAHFeaICdbGaDGbFHEcIEadfcgIHbFGHIbECAdICBhdAfGEcHiDAbgefGBFceiadhDEAGHFBIC",
|
||||
"bieDFaGHcgcaeHiDbFHfDGcBiAECHIBgEFdaDGBHafEciAEFIDcbghFBcaIdheGIdHCEGAFBEAGFBHCID",
|
||||
"BIFCAdhGeDhAEbgFCICEgFHiBDaFBEGDAIHCADHicBEfggciHFeDabHGDBicaefiacdeFGbHEFBaGHCID",
|
||||
"bihCGEADfFAGIbDchEedCfahbigCFDEIGHbaIbEHdaFGCHGaBCfIEdGcFdHbeAIAEBGFIDcHdhIAEcGFB",
|
||||
"CaBhedgfiidHcFGAEbEFGbiahCDAEIGDbFHcFGdIhcebahBCFaEDiGDHAECIBGFbCEdGFIAHGIfaBhCDE",
|
||||
"cbFDEGiAHGIacFHdebdeHibAgFcfdIBCehGABHgAIFECdACEgHdfBIIGbFDCahEeAdHGBCIFHfceAIBDG",
|
||||
"cbgHEaFdIaIdcbfGEHEHFigDBACbFEAIHdCGhcAEDGIBFDGIBFCehaGDCFABHIEiabGHecfdFehdcIaGB",
|
||||
"CbhdAEIGfaEFgibCdhIGDHCFBEafDEBHaGICGibcfdhAehcAIeGFbddFIEbHAcGEHCagIDFBBAGfDCEHI",
|
||||
"CDabGEHIFeFhIaCGDbbgIHdFcAEAcEGhbifdGIbCFdaEHdHfaEiBGciaDFCHEbghEgDbafCIFbceiGDha",
|
||||
"cdgeAIBfhhbFDCgIAeAiEHbFcDGBFICGEdHAdGhBFaECIeACIdHGbfIedFHcagBGhbaEdficfCagiBHed",
|
||||
"cDgIbFEAHehbdGaFICiafecHgDBACIGEBhfdgbdfhiCeAHFECAdbGIBIHAFedcgfGABdCIheDechIGabF",
|
||||
"CEBIAFHGDIhAdEgbcfgFdCbheaIFGHACIDEbeBCGFdIhADaIbHEcFgBIEFGcAdHHdGEiaFbcAcFHDBgie",
|
||||
"cEHGfdIABFIgCAbhedAbDeIHcGfeABFcGdHIHDFBEIACGigChdafbEbFaDHEgIcGCIAbfeDHDHeIGcBFA",
|
||||
"ceIBaDGfhHaGcfiDEbBdFhGEIaCAHbFICEgDGiCdEahbFEfDGhbACIfbhEDGcIAiCeabHFdgdgaIcFBhe",
|
||||
"CeiBaGHDfADGfeHIBCbFHidcegAdHCeFagIBIGECHBAFDFBAgIdcHEEaFHBIDcGgidacfBEHHCBdGefaI",
|
||||
"cEIDAGFHbgDBEFhICAFHAIBCeGdbGFhIeadCACDBGFHIehIecDAGBFdacGEiBfHIfHAcbDEgEbgfhdCai",
|
||||
"CFeabGHIDGBdHEIfcaihACDFBegEGIBadcHFbDcGFHEAIHAFEICgDBAcGihbDFEFIHdgeabcdebfCAIGH",
|
||||
"CFEIAdbgHaHicbgDeFGDBEFhcIAeGHADCIfBIcFghbAdEBADFIEhcGFbcHGIeaDHEADCFGbidigBEaFHc",
|
||||
"CGaBfHIdEHEiacDFBGDbFIgEHcaadcFBgEIHfhECDIGaBBiGHEadFcgCdEIBAHFiAbgHfCEdEFHdacBGI",
|
||||
"CGhAIbfEDFAIEdhcBgDEBCGfHaIIDgbheACFHFcDaIbgeebAGFcIDHGCFibdEHABHDFEaGicaIeHcgDFB",
|
||||
"cHbEFDGAIAdIcgBEFHegfhIAcbDHACbDGfieIbEACFDHgGFdIheACBBCaGEHidfdEhfaIBGcFIGDbCHEa",
|
||||
"cidGHEBFAFaeBDcIGHbHgAFIECdgeIHafdbcAdfecbHIGHbCDIGAEFEFaCBHgDIDCbIGaFheighFEDCAB",
|
||||
"cIFDHAEbgebHgicAfdaGDEFbhCIBDacGFIEHFHIABEGDCgcehdIFABdeGBAHCIFhfciEdbgAIABFCGDhe",
|
||||
"CIFeBahdGHGDIcFebabaegDHIcfdhAbEcFGiIfcaHgdEbEBGDFIcAHFcbhaEgidaEIfGDBhCGdHciBAFE",
|
||||
"DAeFBIHGcFiCHGeBadhGBadCFeIabgIHDECFIEDGCFabhChFBEAdIGbcadfGIHEEdhCiBgFAGfiEAHCdb",
|
||||
"dafibcGHEHIEFdgcbaBCGAHEDIfeHcDgbfaIGBAHIFECDIFdEcAHGbaGBceDIfHFehGaIBdCCdIBfHAEG",
|
||||
"DaFIcbHgebeHGDFAiccgiEAHDFBEBcAHgFDIGHdCfibEaIFabEdGcHHIGfBeCAdFCbDIAehGAdEHGcIBF",
|
||||
"DaibFEGHCGHECIDaBFcFbGHaIDeHiAedbFcGEgFicHBAdBCDAgFheIIEHdAGcfBFDchBIEGAabgFecDiH",
|
||||
"DaIbGFHeCFChaiebdGGeBdCHIFaCbGFADEHIHFAIEbGCdIDEcHgAbFBGcHDafiEEIFGbcdahahdEFiCGB",
|
||||
"dAIcebGFHgBEHFaCiDhcFdgIAbeIDBFaGeHcCeAIDHFgBfGhBcEIdABFgAHCDEIAHdeIFBcGeICGbDhaf",
|
||||
"dbFECIAgHIGaFDHBCeHEcAGbDiFFDBgheiacECGIAFHBDaIHDbceFGcHEbfaGDibfdHIGCEAgaiCEDFhb",
|
||||
"DbgiCFaehcaehbdIGFHIfAEGCBDgfCeIHDABIHAbDCGFEEdbFGAhCIBEDcaiFHGaGHDfBEIcFciGhEbdA",
|
||||
"DEbfcgaHIFaIHDbCegcHGaiEFbDAfebhdIGcidCEGABFHgBHcFIdAEhgfibceDaeIdGafHcBBCaDEhGIF",
|
||||
"dEGHAfIbCBIHcEGFDACFABDIEGhFhbagCdIEEDCfibhAGGAIeHdBCFIGfdcHaEbHCeibaGFDAbdgFechI",
|
||||
"DFACBhGIEgchaIeFDbBEIFDGaChAHFbgidEcedcHAfbGIIGbdecHAFFBGECDIHAcadIHbefGHiEgFACBD",
|
||||
"dfbeahiCgECgiDbfHAAihGFCdeBGbFHCDEAihDIAgecBFcaEBIFgDHFGDCHaBIEIeADBGHFcBHcFEIaGd",
|
||||
"dfeGchaIBICAFbeHgdgBHdAIfceCHIAeBGdfAGBIFDEHcFEDHGCIBaEDgcIFBAHHIfbdAceGbACehGDFi",
|
||||
"dGaICHBFEFBIAedHcGCEhgBFIADHcEdfagBiaIbeHGCDfgDFciBEHAEAdHGCFIbbhgFdIaEcIFcbAEDGh",
|
||||
"dGeihbaCFHFBCADgIECiaeFGBDHEDIgBHcfAbACFDiHEGGHFaEcibdaehBIFDGcFBGdcaEhIICDHgEfaB",
|
||||
"dHcIFGABEIegCABFdHFbADHEIgCaGFebdCHIEDHaCIBFgciBHGFEadbaDGechiFhCIFDageBGfEBiHDca",
|
||||
"dHGaicbeFEacFHBIDgIbFeDghcAHeIDcAFGBFdbHgECaIGcABFIDHeaIHcEFgbDBfDGAHEiCCGEIbdAFh",
|
||||
"DICbAEhgfFaGIHDBCEbEHFCGADIEcBGDIFAhaDFCeHibggHiAFBdECIbehGAcFdcGadIFEhBhFDebcGia",
|
||||
"diGbCEaHFAfCIdhEBghBeAGFCdiCEbDHGFIAIgdfEaBcHFaHcIBgedgcAhBdIFEEDiGfchabbHFEaidgc",
|
||||
"diGEHFBCAHcaIBGEdfeFbCadIhgiGEDFAHBCaHFBcEDGICBDHGIfAegdcFEBAIHbehAIcGfDFaIGdhceb",
|
||||
"eaBdfIHGcIGdCHbFAEfHCAGEDBigcebdHAIFhFAiECGdBBdifAGECHabFecdIHGDiHGBFCeaCEgHIabFD",
|
||||
"EABFHiGcDHdICgaebfcGFBdeAHIaCDHIgBFEbFeaCDIGHiHGEFBdACfbaDECHIGgEHiBfcdadICGahFeB",
|
||||
"eacIBFhdgGHBecDaFIDIfgAhCBECFGHDEiabIdHaGBECFabeCFIGHDfCiBHGdeAHgdFEabIcBEADiCFGh",
|
||||
"EadCFbIhGbGCiahdeffhiGedcABGDbEiFHCACEadhgbFIIfHBcAeGddCfabegiHaBEHGIFDChIGFDcaBE"
|
||||
]
|
||||
|
||||
export class LevelManager {
|
||||
private static instance: LevelManager
|
||||
public static getInstance(): LevelManager {
|
||||
if (!LevelManager.instance) {
|
||||
LevelManager.instance = new LevelManager()
|
||||
}
|
||||
return LevelManager.instance
|
||||
}
|
||||
|
||||
private static instance: LevelManager
|
||||
public static getInstance(): LevelManager {
|
||||
if (!LevelManager.instance) {
|
||||
LevelManager.instance = new LevelManager()
|
||||
private levelMap: Map<string, Array<string>> = new Map()
|
||||
|
||||
public init(): void {
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Easy, Easy)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Medium, Medium)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Hard, Hard)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Expert, Expert)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Extreme, Extreme)
|
||||
// 检查关卡配置
|
||||
this.levelMap.forEach((list, key) => {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
if (list[i].length != 81) {
|
||||
console.error("关卡配置有误>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", key, i)
|
||||
}
|
||||
return LevelManager.instance
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private levelMap: Map<string, Array<string>> = new Map()
|
||||
|
||||
public init(): void {
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Easy, Easy)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Medium, Medium)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Hard, Hard)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Expert, Expert)
|
||||
this.levelMap.set(config.DIFFICULTY_TYPE.Extreme, Extreme)
|
||||
//检查关卡配置
|
||||
this.levelMap.forEach((list, key)=>{
|
||||
for (var i=0; i<list.length; i++) {
|
||||
if (list[i].length != 81) {
|
||||
console.error("关卡配置有误>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", key, i)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
public getLevelList(difficulty: string): Array<string> {
|
||||
const list = this.levelMap.get(difficulty)
|
||||
return list
|
||||
}
|
||||
|
||||
public getLevelList(difficulty: string): Array<string> {
|
||||
var list = this.levelMap.get(difficulty)
|
||||
return list
|
||||
public getLevelStr(difficulty: string, index: number): string {
|
||||
const list = this.levelMap.get(difficulty)
|
||||
if (list) {
|
||||
return list[index]
|
||||
}
|
||||
|
||||
public getLevelStr(difficulty: string, index: number): string {
|
||||
var list = this.levelMap.get(difficulty)
|
||||
if (list) {
|
||||
return list[index]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
|
||||
|
||||
import type { DataStage } from "../types/global"
|
||||
import { config } from "../constants/config"
|
||||
import { DataStage, createDataStage } from "../types/global"
|
||||
import { createDataStage } from "../types/global"
|
||||
import { DOStage } from "./DOStage"
|
||||
import { DOUser } from "./DOUser"
|
||||
import { LevelManager } from "./LevelManager"
|
||||
|
||||
|
||||
export class StorageManager {
|
||||
|
||||
private static instance: StorageManager
|
||||
public static getInstance(): StorageManager {
|
||||
if (!StorageManager.instance) {
|
||||
@@ -17,23 +14,21 @@ export class StorageManager {
|
||||
return StorageManager.instance
|
||||
}
|
||||
|
||||
private user: DOUser;
|
||||
private user: DOUser
|
||||
private userChanged = false
|
||||
|
||||
private stageID: string = "";
|
||||
private stageID: string = ""
|
||||
private stageChanged = false
|
||||
private stageMap: Map<string, DOStage> = new Map();
|
||||
private stageMap: Map<string, DOStage> = new Map()
|
||||
|
||||
|
||||
public init(): void {
|
||||
if (!this.user) {
|
||||
var jsonStr = Laya.LocalStorage.getItem("user")
|
||||
if (jsonStr) {
|
||||
this.user = new DOUser(JSON.parse(jsonStr))
|
||||
}
|
||||
else {
|
||||
this.user = new DOUser({dones: new Array(), trophy_records: new Array(), progresses: new Array()})
|
||||
}
|
||||
const jsonStr = Laya.LocalStorage.getItem("user")
|
||||
if (jsonStr) {
|
||||
this.user = new DOUser(JSON.parse(jsonStr))
|
||||
} else {
|
||||
this.user = new DOUser({ dones: [], trophy_records: [], progresses: [] })
|
||||
}
|
||||
}
|
||||
this.userChanged = false
|
||||
|
||||
@@ -41,72 +36,70 @@ export class StorageManager {
|
||||
this.stageChanged = false
|
||||
}
|
||||
|
||||
|
||||
public getUser(): DOUser {
|
||||
return this.user
|
||||
}
|
||||
|
||||
public saveUser(): void {
|
||||
if (this.userChanged) {
|
||||
this.userChanged = false
|
||||
if (this.user) {
|
||||
var jsonStr = JSON.stringify(this.user.getData())
|
||||
const jsonStr = JSON.stringify(this.user.getData())
|
||||
Laya.LocalStorage.setItem("user", jsonStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public onUserChanged(): void {
|
||||
this.userChanged = true
|
||||
}
|
||||
|
||||
|
||||
public newStage(stageID: string, type: number, name: string, difficulty: string = config.DIFFICULTY_TYPE.Easy): DOStage {
|
||||
this.stageID = stageID
|
||||
this.stageChanged = true
|
||||
|
||||
var index
|
||||
if (type == config.STAGE_TYPE.MAIN) {//主线关卡
|
||||
let index
|
||||
if (type == config.STAGE_TYPE.MAIN) { // 主线关卡
|
||||
index = this.user.get_progress(difficulty)
|
||||
var levelStr = LevelManager.getInstance().getLevelStr(difficulty, index)
|
||||
if (!levelStr || levelStr.length <= 0) {//说明当前难度已经打通了,所以给他从头开始
|
||||
const levelStr = LevelManager.getInstance().getLevelStr(difficulty, index)
|
||||
if (!levelStr || levelStr.length <= 0) { // 说明当前难度已经打通了,所以给他从头开始
|
||||
index = 0
|
||||
this.user.update_progress(difficulty, index)
|
||||
}
|
||||
}
|
||||
else if (type == config.STAGE_TYPE.DC) {//每天调整如果已经创建过关卡那么就用之前的关卡配置
|
||||
var value = this.getStage(stageID)
|
||||
} else if (type == config.STAGE_TYPE.DC) { // 每天调整如果已经创建过关卡那么就用之前的关卡配置
|
||||
const value = this.getStage(stageID)
|
||||
if (value) {
|
||||
difficulty = value.get_difficulty()
|
||||
index = value.get_stageIndex()
|
||||
}
|
||||
else {
|
||||
var random = Math.random()
|
||||
difficulty = config.DIFFICULTY_LIST[Math.floor(random*config.DIFFICULTY_LIST.length)]
|
||||
var list = LevelManager.getInstance().getLevelList(difficulty)
|
||||
} else {
|
||||
let random = Math.random()
|
||||
difficulty = config.DIFFICULTY_LIST[Math.floor(random * config.DIFFICULTY_LIST.length)]
|
||||
const list = LevelManager.getInstance().getLevelList(difficulty)
|
||||
random = Math.random()
|
||||
index = Math.floor(random*list.length)
|
||||
index = Math.floor(random * list.length)
|
||||
console.log("每日挑战随机一个关卡", difficulty, index)
|
||||
}
|
||||
}
|
||||
|
||||
this.user.update_stage_done(this.stageID, 0)//重置关卡进度
|
||||
var dataStage: DataStage = createDataStage(stageID, type, name, difficulty, index)
|
||||
var doStage: DOStage = new DOStage(dataStage)
|
||||
this.user.update_stage_done(this.stageID, 0)// 重置关卡进度
|
||||
const dataStage: DataStage = createDataStage(stageID, type, name, difficulty, index)
|
||||
const doStage: DOStage = new DOStage(dataStage)
|
||||
this.stageMap.set(stageID, doStage)
|
||||
return doStage
|
||||
}
|
||||
|
||||
public getStage(stageID: string): DOStage {//获取指定关卡数据对象,注意判空
|
||||
public getStage(stageID: string): DOStage { // 获取指定关卡数据对象,注意判空
|
||||
if (this.stageMap.has(stageID)) {
|
||||
var doStage: DOStage = this.stageMap.get(stageID)
|
||||
var doStage: DOStage = this.stageMap.get(stageID)
|
||||
return doStage
|
||||
} else {
|
||||
const jsonStr = Laya.LocalStorage.getItem(stageID)
|
||||
if (jsonStr) {
|
||||
const dataStage: DataStage = JSON.parse(jsonStr)
|
||||
var doStage: DOStage = new DOStage(dataStage)
|
||||
this.stageMap.set(stageID, doStage)
|
||||
return doStage
|
||||
}
|
||||
else {
|
||||
var jsonStr = Laya.LocalStorage.getItem(stageID)
|
||||
if (jsonStr) {
|
||||
var dataStage: DataStage = JSON.parse(jsonStr)
|
||||
var doStage: DOStage = new DOStage(dataStage)
|
||||
this.stageMap.set(stageID, doStage)
|
||||
return doStage
|
||||
}
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
@@ -118,8 +111,8 @@ export class StorageManager {
|
||||
Laya.LocalStorage.removeItem(stageID)
|
||||
}
|
||||
|
||||
public loadStage(stageID: string): DOStage {//载入关卡
|
||||
var doStage = this.getStage(stageID)
|
||||
public loadStage(stageID: string): DOStage { // 载入关卡
|
||||
const doStage = this.getStage(stageID)
|
||||
if (doStage) {
|
||||
this.stageID = stageID
|
||||
this.stageChanged = false
|
||||
@@ -129,24 +122,23 @@ export class StorageManager {
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
public saveStage(): void {
|
||||
if (this.stageChanged) {
|
||||
this.stageChanged = false
|
||||
if (this.stageMap.has(this.stageID)) {
|
||||
var doStage = this.stageMap.get(this.stageID)
|
||||
var jsonStr = JSON.stringify(doStage.getData())
|
||||
Laya.LocalStorage.setItem(this.stageID, jsonStr)
|
||||
const doStage = this.stageMap.get(this.stageID)
|
||||
const jsonStr = JSON.stringify(doStage.getData())
|
||||
Laya.LocalStorage.setItem(this.stageID, jsonStr)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public onStageChanged(): void {
|
||||
this.stageChanged = true
|
||||
}
|
||||
|
||||
|
||||
public cleanAll(): void {
|
||||
this.user = new DOUser({dones: new Array(), trophy_records: new Array(), progresses: new Array()})
|
||||
this.user = new DOUser({ dones: [], trophy_records: [], progresses: [] })
|
||||
this.userChanged = false
|
||||
|
||||
this.stageID = ""
|
||||
@@ -155,5 +147,4 @@ export class StorageManager {
|
||||
|
||||
Laya.LocalStorage.clear()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
import { respath } from "../constants/respath"
|
||||
import { StorageManager } from "./StorageManager"
|
||||
import { Stage } from "../views/Stage"
|
||||
import { DailyChallenge } from "../views/dc/DailyChallenge"
|
||||
import { TrophyRecord } from "../types/global"
|
||||
import { TrophyClaim } from "../views/dc/TrophyClaim"
|
||||
import { TrophyShow } from "../views/dc/TrophyShow"
|
||||
import type { TrophyRecord } from "../types/global"
|
||||
import type { DOStage } from "./DOStage"
|
||||
import { config } from "../constants/config"
|
||||
import { respath } from "../constants/respath"
|
||||
import { DailyChallenge } from "../views/dc/DailyChallenge"
|
||||
import { TrophyClaim } from "../views/dc/TrophyClaim"
|
||||
import { TrophyRoom } from "../views/dc/TrophyRoom"
|
||||
import { DOStage } from "./DOStage"
|
||||
import { GamePause } from "../views/GamePause"
|
||||
import { GameOver } from "../views/GameOver"
|
||||
import { TrophyShow } from "../views/dc/TrophyShow"
|
||||
import { GameDone } from "../views/GameDone"
|
||||
import { GameOver } from "../views/GameOver"
|
||||
import { GamePause } from "../views/GamePause"
|
||||
import { Stage } from "../views/Stage"
|
||||
import { TopBar } from "../views/TopBar"
|
||||
|
||||
import { StorageManager } from "./StorageManager"
|
||||
|
||||
const { regClass, property } = Laya
|
||||
|
||||
@@ -36,8 +35,7 @@ export class UIManager extends Laya.Script {
|
||||
if (config.H_SCREEN) {
|
||||
this.UIRoot.width = config.DESIGN_HEIGHT
|
||||
this.UIRoot.height = config.DESIGN_WIDTH
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
this.UIRoot.width = config.DESIGN_WIDTH
|
||||
this.UIRoot.height = config.DESIGN_HEIGHT
|
||||
}
|
||||
@@ -45,48 +43,47 @@ export class UIManager extends Laya.Script {
|
||||
return this.UIRoot
|
||||
}
|
||||
|
||||
private topbar : TopBar
|
||||
private topbar: TopBar
|
||||
private stage: Stage
|
||||
private dc_ui: DailyChallenge
|
||||
private trophyRoom: TrophyRoom
|
||||
|
||||
|
||||
onStart(): void {
|
||||
if (config.H_SCREEN) {
|
||||
this.loadTopBarUI()
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
this.loadHomeUI()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public loadHomeUI(): void {
|
||||
Laya.loader.load(respath.home_ui_res).then((go)=>{
|
||||
var prefab = go.create()
|
||||
Laya.loader.load(respath.home_ui_res).then((go) => {
|
||||
const prefab = go.create()
|
||||
this.getUIRoot().addChild(prefab)
|
||||
})
|
||||
}
|
||||
|
||||
public loadTopBarUI(): void {
|
||||
Laya.loader.load(respath.topbar_ui_res).then((go)=>{
|
||||
var prefab = go.create()
|
||||
Laya.loader.load(respath.topbar_ui_res).then((go) => {
|
||||
const prefab = go.create()
|
||||
this.topbar = this.getUIRoot().addChild(prefab).getComponent(TopBar)
|
||||
})
|
||||
}
|
||||
|
||||
public setTopbarTo(isClassic: boolean): void {
|
||||
if (this.topbar) {
|
||||
this.topbar.onClickTab(isClassic)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public loadDCUI(): void {
|
||||
Laya.loader.load(respath.dc_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
Laya.loader.load(respath.dc_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
this.dc_ui = this.getUIRoot().addChild(prefab).getComponent(DailyChallenge)
|
||||
this.dc_ui.loadWithMonth()
|
||||
})
|
||||
}
|
||||
|
||||
public closeDCUI(): void {
|
||||
if (this.dc_ui) {
|
||||
this.dc_ui.owner.destroy()
|
||||
@@ -95,46 +92,47 @@ export class UIManager extends Laya.Script {
|
||||
}
|
||||
|
||||
public loadTrophyClaimUI(record: TrophyRecord): void {
|
||||
Laya.loader.load(respath.trophy_claim_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
var obj = this.getUIRoot().addChild(prefab).getComponent(TrophyClaim)
|
||||
Laya.loader.load(respath.trophy_claim_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
const obj = this.getUIRoot().addChild(prefab).getComponent(TrophyClaim)
|
||||
obj.onSetShow(record)
|
||||
})
|
||||
}
|
||||
|
||||
public loadTrophyUI(): void {
|
||||
Laya.loader.load(respath.trophy_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
Laya.loader.load(respath.trophy_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
this.trophyRoom = this.getUIRoot().addChild(prefab).getComponent(TrophyRoom)
|
||||
})
|
||||
}
|
||||
|
||||
public closeTrophyUI(): void {
|
||||
if (this.trophyRoom) {
|
||||
this.trophyRoom.owner.destroy()
|
||||
this.trophyRoom = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public loadTrophyShowUI(record: TrophyRecord): void {
|
||||
Laya.loader.load(respath.trophy_show_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
var obj = this.getUIRoot().addChild(prefab).getComponent(TrophyShow)
|
||||
Laya.loader.load(respath.trophy_show_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
const obj = this.getUIRoot().addChild(prefab).getComponent(TrophyShow)
|
||||
obj.onSetShow(record)
|
||||
})
|
||||
}
|
||||
|
||||
public loadStageUI(stageID: string): void {
|
||||
if (this.stage) {
|
||||
this.stage.onLoadStage(StorageManager.getInstance().loadStage(stageID))
|
||||
}
|
||||
else {
|
||||
Laya.loader.load(respath.stage_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
this.stage.onLoadStage(StorageManager.getInstance().loadStage(stageID))
|
||||
} else {
|
||||
Laya.loader.load(respath.stage_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
this.stage = this.getUIRoot().addChild(prefab).getComponent(Stage)
|
||||
this.stage.onLoadStage(StorageManager.getInstance().loadStage(stageID))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
public closeStageUI(): void {
|
||||
if (this.stage) {
|
||||
this.stage.owner.destroy()
|
||||
@@ -143,25 +141,26 @@ export class UIManager extends Laya.Script {
|
||||
}
|
||||
|
||||
public loadGamePauseUI(doStage: DOStage): void {
|
||||
Laya.loader.load(respath.gamepause_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
var ui = this.getUIRoot().addChild(prefab).getComponent(GamePause)
|
||||
ui.onSetStageInfo(doStage)
|
||||
})
|
||||
}
|
||||
public loadGameOverUI(doStage: DOStage): void {
|
||||
Laya.loader.load(respath.gameover_ui_res()).then((go)=>{
|
||||
var prefab = go.create()
|
||||
var ui = this.getUIRoot().addChild(prefab).getComponent(GameOver)
|
||||
ui.onSetStageInfo(doStage)
|
||||
})
|
||||
}
|
||||
public loadGameDoneUI(isClassic: boolean, doStage: DOStage): void {
|
||||
Laya.loader.load(respath.gamedone_ui_res(isClassic)).then((go)=>{
|
||||
var prefab = go.create()
|
||||
var ui = this.getUIRoot().addChild(prefab).getComponent(GameDone)
|
||||
Laya.loader.load(respath.gamepause_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
const ui = this.getUIRoot().addChild(prefab).getComponent(GamePause)
|
||||
ui.onSetStageInfo(doStage)
|
||||
})
|
||||
}
|
||||
|
||||
public loadGameOverUI(doStage: DOStage): void {
|
||||
Laya.loader.load(respath.gameover_ui_res()).then((go) => {
|
||||
const prefab = go.create()
|
||||
const ui = this.getUIRoot().addChild(prefab).getComponent(GameOver)
|
||||
ui.onSetStageInfo(doStage)
|
||||
})
|
||||
}
|
||||
|
||||
public loadGameDoneUI(isClassic: boolean, doStage: DOStage): void {
|
||||
Laya.loader.load(respath.gamedone_ui_res(isClassic)).then((go) => {
|
||||
const prefab = go.create()
|
||||
const ui = this.getUIRoot().addChild(prefab).getComponent(GameDone)
|
||||
ui.onSetStageInfo(doStage)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user