📄 statusmanager.h
字号:
#pragma once
#include <SolarHashTable.h>
#include <MemoryPoolFactory.h>
#include "BaseStatus.h"
class Ability;
class Character;
class AbilityStatus;
struct STATE_INFO;
class StatusManager
{
enum { DEFAULT_POOL_SIZE = 10, };
public:
StatusManager( Character *pOwner, DWORD dwMaxPoolSize = DEFAULT_POOL_SIZE );
~StatusManager();
VOID Release( BOOL bAllClear = TRUE );
VOID Update( DWORD curTime );
VOID UpdateReflect( Character *pAttacker, DAMAGETYPE damage );
BaseStatus* AllocStatus( eCHAR_STATE_TYPE eStateID, int iExpireTime=BASE_EXPIRE_TIME_INFINITY, int iPeriod=0 );
AbilityStatus* AllocAbility( Character *pAttacker, Ability *pAbility );
BOOL Remove( eCHAR_STATE_TYPE eStateID );
inline BaseStatus* FindStatus( eCHAR_STATE_TYPE eStateID ) { return m_pStatusHashTable->GetData( eStateID ); }
VOID SetFirst() { m_pStatusHashTable->SetFirst(); }
BaseStatus * GetNext() { return m_pStatusHashTable->GetNext(); }
// Static 惑怕 包访
eCHAR_CONDITION GetCondition() { return m_eCurCondition; }
VOID SetCondition( eCHAR_CONDITION eCondition );
VOID ChangeCondition( eCHAR_CONDITION eCondition ); // 惑怕甫 官操绊 林函俊 舅赴促.
// 扁鸥 荤侩 窃荐甸
BOOL CanAttack(); // 傍拜且 荐 乐绰 惑怕牢啊
BOOL CanBeAttacked(); // 傍拜罐阑 荐 乐绰 惑怕牢啊
BOOL CanMove();
RC::eSKILL_RESULT CanUseSkill();
BOOL CanEnchant();
BOOL CanThrustDown(); // 踌归捞唱 促款捞 瞪 荐 乐绰 惑怕牢啊
VOID Attack( DAMAGETYPE damage ); // Owner啊 傍拜阑 俺矫且 锭 贸府
VOID Attacked(); // Owner啊 傍拜阑 罐疽阑 锭 贸府
VOID Damaged( Character *pAttacker, eATTACK_TYPE attackType, DAMAGETYPE &damage ); // Owner啊 单固瘤甫 罐疽阑 锭 贸府
VOID ActEmotion(); // Emotion 悼累阑 矫累茄促.
VOID ChangeHP();
VOID Move();
BYTE GetAllStatusInfo( STATE_INFO * OUT pStateInfoOut ); // 泅犁 吧妨乐绰 葛电 惑怕甫 悸泼茄促.
private:
BaseStatus* OnAlloc( eCHAR_STATE_TYPE eStateID, BOOL bAbility );
Character* m_pOwner;
util::SolarHashTable<BaseStatus*> * m_pStatusHashTable; // 葛电 惑怕 府胶飘(虐蔼:m_eStateID)
eCHAR_CONDITION m_eCurCondition; // 蜡老窍霸 啊龙 荐 乐绰 泅犁 惑怕
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -