[add] 讀表

This commit is contained in:
建喵 2022-06-05 15:05:54 +08:00
parent 2453ccb670
commit 34b9ede404
199 changed files with 16352 additions and 639 deletions

13
package-lock.json generated
View File

@ -18,6 +18,7 @@
"vue-loading-overlay": "^5.0.3"
},
"devDependencies": {
"@types/node": "^17.0.39",
"@vitejs/plugin-vue": "^2.3.0",
"typescript": "^4.5.4",
"vite": "^2.9.0",
@ -157,6 +158,12 @@
"@types/lodash": "*"
}
},
"node_modules/@types/node": {
"version": "17.0.39",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.39.tgz",
"integrity": "sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw==",
"dev": true
},
"node_modules/@vitejs/plugin-vue": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz",
@ -1934,6 +1941,12 @@
"@types/lodash": "*"
}
},
"@types/node": {
"version": "17.0.39",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.39.tgz",
"integrity": "sha512-JDU3YLlnPK3WDao6/DlXLOgSNpG13ct+CwIO17V8q0/9fWJyeMJJ/VyZ1lv8kDprihvZMydzVwf0tQOqGiY2Nw==",
"dev": true
},
"@vitejs/plugin-vue": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz",

View File

@ -18,6 +18,7 @@
"vue-loading-overlay": "^5.0.3"
},
"devDependencies": {
"@types/node": "^17.0.39",
"@vitejs/plugin-vue": "^2.3.0",
"typescript": "^4.5.4",
"vite": "^2.9.0",

View File

@ -12,5 +12,3 @@ import "./script/Engine/Utils/CCExtensions/NumberExtension";
createApp(App).use(ElementPlus, { locale }).mount("#app");
// import("dayjs/locale/zh-tw");
// dayjs.locale("zh-tw");

View File

@ -1,6 +1,7 @@
// import { BJ_Casino_Data } from "./BJ_Casino_Data";
import dayjs from "dayjs";
import { Ref, ref } from "vue";
import MainControl, { DownloadForm } from "./Common/MainControl/MainControl";
export class BJ_Casino_BotController {
//#region Lifecycle
@ -26,24 +27,17 @@ export class BJ_Casino_BotController {
*
*/
constructor() {
this.onLoad();
}
public async onLoad(): Promise<void> {
// await LazyLoad.Init();
import("dayjs/locale/zh-tw");
dayjs.locale("zh-tw");
// this.BJ_Casino = client.BJ_Casino;
// this.onLoad();
await MainControl.DownloadForm(DownloadForm.FormType.Formread);
}
// public async onLoad() {
// await this.SetInit();
// };
// public async SetInit() {
// while (this.BJ_Casino?.Client.isLoading.value) {
// await Tools.Sleep(50);
// }
// this._client.Title.value = this.BJ_Casino?.Title;
// this.SendData();
// };
//#endregion
//#region Custom

View File

@ -2,8 +2,11 @@ import { Ref, ref } from "vue";
import CSMessage from "./Base/CSMessage";
import { BJ_Casino_Bot } from "./BJ_Casino_Bot";
import { SeatListRequest } from "./Common/ChooseSeat/ChooseSeatRequest";
import MainControl from "./Common/MainControl/MainControl";
import { SlotInRequest, SlotOutRequest } from "./Common/Subgame/GameRequest";
import { INetResponse } from "./Engine/CatanEngine/NetManagerV2/Core/INetResponse";
import CSSettingsV3 from "./FormTable/CSSettingsV3";
import { SlotsetTableRow } from "./FormTable/Tables/SlotsetTable";
import { Tools } from "./Tools";
export class BJ_Casino_Bot_Lobby {
@ -77,6 +80,7 @@ export class BJ_Casino_Bot_Lobby {
if (this.IsSlotIn.value || slot === 0 || slot == null) {
return;
}
await this._loadJSON(slot);
this.IsSlotIn.value = true;
let table: number = 1;
let req: SeatListRequest = new SeatListRequest(hall, slot);
@ -126,6 +130,17 @@ export class BJ_Casino_Bot_Lobby {
this._bj_Casino_Bot.SlotShow.value = false;
}
private async _loadJSON(slotid: number): Promise<void> {
let slotset: SlotsetTableRow = CSSettingsV3.Slotset[slotid];
let formName: string[] = slotset.FormName;
let parallel: Promise<void>[] = [];
for (let i: number = 0; i < formName.length; i++) {
await MainControl.DownloadFormSetting(formName[i]);
}
// set Form
await Promise.all(parallel);
}
public OnclickChangeSlot(): void {
// await this._login();
}

View File

@ -3,6 +3,7 @@ import { BJ_Casino_Bot } from "../../../BJ_Casino_Bot";
import { BJ_Casino_Bot_Slot } from "../../../BJ_Casino_Bot_Slot";
import { INetResponse } from "../../../Engine/CatanEngine/NetManagerV2/Core/INetResponse";
import { NumberEx } from "../../../Engine/Utils/Number/NumberEx";
import CSSettingsV3 from "../../../FormTable/CSSettingsV3";
import { CommonSlotFgSpinRequest, CommonSlotSpinRequest } from "../Request/CommonSlotRequest";
import { Slot_ChoiceRequest } from "../Request/SlotRequest";
@ -15,7 +16,6 @@ export class SlotBase {
public get SlotReqRespIsCount(): boolean { return false; }
public get HasRetriggerFreeSpin(): boolean { return false; }
public GameRunData: JSON = null;
public ChoiceFreeCount: Object = {};
//#endregion
@ -153,8 +153,13 @@ export class SlotBase {
if (result.IsValid) {
if (this.SlotReqRespIsCount) {
return result.Data;
} else if (this.ChoiceFreeCount[result.Data]) {
return this.ChoiceFreeCount[result.Data];
} else {
let slotNameSetting: string = CSSettingsV3.Slotset[this.ID].NameSetting;
let free_info_id: number = result.Data;
let slotSetting: any = CSSettingsV3[slotNameSetting];
let freeInfo: any = slotSetting.FreeInfo;
let count: number = freeInfo[free_info_id].Spins;
return count;
}
}
return 0;

View File

@ -5,6 +5,8 @@ export class Slot50 extends SlotBase {
//#region public
public get ID(): number { return 50; }
public get FreeID(): number { return 1; }
public get HasChoiceFreeGame(): boolean { return true; }
public get HasRetriggerFreeSpin(): boolean { return true; }
//#endregion

View File

@ -7,13 +7,6 @@ export class Slot62 extends SlotBase {
public get ID(): number { return 62; }
public get FreeID(): number { return 3; }
public get HasChoiceFreeGame(): boolean { return true; }
public ChoiceFreeCount: Object = {
"1": 15,
"2": 10,
"3": 5,
"4": 3,
"5": 1,
};
//#endregion

View File

@ -0,0 +1,75 @@
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
import { Tools } from "../../Tools";
export class MainControl {
//#region DownloadForm Function
/**
*
* @param formtype FormType
*/
public static async DownloadForm(formtype: DownloadForm.FormType): Promise<void> {
if (DownloadForm.DownloadFormData.DownloadSuccess.has(formtype)) {
console.warn(`CSSettingsV3 ${formtype} 已經載過`);
return;
}
DownloadForm.DownloadFormData.DownloadSuccess.set(formtype, true);
let needForm: string[] = DownloadForm.DownloadFormData[`${formtype}Form`];
let parallel: Promise<void>[] = [];
for (let i: number = 0; i < needForm.length; i++) {
parallel.push(this.DownloadFormSetting(needForm[i]));
}
// set Form
await Promise.all(parallel);
}
/**
*
* @param formname
*/
public static async DownloadFormSetting(formname: string): Promise<void> {
// http://patch-dev.online-bj.com/shared/jsons/slot_050.json
let fileUrl: string = `${formname}.json`;
fileUrl = "http://patch-dev.online-bj.com/shared/jsons/" + fileUrl;
fileUrl = fileUrl + "?v=" + Date.now();
let isdownloading: boolean = true;
let xhr: XMLHttpRequest = new XMLHttpRequest();
// xhr.withCredentials = true;
xhr.onreadystatechange = function (): void {
if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 400)) {
let res: any = {};
res.json = JSON.parse(xhr.responseText);
res.name = formname;
TableManager.AddJsonAsset(res);
isdownloading = false;
}
};
xhr.open("GET", fileUrl);
xhr.send();
while (isdownloading) {
await Tools.Sleep(100);
}
}
//#endregion
}
export default MainControl;
//#region DownloadForm
export module DownloadForm {
export enum FormType {
Formread = "formread",
}
export class DownloadFormData {
/** 已下載的表 */
public static DownloadSuccess: Map<string, boolean> = new Map<string, boolean>();
/** Bag需要的表(xxxx.json) */
public static formreadForm: string[] = ["formread", "slotset"];
}
}
//#endregion

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "a69fe64f-177f-4e4b-83f0-1f418203d85f",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "f9edb32f-c4ab-4e5d-8270-71fa609e1db7",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "0c3d1ca6-bdaf-4a00-b209-6ef460802cdc",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "01b35dee-e6e0-4a6e-a73c-3b49c37f1c5f",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "ea9bf762-40a7-4bab-b949-8d5b3d4289e2",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "cc645b73-6192-414d-a5bc-4220c24e322d",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "61d770ec-24e2-425b-b66b-2b03e192e45b",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "ed703ebd-efd4-4ec9-9b84-de748ef8f9e8",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "09d69d12-a6d1-4bb1-bcfe-faa811632467",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "43bf5724-e939-4189-b981-c32ef694e5a5",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "9f510f2b-83d8-4097-8683-32d6134323fb",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "9a414131-91a8-4d02-9921-9d1ee01764c3",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "fbfe97a8-24ca-4f67-b049-323652c7194b",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "3cf9e5c3-520f-48a9-8821-9be76d519765",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,11 +1,26 @@
import { IEnumeratorV2, IEnumeratorV2Started } from "../IEnumeratorV2";
import { CoroutineExecutor } from "./CoroutineExecutor";
let EnumeratorExecutor_1: typeof import("./EnumeratorExecutor");
export abstract class BaseEnumerator implements IEnumeratorV2 {
public nextEnumerator: BaseEnumerator;
abstract next(value?: any): IteratorResult<any>;
/**
*
*/
constructor() {
this.onLoad();
}
async onLoad() {
EnumeratorExecutor_1 = await import(`./EnumeratorExecutor`);
return;
}
Start(target?: any): IEnumeratorV2Started {
let executor = LazyLoad.EnumeratorExecutor(this, target);
CoroutineExecutor.instance.StartCoroutine(executor);
@ -24,7 +39,7 @@ export abstract class BaseEnumerator implements IEnumeratorV2 {
return this;
}
}
ThenSerial(...iterators: Iterator<any>[]): IEnumeratorV2 {
let last = BaseEnumerator.getLastEnumerator(this);
for (let iterator of iterators) {
@ -43,7 +58,7 @@ export abstract class BaseEnumerator implements IEnumeratorV2 {
return this.Then(LazyLoad.ParallelEnumerator(...iterators));
}
ThenAction(action: Function, delaySeconds?:number): IEnumeratorV2 {
ThenAction(action: Function, delaySeconds?: number): IEnumeratorV2 {
if (delaySeconds > 0) {
return this.ThenSerial(LazyLoad.WaitTimeEnumerator(delaySeconds), LazyLoad.ActionEnumerator(action));
} else {
@ -65,23 +80,55 @@ export abstract class BaseEnumerator implements IEnumeratorV2 {
}
module LazyLoad {
let EnumeratorExecutor_Class: typeof import("./EnumeratorExecutor");
let SingleEnumerator_Class: typeof import("./SingleEnumerator");
let ParallelEnumerator_Class: typeof import("./ParallelEnumerator");
let WaitTimeEnumerator_Class: typeof import("./WaitTimeEnumerator");
let ActionEnumerator_Class: typeof import("./ActionEnumerator");
export async function Init(): Promise<any> {
EnumeratorExecutor_Class = await import(`./EnumeratorExecutor`);
SingleEnumerator_Class = await import(`./SingleEnumerator`);
ParallelEnumerator_Class = await import(`./ParallelEnumerator`);
WaitTimeEnumerator_Class = await import(`./WaitTimeEnumerator`);
ActionEnumerator_Class = await import(`./ActionEnumerator`);
return null;
}
export function EnumeratorExecutor(enumerator: BaseEnumerator, target: any) {
return new (require("./EnumeratorExecutor") as typeof import("./EnumeratorExecutor")).EnumeratorExecutor(enumerator, target);
// return new (require("./EnumeratorExecutor") as typeof import("./EnumeratorExecutor")).EnumeratorExecutor(enumerator, target);
return new (EnumeratorExecutor_Class).EnumeratorExecutor(enumerator, target);
}
export function SingleEnumerator(iterator: Iterator<any>) {
return new (require("./SingleEnumerator") as typeof import("./SingleEnumerator")).SingleEnumerator(iterator);
// return new (require("./SingleEnumerator") as typeof import("./SingleEnumerator")).SingleEnumerator(iterator);
return new (SingleEnumerator_Class).SingleEnumerator(iterator);
}
export function ParallelEnumerator(...iterators: Iterator<any>[]) {
return new (require("./ParallelEnumerator") as typeof import("./ParallelEnumerator")).ParallelEnumerator(iterators);
// return new (require("./ParallelEnumerator") as typeof import("./ParallelEnumerator")).ParallelEnumerator(iterators);
return new (ParallelEnumerator_Class).ParallelEnumerator(iterators);
}
export function WaitTimeEnumerator(seconds: number) {
return new (require("./WaitTimeEnumerator") as typeof import("./WaitTimeEnumerator")).WaitTimeEnumerator(seconds);
// return new (require("./WaitTimeEnumerator") as typeof import("./WaitTimeEnumerator")).WaitTimeEnumerator(seconds);
return new (WaitTimeEnumerator_Class).WaitTimeEnumerator(seconds);
}
export function ActionEnumerator(action: Function) {
return new (require("./ActionEnumerator") as typeof import("./ActionEnumerator")).ActionEnumerator(action);
// return new (require("./ActionEnumerator") as typeof import("./ActionEnumerator")).ActionEnumerator(action);
return new (ActionEnumerator_Class).ActionEnumerator(action);
}
}
}
export default LazyLoad;
// export class LazyLoadInit {
// //#region public
// public static async Init(): Promise<any> {
// LazyLoad.EnumeratorExecutor_2 = await import(`./EnumeratorExecutor`);
// return null;
// }
// //#endregion
// }
// export default LazyLoadInit;

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "4084537c-c7e8-4d47-b283-39be77ef9685",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -10,10 +10,10 @@ export class CoroutineExecutor {
private _nextExecutors: EnumeratorExecutor[] = [];
private _isRunning: boolean = false;
private _cleanRemoved: boolean = false;
private _scheduler: console.Scheduler;
private _scheduler: any;
constructor() {
this._scheduler = console.director.getScheduler();
// this._scheduler = cc.director.getScheduler();
this._scheduler.enableForTarget(this);
this._scheduler.scheduleUpdate(this, 0, true);
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "f25b1e42-90d8-4fc0-9925-6e7e92296d57",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "91cb70ed-e6f9-4ce0-b7c5-1720087b3bd7",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "017ebc9a-5152-4f94-bbaf-e3b914e87b41",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "c439d019-2da8-48b8-a65b-bff928d0fda8",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "a3038e6f-1bb4-4aff-a686-b69209df3592",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "dfd32c11-76f6-4e38-9272-1d7966d1ef3c",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,10 +1,10 @@
import { IEnumeratorV2, IEnumeratorV2Started } from "./IEnumeratorV2";
import { BaseEnumerator } from "./Core/BaseEnumerator";
import { SingleEnumerator } from "./Core/SingleEnumerator";
import { ParallelEnumerator } from "./Core/ParallelEnumerator";
import { WaitTimeEnumerator } from "./Core/WaitTimeEnumerator";
import { ActionEnumerator } from "./Core/ActionEnumerator";
import { BaseEnumerator } from "./Core/BaseEnumerator";
import { CoroutineExecutor } from "./Core/CoroutineExecutor";
import { ParallelEnumerator } from "./Core/ParallelEnumerator";
import { SingleEnumerator } from "./Core/SingleEnumerator";
import { WaitTimeEnumerator } from "./Core/WaitTimeEnumerator";
import { IEnumeratorV2, IEnumeratorV2Started } from "./IEnumeratorV2";
export module CoroutineV2 {
/**
@ -16,7 +16,7 @@ export module CoroutineV2 {
/**
* IEnumeratorV2.Start(target),
* @param target
* @param target
*/
export function StopCoroutinesBy(target: any) {
CoroutineExecutor.instance.StopCoroutineBy(target);
@ -30,7 +30,7 @@ export module CoroutineV2 {
return iterator;
} else {
return new SingleEnumerator(iterator);
}
}
}
/**

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "fc38e505-bd37-44c3-9e0a-fd463bb88c51",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "df3ab07d-3d2b-4552-b454-29b95223ea85",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "6f870efd-e869-4415-9cf2-138ab667cd5d",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "5e6c027f-ce4b-47fa-968c-f3bb6059ad81",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "f97991b5-0da6-4220-ab29-13c8f8f7e405",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "339fcf27-bdb9-4b8f-ae18-dd54c9500145",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "c4cb0cd4-b98c-4f8e-b1e6-ac3b51281b28",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "94e55972-723c-4dab-9ebc-870bd5043fca",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "0cb7df7a-d0e7-4ce1-832e-4583cf3385e5",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "1af9e6af-3dc3-4d02-8b24-481adc07932a",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "c7f5f6a9-94fd-4f5f-9f0a-545cd14edca9",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "221e1688-cc40-450d-9248-464978540a85",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "7c3e375d-3672-42e7-8a45-dd5ecf9d5fe8",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "36534597-4273-48e8-bbeb-8dde4857d26f",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "90f2152c-2c37-4c7c-b3a3-04c8aee53c34",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "8e05805d-5ab8-4526-8463-f4c837e23534",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -0,0 +1,4 @@
export interface ITableJson {
cols: string[],
rows: any[],
}

View File

@ -0,0 +1,10 @@
export interface ITableRow {
Id: number;
}
/**
*
*/
export class WithoutRow implements ITableRow {
Id: number;
}

View File

@ -0,0 +1,21 @@
import { ITableRow } from "./ITableRow";
export abstract class TableBase<TRow extends ITableRow> extends Array<TRow> {
constructor() {
super();
Object.setPrototypeOf(this, new.target.prototype);
}
/**欄位數量 */
public get Count(): number { return this.length; }
/**取得全部鍵值 */
public get Keys(): string[] { return Object.keys(this); }
/**取得全部欄位值 */
public get Rows(): Array<TRow> { return Object["values"](this); }
// public get Rows(): Array<TRow> { return this; }
/**是否包含該Id值的欄位 */
public ContainsRow(id: number): boolean {
return id in this;
}
}

View File

@ -0,0 +1,13 @@
import { TableManager } from "../TableManager";
import { StringExampleTableRow, StringTableExample } from "./Tables/StringTableExample";
const { ccclass } = cc._decorator;
@ccclass
export default class CSSettingsV3Example {
private static _stringExample: StringTableExample;
/** 共用_字串表#string.xlsx */
public static get StringExample(): StringTableExample { return this._stringExample = this._stringExample || TableManager.InitTable("#string", StringTableExample, StringExampleTableRow); }
}

View File

@ -0,0 +1,82 @@
import CSSettingsV3Example from "./CSSettingsV3Example";
import { StringExampleTable } from "./Tables/StringTableExample";
const { ccclass, property } = cc._decorator;
@ccclass
export default class TableUseExample extends cc.Component {
start() {
//#region StringExample表
cc.log("----------------#stringExample");
cc.log(CSSettingsV3Example.StringExample instanceof StringExampleTable); // true
cc.log(Array.isArray(CSSettingsV3Example.StringExample)); // true, 所以Array相關的方法都可以拿來操作
cc.log(CSSettingsV3Example.StringExample.length);
cc.log(CSSettingsV3Example.StringExample.Count); // 跟length一樣
cc.log(CSSettingsV3Example.StringExample.ContainsRow(11)); // 是否包含id=11的Row
cc.log(11 in CSSettingsV3Example.StringExample); // 同上
cc.log(CSSettingsV3Example.StringExample[1].MsgZnCh);
cc.log(CSSettingsV3Example.StringExample[1]["MsgZnCh"]); // 同上
cc.log(CSSettingsV3Example["StringExample"][1]["MsgZnCh"]); // 同上
cc.log("----------------");
for (let row of CSSettingsV3Example.StringExample) {
if (row) { // 如果Row沒有連號, 那有可能取到undefined值, 要先判斷, 不想判斷就用 CSSettings.StringExample.Rows
cc.log(row.Id, row.MsgZnCh);
}
}
cc.log("----------------");
for (let id of CSSettingsV3Example.StringExample.Keys) {
cc.log(id); // 只會列出有值的id, undefined會跳過
}
cc.log("----------------");
for (let row of CSSettingsV3Example.StringExample.Rows) {
cc.log(row.Id, row.MsgZnCh); // 只會列出有值的Row, undefined會跳過
}
//#endregion
//#region StringExample表 #StringFilter表
cc.log("----------------#stringExample#string_filter");
//cc.log(CSSettings.StringExample.StringFilter instanceof StringFilterTable); // true
cc.log(Array.isArray(CSSettingsV3Example.StringExample.StringFilter)); // true, 所以Array相關的方法都可以拿來操作
cc.log(CSSettingsV3Example.StringExample.StringFilter.length);
cc.log(CSSettingsV3Example.StringExample.StringFilter.Count); // 跟length一樣
cc.log(CSSettingsV3Example.StringExample.StringFilter.ContainsRow(11)); // 是否包含id=11的Row
cc.log(11 in CSSettingsV3Example.StringExample.StringFilter); // 同上
cc.log(CSSettingsV3Example.StringExample.StringFilter[1].FilterWord);
cc.log(CSSettingsV3Example.StringExample.StringFilter[1]["FilterWord"]); // 同上
cc.log(CSSettingsV3Example["StringExample"]["StringFilter"][1]["FilterWord"]); // 同上
cc.log("----------------");
for (let row of CSSettingsV3Example.StringExample.StringFilter) {
if (row) { // 如果Row沒有連號, 那有可能取到undefined值, 要先判斷, 不想判斷就用 CSSettings.StringExample.StringFilter.Rows
cc.log(row.Id, row.FilterWord);
}
}
cc.log("----------------");
for (let id of CSSettingsV3Example.StringExample.StringFilter.Keys) {
cc.log(id); // 只會列出有值的id, undefined會跳過
}
cc.log("----------------");
for (let row of CSSettingsV3Example.StringExample.StringFilter.Rows) {
cc.log(row.Id, row.FilterWord); // 只會列出有值的Row, undefined會跳過
}
//#endregion
cc.log("----------------");
//CSSettingsV3.ResetTables(); // 重置表
}
}

View File

@ -0,0 +1,45 @@
import { ITableRow } from "../../Core/ITableRow";
import { TableBase } from "../../Core/TableBase";
import { TableManager } from "../../TableManager";
/**
* _字串表#string.xlsx
* ##, ##
*/
export class StringTableExample extends TableBase<StringExampleTableRow> {
private _stringFilter: StringFilterTable;
/** 共用_字串表#string.xlsx > #string_filter */
public get StringFilter(): StringFilterTable { return this._stringFilter = this._stringFilter || TableManager.InitTable("#string#string_filter", StringFilterTable, StringFilterTableRow); }
}
/**
* #string
*/
export class StringExampleTable extends TableBase<StringExampleTableRow> {}
export class StringExampleTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 英文訊息 */
MsgEn: string;
/** 繁體中文訊息 */
MsgZnTw: string;
/** 簡體中文讯息 */
MsgZnCh: string;
/** 越南文讯息 */
MsgVi: string;
/** 泰文讯息 */
MsgTh: string;
}
/**
* #string_filter
*/
export class StringFilterTable extends TableBase<StringFilterTableRow> {}
export class StringFilterTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 過濾字串 */
FilterWord: string;
}

View File

@ -0,0 +1,48 @@
import { ITableJson } from "./Core/ITableJson";
import { ITableRow } from "./Core/ITableRow";
export class TableManager {
private static _tableJsons: { [key: string]: ITableJson } = {};
public static AddJsonAssets(jsonAssets: any[]) {
if (!jsonAssets) return;
let newAssets: any[] = jsonAssets.concat();
for (let jsonAsset of newAssets) {
this.AddJsonAsset(jsonAsset);
}
}
public static AddJsonAsset(jsonAsset: any) {
if (!jsonAsset) {
return;
}
for (let tableName in jsonAsset.json) {
console.log(`TableV3 [${tableName}] json loaded`);
this._tableJsons[tableName] = jsonAsset.json[tableName];
}
}
public static GetTable(name: string): ITableJson {
return this._tableJsons[name];
}
public static InitTable<T extends Array<ITableRow>>(name: string, tableType: { new(): T }, rowType: { new(): ITableRow }): T {
let json = this._tableJsons[name];
if (!json) {
throw new Error(`TableV3 [${name}] 尚未載入json檔`);
}
let table = new tableType();
let cols = json.cols;
let colLength = cols.length;
let rows = json.rows;
for (let r of rows) {
let trow = new rowType();
for (let i = 0; i < colLength; i++) {
trow[cols[i]] = r[i];
}
table[trow.Id] = trow;
}
//cc.log(`TableV3 [${name}] init done`);
return table;
}
}

View File

@ -1,5 +0,0 @@
{
"ver": "2.0.0",
"uuid": "6ab253ff-8c5d-419f-9f8b-5cf0ef661a28",
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "c87ad2c2-0bf9-4822-84db-00b939f614ee",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "89d65072-29d8-4f58-a9d7-5750406209e6",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "10da37ee-322f-492b-b19b-ed0cd210e884",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "1207e3f9-4c55-4435-a3be-3d04c6806a1f",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "b43bf5ea-67c5-4fc8-9893-1f406a52508f",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "c5872cc0-91a4-49cb-a055-e037accd801d",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "d042d487-d962-4d90-920e-70ab9b8b383c",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "f3ba292a-ecad-4485-ab60-1cd3ee94979a",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "ce946cad-16db-4383-a734-43bb8f14089e",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "4e2d4321-bbfb-46d8-87bc-15a7c99c000d",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "b47d81c4-01a1-45cd-94f8-19daf96f17a8",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "dcb480f5-98b4-4a48-9d82-e3e1fe837e8d",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "02aa6cd7-21a1-4c22-bcbe-296bb938badd",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "b373f805-9297-4af5-8ea6-0a250649b5b0",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "788e7381-bee6-4b74-addb-c4aa4c4ff4e3",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "d6e55fc6-00b6-496a-aae2-74d694c1223b",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "363f5f7f-0623-4013-8571-0bb5c1dc95e6",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "ba4dee5b-ca5b-4435-a068-c4f5dd832bab",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,12 +0,0 @@
{
"ver": "1.1.2",
"uuid": "f6471056-03d8-4d55-b039-6b62d056547c",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "486070ed-7155-4fa6-8cc4-81695cc3b28b",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "67f1a0e4-877e-4ad0-bc1b-e1175c620ca1",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.0.8",
"uuid": "dfb04646-c016-4594-b7b3-8d83fa7a925a",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -0,0 +1,574 @@
import { TableBase } from "../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../Engine/CatanEngine/TableV3/TableManager";
//#region AutoMappingImport
import { Bar1401Table } from "./Tables/Bar1401Table";
import { BetSettingTable } from "./Tables/BetSettingTable";
import { Bingo8starsTable } from "./Tables/Bingo8starsTable";
import { Bingo9starsTable } from "./Tables/Bingo9starsTable";
import { BingoTable } from "./Tables/BingoTable";
import { CardUpgradeTable } from "./Tables/CardUpgradeTable";
import { ChatTable } from "./Tables/ChatTable";
import { Cluster1302Table } from "./Tables/Cluster1302Table";
import { Cluster1303Table } from "./Tables/Cluster1303Table";
import { Collect001Table } from "./Tables/Collect001Table";
import { Collect002Table } from "./Tables/Collect002Table";
import { CompositeTable } from "./Tables/CompositeTable";
import { CurrencyTable, CurrencyTableRow } from "./Tables/CurrencyTable";
import { Fish2003Table } from "./Tables/Fish2003Table";
import { Fish2004Table } from "./Tables/Fish2004Table";
import { FiveTable } from "./Tables/FiveTable";
import { FixedTable, FixedTableRow } from "./Tables/FixedTable";
import { FormreadTable, FormreadTableRow } from "./Tables/FormreadTable";
import { GiftTable } from "./Tables/GiftTable";
import { HeadTable, HeadTableRow } from "./Tables/HeadTable";
import { ItemdropTable } from "./Tables/ItemdropTable";
import { ItemmoneyTable } from "./Tables/ItemmoneyTable";
import { ItemSettingTable } from "./Tables/ItemSettingTable";
import { LanguageTable } from "./Tables/LanguageTable";
import { LevelTable, LevelTableRow } from "./Tables/LevelTable";
import { LineTable } from "./Tables/LineTable";
import { LobbyTable } from "./Tables/LobbyTable";
import { MailTable } from "./Tables/MailTable";
import { MonkeytowerTable } from "./Tables/MonkeytowerTable";
import { NameTable } from "./Tables/NameTable";
import { NetworkTable } from "./Tables/NetworkTable";
import { NineSicboTable } from "./Tables/NineSicboTable";
import { NormalBaccaratTable } from "./Tables/NormalBaccaratTable";
import { OperationTable } from "./Tables/OperationTable";
import { PacketTable } from "./Tables/PacketTable";
import { RankTable, RankTableRow } from "./Tables/RankTable";
import { ShopTable } from "./Tables/ShopTable";
import { Slot001Table } from "./Tables/Slot001Table";
import { Slot002Table } from "./Tables/Slot002Table";
import { Slot003Table } from "./Tables/Slot003Table";
import { Slot004Table } from "./Tables/Slot004Table";
import { Slot005Table } from "./Tables/Slot005Table";
import { Slot006Table } from "./Tables/Slot006Table";
import { Slot007Table } from "./Tables/Slot007Table";
import { Slot008Table } from "./Tables/Slot008Table";
import { Slot009Table } from "./Tables/Slot009Table";
import { Slot010Table } from "./Tables/Slot010Table";
import { Slot011Table } from "./Tables/Slot011Table";
import { Slot012Table } from "./Tables/Slot012Table";
import { Slot013Table } from "./Tables/Slot013Table";
import { Slot014Table } from "./Tables/Slot014Table";
import { Slot015Table } from "./Tables/Slot015Table";
import { Slot016Table } from "./Tables/Slot016Table";
import { Slot017Table } from "./Tables/Slot017Table";
import { Slot018Table } from "./Tables/Slot018Table";
import { Slot019Table } from "./Tables/Slot019Table";
import { Slot020Table } from "./Tables/Slot020Table";
import { Slot021Table } from "./Tables/Slot021Table";
import { Slot022Table } from "./Tables/Slot022Table";
import { Slot023Table } from "./Tables/Slot023Table";
import { Slot024Table } from "./Tables/Slot024Table";
import { Slot025Table } from "./Tables/Slot025Table";
import { Slot026Table } from "./Tables/Slot026Table";
import { Slot027Table } from "./Tables/Slot027Table";
import { Slot028Table } from "./Tables/Slot028Table";
import { Slot029Table } from "./Tables/Slot029Table";
import { Slot030Table } from "./Tables/Slot030Table";
import { Slot031Table } from "./Tables/Slot031Table";
import { Slot032Table } from "./Tables/Slot032Table";
import { Slot033Table } from "./Tables/Slot033Table";
import { Slot034Table } from "./Tables/Slot034Table";
import { Slot035Table } from "./Tables/Slot035Table";
import { Slot036Table } from "./Tables/Slot036Table";
import { Slot037Table } from "./Tables/Slot037Table";
import { Slot038Table } from "./Tables/Slot038Table";
import { Slot039Table } from "./Tables/Slot039Table";
import { Slot040Table } from "./Tables/Slot040Table";
import { Slot041Table } from "./Tables/Slot041Table";
import { Slot042Table } from "./Tables/Slot042Table";
import { Slot043Table } from "./Tables/Slot043Table";
import { Slot044Table } from "./Tables/Slot044Table";
import { Slot045Table } from "./Tables/Slot045Table";
import { Slot047Table } from "./Tables/Slot047Table";
import { Slot048Table } from "./Tables/Slot048Table";
import { Slot049Table } from "./Tables/Slot049Table";
import { Slot050Table } from "./Tables/Slot050Table";
import { Slot051Table } from "./Tables/Slot051Table";
import { Slot052Table } from "./Tables/Slot052Table";
import { Slot054Table } from "./Tables/Slot054Table";
import { Slot055Table } from "./Tables/Slot055Table";
import { Slot056Table } from "./Tables/Slot056Table";
import { Slot058Table } from "./Tables/Slot058Table";
import { Slot059Table } from "./Tables/Slot059Table";
import { Slot060Table } from "./Tables/Slot060Table";
import { Slot061Table } from "./Tables/Slot061Table";
import { Slot062Table } from "./Tables/Slot062Table";
import { Slot064Table } from "./Tables/Slot064Table";
import { Slot1201Table } from "./Tables/Slot1201Table";
import { Slot1202Table } from "./Tables/Slot1202Table";
import { Slot1501Table } from "./Tables/Slot1501Table";
import { Slot1701Table } from "./Tables/Slot1701Table";
import { SlotsetTable, SlotsetTableRow } from "./Tables/SlotsetTable";
import { SoundTable, SoundTableRow } from "./Tables/SoundTable";
import { StringTable, StringTableRow } from "./Tables/StringTable";
import { Super6BaccaratTable } from "./Tables/Super6BaccaratTable";
import { Table3031Table } from "./Tables/Table3031Table";
import { TripleBaccaratTable } from "./Tables/TripleBaccaratTable";
import { TwoSicboTable } from "./Tables/TwoSicboTable";
import { VipTable } from "./Tables/VipTable";
//#endregion AutoMappingImport
export default class CSSettingsV3 {
public static ResetTables() {
for (let prop in this) {
if (prop.charAt(0) === '_' && this[prop] && this[prop] instanceof TableBase) {
let table = this[prop];
let tableName = prop.replace("_", "#");
for (let p in table) {
if (p.charAt(0) === '_' && table[p] && table[p] instanceof TableBase) {
cc.log(`TableV3 [${tableName}${p.replace("_", "#")}] cleared`);
table[p] = undefined;
}
}
cc.log(`TableV3 [${tableName}] cleared`);
this[prop] = undefined;
}
}
//TODO: 尚未實作TableManager的清除動作
}
//#region AutoMappingClass
private static _monkeytower: MonkeytowerTable;
/** 捕魚機_西遊塔防#monkeytower.xlsx */
public static get Monkeytower(): MonkeytowerTable { return this._monkeytower = this._monkeytower || new MonkeytowerTable(); }
private static _gift: GiftTable;
/** 系統_贈禮#gift.xlsx */
public static get Gift(): GiftTable { return this._gift = this._gift || new GiftTable(); }
private static _fish2003: Fish2003Table;
/** 捕魚機_乖鵝子捕魚#fish2003.xlsx */
public static get Fish2003(): Fish2003Table { return this._fish2003 = this._fish2003 || new Fish2003Table(); }
private static _fish2004: Fish2004Table;
/** 捕魚機_乖海豹捕魚#fish2004.xlsx */
public static get Fish2004(): Fish2004Table { return this._fish2004 = this._fish2004 || new Fish2004Table(); }
private static _tripleBaccarat: TripleBaccaratTable;
/** 遊藝館_三寶百家樂#triple_baccarat.xlsx */
public static get TripleBaccarat(): TripleBaccaratTable { return this._tripleBaccarat = this._tripleBaccarat || new TripleBaccaratTable(); }
private static _nineSicbo: NineSicboTable;
/** 遊藝館_九龍骰寶#nine_sicbo.xlsx */
public static get NineSicbo(): NineSicboTable { return this._nineSicbo = this._nineSicbo || new NineSicboTable(); }
private static _super6Baccarat: Super6BaccaratTable;
/** 遊藝館_超六百家樂#super6_baccarat.xlsx */
public static get Super6Baccarat(): Super6BaccaratTable { return this._super6Baccarat = this._super6Baccarat || new Super6BaccaratTable(); }
private static _table3031: Table3031Table;
/** 遊藝館_色碟#table3031.xlsx */
public static get Table3031(): Table3031Table { return this._table3031 = this._table3031 || new Table3031Table(); }
private static _normalBaccarat: NormalBaccaratTable;
/** 遊藝館_傳統百家樂#normal_baccarat.xlsx */
public static get NormalBaccarat(): NormalBaccaratTable { return this._normalBaccarat = this._normalBaccarat || new NormalBaccaratTable(); }
private static _twoSicbo: TwoSicboTable;
/** 遊藝館_雙星骰寶#two_sicbo.xlsx */
public static get TwoSicbo(): TwoSicboTable { return this._twoSicbo = this._twoSicbo || new TwoSicboTable(); }
private static _slotset: SlotsetTable;
/** 機台設定#slotset.xlsx */
public static get Slotset(): SlotsetTable { return this._slotset = this._slotset || TableManager.InitTable("#slotset", SlotsetTable, SlotsetTableRow); }
private static _bar1401: Bar1401Table;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx */
public static get Bar1401(): Bar1401Table { return this._bar1401 = this._bar1401 || new Bar1401Table(); }
private static _cluster1302: Cluster1302Table;
/** Cluster_1302鍊金術士#cluster_1302.xlsx */
public static get Cluster1302(): Cluster1302Table { return this._cluster1302 = this._cluster1302 || new Cluster1302Table(); }
private static _collect001: Collect001Table;
/** COLLECT_001猛瑪#collect_001.xlsx */
public static get Collect001(): Collect001Table { return this._collect001 = this._collect001 || new Collect001Table(); }
private static _collect002: Collect002Table;
/** COLLECT_002幸運美鈔#collect_002.xlsx */
public static get Collect002(): Collect002Table { return this._collect002 = this._collect002 || new Collect002Table(); }
private static _slot002: Slot002Table;
/** SLOT_002火焰巨輪#slot_002.xlsx */
public static get Slot002(): Slot002Table { return this._slot002 = this._slot002 || new Slot002Table(); }
private static _slot001: Slot001Table;
/** SLOT_001福氣財神#slot_001.xlsx */
public static get Slot001(): Slot001Table { return this._slot001 = this._slot001 || new Slot001Table(); }
private static _slot003: Slot003Table;
/** SLOT_003翻轉提基#slot_003.xlsx */
public static get Slot003(): Slot003Table { return this._slot003 = this._slot003 || new Slot003Table(); }
private static _slot004: Slot004Table;
/** SLOT_004埃及#slot_004.xlsx */
public static get Slot004(): Slot004Table { return this._slot004 = this._slot004 || new Slot004Table(); }
private static _slot005: Slot005Table;
/** SLOT_005雷電#slot_005.xlsx */
public static get Slot005(): Slot005Table { return this._slot005 = this._slot005 || new Slot005Table(); }
private static _slot006: Slot006Table;
/** SLOT_006四方美人#slot_006.xlsx */
public static get Slot006(): Slot006Table { return this._slot006 = this._slot006 || new Slot006Table(); }
private static _slot007: Slot007Table;
/** SLOT_007鍊金術師#slot_007.xlsx */
public static get Slot007(): Slot007Table { return this._slot007 = this._slot007 || new Slot007Table(); }
private static _slot008: Slot008Table;
/** SLOT_008鯊魚#slot_008.xlsx */
public static get Slot008(): Slot008Table { return this._slot008 = this._slot008 || new Slot008Table(); }
private static _slot010: Slot010Table;
/** SLOT_010紅利金貓#slot_010.xlsx */
public static get Slot010(): Slot010Table { return this._slot010 = this._slot010 || new Slot010Table(); }
private static _slot009: Slot009Table;
/** SLOT_009美女與野獸#slot_009.xlsx */
public static get Slot009(): Slot009Table { return this._slot009 = this._slot009 || new Slot009Table(); }
private static _slot011: Slot011Table;
/** SLOT_011戀愛學園祭#slot_011.xlsx */
public static get Slot011(): Slot011Table { return this._slot011 = this._slot011 || new Slot011Table(); }
private static _slot013: Slot013Table;
/** SLOT_013年獸獻瑞#slot_013.xlsx */
public static get Slot013(): Slot013Table { return this._slot013 = this._slot013 || new Slot013Table(); }
private static _slot012: Slot012Table;
/** SLOT_012魔法少女#slot_012.xlsx */
public static get Slot012(): Slot012Table { return this._slot012 = this._slot012 || new Slot012Table(); }
private static _slot016: Slot016Table;
/** SLOT_016風暴女王#slot_016.xlsx */
public static get Slot016(): Slot016Table { return this._slot016 = this._slot016 || new Slot016Table(); }
private static _slot014: Slot014Table;
/** SLOT_014騎士風雲#slot_014.xlsx */
public static get Slot014(): Slot014Table { return this._slot014 = this._slot014 || new Slot014Table(); }
private static _slot015: Slot015Table;
/** SLOT_015神鬼戰士#slot_015.xlsx */
public static get Slot015(): Slot015Table { return this._slot015 = this._slot015 || new Slot015Table(); }
private static _slot017: Slot017Table;
/** SLOT_017帽子#slot_017.xlsx */
public static get Slot017(): Slot017Table { return this._slot017 = this._slot017 || new Slot017Table(); }
private static _slot019: Slot019Table;
/** SLOT_019礦坑#slot_019.xlsx */
public static get Slot019(): Slot019Table { return this._slot019 = this._slot019 || new Slot019Table(); }
private static _slot018: Slot018Table;
/** SLOT_018搖錢樹#slot_018.xlsx */
public static get Slot018(): Slot018Table { return this._slot018 = this._slot018 || new Slot018Table(); }
private static _slot020: Slot020Table;
/** SLOT_020特務奇兵#slot_020.xlsx */
public static get Slot020(): Slot020Table { return this._slot020 = this._slot020 || new Slot020Table(); }
private static _slot022: Slot022Table;
/** SLOT_022提基酒吧#slot_022.xlsx */
public static get Slot022(): Slot022Table { return this._slot022 = this._slot022 || new Slot022Table(); }
private static _slot021: Slot021Table;
/** SLOT_021火山#slot_021.xlsx */
public static get Slot021(): Slot021Table { return this._slot021 = this._slot021 || new Slot021Table(); }
private static _slot024: Slot024Table;
/** SLOT_024多福多財#slot_024.xlsx */
public static get Slot024(): Slot024Table { return this._slot024 = this._slot024 || new Slot024Table(); }
private static _slot025: Slot025Table;
/** SLOT_025鑽石之都#slot_025.xlsx */
public static get Slot025(): Slot025Table { return this._slot025 = this._slot025 || new Slot025Table(); }
private static _slot026: Slot026Table;
/** SLOT_026純金#slot_026.xlsx */
public static get Slot026(): Slot026Table { return this._slot026 = this._slot026 || new Slot026Table(); }
private static _slot027: Slot027Table;
/** SLOT_027富貴神龍#slot_027.xlsx */
public static get Slot027(): Slot027Table { return this._slot027 = this._slot027 || new Slot027Table(); }
private static _slot029: Slot029Table;
/** SLOT_029十倍經典#slot_029.xlsx */
public static get Slot029(): Slot029Table { return this._slot029 = this._slot029 || new Slot029Table(); }
private static _slot028: Slot028Table;
/** SLOT_028百萬金輪#slot_028.xlsx */
public static get Slot028(): Slot028Table { return this._slot028 = this._slot028 || new Slot028Table(); }
private static _slot030: Slot030Table;
/** SLOT_030龍鳳呈祥#slot_030.xlsx */
public static get Slot030(): Slot030Table { return this._slot030 = this._slot030 || new Slot030Table(); }
private static _slot031: Slot031Table;
/** SLOT_031水滸英雄#slot_031.xlsx */
public static get Slot031(): Slot031Table { return this._slot031 = this._slot031 || new Slot031Table(); }
private static _slot033: Slot033Table;
/** SLOT_033香水玫瑰#slot_033.xlsx */
public static get Slot033(): Slot033Table { return this._slot033 = this._slot033 || new Slot033Table(); }
private static _slot032: Slot032Table;
/** SLOT_032埃及豔后#slot_032.xlsx */
public static get Slot032(): Slot032Table { return this._slot032 = this._slot032 || new Slot032Table(); }
private static _slot034: Slot034Table;
/** SLOT_034招財金貓#slot_034.xlsx */
public static get Slot034(): Slot034Table { return this._slot034 = this._slot034 || new Slot034Table(); }
private static _slot035: Slot035Table;
/** SLOT_035多金多銀#slot_035.xlsx */
public static get Slot035(): Slot035Table { return this._slot035 = this._slot035 || new Slot035Table(); }
private static _slot037: Slot037Table;
/** SLOT_037幸運七#slot_037.xlsx */
public static get Slot037(): Slot037Table { return this._slot037 = this._slot037 || new Slot037Table(); }
private static _slot036: Slot036Table;
/** SLOT_036驚奇之星#slot_036.xlsx */
public static get Slot036(): Slot036Table { return this._slot036 = this._slot036 || new Slot036Table(); }
private static _slot038: Slot038Table;
/** SLOT_038經典九線#slot_038.xlsx */
public static get Slot038(): Slot038Table { return this._slot038 = this._slot038 || new Slot038Table(); }
private static _slot039: Slot039Table;
/** SLOT_039閃電倒轉#slot_039.xlsx */
public static get Slot039(): Slot039Table { return this._slot039 = this._slot039 || new Slot039Table(); }
private static _slot040: Slot040Table;
/** SLOT_040海姬#slot_040.xlsx */
public static get Slot040(): Slot040Table { return this._slot040 = this._slot040 || new Slot040Table(); }
private static _slot041: Slot041Table;
/** SLOT_041愛麗絲#slot_041.xlsx */
public static get Slot041(): Slot041Table { return this._slot041 = this._slot041 || new Slot041Table(); }
private static _slot042: Slot042Table;
/** SLOT_042好運到#slot_042.xlsx */
public static get Slot042(): Slot042Table { return this._slot042 = this._slot042 || new Slot042Table(); }
private static _slot043: Slot043Table;
/** SLOT_043亞歷山大#slot_043.xlsx */
public static get Slot043(): Slot043Table { return this._slot043 = this._slot043 || new Slot043Table(); }
private static _slot044: Slot044Table;
/** SLOT_044五龍#slot_044.xlsx */
public static get Slot044(): Slot044Table { return this._slot044 = this._slot044 || new Slot044Table(); }
private static _slot045: Slot045Table;
/** SLOT_045齊天大聖#slot_045.xlsx */
public static get Slot045(): Slot045Table { return this._slot045 = this._slot045 || new Slot045Table(); }
private static _slot047: Slot047Table;
/** SLOT_047財神降臨#slot_047.xlsx */
public static get Slot047(): Slot047Table { return this._slot047 = this._slot047 || new Slot047Table(); }
private static _slot048: Slot048Table;
/** SLOT_048福星88#slot_048.xlsx */
public static get Slot048(): Slot048Table { return this._slot048 = this._slot048 || new Slot048Table(); }
private static _slot049: Slot049Table;
/** SLOT_049熊貓#slot_049.xlsx */
public static get Slot049(): Slot049Table { return this._slot049 = this._slot049 || new Slot049Table(); }
private static _slot050: Slot050Table;
/** SLOT_050吉鼓發財#slot_050.xlsx */
public static get Slot050(): Slot050Table { return this._slot050 = this._slot050 || new Slot050Table(); }
private static _slot051: Slot051Table;
/** SLOT_051皇帝88#slot_051.xlsx */
public static get Slot051(): Slot051Table { return this._slot051 = this._slot051 || new Slot051Table(); }
private static _slot052: Slot052Table;
/** SLOT_052HUGA#slot_052.xlsx */
public static get Slot052(): Slot052Table { return this._slot052 = this._slot052 || new Slot052Table(); }
private static _slot054: Slot054Table;
/** SLOT_054猛瑪#slot_054.xlsx */
public static get Slot054(): Slot054Table { return this._slot054 = this._slot054 || new Slot054Table(); }
private static _slot056: Slot056Table;
/** SLOT_056彩虹筆#slot_056.xlsx */
public static get Slot056(): Slot056Table { return this._slot056 = this._slot056 || new Slot056Table(); }
private static _slot055: Slot055Table;
/** SLOT_055幸運美鈔#slot_055.xlsx */
public static get Slot055(): Slot055Table { return this._slot055 = this._slot055 || new Slot055Table(); }
private static _slot058: Slot058Table;
/** SLOT_058鳳凰之怒#slot_058.xlsx */
public static get Slot058(): Slot058Table { return this._slot058 = this._slot058 || new Slot058Table(); }
private static _slot059: Slot059Table;
/** SLOT_059多福單機版#slot_059.xlsx */
public static get Slot059(): Slot059Table { return this._slot059 = this._slot059 || new Slot059Table(); }
private static _slot060: Slot060Table;
/** SLOT_060無限連段#slot_060.xlsx */
public static get Slot060(): Slot060Table { return this._slot060 = this._slot060 || new Slot060Table(); }
private static _slot061: Slot061Table;
/** SLOT_061魔術方塊#slot_061.xlsx */
public static get Slot061(): Slot061Table { return this._slot061 = this._slot061 || new Slot061Table(); }
private static _bingo: BingoTable;
/** 系統_賓果#bingo.xlsx */
public static get Bingo(): BingoTable { return this._bingo = this._bingo || new BingoTable(); }
private static _slot1201: Slot1201Table;
/** SLOT_1201三勇者#slot_1201.xlsx */
public static get Slot1201(): Slot1201Table { return this._slot1201 = this._slot1201 || new Slot1201Table(); }
private static _slot1202: Slot1202Table;
/** SLOT_1202迴轉壽司#slot_1202.xlsx */
public static get Slot1202(): Slot1202Table { return this._slot1202 = this._slot1202 || new Slot1202Table(); }
private static _slot023: Slot023Table;
/** SLOT_023888巨輪#slot_023.xlsx */
public static get Slot023(): Slot023Table { return this._slot023 = this._slot023 || new Slot023Table(); }
private static _slot1501: Slot1501Table;
/** SLOT_1501柏青哥_金貓#slot_1501.xlsx */
public static get Slot1501(): Slot1501Table { return this._slot1501 = this._slot1501 || new Slot1501Table(); }
private static _string: StringTable;
/** 共用_字串表#string.xlsx */
public static get String(): StringTable { return this._string = this._string || TableManager.InitTable("#string", StringTable, StringTableRow); }
private static _line: LineTable;
/** 共用_走線表#line.xlsx */
public static get Line(): LineTable { return this._line = this._line || new LineTable(); }
private static _shop: ShopTable;
/** 共用_商城#shop.xlsx */
public static get Shop(): ShopTable { return this._shop = this._shop || new ShopTable(); }
private static _currency: CurrencyTable;
/** 共用_幣別表#currency.xlsx */
public static get Currency(): CurrencyTable { return this._currency = this._currency || TableManager.InitTable("#currency", CurrencyTable, CurrencyTableRow); }
private static _language: LanguageTable;
/** 共用_語系表#language.xlsx */
public static get Language(): LanguageTable { return this._language = this._language || new LanguageTable(); }
private static _fixed: FixedTable;
/** 共用_數值表#fixed.xlsx */
public static get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#fixed", FixedTable, FixedTableRow); }
private static _vip: VipTable;
/** 系統_VIP#vip.xlsx */
public static get Vip(): VipTable { return this._vip = this._vip || new VipTable(); }
private static _five: FiveTable;
/** 系統_五星彩#five.xlsx */
public static get Five(): FiveTable { return this._five = this._five || new FiveTable(); }
private static _formread: FormreadTable;
/** 系統_表單讀取#formread.xlsx */
public static get Formread(): FormreadTable { return this._formread = this._formread || TableManager.InitTable("#formread", FormreadTable, FormreadTableRow); }
private static _mail: MailTable;
/** 系統_信件#mail.xlsx */
public static get Mail(): MailTable { return this._mail = this._mail || new MailTable(); }
private static _sound: SoundTable;
/** 系統_音效表#sound.xlsx */
public static get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#sound", SoundTable, SoundTableRow); }
private static _rank: RankTable;
/** 系統_排行榜#rank.xlsx */
public static get Rank(): RankTable { return this._rank = this._rank || TableManager.InitTable("#rank", RankTable, RankTableRow); }
private static _chat: ChatTable;
/** 系統_聊天室#chat.xlsx */
public static get Chat(): ChatTable { return this._chat = this._chat || new ChatTable(); }
private static _level: LevelTable;
/** 系統_等級表#level.xlsx */
public static get Level(): LevelTable { return this._level = this._level || TableManager.InitTable("#level", LevelTable, LevelTableRow); }
private static _network: NetworkTable;
/** 系統_跑馬燈#network.xlsx */
public static get Network(): NetworkTable { return this._network = this._network || new NetworkTable(); }
private static _itemdrop: ItemdropTable;
/** 系統_道具掉落表#itemdrop.xlsx */
public static get Itemdrop(): ItemdropTable { return this._itemdrop = this._itemdrop || new ItemdropTable(); }
private static _itemmoney: ItemmoneyTable;
/** 系統_道具價錢表#itemmoney.xlsx */
public static get Itemmoney(): ItemmoneyTable { return this._itemmoney = this._itemmoney || new ItemmoneyTable(); }
private static _name: NameTable;
/** 系統_暱稱#name.xlsx */
public static get Name(): NameTable { return this._name = this._name || new NameTable(); }
private static _lobby: LobbyTable;
/** 系統_機台分桌#lobby.xlsx */
public static get Lobby(): LobbyTable { return this._lobby = this._lobby || new LobbyTable(); }
private static _head: HeadTable;
/** 系統_頭像#head.xlsx */
public static get Head(): HeadTable { return this._head = this._head || TableManager.InitTable("#head", HeadTable, HeadTableRow); }
private static _itemSetting: ItemSettingTable;
/** 系統_道具設定#item_setting.xlsx */
public static get ItemSetting(): ItemSettingTable { return this._itemSetting = this._itemSetting || new ItemSettingTable(); }
private static _cardUpgrade: CardUpgradeTable;
/** 系統_卡片強化#card_upgrade.xlsx */
public static get CardUpgrade(): CardUpgradeTable { return this._cardUpgrade = this._cardUpgrade || new CardUpgradeTable(); }
private static _betSetting: BetSettingTable;
/** 共用_幣種設定表#bet_setting.xlsx */
public static get BetSetting(): BetSettingTable { return this._betSetting = this._betSetting || new BetSettingTable(); }
private static _packet: PacketTable;
/** 系統_背包#packet.xlsx */
public static get Packet(): PacketTable { return this._packet = this._packet || new PacketTable(); }
private static _composite: CompositeTable;
/** 系統_合成表#composite.xlsx */
public static get Composite(): CompositeTable { return this._composite = this._composite || new CompositeTable(); }
private static _bingo9stars: Bingo9starsTable;
/** SLOT_1102彩票_九星彩#bingo_9stars.xlsx */
public static get Bingo9stars(): Bingo9starsTable { return this._bingo9stars = this._bingo9stars || new Bingo9starsTable(); }
private static _bingo8stars: Bingo8starsTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx */
public static get Bingo8stars(): Bingo8starsTable { return this._bingo8stars = this._bingo8stars || new Bingo8starsTable(); }
private static _slot1701: Slot1701Table;
/** SLOT_1701一錘千金#slot_1701.xlsx */
public static get Slot1701(): Slot1701Table { return this._slot1701 = this._slot1701 || new Slot1701Table(); }
private static _slot062: Slot062Table;
/** SLOT_062常勝將軍#slot_062.xlsx */
public static get Slot062(): Slot062Table { return this._slot062 = this._slot062 || new Slot062Table(); }
private static _cluster1303: Cluster1303Table;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx */
public static get Cluster1303(): Cluster1303Table { return this._cluster1303 = this._cluster1303 || new Cluster1303Table(); }
private static _slot064: Slot064Table;
/** SLOT_064小姐姐釣大魚#slot_064.xlsx */
public static get Slot064(): Slot064Table { return this._slot064 = this._slot064 || new Slot064Table(); }
private static _operation: OperationTable;
/** 系統_營運活動#operation.xlsx */
public static get Operation(): OperationTable { return this._operation = this._operation || new OperationTable(); }
//#endregion AutoMappingClass
}

View File

@ -0,0 +1,108 @@
import LocalStorageData from "../Engine/Data/LocalStorageData";
import CSSettingsV3 from "./CSSettingsV3";
import { LanguageManager } from "./Manage/Language/LanguageManager";
import { ClipsHandleBySoundTable } from "./TableExt/ClipsHandleBySoundTable";
const { ccclass } = cc._decorator;
@ccclass
export default class LoadingInit {
private static _instance: LoadingInit = null;
public static get Instance(): LoadingInit { return this._instance; }
//#region private
private _mp3Length: number = 0;
private _mp3LoadedCount: number = 0;
private _handlerClips: ClipsHandleBySoundTable = null;
private _audioClips: cc.AudioClip[] = [];
//#endregion
constructor() {
LoadingInit._instance = this;
let language: string = LocalStorageData.Instance.Language;
cc.log("1.language=" + language);
LanguageManager.UseLanguageUrlStr = language ? language : LanguageManager.UseLanguageUrlStr;
LanguageManager.UseLanguageUrlStr = LanguageManager.UseLanguageUrlStr ? LanguageManager.UseLanguageUrlStr : CSSettingsV3.Language.Lanuage[LanguageManager.DefaultLanguageFormId].Type;
LocalStorageData.Instance.Language = LanguageManager.UseLanguageUrlStr;
cc.log("2.language=" + LanguageManager.UseLanguageUrlStr, LocalStorageData.Instance.Language);
LanguageManager.Init();
}
public *LoadMp3AndLanguageInit(_onProgress: Function, _showProgress: Function): IterableIterator<any> {
this._handlerClips = new ClipsHandleBySoundTable(0);
if (!this._handlerClips.SoundTable) {
_onProgress();
return;
}
// 配合語系找語音(找不到載英語再找不到用預設語系語音)
let checkSoundPath: number[] = LanguageManager.SourceIndex != LanguageManager.Type.En ?
[LanguageManager.SourceIndex, LanguageManager.Type.En, LanguageManager.Type.ZnTw] : [LanguageManager.SourceIndex, LanguageManager.Type.ZnTw];
let cloumTagString: string = "";
for (let num of checkSoundPath) {
cloumTagString = CSSettingsV3.Language.Lanuage[num + 1].SoundPath;
cloumTagString = this._getCloumTag(cloumTagString);
let checkUrl: string = this._handlerClips.SoundTable.Rows[0][cloumTagString];
if (checkUrl) {
this._handlerClips.UseCloumStr = cloumTagString;
break;
}
}
this._mp3Length = this._handlerClips.SoundTable.Rows.length;
this._mp3LoadedCount = 0;
_showProgress(this._mp3LoadedCount, this._mp3Length);
cc.log("使用語音:" + cloumTagString);
for (let row of this._handlerClips.SoundTable.Rows) {
let fileUrl: string = row[cloumTagString];
if (!fileUrl) {
continue;
}
let name: string = fileUrl.substr(fileUrl.lastIndexOf("/") + 1, fileUrl.length);
//fileUrl = BusinessTypeSetting.UsePatch + BusinessTypeSetting.FolderUrlMp3 + fileUrl + ".mp3";
//fileUrl = fileUrl + this._getParam(row.Id);
let bundle = cc.assetManager.getBundle("CommonSound");
bundle.load(name, cc.AudioClip,(err, audioClip)=>this._loadMp3Process(err, audioClip, name, _showProgress))
//cc.assetManager.loadRemote(fileUrl, (err, audioClip) => this._loadMp3Process(err, audioClip, name, _showProgress));
}
while (this._mp3LoadedCount !== this._mp3Length) {
yield null;
}
yield* this._checkLoadMp3End();
}
private _loadMp3Process(err: Error, res: cc.Asset, name: string, _showProgress: Function): void {
if (err == null) {
cc.log("[事件]mp3載入成功:" + name);
res.name = name;
this._audioClips.push(<cc.AudioClip>res);
this._mp3LoadedCount++;
_showProgress(this._mp3LoadedCount, this._mp3Length);
} else {
cc.warn("[Error]mp3載入失敗:" + name);
}
}
private *_checkLoadMp3End(): IterableIterator<string> {
if (this._handlerClips.SoundTable) {
cc.log("[事件] 取得Common Mp3");
} else {
cc.log("[事件] 沒有SoundTable");
}
this._handlerClips.HandlerAppClips(this._audioClips);
}
private _getCloumTag(cloumStr: string): string {
let strs: string[] = cloumStr.split("_");
let newStr: string = "";
for (let str of strs) {
newStr += str.substring(0, 1).toUpperCase().concat(str.substring(1).toLowerCase());
}
return newStr;
}
private _getParam(id: number): string {
let str: string;
if (CC_PREVIEW) {
str = "?v=" + Date.now();
} else {
str = "?v=" + CSSettingsV3.Sound[id].Version + "";
}
return str;
}
}

View File

@ -0,0 +1,38 @@
import CSSettingsV3 from "../../CSSettingsV3";
const { ccclass } = cc._decorator;
@ccclass
export class CurrencyManager {
public static get DefaultCurrencyId(): number { return 3; }
public static get Currency(): number { return this._useFormId; }
private static _currencyStr: string = null;
private static _useFormId: number = null;
private static _numberWithComma: number = null;
public static get NumberWithComma(): number { return this._numberWithComma };
public static SetCurrency(data: JSON) {
if (!data) {
this._numberWithComma = 2;
this._currencyStr = "TWD"
}
this._numberWithComma = data["pr"];
this._currencyStr = data["cu"];
for (let i: number = 1; i < CSSettingsV3.Currency.Count; i++) {
let check: string = CSSettingsV3.Currency[i].Type;
if (check == this._currencyStr) {
this._useFormId = i;
return;
}
}
this._useFormId = this.DefaultCurrencyId;
}
public static GetNumberWithComma(num: number, isPadZero: boolean = true): string {
return num.ExFormatNumberWithComma(this._numberWithComma, isPadZero);
}
public static GetNumberTransferToBMK(num: number, offset: number = 0): string {
return num.ExTransferToBMK(this._numberWithComma, offset);
}
}

View File

@ -0,0 +1,59 @@
import CSSettingsV3 from "../../CSSettingsV3";
export class LanguageManager {
public static UseLanguageUrlStr: string = null;
public static get DefaultLanguageFormId(): number { return 3; }
public static get DefaultSourceIndex(): number { return this.DefaultLanguageFormId - 1; }
public static get SourceIndex(): number { return this._useFormId - 1; }
private static _useFormId: number = null;
private static _msgTableRowName: string = null;
private static _filePathStr: string = null;
//=======================================================================================
public static Init(): void {
for (let i: number = 1; i < CSSettingsV3.Language.Lanuage.Count; i++) {
let con = CSSettingsV3.Language.Lanuage[i];
if (con.Type == this.UseLanguageUrlStr) {
this._useFormId = con.Id;
break;
}
}
if (!this._useFormId) {
this._useFormId = LanguageManager.Type.ZnTw;
this.UseLanguageUrlStr = CSSettingsV3.Language.Lanuage[this._useFormId].Type;
}
}
public static GetMsgId(): string {
if (!this._msgTableRowName) {
this._msgTableRowName = CSSettingsV3.Language.Lanuage[this._useFormId].Msg;
}
return this._msgTableRowName;
}
public static TypePathStr(): string {
if (!this._filePathStr) {
this._filePathStr = CSSettingsV3.Language.Lanuage[this._useFormId].Path;
}
return this._filePathStr;
}
}
export module LanguageManager {
export enum Type {
ZnCh = 0,
En = 1,
ZnTw = 2,
Vi = 3,
Th = 4
}
export enum CommonUIType {
MAIN_1 = 0,
FREE_2 = 1,
BIGWIN_3 = 2,
JACKPOT_4 = 3,
TOP_5 = 4,
}
}

View File

@ -0,0 +1,107 @@
import { LanguageManager } from "./LanguageManager";
export class ScenceLanguageSourceSet {
private static _CommonSource: cc.Node;
private static _source: cc.Node = null;
private static _content: cc.Node = null;
private static _allSlotLanguageSourceDic: Map<number, cc.Node> = new Map<number, cc.Node>();
//=======================================================================================
/**
*
* @param parent
* @param source 使
*/
public static SetNormalScence(parent: cc.Node, source: cc.Prefab[]) {
this._content = parent.getChildByName("LanguageContent");
if (!this._content) {
this._content = parent.ExAddChild(new cc.Node("LanguageContent"));
}
if (source != null) {
this._content.ExAddChild(new cc.Node("CommonLanguageContent"));
this._source = this._content.ExAddChild(source[LanguageManager.SourceIndex]);
//(勿拿掉為了避美術不小心 關掉眼睛)
this._source.active = true;
for (let child of this._source.children) {
//(勿拿掉為了避美術不小心 關掉眼睛)
child.active = true;
for (let childchild of child.children) {
//(勿拿掉為了避美術不小心 打開眼睛)
childchild.active = false;
}
}
}
}
public static SetNormalScence_v2(parent: cc.Node, source: cc.Prefab) {
this._content = parent.getChildByName("LanguageContent");
if (!this._content) {
this._content = parent.ExAddChild(new cc.Node("LanguageContent"));
}
if (source != null) {
this._content.ExAddChild(new cc.Node("CommonLanguageContent"));
this._source = this._content.ExAddChild(source);
//(勿拿掉為了避美術不小心 關掉眼睛)
this._source.active = true;
for (let child of this._source.children) {
//(勿拿掉為了避美術不小心 關掉眼睛)
child.active = true;
for (let childchild of child.children) {
//(勿拿掉為了避美術不小心 打開眼睛)
childchild.active = false;
}
}
}
}
//=======================================================================================
/**
*
* @param parent
* @param sourceCommonLanguage (UI)
* @param sourceSlotLanguage
*/
public static SetGameScence(parent: cc.Node, sourceCommonLanguage: cc.Prefab[], sourceSlotLanguage: cc.Node) {
this._content = parent;
if (sourceCommonLanguage != null && sourceCommonLanguage.length > 0) {
this._CommonSource = this._content.ExAddChild(sourceCommonLanguage[LanguageManager.SourceIndex]);
for (let commonLang of this._CommonSource.children) {
//(勿拿掉為了避美術不小心 關掉眼睛)
commonLang.active = true;
for (let commonLangChild of commonLang.children) {
//(勿拿掉為了避美術不小心 打開眼睛)
commonLangChild.active = false;
}
}
//(勿拿掉為了避美術不小心 關掉眼睛)
this._CommonSource.active = true;
}
else {
this._content.ExAddChild(new cc.Node("CommonLanguageContent"));
}
if (sourceSlotLanguage != null) {
this._source = sourceSlotLanguage;
this._source.setParent(this._content);
//(勿拿掉為了避美術不小心 關掉眼睛)
this._source.active = true;
for (let slotLanguage of this._source.children) {
//(勿拿掉為了避美術不小心 關掉眼睛)
slotLanguage.active = true;
for (let rollerSlotChild of slotLanguage.children) {
//(勿拿掉為了避美術不小心 打開眼睛)
rollerSlotChild.active = false;
}
this._allSlotLanguageSourceDic.set(+slotLanguage.name, slotLanguage);
}
}
}
public static CommonLanguageContent(type: number): cc.Node {
return this._content.children[0].children[type];
}
public static SlotLanguageContent(): cc.Node {
return this._content.children[1];
}
public static GetSlotLanguage(index: number): cc.Node {
return this._allSlotLanguageSourceDic.get(index);
}
//=======================================================================================
}

View File

@ -0,0 +1,214 @@
import { ITableRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import BusinessTypeSetting from "../../_BusinessTypeSetting/BusinessTypeSetting";
import CSSettingsV3 from "../CSSettingsV3";
import { LanguageManager } from "../Manage/Language/LanguageManager";
declare module '../CSSettingsV3' {
export default interface CSSettingsV3 {
/**
* String表欄位值
* @param formId
*/
CommonString(formId: number): string;
/**
* CSSettingsV3的COMMON表名
* @param slotID
*/
CheckSlotFormNameStr(slotID: number): string;
/**
* String表欄位值
* @param slotID
* @param formId
*/
SlotString(slotID: number, formId: number): string;
/**
* FIXED表的前後端共用欄位值
* @param slotID
* @param formId
*/
SlotFixedBvalue(slotID: number, formId: number): number;
/**
* FIXED表的前端欄位值
* @param slotID
* @param formId
*/
SlotFixedCvalue(slotID: number, formId: number): number;
/**
* WheelClient表的SymbolList欄位值
* @param slotID
* @param formId
*/
SlotWheelClientSymbolList(slotID: number, formId: number): JSON;
/**
*
* @param slotID
*/
SlotSymbolTable(slotID: number): TableBase<ITableRow>;
/**
*
* @param slotID
*/
SlotSymbolContinuousPic(slotID: number, formId: number): JSON;
/**
* PLAYTABL數值設定
* @param slotID
* @param formId
*/
SlotPaytableBvalue(slotID: number, formId: number): number;
/**
*
* @param jsonFileName
* @param sheetName
*/
CheckTableExist(settingName: string, classSheetName: string): any;
CheckTableIdExist(table: any, id: number): any;
CheckGetValue(con: any, keyStr: string): any;
}
}
CSSettingsV3.prototype.CheckSlotFormNameStr = function (slotID: number): string {
let con = CSSettingsV3.Slotset[slotID];
if (con) {
let str = con.NameSetting;
return str;
}
cc.warn("Slotset沒有這個ID:" + slotID);
return null;
}
CSSettingsV3.prototype.CheckTableExist = function (settingName: string, classSheetName: string): any {
let table = CSSettingsV3[settingName];
if (table) {
if (classSheetName != "") {
table = table[classSheetName];
if (!table) {
table = CSSettingsV3[settingName + BusinessTypeSetting.TYPE_BUSINESS];
if (classSheetName != "") {
table = table[classSheetName];
}
}
}
} else {
table = CSSettingsV3[settingName + BusinessTypeSetting.TYPE_BUSINESS];
if (classSheetName != "") {
table = table[classSheetName];
}
}
if (table) {
return table;
}
cc.warn("未知的表:" + settingName + "," + classSheetName);
return null;
}
CSSettingsV3.prototype.CheckTableIdExist = function (table: any, id: number): any {
if (table) {
let con = table[id];
if (con != null && con != undefined) {
return con;
}
cc.warn(table["__proto__"]["constructor"]["name"] + "未知的ID:" + id);
}
return null;
}
CSSettingsV3.prototype.CheckGetValue = function (con: any, keyStr: string): any {
if (con) {
con = con[keyStr];
if (con != null && con != undefined) {
return con;
}
cc.warn(con["__proto__"]["constructor"]["name"] + "取不到ID欄位的KEY值:" + keyStr);
}
return null;
}
CSSettingsV3.prototype.CommonString = function (formId: number): string {
let table = CSSettingsV3.String;
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: string = CSSettingsV3.prototype.CheckGetValue(con, LanguageManager.GetMsgId());
if (value) {
value = value.replace('\\n', "\n");
return value;
}
return "";
}
CSSettingsV3.prototype.SlotString = function (slotID: number, formId: number): string {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "String");
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: string = CSSettingsV3.prototype.CheckGetValue(con, LanguageManager.GetMsgId());
if (value) {
value = value.replace('\\n', "\n");
return value;
}
return "";
}
CSSettingsV3.prototype.SlotFixedBvalue = function (slotID: number, formId: number): number {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "Fixed");
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: string = CSSettingsV3.prototype.CheckGetValue(con, "BValue");
if (value) {
let num: number = Number.parseFloat(value);
return num;
}
return 0;
}
CSSettingsV3.prototype.SlotFixedCvalue = function (slotID: number, formId: number): number {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "Fixed");
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: string = CSSettingsV3.prototype.CheckGetValue(con, "CValue");
if (value) {
let num: number = Number.parseFloat(value);
return num;
}
return 0;
}
CSSettingsV3.prototype.SlotWheelClientSymbolList = function (slotID: number, formId: number): JSON {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "WheelClient");
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: JSON = CSSettingsV3.prototype.CheckGetValue(con, "SymbolList");
if (value) {
return value;
}
return null;
}
CSSettingsV3.prototype.SlotSymbolTable = function (slotID: number): TableBase<ITableRow> {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "Symbol");
if (table) {
return table;
}
return null;
}
CSSettingsV3.prototype.SlotSymbolContinuousPic = function (slotID: number, formId: number): JSON {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "Symbol");
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: JSON = CSSettingsV3.prototype.CheckGetValue(con, "ContinuousPic");
if (value) {
return value;
}
return null;
}
CSSettingsV3.prototype.SlotPaytableBvalue = function (slotID: number, formId: number): number {
let formName = CSSettingsV3.prototype.CheckSlotFormNameStr(slotID);
let table = CSSettingsV3.prototype.CheckTableExist(formName, "Paytable");
let con = CSSettingsV3.prototype.CheckTableIdExist(table, formId);
let value: string = CSSettingsV3.prototype.CheckGetValue(con, "PayNormal");
if (value) {
let num: number = Number.parseFloat(value);
return num;
}
return 0;
}

View File

@ -0,0 +1,85 @@
import { ITableRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import CSAudio from "../../Engine/Utils/Audio/CSAudio";
import CSAppAudios from "../../Engine/Utils/Audio/CSCommonAudios";
import CSSettingsV3 from "../CSSettingsV3";
export class ClipsHandleBySoundTable {
private _soundTable: TableBase<SoundTableRow> = null;
public get SoundTable(): TableBase<SoundTableRow> { return this._soundTable; }
private _useCloumStr: string = "PathZnTw";
public set UseCloumStr(value: string) { this._useCloumStr = value; }
public get UseCloumStr() { return this._useCloumStr; }
constructor(id: number) {
if (id != 0) {
this._soundTable = CSSettingsV3[CSSettingsV3.prototype.CheckSlotFormNameStr(id)]["Sound"];
} else {
this._soundTable = CSSettingsV3.Sound;
}
}
public HandlerClips(clips: cc.AudioClip[]): void {
let nameToClip: Map<string, cc.AudioClip> = new Map<string, cc.AudioClip>();
for (let clip of clips) {
if (clip != null) {
nameToClip.set(clip.name, clip);
}
}
// 音樂對應表id
let idToClip: Map<number, cc.AudioClip> = new Map<number, cc.AudioClip>();
let idToPath: Map<number, string> = new Map<number, string>();
for (let row of this._soundTable.Rows) {
let id: number = row.Id;
let path: string = row[this._useCloumStr];
if (path == null) {
continue;
}
let fileName: string = cc.path.basename(path);
if (nameToClip.has(fileName)) {
if (!idToClip.has(id)) {
idToClip.set(id, nameToClip.get(fileName));
idToPath.set(id, path);
}
}
}
CSAudio.Instance.AddClipsInfo(idToClip, idToPath);
}
public HandlerAppClips(clips: cc.AudioClip[]): void {
let nameToClip: Map<string, cc.AudioClip> = new Map<string, cc.AudioClip>();
for (let clip of clips) {
if (clip != null) {
nameToClip.set(clip.name, clip);
}
}
// 音樂對應表id
let idToClip: Map<number, cc.AudioClip> = new Map<number, cc.AudioClip>();
let idToPath: Map<number, string> = new Map<number, string>();
for (let row of this._soundTable.Rows) {
let id: number = row.Id;
let path: string = row[this._useCloumStr];
if (path == null) {
continue;
}
let fileName: string = cc.path.basename(path);
if (nameToClip.has(fileName)) {
if (!idToClip.has(id)) {
idToClip.set(id, nameToClip.get(fileName));
idToPath.set(id, path);
}
}
}
CSAppAudios.InstanceApp.AddAppClipsInfo(idToClip, idToPath);
}
}
export class SoundTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 音效=1, 音樂 = 2 */
Type: number;
/** 繁體中文音檔位置(預設音檔位置) */
PathZnTw: string;
PathEn: string;
}

View File

@ -0,0 +1,18 @@
import { FixedTable } from "../Tables/FixedTable";
declare module '../Tables/FixedTable' {
interface FixedTable {
GetBigWinGameblingRate(idx: number): number;
GetBigWinGameblingRatePerSec(idx: number) : number;
}
}
FixedTable.prototype.GetBigWinGameblingRate = function (idx: number) {
let self = <FixedTable>this;
return self[201 + idx].Value;
}
FixedTable.prototype.GetBigWinGameblingRatePerSec = function (idx: number){
let self = <FixedTable>this;
return self[221 + idx].Value;
}

View File

@ -0,0 +1,93 @@
import { MonkeytowerTable } from "../Tables/MonkeytowerTable";
declare module '../Tables/MonkeytowerTable' {
interface MonkeytowerTable {
GetFixedValue(id: number, isGetBoth: boolean): number;
GetAddMonsterPos(stageNum: number): cc.Vec2;
GetDoorPos(stageNum: number): cc.Vec2;
GetBuildingType(stageNum: number, idx: number): number;
GetBuildingLength(stageNum: number): number;
GetBuildingPos(stageNum: number, idx: number): cc.Vec2;
GetCornerLength(stageNum: number): number;
GetCornerPos(stageNum: number, idx: number): cc.Vec2;
GetCornerMove(stageNum: number, idx: number): cc.Vec2;
GetTowerAtkRange(id: number, lv: number): number;
GetTowerAtkSpeed(id: number, lv: number): number;
}
}
MonkeytowerTable.prototype.GetFixedValue = function (id: number, isGetBoth: boolean) {
let self = <MonkeytowerTable>this;
let value: number = undefined;
if (isGetBoth) {
value = self.Fixed[id]["BValue"];
} else {
value = self.Fixed[id]["CValue"];
}
return value;
}
MonkeytowerTable.prototype.GetTowerAtkSpeed = function (id: number, lv: number) {
let self = <MonkeytowerTable>this;
let range: number = self.Tower[id]["AttackSpeed" + lv];
return range;
}
MonkeytowerTable.prototype.GetTowerAtkRange = function (id: number, lv: number) {
let self = <MonkeytowerTable>this;
let range: number = self.Tower[id]["AttackRange" + lv];
return range;
}
MonkeytowerTable.prototype.GetAddMonsterPos = function (stageNum: number) {
let self = <MonkeytowerTable>this;
let x: number = self["Set" + stageNum][1].CoordinateX;
let y: number = self["Set" + stageNum][1].CoordinateY;
return cc.v2(x, y);
}
MonkeytowerTable.prototype.GetDoorPos = function (stageNum: number) {
let self = <MonkeytowerTable>this;
let x: number = self["Set" + stageNum][2].CoordinateX;
let y: number = self["Set" + stageNum][2].CoordinateY;
return cc.v2(x, y);
}
MonkeytowerTable.prototype.GetBuildingType = function (stageNum: number, idx: number) {
let self = <MonkeytowerTable>this;
let type: number = self["Building" + stageNum][idx].Type;
return type;
}
MonkeytowerTable.prototype.GetBuildingLength = function (stageNum: number) {
let self = <MonkeytowerTable>this;
let num: number = self["Building" + stageNum].Keys.length;
return num;
}
MonkeytowerTable.prototype.GetBuildingPos = function (stageNum: number, idx: number) {
let self = <MonkeytowerTable>this;
let x: number = self["Building" + stageNum][idx].CoordinateX;
let y: number = self["Building" + stageNum][idx].CoordinateY;
return cc.v2(x, y);
}
MonkeytowerTable.prototype.GetCornerLength = function (stageNum: number) {
let self = <MonkeytowerTable>this;
let num: number = self["Corner" + stageNum].Keys.length;
return num;
}
MonkeytowerTable.prototype.GetCornerPos = function (stageNum: number, idx: number) {
let self = <MonkeytowerTable>this;
let x: number = self["Corner" + stageNum][idx].CoordinateX;
let y: number = self["Corner" + stageNum][idx].CoordinateY;
return cc.v2(x, y);
}
MonkeytowerTable.prototype.GetCornerMove = function (stageNum: number, idx: number) {
let self = <MonkeytowerTable>this;
let x: number = self["Corner" + stageNum][idx].MovingX;
let y: number = self["Corner" + stageNum][idx].MovingY;
return cc.v2(x, y);
}

View File

@ -0,0 +1,56 @@
import { StringFilterTable, StringTable, StringTableRow } from "../Tables/StringTable";
declare module '../Tables/StringTable' {
interface StringTable {
GetVipSetName(set: number): string;
Get(language: number, id: number): string;
}
interface StringTableRow {
ChangeMsg(): string;
}
interface StringFilterTable {
CheckDirtyWord(targetStr: string): boolean;
}
}
StringTable.prototype.GetVipSetName = function(set: number) {
let self = <StringTable>this;
return self.Get(0, set);
}
StringTable.prototype.Get = function(language: number, id: number): string {
let self = <StringTable>this;
// switch (language)
// {
// case 0:
// return self[id].MsgZnTw;
// case 1:
// return self[id].MsgEn;
// case 2:
// return self[id].MsgZnCh;
// default:
// return "Unknown";
// }
return self[id].MsgZnCh;
}
StringTableRow.prototype.ChangeMsg = function() {
let self = <StringTableRow>this;
return self.MsgZnCh + 'hello';
}
StringFilterTable.prototype.CheckDirtyWord = function(targetStr: string): boolean {
let self = <StringFilterTable>this;
targetStr = targetStr.toLowerCase();
for (let item of self.Rows)
{
if (targetStr.indexOf(item.FilterWord) >= 0)
{
return true;
}
}
return false;
}

View File

@ -0,0 +1,153 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* BAR_1401麻辣小瑪莉#bar_1401.xlsx
* ##, ##
*/
export class Bar1401Table extends TableBase<WithoutRow> {
private _fixed: FixedTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#bar_1401#fixed", FixedTable, FixedTableRow); }
private _symbol: SymbolTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #symbol */
public get Symbol(): SymbolTable { return this._symbol = this._symbol || TableManager.InitTable("#bar_1401#symbol", SymbolTable, SymbolTableRow); }
private _pay: PayTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #pay */
public get Pay(): PayTable { return this._pay = this._pay || TableManager.InitTable("#bar_1401#pay", PayTable, PayTableRow); }
private _wheelForm: WheelFormTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #wheel_form */
public get WheelForm(): WheelFormTable { return this._wheelForm = this._wheelForm || TableManager.InitTable("#bar_1401#wheel_form", WheelFormTable, WheelFormTableRow); }
private _wheel: WheelTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #wheel */
public get Wheel(): WheelTable { return this._wheel = this._wheel || TableManager.InitTable("#bar_1401#wheel", WheelTable, WheelTableRow); }
private _wheelClient: WheelClientTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #wheel_client */
public get WheelClient(): WheelClientTable { return this._wheelClient = this._wheelClient || TableManager.InitTable("#bar_1401#wheel_client", WheelClientTable, WheelClientTableRow); }
private _sound: SoundTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #sound */
public get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#bar_1401#sound", SoundTable, SoundTableRow); }
private _string: StringTable;
/** BAR_1401麻辣小瑪莉#bar_1401.xlsx > #string */
public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#bar_1401#string", StringTable, StringTableRow); }
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 共用(值) */
BValue: number;
/** client專用(值) */
CValue: number;
}
/**
* #symbol
*/
export class SymbolTable extends TableBase<SymbolTableRow> {}
export class SymbolTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 圖檔索引 */
PicIndex: number;
/** 重複位移 */
SameShift: number;
}
/**
* #pay
*/
export class PayTable extends TableBase<PayTableRow> {}
export class PayTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 賠率 */
Lamp: number;
/** 賠率 */
X9: number;
/** 賠率 */
X8: number;
/** 賠率 */
X7: number;
/** 賠率 */
X6: number;
/** 賠率 */
JP: number;
}
/**
* #wheel_form
*/
export class WheelFormTable extends TableBase<WheelFormTableRow> {}
export class WheelFormTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel
*/
export class WheelTable extends TableBase<WheelTableRow> {}
export class WheelTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel_client
*/
export class WheelClientTable extends TableBase<WheelClientTableRow> {}
export class WheelClientTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 輪軸列表 */
SymbolList: any;
}
/**
* #sound
*/
export class SoundTable extends TableBase<SoundTableRow> {}
export class SoundTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 音效=1, 音樂 = 2 */
Type: number;
/** 繁體中文音檔位置(預設音檔位置) */
PathZnTw: string;
}
/**
* #string
*/
export class StringTable extends TableBase<StringTableRow> {}
export class StringTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 英文訊息 */
MsgEn: string;
/** 繁體中文訊息 */
MsgZnTw: string;
/** 簡體中文讯息 */
MsgZnCh: string;
}

View File

@ -0,0 +1,103 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* _幣種設定表#bet_setting.xlsx
* ##, ##
*/
export class BetSettingTable extends TableBase<WithoutRow> {
private _betAPP: BetAPPTable;
/** 共用_幣種設定表#bet_setting.xlsx > #bet_APP */
public get BetAPP(): BetAPPTable { return this._betAPP = this._betAPP || TableManager.InitTable("#bet_setting#bet_APP", BetAPPTable, BetAPPTableRow); }
}
/**
* #bet_APP
*/
export class BetAPPTable extends TableBase<BetAPPTableRow> {}
export class BetAPPTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 1階 */
Rank1: number;
/** 2階 */
Rank2: number;
/** 3階 */
Rank3: number;
/** 4階 */
Rank4: number;
/** 5階 */
Rank5: number;
/** 6階 */
Rank6: number;
/** 7階 */
Rank7: number;
/** 8階 */
Rank8: number;
/** 9階 */
Rank9: number;
/** 10階 */
Rank10: number;
/** 11階 */
Rank11: number;
/** 12階 */
Rank12: number;
/** 13階 */
Rank13: number;
/** 14階 */
Rank14: number;
/** 15階 */
Rank15: number;
/** 16階 */
Rank16: number;
/** 17階 */
Rank17: number;
/** 18階 */
Rank18: number;
/** 19階 */
Rank19: number;
/** 20階 */
Rank20: number;
/** 21階 */
Rank21: number;
/** 22階 */
Rank22: number;
/** 23階 */
Rank23: number;
/** 24階 */
Rank24: number;
/** 25階 */
Rank25: number;
/** 26階 */
Rank26: number;
/** 27階 */
Rank27: number;
/** 28階 */
Rank28: number;
/** 29階 */
Rank29: number;
/** 30階 */
Rank30: number;
/** 31階 */
Rank31: number;
/** 32階 */
Rank32: number;
/** 33階 */
Rank33: number;
/** 34階 */
Rank34: number;
/** 35階 */
Rank35: number;
/** 36階 */
Rank36: number;
/** 37階 */
Rank37: number;
/** 38階 */
Rank38: number;
/** 39階 */
Rank39: number;
/** 40階 */
Rank40: number;
}

View File

@ -0,0 +1,109 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx
* ##, ##
*/
export class Bingo8starsTable extends TableBase<WithoutRow> {
private _fixed: FixedTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#bingo_8stars#fixed", FixedTable, FixedTableRow); }
private _pay: PayTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx > #pay */
public get Pay(): PayTable { return this._pay = this._pay || TableManager.InitTable("#bingo_8stars#pay", PayTable, PayTableRow); }
private _symbol: SymbolTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx > #symbol */
public get Symbol(): SymbolTable { return this._symbol = this._symbol || TableManager.InitTable("#bingo_8stars#symbol", SymbolTable, SymbolTableRow); }
private _wheel: WheelTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx > #wheel */
public get Wheel(): WheelTable { return this._wheel = this._wheel || TableManager.InitTable("#bingo_8stars#wheel", WheelTable, WheelTableRow); }
private _wheelClient: WheelClientTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx > #wheel_client */
public get WheelClient(): WheelClientTable { return this._wheelClient = this._wheelClient || TableManager.InitTable("#bingo_8stars#wheel_client", WheelClientTable, WheelClientTableRow); }
private _sound: SoundTable;
/** SLOT_1101彩票_百搭八星彩#bingo_8stars.xlsx > #sound */
public get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#bingo_8stars#sound", SoundTable, SoundTableRow); }
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 值 */
Value: number;
/** client專用(值) */
CValue: number;
}
/**
* #pay
*/
export class PayTable extends TableBase<PayTableRow> {}
export class PayTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 星數 */
Stars: number;
/** 基礎賠率 */
Pay: number;
}
/**
* #symbol
*/
export class SymbolTable extends TableBase<SymbolTableRow> {}
export class SymbolTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 倍率 */
Mul: number;
}
/**
* #wheel
*/
export class WheelTable extends TableBase<WheelTableRow> {}
export class WheelTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel_client
*/
export class WheelClientTable extends TableBase<WheelClientTableRow> {}
export class WheelClientTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 輪軸列表 */
SymbolList: any;
}
/**
* #sound
*/
export class SoundTable extends TableBase<SoundTableRow> {}
export class SoundTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 音效=1, 音樂 = 2 */
Type: number;
/** 繁體中文音檔位置(預設音檔位置) */
PathZnTw: string;
}

