summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/Entities/EntityEffects.cpp14
-rw-r--r--src/Entities/EntityEffects.h30
-rw-r--r--src/Entities/Player.cpp2
3 files changed, 35 insertions, 11 deletions
diff --git a/src/Entities/EntityEffects.cpp b/src/Entities/EntityEffects.cpp
index 3aa3fd1ed..c74463bfa 100644
--- a/src/Entities/EntityEffects.cpp
+++ b/src/Entities/EntityEffects.cpp
@@ -1,14 +1,16 @@
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
#include "EntityEffects.h"
-
+#include "Pawn.h"
cEntityEffect::cEntityEffect():
m_Ticks(0),
- m_Intensity(0)
+ m_Intensity(0),
+ m_User(NULL),
+ m_DistanceModifier(1)
{
}
@@ -17,9 +19,11 @@ cEntityEffect::cEntityEffect():
-cEntityEffect::cEntityEffect(int a_Ticks, short a_Intensity):
+cEntityEffect::cEntityEffect(int a_Ticks, short a_Intensity, cPawn *a_User, double a_DistanceModifier):
m_Ticks(a_Ticks),
- m_Intensity(a_Intensity)
+ m_Intensity(a_Intensity),
+ m_User(a_User),
+ m_DistanceModifier(a_DistanceModifier)
{
-}
+} \ No newline at end of file
diff --git a/src/Entities/EntityEffects.h b/src/Entities/EntityEffects.h
index 6ddd86b01..2bda2e104 100644
--- a/src/Entities/EntityEffects.h
+++ b/src/Entities/EntityEffects.h
@@ -1,5 +1,7 @@
#pragma once
+class cPawn;
+
// tolua_begin
class cEntityEffect {
public:
@@ -35,8 +37,14 @@ public:
/** The duration of the effect */
int m_Ticks;
- /** How strong the effect will be applied */
- short m_Intensity;
+ /** 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; }
/**
* An empty entity effect
@@ -45,9 +53,21 @@ public:
/**
* An entity effect
- * @param a_Ticks The duration of the effect
- * @param a_Intensity How strong the effect will be applied
+ * @param a_Ticks The duration of the effect
+ * @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_Ticks, short a_Intensity);
+ cEntityEffect(int a_Ticks, short a_Intensity, cPawn *a_User, double a_DistanceModifier = 1);
+
+private:
+ /** 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
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp
index 3a1ebf3f9..d075957fe 100644
--- a/src/Entities/Player.cpp
+++ b/src/Entities/Player.cpp
@@ -570,7 +570,7 @@ bool cPlayer::Feed(int a_Food, double a_Saturation)
void cPlayer::FoodPoison(int a_NumTicks)
{
- AddEntityEffect(cEntityEffect::efHunger, cEntityEffect(0, a_NumTicks));
+ AddEntityEffect(cEntityEffect::efHunger, cEntityEffect(0, a_NumTicks, NULL));
}