DragonNest/Server/DNGameServer/DNMonsterAggroSystem.h
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

52 lines
1.8 KiB
C++

#pragma once
#include "DNAggroSystem.h"
#include "DNAggroRange.h"
class CDNMonsterAggroSystem : public CDNAggroSystem, public TBoostMemoryPool<CDNMonsterAggroSystem>
{
public:
CDNMonsterAggroSystem( DnActorHandle hActor );
virtual ~CDNMonsterAggroSystem();
virtual void OnProcessAggro( const LOCAL_TIME LocalTime, const float fDelta );
virtual DnActorHandle OnGetAggroTarget( bool& bIsProvocationTarget, DnActorHandle hExceptActor=CDnActor::Identity(), DNVector(DnActorHandle)* vTarget = NULL);
virtual void OnDamageAggro( DnActorHandle hActor, CDnDamageBase::SHitParam& HitParam, int iDamage );
virtual void OnStateBlowAggro( DnBlowHandle hBlow );
virtual bool bOnCheckPlayerBeginStateBlow( CDnPlayerActor* pPlayer );
virtual void OnAggroRegulation( DnActorHandle hActor, int& iAggroValue );
float GetThreatRange(){ return m_AggroRange.GetThreatRange(); }
float GetCognizanceThreatRange(){ return m_AggroRange.GetCognizanceThreatRange(); }
float GetCognizanceThreatRangeSq(){ return m_AggroRange.GetCognizanceThreatRangeSq(); }
float GetCognizanceGentleRangeSq(){ return m_AggroRange.GetCognizanceGentleRangeSq(); }
enum eCommon
{
AIProcessFrame = 5,
};
bool bIsInit(){ return m_bInit; }
private:
void _Create();
int _CalcAdditionalAggro( const int iAggro, const float fValue );
CDnMonsterActor* m_pMonsterActor;
int m_iThreatAggro;
CDNAggroRange m_AggroRange;
float m_fDecreaseAggroPer;
float m_fRangeAttackAdditionalAggroPer;
float m_fStunStateAdditionalAggroPer;
float m_fDownStateAdditionalAggroPer;
float m_fCantMoveStateAdditionalAggroPer;
float m_fSleepStateAdditionalAggroPer;
float m_fUnderHPStateAdditionalAggroPer;
UINT m_uiFrameCount;
bool m_bInit;
UINT m_uiLastTopAggro; // ÀÌÀü ¾î±×·Î ÃÖ´ë ¼öÄ¡
};