View File

@ -0,0 +1,77 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* SLOT_1102彩票_九星彩#bingo_9stars.xlsx
* ##, ##
*/
export class Bingo9starsTable extends TableBase<WithoutRow> {
private _fixed: FixedTable;
/** SLOT_1102彩票_九星彩#bingo_9stars.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#bingo_9stars#fixed", FixedTable, FixedTableRow); }
private _pay: PayTable;
/** SLOT_1102彩票_九星彩#bingo_9stars.xlsx > #pay */
public get Pay(): PayTable { return this._pay = this._pay || TableManager.InitTable("#bingo_9stars#pay", PayTable, PayTableRow); }
private _card: CardTable;
/** SLOT_1102彩票_九星彩#bingo_9stars.xlsx > #card */
public get Card(): CardTable { return this._card = this._card || TableManager.InitTable("#bingo_9stars#card", CardTable, CardTableRow); }
private _sound: SoundTable;
/** SLOT_1102彩票_九星彩#bingo_9stars.xlsx > #sound */
public get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#bingo_9stars#sound", SoundTable, SoundTableRow); }
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 值 */
Value: number;
/** client專用(值) */
CValue: number;
}
/**
* #pay
*/
export class PayTable extends TableBase<PayTableRow> {}
export class PayTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 星數 */
Stars: number;
/** 基礎賠率 */
Pay: number;
}
/**
* #card
*/
export class CardTable extends TableBase<CardTableRow> {}
export class CardTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #sound
*/
export class SoundTable extends TableBase<SoundTableRow> {}
export class SoundTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 音效=1, 音樂 = 2 */
Type: number;
/** 繁體中文音檔位置(預設音檔位置) */
PathZnTw: string;
}

