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

/**
 * 系統_合成表#composite.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class CompositeTable extends TableBase<WithoutRow> {
	private _chip: ChipTable;
	/**  系統_合成表#composite.xlsx > #chip */
	public get Chip(): ChipTable { return this._chip = this._chip || TableManager.InitTable("#composite#chip", ChipTable, ChipTableRow); }

	private _bingo: BingoTable;
	/**  系統_合成表#composite.xlsx > #bingo */
	public get Bingo(): BingoTable { return this._bingo = this._bingo || TableManager.InitTable("#composite#bingo", BingoTable, BingoTableRow); }

	private _five: FiveTable;
	/**  系統_合成表#composite.xlsx > #five */
	public get Five(): FiveTable { return this._five = this._five || TableManager.InitTable("#composite#five", FiveTable, FiveTableRow); }
}

/**
 * #chip
 */
export class ChipTable extends TableBase<ChipTableRow> {}

export class ChipTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 碎片1 */
	Chip1: any;
	/** 碎片2 */
	Chip2: any;
	/** 碎片3 */
	Chip3: any;
	/** 碎片4 */
	Chip4: any;
	/** 碎片5 */
	Chip5: any;
	/** 碎片6 */
	Chip6: any;
}

/**
 * #bingo
 */
export class BingoTable extends TableBase<BingoTableRow> {}

export class BingoTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 轉黃 */
	Chance2: number;
	/** 轉紅 */
	Chance3: number;
	/** 轉紫 */
	Chance4: number;
}

/**
 * #five
 */
export class FiveTable extends TableBase<FiveTableRow> {}

export class FiveTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 轉黃 */
	Chance2: number;
	/** 轉紅 */
	Chance3: number;
	/** 轉紫 */
	Chance4: number;
}
