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

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

	private _levelSlot: LevelSlotTable;
	/**  系統_等級表#level.xlsx > #level_slot */
	public get LevelSlot(): LevelSlotTable { return this._levelSlot = this._levelSlot || TableManager.InitTable("#level#level_slot", LevelSlotTable, LevelSlotTableRow); }
}

export class LevelTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 經驗 */
	Exp: number;
}

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

export class FixedTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 參數 */
	Value: number;
}

/**
 * #level_slot
 */
export class LevelSlotTable extends TableBase<LevelSlotTableRow> {}

export class LevelSlotTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 經驗獲取 */
	Levelup: number;
}
