EntityEffects.x -> EntityEffect.x, Object-Oriented effects
Changed effect map to take a pointer of the effect as a result.
This commit is contained in:
@@ -0,0 +1,438 @@
|
||||
#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,
|
||||
} ;
|
||||
|
||||
/** Creates an empty entity effect */
|
||||
cEntityEffect(void);
|
||||
|
||||
/** Creates an entity effect of the specified type
|
||||
@param a_Duration How long this effect will last, in ticks
|
||||
@param a_Intensity How strong the effect will be applied
|
||||
@param a_Creator The pawn that produced this entity effect
|
||||
@param a_DistanceModifier The distance modifier for affecting potency, defaults to 1 */
|
||||
cEntityEffect(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1);
|
||||
|
||||
virtual ~cEntityEffect(void);
|
||||
|
||||
/** Creates a pointer to the proper entity effect from the effect type
|
||||
@warning This function creates raw pointers that must be manually managed.
|
||||
@param a_EffectType The effect type to create the effect from
|
||||
@param a_Duration How long this effect will last, in ticks
|
||||
@param a_Intensity How strong the effect will be applied
|
||||
@param a_Creator The pawn that produced this entity effect
|
||||
@param a_DistanceModifier The distance modifier for affecting potency, defaults to 1 */
|
||||
static cEntityEffect * CreateEntityEffect(cEntityEffect::eType a_EffectType, int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier);
|
||||
|
||||
/** Returns how many ticks this effect has been active for */
|
||||
int GetTicks() { return 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 produced this entity effect */
|
||||
cPawn *GetCreator() { return m_Creator; }
|
||||
/** Returns the distance modifier for affecting potency */
|
||||
double GetDistanceModifier() { return m_DistanceModifier; }
|
||||
|
||||
void SetTicks(int a_Ticks) { m_Ticks = a_Ticks; }
|
||||
void SetDuration(int a_Duration) { m_Duration = a_Duration; }
|
||||
void SetIntensity(short a_Intensity) { m_Intensity = a_Intensity; }
|
||||
void SetCreator(cPawn * a_Creator) { m_Creator = a_Creator; }
|
||||
void SetDistanceModifier(double a_DistanceModifier) { m_DistanceModifier = a_DistanceModifier; }
|
||||
|
||||
virtual void OnTick(cPawn & a_Target);
|
||||
virtual void OnActivate(cPawn & a_Target);
|
||||
virtual void OnDeactivate(cPawn & a_Target);
|
||||
|
||||
protected:
|
||||
/** How many ticks this effect has been active for */
|
||||
int m_Ticks;
|
||||
|
||||
/** How long this effect will last, in ticks */
|
||||
int m_Duration;
|
||||
|
||||
/** How strong the effect will be applied */
|
||||
short m_Intensity;
|
||||
|
||||
/** The pawn that produced this entity effect (threw the potion, etc) */
|
||||
cPawn *m_Creator;
|
||||
|
||||
/** The distance modifier for affecting potency */
|
||||
double m_DistanceModifier;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Speed
|
||||
************************************************************************/
|
||||
class cEntityEffectSpeed:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectSpeed(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Slowness
|
||||
************************************************************************/
|
||||
class cEntityEffectSlowness:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectSlowness(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Haste
|
||||
************************************************************************/
|
||||
class cEntityEffectHaste:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectHaste(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Mining Fatigue
|
||||
************************************************************************/
|
||||
class cEntityEffectMiningFatigue:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectMiningFatigue(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Strength
|
||||
************************************************************************/
|
||||
class cEntityEffectStrength:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectStrength(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Instant Health
|
||||
************************************************************************/
|
||||
class cEntityEffectInstantHealth:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectInstantHealth(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnActivate(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Instant Damage
|
||||
************************************************************************/
|
||||
class cEntityEffectInstantDamage:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectInstantDamage(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnActivate(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Jump Boost
|
||||
************************************************************************/
|
||||
class cEntityEffectJumpBoost:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectJumpBoost(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Nausea
|
||||
************************************************************************/
|
||||
class cEntityEffectNausea:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectNausea(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Regeneration
|
||||
************************************************************************/
|
||||
class cEntityEffectRegeneration:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectRegeneration(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnTick(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Resistance
|
||||
************************************************************************/
|
||||
class cEntityEffectResistance:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectResistance(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Fire Resistance
|
||||
************************************************************************/
|
||||
class cEntityEffectFireResistance:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectFireResistance(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Water Breathing
|
||||
************************************************************************/
|
||||
class cEntityEffectWaterBreathing:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectWaterBreathing(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Invisibility
|
||||
************************************************************************/
|
||||
class cEntityEffectInvisibility:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectInvisibility(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Blindness
|
||||
************************************************************************/
|
||||
class cEntityEffectBlindness:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectBlindness(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Night Vision
|
||||
************************************************************************/
|
||||
class cEntityEffectNightVision:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectNightVision(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Hunger
|
||||
************************************************************************/
|
||||
class cEntityEffectHunger:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectHunger(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnTick(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Weakness
|
||||
************************************************************************/
|
||||
class cEntityEffectWeakness:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectWeakness(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnTick(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Poison
|
||||
************************************************************************/
|
||||
class cEntityEffectPoison:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectPoison(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnTick(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Wither
|
||||
************************************************************************/
|
||||
class cEntityEffectWither:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectWither(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnTick(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Health Boost
|
||||
************************************************************************/
|
||||
class cEntityEffectHealthBoost:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectHealthBoost(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Absorption
|
||||
************************************************************************/
|
||||
class cEntityEffectAbsorption:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectAbsorption(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
**** Saturation
|
||||
************************************************************************/
|
||||
class cEntityEffectSaturation:
|
||||
public cEntityEffect
|
||||
{
|
||||
typedef cEntityEffect super;
|
||||
public:
|
||||
cEntityEffectSaturation(int a_Duration, short a_Intensity, cPawn * a_Creator, double a_DistanceModifier = 1):
|
||||
super(a_Duration, a_Intensity, a_Creator, a_DistanceModifier)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void OnTick(cPawn & a_Target) override;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// tolua_end
|
||||
Reference in New Issue
Block a user