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

/**
 * 遊藝館_傳統百家樂#normal_baccarat.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class NormalBaccaratTable extends TableBase<WithoutRow> {
	private _bet: BetTable;
	/**  遊藝館_傳統百家樂#normal_baccarat.xlsx > #bet */
	public get Bet(): BetTable { return this._bet = this._bet || TableManager.InitTable("#normal_baccarat#bet", BetTable, BetTableRow); }

	private _fixed: FixedTable;
	/**  遊藝館_傳統百家樂#normal_baccarat.xlsx > #fixed */
	public get Fixed(): FixedTable { return this._fixed = this._fixed || TableManager.InitTable("#normal_baccarat#fixed", FixedTable, FixedTableRow); }

	private _drawRule: DrawRuleTable;
	/**  遊藝館_傳統百家樂#normal_baccarat.xlsx > #draw_rule */
	public get DrawRule(): DrawRuleTable { return this._drawRule = this._drawRule || TableManager.InitTable("#normal_baccarat#draw_rule", DrawRuleTable, DrawRuleTableRow); }

	private _paytable: PaytableTable;
	/**  遊藝館_傳統百家樂#normal_baccarat.xlsx > #paytable */
	public get Paytable(): PaytableTable { return this._paytable = this._paytable || TableManager.InitTable("#normal_baccarat#paytable", PaytableTable, PaytableTableRow); }

	private _string: StringTable;
	/**  遊藝館_傳統百家樂#normal_baccarat.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#normal_baccarat#string", StringTable, StringTableRow); }

	private _sound: SoundTable;
	/**  遊藝館_傳統百家樂#normal_baccarat.xlsx > #sound */
	public get Sound(): SoundTable { return this._sound = this._sound || TableManager.InitTable("#normal_baccarat#sound", SoundTable, SoundTableRow); }
}

/**
 * #bet
 */
export class BetTable extends TableBase<BetTableRow> {}

export class BetTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 顯示 */
	Show: any;
	/** 莊 */
	Type1: any;
	/** 閒 */
	Type2: any;
	/** 和 */
	Type3: any;
	/** 莊對 */
	Type4: any;
	/** 閒對 */
	Type5: any;
	/** 三寶 */
	Type6: any;
}

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

export class FixedTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 共用(值) */
	BValue: number;
	/** client專用(值) */
	CValue: number;
}

/**
 * #draw_rule
 */
export class DrawRuleTable extends TableBase<DrawRuleTableRow> {}

export class DrawRuleTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 是否搏牌 */
	P0: number;
	/** 是否搏牌 */
	P1: number;
	/** 是否搏牌 */
	P2: number;
	/** 是否搏牌 */
	P3: number;
	/** 是否搏牌 */
	P4: number;
	/** 是否搏牌 */
	P5: number;
	/** 是否搏牌 */
	P6: number;
	/** 是否搏牌 */
	P7: number;
	/** 是否搏牌 */
	P8: number;
	/** 是否搏牌 */
	P9: number;
}

/**
 * #paytable
 */
export class PaytableTable extends TableBase<PaytableTableRow> {}

export class PaytableTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 賠率 */
	PayNormal: number;
}

/**
 * #string
 */
export class StringTable extends TableBase<StringTableRow> {}

export class StringTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 英文訊息 */
	MsgEn: string;
	/** 繁體中文訊息 */
	MsgZnTw: string;
	/** 簡體中文訊息 */
	MsgZnCh: string;
	/** 越南文讯息 */
	MsgVi: string;
	/** 泰文讯息 */
	MsgTh: string;
}

/**
 * #sound
 */
export class SoundTable extends TableBase<SoundTableRow> {}

export class SoundTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 音效=1, 音樂 = 2 */
	Type: number;
	/** 繁體中文音檔位置 */
	PathZnTw: string;
	/** 英文音檔位置(預設音檔位置) */
	PathEn: string;
}
