DragonNest/GameCommon/DnPayBackMPBlow.h
2024-12-19 09:48:26 +08:00

46 lines
1.4 KiB
C++

#pragma once
#include "dnblow.h"
//효과 Index : 68
//
//수치 Type : float
//
//설정 : MP 소모 스킬 사용 시 <효과 수치1>에 설정된 확률로 <효과 수치2>*<사용한 MP> 만큼 마나를 충전 or 소비 합니다.
//
// 사용 방식 :
//- 버프 또는 패시브 스킬로 일정 확률로 사용된 스킬의 MP 소모량을 줄여주거나
//- 디버프를 걸어 상대의 MP 소비량을 늘릴 수 있습니다.(예상)
class CDnPayBackMPBlow : public CDnBlow, public TBoostMemoryPool< CDnPayBackMPBlow >
{
private:
float m_fApplyProb;
float m_fConsumeDecreaseProb;
#ifndef _GAMESERVER
bool m_bShowActivateEffect;
LOCAL_TIME m_ShowActivateEffectTime;
LOCAL_TIME m_PrevFrameLocalTime;
#endif
public:
CDnPayBackMPBlow( DnActorHandle hActor, const char* szValue );
virtual ~CDnPayBackMPBlow();
virtual void OnBegin( LOCAL_TIME LocalTime, float fDelta );
virtual void Process( LOCAL_TIME LocalTime, float fDelta );
virtual void OnEnd( LOCAL_TIME LocalTime, float fDelta );
virtual void OnDuplicate( const STATE_BLOW& StateBlowInfo );
#ifdef _GAMESERVER
virtual int OnUseMP( int iMPDelta );
#else
void OnActivate( void );
#endif
#if defined(PRE_ADD_PREFIX_SYSTE_RENEW)
public:
static void AddStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue);
static void RemoveStateEffectValue(const char* szOrigValue, const char* szAddValue, std::string& szNewValue);
#endif // PRE_ADD_PREFIX_SYSTE_RENEW
};