/*!
 * @file Karma.h
 * @brief カルマのプロトタイプ宣言
 * @date 2014/02/01
 * @author Deskull
 * 2014 Sikabane Works.
 */

#pragma once

#include "stdafx.h"
#include "CreatureTemplate.h"
#include "Deeangband.h"

/*! 
 * @brief カルマの一覧列挙
 */
enum KARMA_TYPE
{
	KARMA_IDEAL,       //!< カルマ:理想
	KARMA_PRAGMATIC,   //!< カルマ:実利
	KARMA_HARMONY,     //!< カルマ:調和
	KARMA_ALOOFNESS,   //!< カルマ:孤高
	KARMA_TEMPERATE,   //!< カルマ:節制
	KARMA_INDULGENT,   //!< カルマ:奔放
	KARMA_CHASTE,      //!< カルマ:貞節
	KARMA_PASSION,     //!< カルマ:情欲
	KARMA_MERCY,       //!< カルマ:慈悲
	KARMA_CRUELTY,     //!< カルマ:冷酷
	KARMA_HONEST,      //!< カルマ:誠実
	KARMA_CLEVER,      //!< カルマ:狡猾
	KARMA_FORGIVING,   //!< カルマ:寛大
	KARMA_AVENGE,      //!< カルマ:執念
	KARMA_GENEROUS,    //!< カルマ:恬淡
	KARMA_GREED,       //!< カルマ:貪欲
	KARMA_MODEST,      //!< カルマ:謙虚
	KARMA_PROUD,       //!< カルマ:傲慢
	KARMA_TRSUTING,    //!< カルマ:純朴
	KARMA_SUSPICION,   //!< カルマ:猜疑
	KARMA_ZEALOTRY,    //!< カルマ:熱心
	KARMA_SCEPTICISM,  //!< カルマ:懐疑
	KARMA_DELIGENT,    //!< カルマ:勤勉
	KARMA_IDLENESS,    //!< カルマ:無為
	KARMA_CREATION,    //!< カルマ:創造
	KARMA_DESTRUCTION, //!< カルマ:破壊
	KARMA_PLEASURE,    //!< カルマ:快楽
	KARMA_PAIN,        //!< カルマ:苦痛
	KARMA_WEALTH,      //!< カルマ:富裕
	KARMA_PRESITIGE,   //!< カルマ:尊厳
	KARMA_ERUDITION,   //!< カルマ:博識
	KARMA_BRAVE,       //!< カルマ:勇猛
	KARMA_DISCRETION,  //!< カルマ:思慮
	KARMA_FORTUNE,     //!< カルマ:天運
	MAX_KARMAS,        //!< カルマ数
};

/*! 
 * @class Karma
 * @brief カルマのクラス
 */
class Karma : public CreatureTemplate
{
private:
	Discipline desciplinePlus; //!< 修養値修正

public:

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

	/*! 
	 * @brief Karmaクラスコンストラクタ(初期値代入)
	 */
	Karma::Karma(void);

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

	/*! 
	 * @brief 修養値修正を返す
	 * @return 修養値の参照ポインタ
	 */
	const Discipline* Karma::GetDiscipline(void);
};
