/*!
* @file ItemEgo.h
* @brief ゲーム中のアイテムエゴのプロトタイプ
* @date 2014/02/01
* @author Deskull
* 2014 Sikabane Works.
*/

#include "stdafx.h"
#include "Dice.h"
#include "GameElement.h"
#include "ItemTemplate.h"
#include "SavingTable.h"
#include "HaveSymbol.h"

BOOST_CLASS_VERSION(ItemEgo, 1);

namespace Deeangband 
{

	/*! 
	* @class ItemEgo
	* @brief アイテムエゴのクラス
	* @details
	* <H1>概要</H1>
	* ItemEgoクラスは、各種アイテムに付与される追加性能を定義する。
	* <H2>ステータス要素</H2>
	* エゴアイテムは以下のステータス要素を持っている。
	* <ul>
	* <li>ダメージダイス加算修正/PlusDamageDice</li>
	* <li>重量加算修正/PlusWeight</li>
	* <li>基本セービング修正/BaseSaving</li>
	* <li>追加セービング修正/PlusSaving</li>
	* </ul>
	*/
	class ItemEgo : public ItemTemplate
	{

	private:

		friend class boost::serialization::access;

		template<class Archive> void serialize(Archive &archive, const unsigned int) 
		{
			archive & BOOST_SERIALIZATION_NVP(name);
			archive & BOOST_SERIALIZATION_NVP(baseDamage);
			archive & BOOST_SERIALIZATION_NVP(weight);
			archive & BOOST_SERIALIZATION_NVP(baseSaving);
			archive & BOOST_SERIALIZATION_NVP(plusSaving);
		}

	public:

		/*! 
		* @brief ItemEgoクラスコンストラクタ
		*/
		ItemEgo::ItemEgo(void);

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

		/*! 
		* @brief ダメージダイス修正を返す
		* @return ダメージダイス修正
		*/
		Dice ItemEgo::GetPlusDamageDice(void);

		/*! 
		* @brief ダミーデータによる初期化
		* @return なし
		*/
		void ItemEgo::WipeData(void);

	};

}