/*!
* @file Camp.h
* @brief ゲーム中の陣営と付随要素のプロトタイプ
* @date 2013/12/11
* @author Deskull
* 2013 Sikabane Works.
*/

#pragma once

#include "stdafx.h"
#include "Deeangband.h"
#include "GameElement.h"

namespace Deeangband
{

	/*! 
	* @class Camp
	* @brief 陣営のクラス
	* @details 
	* <H1>概要</H1>
	* 陣営は各クリーチャーが所属している社会的共同体の定義であり、
	* 修養よりもより具体的なクリーチャーの有効、敵対関係に影響を及ぼす。
	* 同一陣営に存在しているクリーチャー同士は原則として強い友好状態になり、
	* 通常の友好的な状態よりも、同士討ちなどによる敵対状態に陥らなくなる。
	* ただし、同士討ち行為を意図的と思われるまで繰り返すと
	* 陣営に所属している状態での大きなペナルティがかかる。
	*/
	class Camp : public GameElement
	{
	private:

		friend class boost::serialization::access;

		/*!
		* @brief クラスのシリアライズを設定する
		* @param archive アーカイブ化するクラスのアドレス
		* @param version ファイルバージョン
		* @return XMLSerializeテンプレート
		*/
		template<class Archive> void serialize(Archive &archive, const unsigned int version) 
		{
			if(version >= 0)
			{
				archive & boost::serialization::make_nvp("Name", name);
			}
		}

	public:

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

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

		/*! 
		* @brief Campクラスのデータ消去
		* @return なし
		*/
		void Camp::WipeData(void);



	};

}

BOOST_CLASS_VERSION(Deeangband::Camp, 10);
