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

/**
 * 系統_卡片強化#card_upgrade.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class CardUpgradeTable extends TableBase<WithoutRow> {
	private _upgradeSetting: UpgradeSettingTable;
	/**  系統_卡片強化#card_upgrade.xlsx > #upgrade_setting */
	public get UpgradeSetting(): UpgradeSettingTable { return this._upgradeSetting = this._upgradeSetting || TableManager.InitTable("#card_upgrade#upgrade_setting", UpgradeSettingTable, UpgradeSettingTableRow); }

	private _string: StringTable;
	/**  系統_卡片強化#card_upgrade.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#card_upgrade#string", StringTable, StringTableRow); }
}

/**
 * #upgrade_setting
 */
export class UpgradeSettingTable extends TableBase<UpgradeSettingTableRow> {}

export class UpgradeSettingTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 升級 */
	Upgrade: number;
	/** 機率 (%) */
	Chance: number;
	/** 花費 */
	Spend: number;
}

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

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