/*!
- * @file Karma.h
- * @brief \83J\83\8b\83}\82Ì\83v\83\8d\83g\83^\83C\83v\90é\8c¾
- * @date 2014/02/01
- * @author Deskull
- * 2014 Sikabane Works.
- */
+* @file Karma.h
+* @brief \83J\83\8b\83}\82Ì\83v\83\8d\83g\83^\83C\83v\90é\8c¾
+* @date 2014/02/01
+* @author Deskull
+* 2014 Sikabane Works.
+*/
#pragma once
#include "stdafx.h"
#include "CreatureTemplate.h"
+#include "Discipline.h"
+#include "Deeangband.h"
-/*!
- * @class Karma
- * @brief \83J\83\8b\83}\82Ì\83N\83\89\83X
- */
-class Karma : public CreatureTemplate
+namespace Deeangband
{
-private:
-public:
-};
+
+ /*!
+ * @brief \83J\83\8b\83}\82Ì\88ê\97\97\97ñ\8b\93
+ */
+ enum KARMA_TYPE
+ {
+ VANILLA_IDEAL, //!< \83J\83\8b\83}:\97\9d\91z
+ VANILLA_PRAGMATIC, //!< \83J\83\8b\83}:\8eÀ\97\98
+ VANILLA_HARMONY, //!< \83J\83\8b\83}:\92²\98a
+ VANILLA_ALOOFNESS, //!< \83J\83\8b\83}:\8cÇ\8d\82
+ VANILLA_TEMPERATE, //!< \83J\83\8b\83}:\90ß\90§
+ VANILLA_INDULGENT, //!< \83J\83\8b\83}:\96z\95ú
+ VANILLA_CHASTE, //!< \83J\83\8b\83}:\92å\90ß
+ VANILLA_PASSION, //!< \83J\83\8b\83}:\8fî\97~
+ VANILLA_MERCY, //!< \83J\83\8b\83}:\8e\9c\94ß
+ VANILLA_CRUELTY, //!< \83J\83\8b\83}:\97â\8d\93
+ VANILLA_HONEST, //!< \83J\83\8b\83}:\90½\8eÀ
+ VANILLA_CLEVER, //!< \83J\83\8b\83}:àÂàÏ
+ VANILLA_FORGIVING, //!< \83J\83\8b\83}:\8a°\91å
+ VANILLA_AVENGE, //!< \83J\83\8b\83}:\8e·\94O
+ VANILLA_GENEROUS, //!< \83J\83\8b\83}:\9c\97\92W
+ VANILLA_GREED, //!< \83J\83\8b\83}:æÃ\97~
+ VANILLA_MODEST, //!< \83J\83\8b\83}:\8cª\8b\95
+ VANILLA_PROUD, //!< \83J\83\8b\83}:\98ü\96\9d
+ VANILLA_TRSUTING, //!< \83J\83\8b\83}:\8f\83\96p
+ VANILLA_SUSPICION, //!< \83J\83\8b\83}:àÈ\8b^
+ VANILLA_ZEALOTRY, //!< \83J\83\8b\83}:\94M\90S
+ VANILLA_SCEPTICISM, //!< \83J\83\8b\83}:\89ù\8b^
+ VANILLA_DELIGENT, //!< \83J\83\8b\83}:\8bÎ\95×
+ VANILLA_IDLENESS, //!< \83J\83\8b\83}:\96³\88×
+ VANILLA_CREATION, //!< \83J\83\8b\83}:\91n\91¢
+ VANILLA_DESTRUCTION, //!< \83J\83\8b\83}:\94j\89ó
+ VANILLA_PLEASURE, //!< \83J\83\8b\83}:\89õ\8ay
+ VANILLA_PAIN, //!< \83J\83\8b\83}:\8bê\92É
+ VANILLA_WEALTH, //!< \83J\83\8b\83}:\95x\97T
+ VANILLA_PRESITIGE, //!< \83J\83\8b\83}:\91¸\8cµ
+ VANILLA_ERUDITION, //!< \83J\83\8b\83}:\94\8e\8e¯
+ VANILLA_BRAVE, //!< \83J\83\8b\83}:\97E\96Ò
+ VANILLA_DISCRETION, //!< \83J\83\8b\83}:\8ev\97¶
+ VANILLA_FORTUNE, //!< \83J\83\8b\83}:\93V\89^
+ MAX_KARMAS, //!< \83J\83\8b\83}\90\94
+ };
+
+ /*!
+ * @class Karma
+ * @brief \83J\83\8b\83}\82Ì\83N\83\89\83X
+ * @details
+ * <H1>\8aT\97v</H1>
+ * <p>Karma\83N\83\89\83X\82Í\81A\96¼\91O\92Ê\82è\83N\83\8a\81[\83`\83\83\81[\82Ì\8bÆ(\83J\83\8b\83})\82Ì\8eí\95Ê\82ð\92è\8b`\82·\82é\82à\82Ì\82Å\82 \82é\81B</p>
+ * <p>\81u\83J\83\8b\83}\81v\82Í\95Ï\8bð\82Ì\81u\93¿\81v\82Ì\83V\83X\83e\83\80\82Ì\94\93W\82ð\96Ú\8ew\82µ\82½\82à\82Ì\82Å\81A\83N\83\8a\81[\83`\83\83\81[\82ª\8ds\82Á\82½\8ds\88×\82É\8aî\82Ã\82¢\82Ä\81A
+ * \92l\82ª\91\9d\8c¸\82µ\81A\82»\82Ì\8fó\91Ô\97Ê\82É\89\9e\82¶\82Ä\91P\81A\88«\81A\92\81\8f\98\81A\8d¬\93×\81A\93V\94\89\82Å\8d\\90¬\82³\82ê\82½\8fC\97{\92l\82à\95Ï\89»\82µ\82Ä\82¢\82\81B</p>
+ * <p>\83J\83\8b\83}\82Ì\92\86\82É\82Í\82»\82ê\82¼\82ê\91Î\82É\82È\82Á\82Ä\82¢\82é\82à\82Ì\93¯\8em\82ª\82 \82è\81A\82±\82Ì\8fê\8d\87\91o\95û\82Ì\83J\83\8b\83}\92l\82Í\8fí\82É\90³\95\89\82ð\88á\82¦\82Ä\81A
+ * \90â\91Î\92l\82ª\93¯\82¶\82É\82È\82é\81B</p>
+ */
+ class Karma : public CreatureTemplate
+ {
+ private:
+
+ Discipline desciplinePlus; //!< \8fC\97{\92l\8fC\90³
+ TAG antiKarma; //!< \91Î\97§\83J\83\8b\83}
+
+ friend class boost::serialization::access;
+
+ /*!
+ * @brief \83N\83\89\83X\82Ì\83V\83\8a\83A\83\89\83C\83Y\82ð\90Ý\92è\82·\82é
+ * @param archive \83A\81[\83J\83C\83u\89»\82·\82é\83N\83\89\83X\82Ì\83A\83h\83\8c\83X
+ * @param version \83t\83@\83C\83\8b\83o\81[\83W\83\87\83\93
+ * @return XMLSerialize\83e\83\93\83v\83\8c\81[\83g
+ */
+ template<class Archive> void serialize(Archive &archive, const unsigned int version)
+ {
+ if(version >= 0)
+ {
+ archive & boost::serialization::make_nvp("descipline_plus", desciplinePlus);
+ }
+ }
+
+ public:
+
+ /*!
+ * @brief Karma\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^(\8f\89\8aú\92l\91ã\93ü)
+ */
+ Karma::Karma(void);
+
+ /*!
+ * @brief Karma\83N\83\89\83X\83f\83X\83g\83\89\83N\83^
+ */
+ Karma::~Karma(void);
+
+ /*!
+ * @brief Karma\83N\83\89\83X\82Ì\83f\81[\83^\8fÁ\8b\8e
+ */
+ void Karma::WipeData(void);
+
+ /*!
+ * @brief \8fC\97{\92l\8fC\90³\82ð\95Ô\82·
+ * @return \8fC\97{\92l\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
+ */
+ const Discipline* Karma::GetDiscipline(void);
+ };
+
+}
+
+BOOST_CLASS_VERSION(Deeangband::Karma, 10);