GameServer
SkillControl.h
[詳解]
1 #ifndef __SKILLCONTROL_H__
2 #define __SKILLCONTROL_H__
3 
4 #include <boost/function.hpp>
5 #include "WeakPtrDefine.h"
6 
7 class SkillStateBase;
8 
13 {
14 
15 private: // 別名定義.
16 
17  typedef boost::function<void(u8)> OnCancelFunction;
18  typedef boost::function<void(u32)> OnUsedItemFunction;
19  typedef boost::function<void(CharacterBase *)> OnKilledFunction;
20 
21 public:
22 
23  // コンストラクタ
24  SkillControl(CharacterBase *pInOwner);
25 
26  // デストラクタ
27  ~SkillControl();
28 
29  // 毎フレームの処理.
30  void Poll(s32 DeltaTime);
31 
32  // 使用.
33  void Use(u32 InSkillId, CharacterPtr pInTarget);
34 
35  // アイテム使用.
36  void UseItem(u32 InItemId, CharacterPtr pInTarget);
37 
38  // 所有者を取得.
39  CharacterBase *GetOwner() const { return pOwner; }
40 
41  // スキルIDを取得
42  u32 GetSkillId() const { return SkillId; }
43 
44  // ターゲットを取得。
45  CharacterPtr GetTarget() const { return pTarget; }
46 
47  // キャストが完了した。
48  void CastFinished();
49 
50  // キャンセル
51  void Cancel(u8 Reason);
52 
53  // 発動.
54  void Activate();
55 
56  // 何かやっているか?
57  bool IsActive() const;
58 
59  // キャスト中か?
60  bool IsCasting() const;
61 
62  // オート移動中か?
63  bool IsAutoMoving() const;
64 
65  // キャンセル時に実行される関数を設定.
66  void SetOnCancelFunction(const OnCancelFunction &Func) { OnCancelFunc = Func; }
67 
68  // アイテム使用後に実行される関数を設定.
69  void SetOnUsedItemFunction(const OnUsedItemFunction &Func) { OnUsedItemFunc = Func; }
70 
71  // 殺害後に実行される関数を設定.
72  void SetOnKilledFunction(const OnKilledFunction &Func) { OnKilledFunc = Func; }
73 
74 private:
75 
76  // State
77  SkillStateBase *pState;
78 
79  // 前のState
80  SkillStateBase *pPrevState;
81 
82  // 所有者.
83  CharacterBase *pOwner;
84 
85  // ターゲット.
86  CharacterPtr pTarget;
87 
88  // スキルID
89  u32 SkillId;
90 
91  // アイテムID
92  u32 ItemId;
93 
94  // キャンセル時に実行される関数.
95  OnCancelFunction OnCancelFunc;
96 
97  // アイテム使用後に実行される関数.
98  OnUsedItemFunction OnUsedItemFunc;
99 
100  // 殺害後に実行される関数.
101  OnKilledFunction OnKilledFunc;
102 
103  // ステート変更.
104  void ChangeState(SkillStateBase *pNewState);
105 
106 };
107 
108 #endif // #ifndef __SKILLCONTROL_H__
void Activate()
Definition: SkillControl.cpp:120
unsigned char u8
Definition: TypeDefs.h:6
void Cancel(u8 Reason)
Definition: SkillControl.cpp:109
CharacterBase * GetOwner() const
Definition: SkillControl.h:39
void SetOnCancelFunction(const OnCancelFunction &Func)
Definition: SkillControl.h:66
キャラクタ基底クラス
Definition: CharacterBase.h:24
void SetOnKilledFunction(const OnKilledFunction &Func)
Definition: SkillControl.h:72
weak_ptr< CharacterBase > CharacterPtr
Definition: WeakPtrDefine.h:10
Definition: SkillControl.h:12
u32 GetSkillId() const
Definition: SkillControl.h:42
bool IsAutoMoving() const
Definition: SkillControl.cpp:238
bool IsActive() const
Definition: SkillControl.cpp:226
int s32
Definition: TypeDefs.h:9
void Use(u32 InSkillId, CharacterPtr pInTarget)
Definition: SkillControl.cpp:49
CharacterPtr GetTarget() const
Definition: SkillControl.h:45
unsigned int u32
Definition: TypeDefs.h:10
Definition: SkillStateBase.h:22
void CastFinished()
Definition: SkillControl.cpp:89
SkillControl(CharacterBase *pInOwner)
Definition: SkillControl.cpp:19
void SetOnUsedItemFunction(const OnUsedItemFunction &Func)
Definition: SkillControl.h:69
bool IsCasting() const
Definition: SkillControl.cpp:232
void UseItem(u32 InItemId, CharacterPtr pInTarget)
Definition: SkillControl.cpp:76
~SkillControl()
Definition: SkillControl.cpp:30
void Poll(s32 DeltaTime)
Definition: SkillControl.cpp:37