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

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

	private _add: AddTable;
	/**  活動_日任務#daymission.xlsx > #add */
	public get Add(): AddTable { return this._add = this._add || TableManager.InitTable("#daymission#add", AddTable, AddTableRow); }

	private _list: ListTable;
	/**  活動_日任務#daymission.xlsx > #list */
	public get List(): ListTable { return this._list = this._list || TableManager.InitTable("#daymission#list", ListTable, ListTableRow); }

	private _mission: MissionTable;
	/**  活動_日任務#daymission.xlsx > #mission */
	public get Mission(): MissionTable { return this._mission = this._mission || TableManager.InitTable("#daymission#mission", MissionTable, MissionTableRow); }

	private _string: StringTable;
	/**  活動_日任務#daymission.xlsx > #string */
	public get String(): StringTable { return this._string = this._string || TableManager.InitTable("#daymission#string", StringTable, StringTableRow); }
}

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

export class FixedTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 共用(值) */
	BValue: number;
	/** client專用(值) */
	CValue: number;
}

/**
 * #add
 */
export class AddTable extends TableBase<AddTableRow> {}

export class AddTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 體驗廳 */
	Lobby1: number;
	/** 一般廳 */
	Lobby2: number;
	/** 高手廳 */
	Lobby3: number;
	/** 至尊廳 */
	Lobby4: number;
}

/**
 * #list
 */
export class ListTable extends TableBase<ListTableRow> {}

export class ListTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 解鎖 */
	Vip: number;
	/** 解鎖字串 */
	Lock: string;
}

/**
 * #mission
 */
export class MissionTable extends TableBase<MissionTableRow> {}

export class MissionTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 類型 */
	Type: number;
	/** 類型 */
	Lobby: number;
	/** 獎勵 */
	Award: any;
}

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

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