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

45 lines
1.3 KiB
C++

#pragma once
#include "ProjectileBase.h"
#include "ProjectileEffect.h"
class cProjectileObject
: public cProjectileBase
, public cProjectileHit
, public cProjectileEffect
, public cProjectileUnitObject
{
protected:
virtual const WzVector& GetObjectPosition() const PURE;
virtual const WzVector& GetObjectRotate() const PURE;
protected:
cProjectileObject();
BOOL ProcessProjectileObject( DWORD TickTime );
void DestroyProjectileObject();
void RenderProjectileObject();
public:
virtual void SetActiveDelayTime( DWORD ActiveDelayTime );
private:
// cProjectileHit
DWORD GetCurrentDamageTickTime() { return cProjectileBase::GetCurrentTickTime(); }
const WzVector& GetDamageEffectPosition() const { return GetObjectPosition(); }
// cProjectileEffect
const WzVector& GetEffectPosition() const { return GetObjectPosition(); }
const WzVector& GetEffectRotate() const { return GetObjectRotate(); }
float GetEffectTotalLifeTimeRate() { return cProjectileBase::GetTotalLifeTimeRate(); }
// cProjectileUnitObject
const WzVector& GetUnitObjectPosition() const { return GetObjectPosition(); }
const WzVector& GetUnitObjectRotate() const { return GetObjectRotate(); }
float GetUnitObjectLifeTimeRate() { return cProjectileBase::GetTotalLifeTimeRate(); }
};