95 lines
2.1 KiB
C++
95 lines
2.1 KiB
C++
|
|
#include "StdAfx.h"
|
|||
|
|
#include "DnLithifyBlow.h"
|
|||
|
|
#include "DnPlayerActor.h"
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
CDnLithifyBlow::CDnLithifyBlow( DnActorHandle hActor, const char* szValue ) : CDnBlow( hActor ),
|
|||
|
|
m_fStepTime( 0.0f ),
|
|||
|
|
m_iNowStep( 0 )
|
|||
|
|
{
|
|||
|
|
m_StateBlow.emBlowIndex = STATE_BLOW::BLOW_063;
|
|||
|
|
SetValue( szValue );
|
|||
|
|
m_fValue = (float)atof( szValue );
|
|||
|
|
|
|||
|
|
m_fOriDurationTime = 0.0f;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CDnLithifyBlow::~CDnLithifyBlow(void)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CDnLithifyBlow::OnBegin(LOCAL_TIME LocalTime, float fDelta )
|
|||
|
|
{
|
|||
|
|
OutputDebug( "CDnLithifyBlow::OnBegin, Value: %2.2f\n", m_fValue );
|
|||
|
|
|
|||
|
|
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD>϶<EFBFBD>.. <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>쿣 <20><><EFBFBD><EFBFBD> Ż<><C5BB> UI ǥ<><C7A5>
|
|||
|
|
#ifndef _GAMESERVER
|
|||
|
|
if( dynamic_cast<CDnPlayerActor*>(m_hActor.GetPointer()) )
|
|||
|
|
{
|
|||
|
|
// TODO: ǥ<><C7A5>!
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
float fDurationTime = GetDurationTime();
|
|||
|
|
m_fOriDurationTime = fDurationTime;
|
|||
|
|
m_fStepTime = fDurationTime / 3.0f;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CDnLithifyBlow::Process( LOCAL_TIME LocalTime, float fDelta )
|
|||
|
|
{
|
|||
|
|
CDnBlow::Process( LocalTime, fDelta );
|
|||
|
|
|
|||
|
|
#ifndef _GAMESERVER
|
|||
|
|
float fDurationTime = GetDurationTime();
|
|||
|
|
// Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD>쿣 <20><><EFBFBD><EFBFBD> Ż<><C5BB> <20>ý<EFBFBD><C3BD><EFBFBD> ó<><C3B3>!
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
switch( m_iNowStep )
|
|||
|
|
{
|
|||
|
|
case 0:
|
|||
|
|
if( m_fStepTime*2.0f >= m_fOriDurationTime )
|
|||
|
|
{
|
|||
|
|
// 1<>ܰ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
++m_iNowStep;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 1:
|
|||
|
|
if( m_fStepTime >= m_fOriDurationTime )
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>쿣 2<>ܰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#ifdef _GAMESERVER
|
|||
|
|
DWORD dwHitterUniqueID = m_ParentSkillInfo.hSkillUser ? m_ParentSkillInfo.hSkillUser->GetUniqueID() : -1;
|
|||
|
|
INT64 nHPDelta = -INT64(m_fValue*(float)m_hActor->GetHP());
|
|||
|
|
m_hActor->SetHP( m_hActor->GetHP() + nHPDelta );
|
|||
|
|
m_hActor->RequestHPMPDelta( CDnState::ElementEnum_Amount, nHPDelta, dwHitterUniqueID );
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
SetState( STATE_BLOW::STATE_END );
|
|||
|
|
++m_iNowStep;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CDnLithifyBlow::OnEnd( LOCAL_TIME LocalTime, float fDelta )
|
|||
|
|
{
|
|||
|
|
// <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>쿣 <20><><EFBFBD><EFBFBD> Ż<><C5BB> UI <20><><EFBFBD><EFBFBD>
|
|||
|
|
#ifndef _GAMESERVER
|
|||
|
|
if( dynamic_cast<CDnPlayerActor*>(m_hActor.GetPointer()) )
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD><EFBFBD>!
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
OutputDebug( "CDnLithifyBlow::OnEnd, Value: %2.2f\n", m_fValue );
|
|||
|
|
}
|