View File

@ -0,0 +1,83 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* _賓果#bingo.xlsx
* ##, ##
*/
export class BingoTable extends TableBase<WithoutRow> {
private _fixed: FixedTable;
/** 系統_賓果#bingo.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#bingo#fixed", FixedTable, FixedTableRow); }
private _award: AwardTable;
/** 系統_賓果#bingo.xlsx > #award */
public get Award(): AwardTable { return this._award = this._award || TableManager.InitTable("#bingo#award", AwardTable, AwardTableRow); }
private _specialtime: SpecialtimeTable;
/** 系統_賓果#bingo.xlsx > #specialtime */
public get Specialtime(): SpecialtimeTable { return this._specialtime = this._specialtime || TableManager.InitTable("#bingo#specialtime", SpecialtimeTable, SpecialtimeTableRow); }
private _string: StringTable;
/** 系統_賓果#bingo.xlsx > #string */
public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#bingo#string", StringTable, StringTableRow); }
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 值 */
BValue: number;
/** 值 */
CValue: number;
}
/**
* #award
*/
export class AwardTable extends TableBase<AwardTableRow> {}
export class AwardTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 值 */
Award1: number;
/** 值 */
Award2: number;
/** 值 */
Award3: number;
}
/**
* #specialtime
*/
export class SpecialtimeTable extends TableBase<SpecialtimeTableRow> {}
export class SpecialtimeTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 開始時間 */
Timestart: string;
/** 開始時間 */
Timeend: string;
/** 時間間隔(分鐘) */
Value: number;
}
/**
* #string
*/
export class StringTable extends TableBase<StringTableRow> {}
export class StringTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 介面字串 */
MsgZnTw: string;
}

