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;
}
