summaryrefslogtreecommitdiffstats
path: root/src/Entities
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/Entities/Effects.h30
-rw-r--r--src/Entities/Player.cpp10
2 files changed, 39 insertions, 1 deletions
diff --git a/src/Entities/Effects.h b/src/Entities/Effects.h
new file mode 100644
index 000000000..e7611847d
--- /dev/null
+++ b/src/Entities/Effects.h
@@ -0,0 +1,30 @@
+#pragma once
+
+// tolua_begin
+enum ENUM_ENTITY_EFFECT
+{
+ E_EFFECT_SPEED = 1,
+ E_EFFECT_SLOWNESS = 2,
+ E_EFFECT_HASTE = 3,
+ E_EFFECT_MINING_FATIGUE = 4,
+ E_EFFECT_STENGTH = 5,
+ E_EFFECT_INSTANT_HEALTH = 6,
+ E_EFFECT_INSTANT_DAMAGE = 7,
+ E_EFFECT_JUMP_BOOST = 8,
+ E_EFFECT_NAUSEA = 9,
+ E_EFFECT_REGENERATION = 10,
+ E_EFFECT_RESISTANCE = 11,
+ E_EFFECT_FIRE_RESISTANCE = 12,
+ E_EFFECT_WATER_BREATHING = 13,
+ E_EFFECT_INVISIBILITY = 14,
+ E_EFFECT_BLINDNESS = 15,
+ E_EFFECT_NIGHT_VISION = 16,
+ E_EFFECT_HUNGER = 17,
+ E_EFFECT_WEAKNESS = 18,
+ E_EFFECT_POISON = 19,
+ E_EFFECT_WITHER = 20,
+ E_EFFECT_HEALTH_BOOST = 21,
+ E_EFFECT_ABSORPTION = 22,
+ E_EFFECT_SATURATION = 23,
+} ;
+// tolua_end \ No newline at end of file
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp
index 85833f31d..b2485a8e2 100644
--- a/src/Entities/Player.cpp
+++ b/src/Entities/Player.cpp
@@ -557,9 +557,13 @@ void cPlayer::FoodPoison(int a_NumTicks)
m_FoodPoisonedTicksRemaining = std::max(m_FoodPoisonedTicksRemaining, a_NumTicks);
if (!HasBeenFoodPoisoned)
{
- // TODO: Send the poisoning indication to the client - how?
+ m_ClientHandle->SendRemoveEntityEffect(*this, E_EFFECT_HUNGER);
SendHealth();
}
+ else
+ {
+ m_ClientHandle->SendEntityEffect(*this, E_EFFECT_HUNGER, 0, 20);
+ }
}
@@ -1704,6 +1708,10 @@ void cPlayer::HandleFood(void)
m_FoodPoisonedTicksRemaining--;
m_FoodExhaustionLevel += 0.025; // 0.5 per second = 0.025 per tick
}
+ else
+ {
+ m_ClientHandle->SendRemoveEntityEffect(*this, E_EFFECT_HUNGER); // remove the "Hunger" effect.
+ }
// Apply food exhaustion that has accumulated:
if (m_FoodExhaustionLevel >= 4)