View File

@ -0,0 +1,45 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* _卡片強化#card_upgrade.xlsx
* ##, ##
*/
export class CardUpgradeTable extends TableBase<WithoutRow> {
private _upgradeSetting: UpgradeSettingTable;
/** 系統_卡片強化#card_upgrade.xlsx > #upgrade_setting */
public get UpgradeSetting(): UpgradeSettingTable { return this._upgradeSetting = this._upgradeSetting || TableManager.InitTable("#card_upgrade#upgrade_setting", UpgradeSettingTable, UpgradeSettingTableRow); }
private _string: StringTable;
/** 系統_卡片強化#card_upgrade.xlsx > #string */
public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#card_upgrade#string", StringTable, StringTableRow); }
}
/**
* #upgrade_setting
*/
export class UpgradeSettingTable extends TableBase<UpgradeSettingTableRow> {}
export class UpgradeSettingTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 升級 */
Upgrade: number;
/** 機率 (%) */
Chance: number;
/** 花費 */
Spend: number;
}
/**
* #string
*/
export class StringTable extends TableBase<StringTableRow> {}
export class StringTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 繁體中文訊息 */
MsgZnTw: string;
}

View File

@ -0,0 +1,81 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* _聊天室#chat.xlsx
* ##, ##
*/
export class ChatTable extends TableBase<WithoutRow> {
private _channel: ChannelTable;
/** 系統_聊天室#chat.xlsx > #channel */
public get Channel(): ChannelTable { return this._channel = this._channel || TableManager.InitTable("#chat#channel", ChannelTable, ChannelTableRow); }
private _fixed: FixedTable;
/** 系統_聊天室#chat.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#chat#fixed", FixedTable, FixedTableRow); }
private _banstring: BanstringTable;
/** 系統_聊天室#chat.xlsx > #banstring */
public get Banstring(): BanstringTable { return this._banstring = this._banstring || TableManager.InitTable("#chat#banstring", BanstringTable, BanstringTableRow); }
private _string: StringTable;
/** 系統_聊天室#chat.xlsx > #string */
public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#chat#string", StringTable, StringTableRow); }
}
/**
* #channel
*/
export class ChannelTable extends TableBase<ChannelTableRow> {}
export class ChannelTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 名稱 */
Name: string;
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 參數 */
ValueC: number;
}
/**
* #banstring
*/
export class BanstringTable extends TableBase<BanstringTableRow> {}
export class BanstringTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 禁字 */
Word: string;
}
/**
* #string
*/
export class StringTable extends TableBase<StringTableRow> {}
export class StringTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 英文訊息 */
MsgEn: string;
/** 繁體中文訊息 */
MsgZnTw: string;
/** 簡體中文讯息 */
MsgZnCh: string;
/** 越南文讯息 */
MsgVi: string;
/** 泰文讯息 */
MsgTh: string;
}

