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

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

	private _dropCard: DropCardTable;
	/**  系統_道具掉落表#itemdrop.xlsx > #drop_card */
	public get DropCard(): DropCardTable { return this._dropCard = this._dropCard || TableManager.InitTable("#itemdrop#drop_card", DropCardTable, DropCardTableRow); }

	private _dropChip: DropChipTable;
	/**  系統_道具掉落表#itemdrop.xlsx > #drop_chip */
	public get DropChip(): DropChipTable { return this._dropChip = this._dropChip || TableManager.InitTable("#itemdrop#drop_chip", DropChipTable, DropChipTableRow); }

	private _dropBingo: DropBingoTable;
	/**  系統_道具掉落表#itemdrop.xlsx > #drop_bingo */
	public get DropBingo(): DropBingoTable { return this._dropBingo = this._dropBingo || TableManager.InitTable("#itemdrop#drop_bingo", DropBingoTable, DropBingoTableRow); }

	private _dropFive: DropFiveTable;
	/**  系統_道具掉落表#itemdrop.xlsx > #drop_five */
	public get DropFive(): DropFiveTable { return this._dropFive = this._dropFive || TableManager.InitTable("#itemdrop#drop_five", DropFiveTable, DropFiveTableRow); }
}

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

export class FixedTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 值 */
	BValue: number;
	/** 值 */
	CValue: number;
}

/**
 * #drop_card
 */
export class DropCardTable extends TableBase<DropCardTableRow> {}

export class DropCardTableRow implements ITableRow {
	/** 編號 */
	Id: number;
}

/**
 * #drop_chip
 */
export class DropChipTable extends TableBase<DropChipTableRow> {}

export class DropChipTableRow implements ITableRow {
	/** 編號 */
	Id: number;
}

/**
 * #drop_bingo
 */
export class DropBingoTable extends TableBase<DropBingoTableRow> {}

export class DropBingoTableRow implements ITableRow {
	/** 編號 */
	Id: number;
}

/**
 * #drop_five
 */
export class DropFiveTable extends TableBase<DropFiveTableRow> {}

export class DropFiveTableRow implements ITableRow {
	/** 編號 */
	Id: number;
}
