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

/**
 * 系統_道具設定#item_setting.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class ItemSettingTable extends TableBase<WithoutRow> {
	private _stringDetail: StringDetailTable;
	/**  系統_道具設定#item_setting.xlsx > #string_detail */
	public get StringDetail(): StringDetailTable { return this._stringDetail = this._stringDetail || TableManager.InitTable("#item_setting#string_detail", StringDetailTable, StringDetailTableRow); }

	private _stringName: StringNameTable;
	/**  系統_道具設定#item_setting.xlsx > #string_name */
	public get StringName(): StringNameTable { return this._stringName = this._stringName || TableManager.InitTable("#item_setting#string_name", StringNameTable, StringNameTableRow); }

	private _couponSetting: CouponSettingTable;
	/**  系統_道具設定#item_setting.xlsx > #coupon_setting */
	public get CouponSetting(): CouponSettingTable { return this._couponSetting = this._couponSetting || TableManager.InitTable("#item_setting#coupon_setting", CouponSettingTable, CouponSettingTableRow); }

	private _card1Setting: Card1SettingTable;
	/**  系統_道具設定#item_setting.xlsx > #card1_setting */
	public get Card1Setting(): Card1SettingTable { return this._card1Setting = this._card1Setting || TableManager.InitTable("#item_setting#card1_setting", Card1SettingTable, Card1SettingTableRow); }
}

/**
 * #string_detail
 */
export class StringDetailTable extends TableBase<StringDetailTableRow> {}

export class StringDetailTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 繁體中文訊息 */
	MsgZnTw: string;
	/** 英文訊息 */
	MsgEn: string;
}

/**
 * #string_name
 */
export class StringNameTable extends TableBase<StringNameTableRow> {}

export class StringNameTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 繁體中文訊息 */
	MsgZnTw: string;
	/** 英文訊息 */
	MsgEn: string;
}

/**
 * #coupon_setting
 */
export class CouponSettingTable extends TableBase<CouponSettingTableRow> {}

export class CouponSettingTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 顏色 */
	Rank: number;
	/** 星數 */
	Star: number;
	/** 卡片名稱 */
	CardName: string;
	/** 卡片說明 */
	CardDetail: number;
}

/**
 * #card1_setting
 */
export class Card1SettingTable extends TableBase<Card1SettingTableRow> {}

export class Card1SettingTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 機台 */
	Slot: number;
	/** 顏色 */
	Rank: number;
	/** 星數 */
	Star: number;
	/** 押注 */
	Bet: number;
	/** 押注 */
	Betrank: number;
	/** 卡片說明 */
	CardDetail: number;
	/** 卡片名稱 */
	CardName: number;
	/** 獲得金額 */
	Obtain: number;
}