View File

@ -0,0 +1,249 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* Cluster_1302鍊金術士#cluster_1302.xlsx
* ##, ##
*/
export class Cluster1302Table extends TableBase<WithoutRow> {
private _fixed: FixedTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#cluster_1302#fixed", FixedTable, FixedTableRow); }
private _symbol: SymbolTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #symbol */
public get Symbol(): SymbolTable { return this._symbol = this._symbol || TableManager.InitTable("#cluster_1302#symbol", SymbolTable, SymbolTableRow); }
private _pay: PayTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #pay */
public get Pay(): PayTable { return this._pay = this._pay || TableManager.InitTable("#cluster_1302#pay", PayTable, PayTableRow); }
private _wheelForm: WheelFormTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #wheel_form */
public get WheelForm(): WheelFormTable { return this._wheelForm = this._wheelForm || TableManager.InitTable("#cluster_1302#wheel_form", WheelFormTable, WheelFormTableRow); }
private _wheel: WheelTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #wheel */
public get Wheel(): WheelTable { return this._wheel = this._wheel || TableManager.InitTable("#cluster_1302#wheel", WheelTable, WheelTableRow); }
private _wheelClient: WheelClientTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #wheel_client */
public get WheelClient(): WheelClientTable { return this._wheelClient = this._wheelClient || TableManager.InitTable("#cluster_1302#wheel_client", WheelClientTable, WheelClientTableRow); }
private _sound: SoundTable;
/** Cluster_1302鍊金術士#cluster_1302.xlsx > #sound */
public get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#cluster_1302#sound", SoundTable, SoundTableRow); }
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 共用(值) */
BValue: number;
/** client專用(值) */
CValue: number;
}
/**
* #symbol
*/
export class SymbolTable extends TableBase<SymbolTableRow> {}
export class SymbolTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 圖檔索引 */
PicIndex: number;
/** 重複位移 */
SameShift: number;
}
/**
* #pay
*/
export class PayTable extends TableBase<PayTableRow> {}
export class PayTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 賠率 */
X1: number;
/** 賠率 */
X2: number;
/** 賠率 */
X3: number;
/** 賠率 */
X4: number;
/** 賠率 */
X5: number;
/** 賠率 */
X6: number;
/** 賠率 */
X7: number;
/** 賠率 */
X8: number;
/** 賠率 */
X9: number;
/** 賠率 */
X10: number;
/** 賠率 */
X11: number;
/** 賠率 */
X12: number;
/** 賠率 */
X13: number;
/** 賠率 */
X14: number;
/** 賠率 */
X15: number;
/** 賠率 */
X16: number;
/** 賠率 */
X17: number;
/** 賠率 */
X18: number;
/** 賠率 */
X19: number;
/** 賠率 */
X20: number;
/** 賠率 */
X21: number;
/** 賠率 */
X22: number;
/** 賠率 */
X23: number;
/** 賠率 */
X24: number;
/** 賠率 */
X25: number;
/** 賠率 */
X26: number;
/** 賠率 */
X27: number;
/** 賠率 */
X28: number;
/** 賠率 */
X29: number;
/** 賠率 */
X30: number;
/** 賠率 */
X31: number;
/** 賠率 */
X32: number;
/** 賠率 */
X33: number;
/** 賠率 */
X34: number;
/** 賠率 */
X35: number;
/** 賠率 */
X36: number;
/** 賠率 */
X37: number;
/** 賠率 */
X38: number;
/** 賠率 */
X39: number;
/** 賠率 */
X40: number;
/** 賠率 */
X41: number;
/** 賠率 */
X42: number;
/** 賠率 */
X43: number;
/** 賠率 */
X44: number;
/** 賠率 */
X45: number;
/** 賠率 */
X46: number;
/** 賠率 */
X47: number;
/** 賠率 */
X48: number;
/** 賠率 */
X49: number;
/** 賠率 */
X50: number;
/** 賠率 */
X51: number;
/** 賠率 */
X52: number;
/** 賠率 */
X53: number;
/** 賠率 */
X54: number;
/** 賠率 */
X55: number;
/** 賠率 */
X56: number;
/** 賠率 */
X57: number;
/** 賠率 */
X58: number;
/** 賠率 */
X59: number;
/** 賠率 */
X60: number;
/** 賠率 */
X61: number;
/** 賠率 */
X62: number;
/** 賠率 */
X63: number;
/** 賠率 */
X64: number;
}
/**
* #wheel_form
*/
export class WheelFormTable extends TableBase<WheelFormTableRow> {}
export class WheelFormTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel
*/
export class WheelTable extends TableBase<WheelTableRow> {}
export class WheelTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel_client
*/
export class WheelClientTable extends TableBase<WheelClientTableRow> {}
export class WheelClientTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 輪軸列表 */
SymbolList: any;
}
/**
* #sound
*/
export class SoundTable extends TableBase<SoundTableRow> {}
export class SoundTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 音效=1, 音樂 = 2 */
Type: number;
/** 繁體中文音檔位置(預設音檔位置) */
PathZnTw: string;
}

