65 lines
1.4 KiB
C++
65 lines
1.4 KiB
C++
|
|
#include "StdAfx.h"
|
|||
|
|
#include "DnHPChecker.h"
|
|||
|
|
#include "DnActor.h"
|
|||
|
|
|
|||
|
|
#ifndef USE_BOOST_MEMPOOL
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
|
|||
|
|
#endif
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
CDnHPChecker::CDnHPChecker( DnActorHandle hActor, float fStandardRatio, int iOperator ) : IDnSkillUsableChecker( hActor ),
|
|||
|
|
m_fStandardRatio( fStandardRatio ),
|
|||
|
|
m_iOperator( iOperator )
|
|||
|
|
{
|
|||
|
|
_ASSERT( 0 <= m_iOperator && m_iOperator < OP_COUNT && "<EFBFBD>߸<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" );
|
|||
|
|
m_iType = HP_CHECKER;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CDnHPChecker::~CDnHPChecker(void)
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
bool CDnHPChecker::CanUse( void )
|
|||
|
|
{
|
|||
|
|
bool bResult = false;
|
|||
|
|
|
|||
|
|
if( m_hHasActor )
|
|||
|
|
{
|
|||
|
|
float fCurHPPercent = ( (float)m_hHasActor->GetHP() / (float)m_hHasActor->GetMaxHP() ) * 100.0f;
|
|||
|
|
|
|||
|
|
switch( m_iOperator )
|
|||
|
|
{
|
|||
|
|
case OP_GREATER:
|
|||
|
|
bResult = (m_fStandardRatio < fCurHPPercent);
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
// float <20>̹Ƿ<CCB9> <20>ణ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϳ<EFBFBD>. 0.5 <20>ۼ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>뵵<EFBFBD><EBB5B5> <20>ຼ<EFBFBD><E0BABC>.
|
|||
|
|
case OP_EQUAL:
|
|||
|
|
bResult = (float)fabs(m_fStandardRatio - fCurHPPercent) < 0.5f;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case OP_LESS:
|
|||
|
|
bResult = (m_fStandardRatio > fCurHPPercent);
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case OP_GREATER_EQUAL:
|
|||
|
|
bResult = (m_fStandardRatio <= fCurHPPercent );
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case OP_LESS_EQUAL:
|
|||
|
|
bResult = (m_fStandardRatio >= fCurHPPercent);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return bResult;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
IDnSkillUsableChecker* CDnHPChecker::Clone()
|
|||
|
|
{
|
|||
|
|
CDnHPChecker* pNewChecker = new CDnHPChecker(m_hHasActor, m_fStandardRatio, m_iOperator);
|
|||
|
|
|
|||
|
|
return pNewChecker;
|
|||
|
|
}
|