mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-10 12:47:44 +00:00
52 lines
968 B
C
52 lines
968 B
C
![]() |
#ifndef _STATUSEFFECT_H_
|
||
|
#define _STATUSEFFECT_H_
|
||
|
|
||
|
#include <boost/shared_ptr.hpp>
|
||
|
|
||
|
#include "Forwards.h"
|
||
|
|
||
|
namespace Core
|
||
|
{
|
||
|
namespace StatusEffect
|
||
|
{
|
||
|
|
||
|
|
||
|
class StatusEffect
|
||
|
{
|
||
|
public:
|
||
|
StatusEffect( uint32_t id, Entity::ActorPtr sourceActor, Entity::ActorPtr targetActor,
|
||
|
uint32_t duration, uint32_t tickRate );
|
||
|
|
||
|
~StatusEffect();
|
||
|
|
||
|
void onTick();
|
||
|
void applyStatus();
|
||
|
void removeStatus();
|
||
|
|
||
|
uint32_t getId() const;
|
||
|
uint32_t getDuration() const;
|
||
|
uint32_t getTickRate() const;
|
||
|
uint32_t getSrcActorId() const;
|
||
|
uint32_t getTargetActorId() const;
|
||
|
uint64_t getLastTickMs() const;
|
||
|
uint64_t getStartTimeMs() const;
|
||
|
void setLastTick( uint64_t lastTick );
|
||
|
const std::string& getName() const;
|
||
|
|
||
|
private:
|
||
|
uint32_t m_id;
|
||
|
Entity::ActorPtr m_sourceActor;
|
||
|
Entity::ActorPtr m_targetActor;
|
||
|
uint32_t m_duration;
|
||
|
uint64_t m_startTime;
|
||
|
uint32_t m_tickRate;
|
||
|
uint64_t m_lastTick;
|
||
|
std::string m_name;
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|