View File

@ -0,0 +1,249 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* Cluster_1303糖果爆炸#cluster_1303.xlsx
* ##, ##
*/
export class Cluster1303Table extends TableBase<WithoutRow> {
private _fixed: FixedTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#cluster_1303#fixed", FixedTable, FixedTableRow); }
private _symbol: SymbolTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #symbol */
public get Symbol(): SymbolTable { return this._symbol = this._symbol || TableManager.InitTable("#cluster_1303#symbol", SymbolTable, SymbolTableRow); }
private _pay: PayTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #pay */
public get Pay(): PayTable { return this._pay = this._pay || TableManager.InitTable("#cluster_1303#pay", PayTable, PayTableRow); }
private _wheelForm: WheelFormTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #wheel_form */
public get WheelForm(): WheelFormTable { return this._wheelForm = this._wheelForm || TableManager.InitTable("#cluster_1303#wheel_form", WheelFormTable, WheelFormTableRow); }
private _wheel: WheelTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #wheel */
public get Wheel(): WheelTable { return this._wheel = this._wheel || TableManager.InitTable("#cluster_1303#wheel", WheelTable, WheelTableRow); }
private _wheelClient: WheelClientTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #wheel_client */
public get WheelClient(): WheelClientTable { return this._wheelClient = this._wheelClient || TableManager.InitTable("#cluster_1303#wheel_client", WheelClientTable, WheelClientTableRow); }
private _sound: SoundTable;
/** Cluster_1303糖果爆炸#cluster_1303.xlsx > #sound */
public get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#cluster_1303#sound", SoundTable, SoundTableRow); }
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 共用(值) */
BValue: number;
/** client專用(值) */
CValue: number;
}
/**
* #symbol
*/
export class SymbolTable extends TableBase<SymbolTableRow> {}
export class SymbolTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 圖檔索引 */
PicIndex: number;
/** 重複位移 */
SameShift: number;
}
/**
* #pay
*/
export class PayTable extends TableBase<PayTableRow> {}
export class PayTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 賠率 */
X1: number;
/** 賠率 */
X2: number;
/** 賠率 */
X3: number;
/** 賠率 */
X4: number;
/** 賠率 */
X5: number;
/** 賠率 */
X6: number;
/** 賠率 */
X7: number;
/** 賠率 */
X8: number;
/** 賠率 */
X9: number;
/** 賠率 */
X10: number;
/** 賠率 */
X11: number;
/** 賠率 */
X12: number;
/** 賠率 */
X13: number;
/** 賠率 */
X14: number;
/** 賠率 */
X15: number;
/** 賠率 */
X16: number;
/** 賠率 */
X17: number;
/** 賠率 */
X18: number;
/** 賠率 */
X19: number;
/** 賠率 */
X20: number;
/** 賠率 */
X21: number;
/** 賠率 */
X22: number;
/** 賠率 */
X23: number;
/** 賠率 */
X24: number;
/** 賠率 */
X25: number;
/** 賠率 */
X26: number;
/** 賠率 */
X27: number;
/** 賠率 */
X28: number;
/** 賠率 */
X29: number;
/** 賠率 */
X30: number;
/** 賠率 */
X31: number;
/** 賠率 */
X32: number;
/** 賠率 */
X33: number;
/** 賠率 */
X34: number;
/** 賠率 */
X35: number;
/** 賠率 */
X36: number;
/** 賠率 */
X37: number;
/** 賠率 */
X38: number;
/** 賠率 */
X39: number;
/** 賠率 */
X40: number;
/** 賠率 */
X41: number;
/** 賠率 */
X42: number;
/** 賠率 */
X43: number;
/** 賠率 */
X44: number;
/** 賠率 */
X45: number;
/** 賠率 */
X46: number;
/** 賠率 */
X47: number;
/** 賠率 */
X48: number;
/** 賠率 */
X49: number;
/** 賠率 */
X50: number;
/** 賠率 */
X51: number;
/** 賠率 */
X52: number;
/** 賠率 */
X53: number;
/** 賠率 */
X54: number;
/** 賠率 */
X55: number;
/** 賠率 */
X56: number;
/** 賠率 */
X57: number;
/** 賠率 */
X58: number;
/** 賠率 */
X59: number;
/** 賠率 */
X60: number;
/** 賠率 */
X61: number;
/** 賠率 */
X62: number;
/** 賠率 */
X63: number;
/** 賠率 */
X64: number;
}
/**
* #wheel_form
*/
export class WheelFormTable extends TableBase<WheelFormTableRow> {}
export class WheelFormTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel
*/
export class WheelTable extends TableBase<WheelTableRow> {}
export class WheelTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel_client
*/
export class WheelClientTable extends TableBase<WheelClientTableRow> {}
export class WheelClientTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 輪軸列表 */
SymbolList: any;
}
/**
* #sound
*/
export class SoundTable extends TableBase<SoundTableRow> {}
export class SoundTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 音效=1, 音樂 = 2 */
Type: number;
/** 繁體中文音檔位置(預設音檔位置) */
PathZnTw: string;
}

