54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include "StdAfx.h"
|
|
#include "DnLamiaMonsterActor.h"
|
|
#include "DnWeapon.h"
|
|
|
|
|
|
CDnLamiaMonsterActor::CDnLamiaMonsterActor( CMultiRoom *pRoom, int nClassID )
|
|
: CDnDefenseMonsterActor( pRoom, nClassID )
|
|
{
|
|
}
|
|
|
|
CDnLamiaMonsterActor::~CDnLamiaMonsterActor()
|
|
{
|
|
for( int i=0; i<2; i++ )
|
|
SAFE_RELEASE_SPTR( m_hSubWeapon[i] );
|
|
}
|
|
|
|
void CDnLamiaMonsterActor::AttachWeapon( DnWeaponHandle hWeapon, int nEquipIndex, bool bDelete )
|
|
{
|
|
CDnDefenseMonsterActor::AttachWeapon( hWeapon, nEquipIndex, bDelete );
|
|
|
|
m_hSubWeapon[nEquipIndex] = CDnWeapon::CreateWeapon( GetRoom(), hWeapon->GetClassID(), hWeapon->GetSeed(), 0, 0, 0, false, false );
|
|
m_hSubWeapon[nEquipIndex]->CreateObject();
|
|
m_hSubWeapon[nEquipIndex]->LinkWeapon( GetMySmartPtr(), nEquipIndex );
|
|
}
|
|
|
|
void CDnLamiaMonsterActor::DetachWeapon( int nEquipIndex )
|
|
{
|
|
CDnDefenseMonsterActor::DetachWeapon( nEquipIndex );
|
|
|
|
if( m_hSubWeapon[nEquipIndex] ) {
|
|
m_hSubWeapon[nEquipIndex]->FreeObject();
|
|
m_hSubWeapon[nEquipIndex]->UnlinkWeapon();
|
|
}
|
|
SAFE_RELEASE_SPTR( m_hSubWeapon[nEquipIndex] );
|
|
}
|
|
|
|
|
|
void CDnLamiaMonsterActor::DefenseWeapon( bool bCrash )
|
|
{
|
|
CDnDefenseMonsterActor::DefenseWeapon( bCrash );
|
|
|
|
if( bCrash ) {
|
|
if( m_hSubWeapon[1]->IsExistAction( "Crash" ) )
|
|
m_hSubWeapon[1]->SetActionQueue( "Crash" );
|
|
else m_hSubWeapon[1]->SetDestroy();
|
|
|
|
m_hSubWeapon[1]->UnlinkWeapon();
|
|
m_hSubWeapon[1]->SetProcess( true );
|
|
}
|
|
else {
|
|
if( m_hSubWeapon[1]->IsExistAction( "Defense" ) )
|
|
m_hSubWeapon[1]->SetActionQueue( "Defense" );
|
|
}
|
|
}
|