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

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

	private _award: AwardTable;
	/**  系統_賓果#bingo.xlsx > #award */
	public get Award(): AwardTable { return this._award = this._award || TableManager.InitTable("#bingo#award", AwardTable, AwardTableRow); }

	private _specialtime: SpecialtimeTable;
	/**  系統_賓果#bingo.xlsx > #specialtime */
	public get Specialtime(): SpecialtimeTable { return this._specialtime = this._specialtime || TableManager.InitTable("#bingo#specialtime", SpecialtimeTable, SpecialtimeTableRow); }

	private _string: StringTable;
	/**  系統_賓果#bingo.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#bingo#string", StringTable, StringTableRow); }
}

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

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

/**
 * #award
 */
export class AwardTable extends TableBase<AwardTableRow> {}

export class AwardTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 值 */
	Award1: number;
	/** 值 */
	Award2: number;
	/** 值 */
	Award3: number;
}

/**
 * #specialtime
 */
export class SpecialtimeTable extends TableBase<SpecialtimeTableRow> {}

export class SpecialtimeTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 開始時間 */
	Timestart: string;
	/** 開始時間 */
	Timeend: string;
	/** 時間間隔(分鐘) */
	Value: number;
}

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

export class StringTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 介面字串 */
	MsgZnTw: string;
}
