D'angband  0.0.0
Deeangband
 全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 フレンド マクロ定義 ページ
Creature.h
[詳解]
1 
9 #pragma once
10 
11 #include "stdafx.h"
12 #include "BaseStatusTable.h"
13 #include "Color.h"
14 #include "Coordinates.h"
15 #include "Deeangband.h"
16 #include "Discipline.h"
17 #include "Direction.h"
18 #include "Effect.h"
19 #include "Field.h"
20 #include "HaveInventory.h"
21 #include "HaveGameTime.h"
22 #include "HaveHp.h"
23 #include "HaveSize.h"
24 #include "HaveSymbol.h"
25 #include "HavePosition.h"
26 #include "Item.h"
27 #include "GameConstants.h"
28 #include "GameInstance.h"
29 #include "SavingTable.h"
30 #include "Species.h"
31 
32 namespace Deeangband
33 {
34 
68  class Creature : public GameInstance, public HaveSymbol, public HaveHp, public HaveGameTime, public HavePosition, public HaveInventory, public HaveSize
69  {
70  private:
71 
73 
79 
82 
85 
88 
92 
94 
95  std::map<TAG, SKILL_EXP> skillExpList;
96 
98 
101 
103 
108  void Creature::die(void);
109 
115  void Creature::calcMP(MP amount);
116 
122  void Creature::setMP(MP amount);
123 
128  void Creature::calcHPTable(void);
129 
131 
138  template<class Archive> void serialize(Archive &archive, const unsigned int version)
139  {
140  if(version >= 0)
141  {
142  archive & boost::serialization::make_nvp("Name", name);
143  archive & boost::serialization::make_nvp("FirstRace", firstRace);
144  archive & boost::serialization::make_nvp("SecondRace", secondRace);
145  archive & boost::serialization::make_nvp("MHP", maxHp);
146  archive & boost::serialization::make_nvp("MHP", maxHp);
147  archive & boost::serialization::make_nvp("HPTable", hpTable);
148  archive & boost::serialization::make_nvp("CMP", currentMp);
149  archive & boost::serialization::make_nvp("MMP", maxMp);
150  archive & boost::serialization::make_nvp("MMMP", maxMaxMp);
151  archive & boost::serialization::make_nvp("CSoul", currentSoul);
152  archive & boost::serialization::make_nvp("MSoul", maxSoul);
153  archive & boost::serialization::make_nvp("CStatus", currentStatus);
154  archive & boost::serialization::make_nvp("MStatus", maxStatus);
155  archive & boost::serialization::make_nvp("MMStatus", maxMaxStatus);
156  archive & boost::serialization::make_nvp("Height", height);
157  archive & boost::serialization::make_nvp("Weight", weight);
158  archive & boost::serialization::make_nvp("CFeed", currentFeed);
159  archive & boost::serialization::make_nvp("MFeed", maxFeed);
160  archive & boost::serialization::make_nvp("Savings", savings);
161  archive & boost::serialization::make_nvp("FieldID", fieldID);
162  archive & boost::serialization::make_nvp("Position", position);
163  archive & boost::serialization::make_nvp("ItemList", itemList);
164  archive & boost::serialization::make_nvp("SpeciesTAG", speciesTag);
165  archive & boost::serialization::make_nvp("AppearanceSpeciesTAG", appearanceSpeciesTag);
166  }
167  }
168 
169  public:
170 
175  Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt);
176 
183  Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, Coordinates *coordinates);
184 
192  Creature::Creature(std::map<TAG, boost::shared_ptr<Species>>::iterator speciesIt, ID FieldID, int x, int y);
193 
197  Creature::Creature(void);
198 
202  Creature::‾Creature(void);
203 
210  void Creature::SetSpeciesData(Species *speciesPtr);
211 
216  void Creature::WipeData(void);
217 
222  bool Creature::IsAlive(void);
223 
229  bool Creature::TakeEffect(Effect* effectPtr, POWER amount);
230 
235  LEVEL Creature::GetLevel(void);
236 
241  HP Creature::GetNorMaxHP(void);
242 
247  MP Creature::GetCurMP(void);
248 
253  MP Creature::GetMaxMP(void);
254 
259  MP Creature::GetNorMaxMP(void);
260 
265  AC Creature::GetArmorSaving(void);
266 
271  EV Creature::GetEvasionSaving(void);
272 
277  VO Creature::GetVolitionSaving(void);
278 
283  std::vector<Item> *Creature::getItemList(void);
284 
289  SOUL Creature::GetCurrentSoul(void);
290 
295  SOUL Creature::GetMaxSoul(void);
296 
302  BASE_STATUS Creature::GetCurrentStatus(CREATURE_STATUS stat);
303 
309  BASE_STATUS Creature::GetMaxStatus(CREATURE_STATUS stat);
310 
316  BASE_STATUS Creature::GetMaxMAXStatus(CREATURE_STATUS stat);
317 
323  int Creature::GetDiscipilnePoint(DISCIPLINE_TYPE typ);
324 
330  int Creature::GetDiscipilneRank(DISCIPLINE_TYPE typ);
331 
337  void Creature::GainSoul(SOUL plus);
338 
344  void Creature::LostSoul(SOUL amount);
345 
350  LEVEL Creature::GetDivineLevel(void);
351 
356  FEED Creature::GetCurrentFeedPoint(void);
357 
362  FEED Creature::GetMaxFeedPoint(void);
363 
368  void Creature::TurnProcess(void);
369 
374  void Creature::TimeProcess(void);
375 
380  TURN Creature::GetTurn(void);
381 
387  SKILL_EXP Creature::GetSkillExp(TAG tag);
388 
393  TAG Creature::GetCampTag(void);
394 
399  void Creature::XMLSave(std::string filename);
400 
407  bool Creature::Walk(DIRECTION dir);
408 
415  bool Creature::Melee(Creature *targerPtr);
416 
423  bool Creature::PickUpItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
424 
431  bool Creature::DropItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
432 
439  bool Creature::EatItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
440 
447  bool Creature::QuaffItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
448 
455  bool Creature::ActivateItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
456 
463  bool Creature::ThrowItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
464 
471  bool Creature::ReadItem(std::map<ID, boost::shared_ptr<Item>>::iterator itemIt);
472 
473  };
474 
475 }
476 
Discipline currentDiscipilne
現在の修養値
Definition: Creature.h:86
Coordinatesクラスとその他付随要素の定義
int POWER
効力
Definition: Deeangband.h:155
std::vector< Item > itemList
アイテムリスト
Definition: HaveInventory.h:44
効果属性のクラス
Definition: Effect.h:63
CREATURE_STATUS
クリーチャーの基礎能力値6種の列挙体
Definition: Deeangband.h:95
TAG secondRace
種族タグ2
Definition: Creature.h:84
アイテムリスト所持のプロトタイプ
MP currentMp
現在のMP
Definition: Creature.h:74
ゲームキャンペーンのプロトタイプ宣言
int TURN
ターン数
Definition: Deeangband.h:158
基礎能力値クラスのプロトタイプ
int ID
ゲーム要素ID
Definition: Deeangband.h:143
ゲーム中のアイテムと付随要素のプロトタイプ
SOUL maxSoul
ソウル最大到達値
Definition: Creature.h:78
int AC
頑健性
Definition: Deeangband.h:140
std::string TAG
ゲーム要素文字列ID
Definition: Deeangband.h:144
HP保持抽象クラスのプロトタイプ宣言
SOUL currentSoul
現在のソウル値
Definition: Creature.h:77
void Creature::calcMP(MP amount)
クリーチャーの現MPを増減させる
サイズ保持要素のプロトタイプ宣言
HP hpTable[CREATURE_MAX_LEVEL]
ヒットダイスに基づき生成されたレベル毎の基本HP
Definition: Creature.h:102
int LEVEL
LEVELの変数型
Definition: Deeangband.h:134
基本ステータスクラス
ゲームの諸要素の管理を行うスーパークラス
Definition: GameInstance.h:21
ID fieldID
現在フロアID
Definition: HavePosition.h:46
GameInstanceクラスと付随要素のプロトタイプ
int MP
MPの変数型
Definition: Deeangband.h:136
シンボル保持抽象クラス
Definition: HaveSymbol.h:22
シンボル保持抽象クラスのプロトタイプ宣言
std::map< TAG, SKILL_EXP > skillExpList
スキル経験値リスト
Definition: Creature.h:95
HP maxHp
現在の最大HP
Definition: HaveHp.h:43
Coordinates position
所在座標
Definition: HavePosition.h:45
ゲーム中の方角の定義
LEVEL divineLevel
神性レベル
Definition: Creature.h:87
シンボル保持抽象クラス
Definition: HavePosition.h:22
DISCIPLINE_TYPE
修養属性の列挙体
Definition: Discipline.h:20
FEED maxFeed
最大滋養値
Definition: Creature.h:81
BaseStatusTable maxMaxStatus
限界のステータス
Definition: Creature.h:91
ゲームターン保持抽象クラスのプロトタイプ宣言
int SKILL_EXP
スキル経験値
Definition: Deeangband.h:160
static SOUL soulLevel[CREATURE_MAX_LEVEL]
必要ソウルレベルテーブル
Definition: Creature.h:72
int64_t SOUL
ソウルの変数型
Definition: Deeangband.h:138
標準のシステム インクルード ファイルのインクルード ファイル、または 参照回数が多く、かつあまり変更さ...
int VO
意志力
Definition: Deeangband.h:142
TAG appearanceSpeciesTag
擬態先のクリーチャー種別Tag
Definition: Creature.h:100
MP maxMp
現在の最大MP
Definition: Creature.h:75
void Creature::die(void)
クリーチャー死亡時の処理を行う
TAG firstRace
種族タグ1
Definition: Creature.h:83
int FEED
滋養度の変数型
Definition: Deeangband.h:137
void Creature::setMP(MP amount)
クリーチャーの現MPを設定する
#define CREATURE_MAX_LEVEL
神格込み最大レベル
Definition: Deeangband.h:13
BaseStatusTable maxStatus
通常のステータス
Definition: Creature.h:90
MP maxMaxMp
本来の最大MP
Definition: Creature.h:76
ゲームターン保持抽象クラス
Definition: HaveGameTime.h:24
アイテムリスト所持のクラス
Definition: HaveInventory.h:24
ゲーム中のクリーチャー種別のプロトタイプ
ゲーム中のダンジョンと付随要素のプロトタイプ
修養のクラス
Definition: Discipline.h:35
friend class boost::serialization::access
Definition: Creature.h:130
修養のプロトタイプ宣言
int BASE_STATUS
基礎能力値の変数型
Definition: Deeangband.h:131
BOOST_CLASS_VERSION(Deeangband::Creature, 10)
セービングテーブルクラス
Definition: SavingTable.h:21
TAG campTag
所属陣営タグ
Definition: Creature.h:97
int HP
HPの変数型
Definition: Deeangband.h:135
TAG speciesTag
クリーチャー種別Tag
Definition: Creature.h:99
ゲーム座標のクラス
Definition: Coordinates.h:32
HP保持抽象クラス
Definition: HaveHp.h:22
効果属性のプロトタイプ宣言
色定義のプロトタイプ
SavingTable savings
セービング
Definition: Creature.h:93
void Creature::calcHPTable(void)
クリーチャーのレベル毎基本HPを再計算する
ゲーム中のセービングテーブルのプロトタイプ
BaseStatusTable currentStatus
現在のステータス
Definition: Creature.h:89
シンボル保持抽象クラスのプロトタイプ宣言
クリーチャー種別のクラス
Definition: Species.h:24
クリーチャーのクラス
Definition: Creature.h:68
DIRECTION
Definition: Deeangband.h:78
int EV
回避力
Definition: Deeangband.h:141
FEED currentFeed
現在滋養値
Definition: Creature.h:80
void serialize(Archive &archive, const unsigned int version)
クラスのシリアライズを設定する
Definition: Creature.h:138
サイズ保持要素のクラス
Definition: HaveSize.h:22