OSDN Git Service

[BUGGY]
[deeangband/Deeangband-new.git] / Deeangband / Species.h
1 /*!
2 * @file Species.h
3 * @brief \83Q\81[\83\80\92\86\82Ì\83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\83v\83\8d\83g\83^\83C\83v
4 * @date 2014/02/01
5 * @author Deskull
6 * 2014 Sikabane Works.
7 */
8
9 #include "stdafx.h"
10 #include "GameElement.h"
11 #include "BaseStatusTable.h"
12
13 #pragma once
14
15 namespace Deeangband
16 {
17
18         /*!
19         * @class Species
20         * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\83N\83\89\83X
21         */
22         class Species : public GameElement
23         {
24
25         private:
26
27                 std::string name;   //!< \83N\83\8a\81[\83`\83\83\81[\82Ì\96¼\91O
28                 SOUL baseSoul; //!< \8aî\96{\83\\83E\83\8b\97Ê
29
30                 HEIGHT averageHeight;    //!< \95½\8bÏ\90g\92·
31                 HEIGHT averageWeight;    //!< \95½\8bÏ\91Ì\8fd
32
33                 FEED baseFeed; //!< \8aî\96{\8e \97{\92l
34                 LEVEL divineLevel; //!< \8aî\96{\90_\90«\83\8c\83x\83\8b
35
36                 ID baseCamp; //!< \8aî\96{\8f\8a\91®\90w\89c
37
38                 BaseStatusTable baseStatus; //!< \8aî\96{\83X\83e\81[\83^\83X
39
40                 std::map<TAG, SKILL_EXP> skillExpList; //!< \83X\83L\83\8b\8co\8c±\92l\83\8a\83X\83g
41
42                 NUMBER currentCreationNumber; //!< \8c»\8dÝ\90\90¬\90\94
43                 NUMBER currentDeadNumber; //!< \8c»\8dÝ\8e\80\96S\90\94
44                 NUMBER maxCreationNumber; //!< \8dÅ\91å\90\90¬\90\94
45
46                 friend class boost::serialization::access;
47                 template<class Archive> void serialize(Archive &archive, const unsigned int) 
48                 {
49                         archive & BOOST_SERIALIZATION_NVP(name);
50                         archive & BOOST_SERIALIZATION_NVP(baseSoul);
51                         archive & BOOST_SERIALIZATION_NVP(averageHeight);
52                         archive & BOOST_SERIALIZATION_NVP(averageWeight);
53                         archive & BOOST_SERIALIZATION_NVP(baseFeed);
54                         archive & BOOST_SERIALIZATION_NVP(divineLevel);
55                         archive & BOOST_SERIALIZATION_NVP(baseCamp);
56                         archive & BOOST_SERIALIZATION_NVP(baseStatus);
57                 }
58
59         public:
60
61                 /*! 
62                 * @brief Species\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^(GameElement\83\81\83\93\83o\91Î\89\9e)
63                 * @param id GameElement\82ÌID
64                 * @param tag GameElement\82Ì\83^\83O
65                 * @param gameWorld \8f\8a\91®\8c³gameWorld\8eQ\8fÆ\83|\83C\83\93\83^
66                 */
67                 Species::Species(ID id, TAG tag, GameWorld *gameWorld);
68
69                 /*! 
70                 * @brief Species\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^
71                 */
72                 Species::Species(void);
73
74                 /*! 
75                 * @brief Species\83N\83\89\83X\83f\83X\83g\83\89\83N\83^
76                 */
77                 Species::~Species(void);
78
79                 /*! 
80                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\96¼\91O\82ð\95Ô\82·
81                 * @return \96¼\91O
82                 */
83                 std::string Species::GetName(void);
84
85                 /*! 
86                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\8aî\96{\83\\83E\83\8b\97Ê\82ð\8bA\82·
87                 * @return \83\\83E\83\8b\97Ê
88                 */
89                 SOUL Species::GetBaseSoul(void);
90
91                 /*! 
92                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\95½\8bÏ\90g\92·\82ð\95Ô\82·
93                 * @return \95½\8bÏ\90g\92·
94                 */
95                 HEIGHT Species::GetAverageHeight(void);
96
97                 /*! 
98                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\95½\8bÏ\91Ì\8fd\82ð\95Ô\82·
99                 * @return \95½\8bÏ\91Ì\8fd
100                 */
101                 WEIGHT Species::GetAverageWeight(void);
102
103                 /*! 
104                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\8aî\96{\8e \97{\93x\82ð\95Ô\82·
105                 * @return \8aî\96{\8e \97{\93x
106                 */
107                 FEED Species::GetBaseFeed(void);
108
109                 /*! 
110                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\83X\83L\83\8b\8aî\96{\8co\8c±\92l\82ð\95Ô\82·
111                 * @param tag \8eæ\93¾\82µ\82½\82¢\83X\83L\83\8b\82Ì\83^\83O
112                 * @return \8aY\93\96\83X\83L\83\8b\82Ì\8aî\96{\8co\8c±\92l\81A\91S\82­\82Ì\96¢\8co\8c±\82È\82ç\82Î0\82ð\95Ô\82·
113                 */
114                 SKILL_EXP Species::GetSkillExp(TAG tag);
115
116                 /*! 
117                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\8aî\96{\8f\8a\91®\90w\89c\82ð\95Ô\82·
118                 * @return \8aî\96{\8f\8a\91®\90w\89c\82ÌID
119                 */
120                 ID Species::GetBaseCampID(void);
121
122         };
123
124 }