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

/**
 * 系統_榮譽#honor.xlsx
 * ##程式碼由工具產生, 在此做的修改都將被覆蓋##
 */
export class HonorTable extends TableBase<WithoutRow> {
	private _avatar: AvatarTable;
	/**  系統_榮譽#honor.xlsx > #avatar */
	public get Avatar(): AvatarTable { return this._avatar = this._avatar || TableManager.InitTable("#honor#avatar", AvatarTable, AvatarTableRow); }

	private _stringAvatar: StringAvatarTable;
	/**  系統_榮譽#honor.xlsx > #string_avatar */
	public get StringAvatar(): StringAvatarTable { return this._stringAvatar = this._stringAvatar || TableManager.InitTable("#honor#string_avatar", StringAvatarTable, StringAvatarTableRow); }

	private _frame: FrameTable;
	/**  系統_榮譽#honor.xlsx > #frame */
	public get Frame(): FrameTable { return this._frame = this._frame || TableManager.InitTable("#honor#frame", FrameTable, FrameTableRow); }

	private _stringFrame: StringFrameTable;
	/**  系統_榮譽#honor.xlsx > #string_frame */
	public get StringFrame(): StringFrameTable { return this._stringFrame = this._stringFrame || TableManager.InitTable("#honor#string_frame", StringFrameTable, StringFrameTableRow); }
}

/**
 * #avatar
 */
export class AvatarTable extends TableBase<AvatarTableRow> {}

export class AvatarTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 類別 */
	Category: number;
	/** 名稱 */
	AvatarName: number;
	/** 說明 */
	AvatarDetail: number;
	/** 獲得條件 */
	Condition: any;
	/** 販售金額 */
	Money: number;
	/** 使用期限 */
	Day: string;
}

/**
 * #string_avatar
 */
export class StringAvatarTable extends TableBase<StringAvatarTableRow> {}

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

/**
 * #frame
 */
export class FrameTable extends TableBase<FrameTableRow> {}

export class FrameTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 類別 */
	Category: number;
	/** 名稱 */
	AvatarName: number;
	/** 說明 */
	AvatarDetail: number;
	/** 販售金額 */
	Money: number;
	/** 使用期限 */
	Day: string;
}

/**
 * #string_frame
 */
export class StringFrameTable extends TableBase<StringFrameTableRow> {}

export class StringFrameTableRow implements ITableRow {
	/** 編號 */
	Id: number;
	/** 頭像框名稱 */
	MsgZnTw: string;
}
