GameServer
CharacterBase.h
[詳解]
1 
6 #ifndef __CHARACTERBASE_H__
7 #define __CHARACTERBASE_H__
8 
9 #include <boost/enable_shared_from_this.hpp>
10 #include "CharacterParameter.h"
11 #include "Math/Vector3D.h"
12 #include "Math/Rotation.h"
13 #include "Area/AreaBase.h"
14 #include "Skill/SkillControl.h"
16 #include "Buff/BuffManager.h"
17 
18 struct SkillItem;
19 
24 class CharacterBase : public enable_shared_from_this<CharacterBase>
25 {
26 
27 public:
28 
32  CharacterBase();
33 
37  virtual ~CharacterBase() {}
38 
44  void Poll(s32 DeltaTime);
45 
51  const CharacterParameter &GetParameter() const { return Parameter; }
52 
58  void SetPosition(const Vector3D &MoveTarget);
59 
65  void SetRotate(const Rotation &TargetRotation);
66 
72  const Vector3D &GetPosition() const { return Position; }
73 
79  const Rotation &GetRotation() const { return Rot; }
80 
86  bool IsDead() const { return (Parameter.GetHp() <= 0); }
87 
93  void ApplyDamage(u32 Value);
94 
100  void Heal(u32 Value);
101 
107  Vector3D GetCenterVec() const;
108 
114  void SetUuid(u32 InUuid) { Uuid = InUuid; }
115 
121  u32 GetUuid() const { return Uuid; }
122 
128  u32 GetLevel() const { return Parameter.GetLevel(); }
129 
135  virtual u8 GetCharacterType() const = 0;
136 
142  void Move(const Vector3D &MoveValue);
143 
149  void Rotate(float RotateValue);
150 
155  void Respawn();
156 
162  void SetArea(const AreaPtr &pInArea) { pArea = pInArea; }
163 
169  AreaPtr GetArea() const { return pArea; }
170 
177  void UseSkill(u32 SkillId, CharacterPtr pTarget);
178 
184  void StartRecast(u32 SkillId);
185 
191  bool IsSkillActive() const { return Skill.IsActive(); }
192 
198  bool IsSkillCasting() const { return Skill.IsCasting(); }
199 
205  bool IsSkillAutoMoving() const { return Skill.IsAutoMoving(); }
206 
213  bool IsRecasting(u32 SkillId) const { return Recast.IsRecast(SkillId); }
214 
220  virtual int GetExp() const { return 0; }
221 
227  virtual u32 GetDropId() const { return 0; }
228 
234  bool IsEquiped(u32 EquipId) const;
235 
241  void AddBuff(u32 BuffId);
242 
248  virtual void OnBuffAdded(u32 BuffId) {}
249 
255  virtual void OnBuffRemoved(u8 BuffType) {}
256 
262  bool IsParalysis() const;
263 
270  virtual void OnSkillReceived(CharacterPtr pCharacter, const SkillItem *pSkill) {}
271 
272 protected:
273 
276 
279 
282 
285 
286 
300  void SetParameter(u32 Level, u32 Hp, u32 MaxHp, u32 Str, u32 Def, u32 Int, u32 Mnd, u32 Vit, bool bIsVitAffectMaxHp)
301  {
302  Parameter.Set(Level, Hp, MaxHp, Str, Def, Int, Mnd, Vit, bIsVitAffectMaxHp);
303  }
304 
310  virtual void Update(s32 DeltaTime) {}
311 
318  void ChangeEquipData(u32 RightEquipId, u32 LeftEquipId);
319 
320 private:
321 
322  // パラメータ
323  CharacterParameter Parameter;
324 
325  // UUID
326  u32 Uuid;
327 
328  // エリア
329  AreaPtr pArea;
330 
331  // バフ管理.
332  BuffManager BuffMgr;
333 };
334 
335 #endif // #ifndef __CHARACTERBASE_H__
Vector3D Position
座標.
Definition: CharacterBase.h:275
void ApplyDamage(u32 Value)
ダメージを与える
Definition: CharacterBase.cpp:46
unsigned char u8
Definition: TypeDefs.h:6
u32 GetLevel() const
レベルを取得
Definition: CharacterBase.h:128
bool IsParalysis() const
麻痺状態か?
Definition: CharacterBase.cpp:121
virtual ~CharacterBase()
デストラクタ
Definition: CharacterBase.h:37
void Rotate(float RotateValue)
回転
Definition: CharacterBase.cpp:78
バフ管理クラス
virtual void OnBuffAdded(u32 BuffId)
バフが追加された。
Definition: CharacterBase.h:248
virtual u32 GetDropId() const
ドロップIDを取得
Definition: CharacterBase.h:227
バフ管理
Definition: BuffManager.h:18
Definition: Rotation.h:5
virtual void Update(s32 DeltaTime)
毎フレームの処理
Definition: CharacterBase.h:310
CharacterBase()
コンストラクタ
Definition: CharacterBase.cpp:15
キャラクタ基底クラス
Definition: CharacterBase.h:24
void SetUuid(u32 InUuid)
UUIDをセット
Definition: CharacterBase.h:114
bool IsRecast(u32 SkillId) const
Definition: SkillRecastManager.cpp:40
const CharacterParameter & GetParameter() const
パラメータ取得
Definition: CharacterBase.h:51
weak_ptr< CharacterBase > CharacterPtr
Definition: WeakPtrDefine.h:10
SkillControl Skill
スキル制御.
Definition: CharacterBase.h:281
void SetArea(const AreaPtr &pInArea)
エリアを設定
Definition: CharacterBase.h:162
bool IsEquiped(u32 EquipId) const
装備しているか?
Definition: CharacterBase.cpp:103
Definition: SkillControl.h:12
const Rotation & GetRotation() const
回転を取得
Definition: CharacterBase.h:79
Rotation Rot
回転.
Definition: CharacterBase.h:278
bool IsSkillAutoMoving() const
スキルのオート移動中か?
Definition: CharacterBase.h:205
void Move(const Vector3D &MoveValue)
移動
Definition: CharacterBase.cpp:72
void UseSkill(u32 SkillId, CharacterPtr pTarget)
スキル使用
Definition: CharacterBase.cpp:91
Vector3D GetCenterVec() const
正面ベクトルを取得
Definition: CharacterBase.cpp:64
void Respawn()
リスポン
Definition: CharacterBase.cpp:84
weak_ptr< AreaBase > AreaPtr
Definition: WeakPtrDefine.h:25
Definition: Vector3D.h:8
bool IsAutoMoving() const
Definition: SkillControl.cpp:238
bool IsRecasting(u32 SkillId) const
リキャスト中か?
Definition: CharacterBase.h:213
u32 GetHp() const
現在HP取得
Definition: CharacterParameter.h:57
bool IsActive() const
Definition: SkillControl.cpp:226
bool IsSkillCasting() const
スキルキャスト中か?
Definition: CharacterBase.h:198
int s32
Definition: TypeDefs.h:9
void AddBuff(u32 BuffId)
バフ追加
Definition: CharacterBase.cpp:109
Definition: SkillRecastManager.h:12
unsigned int u32
Definition: TypeDefs.h:10
void Poll(s32 DeltaTime)
毎フレームの処理
Definition: CharacterBase.cpp:24
キャラクタパラメータ
Definition: CharacterParameter.h:15
bool IsSkillActive() const
スキル使用中か?
Definition: CharacterBase.h:191
u32 GetLevel() const
レベル取得
Definition: CharacterParameter.h:50
void SetRotate(const Rotation &TargetRotation)
回転を設定
Definition: CharacterBase.cpp:40
virtual u8 GetCharacterType() const =0
キャラクタタイプを取得
u32 GetUuid() const
UUIDを取得
Definition: CharacterBase.h:121
const Vector3D & GetPosition() const
座標を取得
Definition: CharacterBase.h:72
エリア基底クラス
bool IsDead() const
死んでいる?
Definition: CharacterBase.h:86
キャラクタパラメータ
void Heal(u32 Value)
回復
Definition: CharacterBase.cpp:55
virtual void OnBuffRemoved(u8 BuffType)
バフが消滅した。
Definition: CharacterBase.h:255
bool IsCasting() const
Definition: SkillControl.cpp:232
virtual int GetExp() const
倒した時の経験値取得
Definition: CharacterBase.h:220
void StartRecast(u32 SkillId)
リキャスト開始
Definition: CharacterBase.cpp:97
Definition: SkillMaster.h:9
virtual void OnSkillReceived(CharacterPtr pCharacter, const SkillItem *pSkill)
スキルを食らった。
Definition: CharacterBase.h:270
SkillRecastManager Recast
スキルリキャスト管理.
Definition: CharacterBase.h:284
void SetPosition(const Vector3D &MoveTarget)
座標を設定
Definition: CharacterBase.cpp:34
void SetParameter(u32 Level, u32 Hp, u32 MaxHp, u32 Str, u32 Def, u32 Int, u32 Mnd, u32 Vit, bool bIsVitAffectMaxHp)
パラメータを設定
Definition: CharacterBase.h:300
AreaPtr GetArea() const
エリアを取得
Definition: CharacterBase.h:169
void ChangeEquipData(u32 RightEquipId, u32 LeftEquipId)
装備切り替え
Definition: CharacterBase.cpp:128
void Set(u32 InLevel, u32 InHp, u32 InMaxHp, u32 InStr, u32 InDef, u32 InInt, u32 InMnd, u32 InVit, bool bIsVitAffectMaxHp)
パラメータをセット
Definition: CharacterParameter.cpp:19