/*!
 * @file CreatureTemplate.h
 * @brief CreatureTemplateクラスとその他付随要素のプロトタイプ
 * @date 2013/12/11
 * @author Deskull
 * 2013 Sikabane Works.
 */

#pragma once

#include "stdafx.h"
#include "Creature.h"

/*!
 * @class CreatureTemplate
 * @brief 種族、職業、選択、特性など、クリーチャーに包括的修正を与える要素をまとめる基本クラス
 */
class CreatureTemplate : GameElement
{
private:
	BaseStatusTable statusPlus; /*!<ステータス修正*/
public:

	/*! 
	 * @brief CreatureTemplateクラスコンストラクタ(GameElementメンバ対応)
	 * @param id GameElementのID
	 * @param TAG GameElementのタグ
	 * @param gameWorld 所属元gameWorld参照ポインタ
	 */
	CreatureTemplate::CreatureTemplate(ID id, TAG tag, GameWorld *gameWorld);

	/*! 
	 * @brief CreatureTemplateクラスコンストラクタ(デフォルト値入力)
	 */
	CreatureTemplate::CreatureTemplate(void);

	/*! 
	 * @brief CreatureTemplateクラスデストラクタ
	 */
	virtual CreatureTemplate::~CreatureTemplate(void);

	/*! 
	 * @brief クラスの基本ステータス修正を返す
	 * @return 基本ステータス修正構造体の参照ポインタ
	 */
	const BaseStatusTable* CreatureTemplate::GetStatusAdj(void);
};
