Files
Sun1602/Client/GameClient/ProjectileChaseTarget.h
T
2022-10-26 12:25:11 +08:00

77 lines
1.7 KiB
C++

// 대상에 붙어다니는 객체이며, 버프임, 이펙트만 다룸 (바사체가 아님)
// 이름은 차후 수정
#pragma once
#include "ProjectileObject.h"
class cProjectileChaseTarget
: public cProjectileTarget
, public cProjectileObject
{
public:
cProjectileChaseTarget();
private:
// cProjectileObject
const WzVector& GetObjectPosition() const { return cProjectileTarget::GetPosition(); }
const WzVector& GetObjectRotate() const { return cProjectileTarget::GetRotate(); }
protected:
void Destroy();
BOOL Process( DWORD TickTime );
void Render();
};
// 오프라인 모드 전용
class cProjectilePortal : public cProjectileChaseTarget
{
BOOL Process( DWORD TickTime ); // override
public:
cProjectilePortal() {}
};
class cProjectileQuestPortal : public cProjectileChaseTarget
{
DWORD m_OwnerKey;
PORTALKEY m_PortalKey;
MAPCODE m_MapCode;
BOOL Process( DWORD TickTime ); // override
public:
cProjectileQuestPortal( DWORD OwnerKey, PORTALKEY PortalKey, MAPCODE MapCode );
};
class cProjectileClone
: public cProjectileBase
, public cProjectileCloneObject
{
public:
cProjectileClone();
WzVector m_CloneDirection;
WzVector m_ClonePosition;
virtual void SetActiveDelayTime( DWORD ActiveDelayTime );
void SetCloneDirection(WzVector value) { m_CloneDirection = value; }
void SetClonePosition(WzVector value) { m_ClonePosition = value; }
private:
// cProjectile
const WzVector& GetClonePosition() const { return m_ClonePosition; }
const WzVector& GetCloneDirection() const { return m_CloneDirection; }
float GetCloneLifeTimeRate() { return cProjectileBase::GetTotalLifeTimeRate(); }
void Destroy();
BOOL Process( DWORD dwTick );
void Render();
};