import { ITableRow, WithoutRow } from "../../Engine/CatanEngine/TableV3/Core/ITableRow";
import { TableBase } from "../../Engine/CatanEngine/TableV3/Core/TableBase";
import { TableManager } from "../../Engine/CatanEngine/TableV3/TableManager";

/**
 * 系統_機台分桌#lobby.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class LobbyTable extends TableBase<WithoutRow> {
	private _fixed: FixedTable;
	/**  系統_機台分桌#lobby.xlsx > #fixed */
	public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#lobby#fixed", FixedTable, FixedTableRow); }

	private _slot: SlotTable;
	/**  系統_機台分桌#lobby.xlsx > #slot */
	public get Slot(): SlotTable { return this._slot = this._slot || TableManager.InitTable("#lobby#slot", SlotTable, SlotTableRow); }

	private _string: StringTable;
	/**  系統_機台分桌#lobby.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#lobby#string", StringTable, StringTableRow); }
}

/**
 * #fixed
 */
export class FixedTable extends TableBase<FixedTableRow> {}

export class FixedTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 比值 */
	Money: number;
	/** 桌 */
	Table: number;
	/** 大獎1 */
	Bigwin1: number;
	/** 大獎2 */
	Bigwin2: number;
	/** 大獎3 */
	Bigwin3: number;
	/** 大獎4 */
	Bigwin4: number;
}

/**
 * #slot
 */
export class SlotTable extends TableBase<SlotTableRow> {}

export class SlotTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 分廳 */
	Lobby: number;
	/** 分桌 */
	Table: number;
	/** 類型 */
	Type: number;
	/** 免費遊戲 */
	Freegame: number;
	/** 指定特性 */
	Properties: any;
	/** 免費遊戲 */
	Free: 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;
}
