#pragma once
class cPawn;
// tolua_begin
class cEntityEffect {
public:
/** All types of entity effects (numbers correspond to IDs) */
enum eType
{
effNoEffect = 0,
effSpeed = 1,
effSlowness = 2,
effHaste = 3,
effMiningFatigue = 4,
effStrength = 5,
effInstantHealth = 6,
effInstantDamage = 7,
effJumpBoost = 8,
effNausea = 9,
effRegeneration = 10,
effResistance = 11,
effFireResistance = 12,
effWaterBreathing = 13,
effInvisibility = 14,
effBlindness = 15,
effNightVision = 16,
effHunger = 17,
effWeakness = 18,
effPoison = 19,
effWither = 20,
effHealthBoost = 21,
effAbsorption = 22,
effSaturation = 23,
} ;
/** How many ticks this effect has been active for */
int m_Ticks;
/** Returns the duration of the effect */
int GetDuration() { return m_Duration; }
/** Returns how strong the effect will be applied */
short GetIntensity() { return m_Intensity; }
/** Returns the pawn that used this entity effect */
cPawn *GetUser() { return m_User; }
/** Returns the distance modifier for affecting potency */
double GetDistanceModifier() { return m_DistanceModifier; }
void SetDuration(int a_Duration) { m_Duration = a_Duration; }
void SetIntensity(short a_Intensity) { m_Intensity = a_Intensity; }
void SetUser(cPawn *a_User) { m_User = a_User; }
void SetDistanceModifier(double a_DistanceModifier) { m_DistanceModifier = a_DistanceModifier; }
/**
* An empty entity effect
*/
cEntityEffect();
/**
* An entity effect
* @param a_Duration How long this effect will last
* @param a_Intensity How strong the effect will be applied
* @param a_User The pawn that used this entity effect
* @param a_DistanceModifier The distance modifier for affecting potency, defaults to 1
*/
cEntityEffect(int a_Duration, short a_Intensity, cPawn *a_User, double a_DistanceModifier = 1);
private:
/** How long this effect will last */
int m_Duration;
/** How strong the effect will be applied */
short m_Intensity;
/** The pawn that used this entity effect */
cPawn *m_User;
/** The distance modifier for affecting potency */
double m_DistanceModifier;
};
// tolua_end