View File

@ -0,0 +1,139 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* COLLECT_001猛瑪#collect_001.xlsx
* ##, ##
*/
export class Collect001Table extends TableBase<WithoutRow> {
private _collect: CollectTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #collect */
public get Collect(): CollectTable { return this._collect = this._collect || TableManager.InitTable("#collect_001#collect", CollectTable, CollectTableRow); }
private _fixed: FixedTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #fixed */
public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#collect_001#fixed", FixedTable, FixedTableRow); }
private _token: TokenTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #token */
public get Token(): TokenTable { return this._token = this._token || TableManager.InitTable("#collect_001#token", TokenTable, TokenTableRow); }
private _symbol: SymbolTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #symbol */
public get Symbol(): SymbolTable { return this._symbol = this._symbol || TableManager.InitTable("#collect_001#symbol", SymbolTable, SymbolTableRow); }
private _pay: PayTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #pay */
public get Pay(): PayTable { return this._pay = this._pay || TableManager.InitTable("#collect_001#pay", PayTable, PayTableRow); }
private _wheelForm: WheelFormTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #wheel_form */
public get WheelForm(): WheelFormTable { return this._wheelForm = this._wheelForm || TableManager.InitTable("#collect_001#wheel_form", WheelFormTable, WheelFormTableRow); }
private _wheelClient: WheelClientTable;
/** COLLECT_001猛瑪#collect_001.xlsx > #wheel_client */
public get WheelClient(): WheelClientTable { return this._wheelClient = this._wheelClient || TableManager.InitTable("#collect_001#wheel_client", WheelClientTable, WheelClientTableRow); }
}
/**
* #collect
*/
export class CollectTable extends TableBase<CollectTableRow> {}
export class CollectTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 此區單格所需token */
Tokens: number;
}
/**
* #fixed
*/
export class FixedTable extends TableBase<FixedTableRow> {}
export class FixedTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 共用(值) */
BValue: number;
/** 共用(名稱) */
BName: string;
/** client專用(值) */
CValue: number;
/** client專用(名稱) */
CName: string;
}
/**
* #token
*/
export class TokenTable extends TableBase<TokenTableRow> {}
export class TokenTableRow implements ITableRow {
/** 編號 */
Id: number;
/** token種類 */
TokenType: number;
/** token數量 */
Token: any;
/** 可掛token的圖標 */
PermitSymbols: any;
}
/**
* #symbol
*/
export class SymbolTable extends TableBase<SymbolTableRow> {}
export class SymbolTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 圖檔索引 */
PicIndex: number;
/** 重複位移 */
SameShift: number;
}
/**
* #pay
*/
export class PayTable extends TableBase<PayTableRow> {}
export class PayTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 賠率 */
X1: number;
/** 賠率 */
X2: number;
/** 賠率 */
X3: number;
/** 賠率 */
X4: number;
/** 賠率 */
X5: number;
}
/**
* #wheel_form
*/
export class WheelFormTable extends TableBase<WheelFormTableRow> {}
export class WheelFormTableRow implements ITableRow {
/** 編號 */
Id: number;
}
/**
* #wheel_client
*/
export class WheelClientTable extends TableBase<WheelClientTableRow> {}
export class WheelClientTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 輪軸列表 */
SymbolList: any;
}

View File

@ -0,0 +1,29 @@
import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";
/**
* COLLECT_002幸運美鈔#collect_002.xlsx
* ##, ##
*/
export class Collect002Table extends TableBase<WithoutRow> {
private _collect: CollectTable;
/** COLLECT_002幸運美鈔#collect_002.xlsx > #collect */
public get Collect(): CollectTable { return this._collect = this._collect || TableManager.InitTable("#collect_002#collect", CollectTable, CollectTableRow); }
}
/**
* #collect
*/
export class CollectTable extends TableBase<CollectTableRow> {}
export class CollectTableRow implements ITableRow {
/** 編號 */
Id: number;
/** 此區單格所需token */
Tokens: number;
/** 戳幾次 */
Pick: number;
/** 金庫倍率 */
Multiple: any;
}

Some files were not shown because too many files have changed in this diff Show More