summaryrefslogtreecommitdiff
path: root/src/content_cao.cpp
diff options
context:
space:
mode:
authorPilzAdam <pilzadam@minetest.net>2013-08-13 23:06:39 +0200
committerPilzAdam <pilzadam@minetest.net>2013-08-17 01:23:25 +0200
commit787b43b2183262a08726434e2597638ad85bfb72 (patch)
tree1eabaa85cdc0504343aee0a2219d15252a98c9c0 /src/content_cao.cpp
parent3ee80987086a99803f5a812089ae253ab509cb68 (diff)
downloadminetest-787b43b2183262a08726434e2597638ad85bfb72.tar.gz
minetest-787b43b2183262a08726434e2597638ad85bfb72.tar.bz2
minetest-787b43b2183262a08726434e2597638ad85bfb72.zip
Send player damage to all clients and apply [brighten
Diffstat (limited to 'src/content_cao.cpp')
-rw-r--r--src/content_cao.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp
index 20f5fd3db..bb8dad032 100644
--- a/src/content_cao.cpp
+++ b/src/content_cao.cpp
@@ -1739,8 +1739,29 @@ public:
{
/*s16 damage =*/ readS16(is);
s16 result_hp = readS16(is);
-
+
+ // Use this instead of the send damage to not interfere with prediction
+ s16 damage = m_hp - result_hp;
+
m_hp = result_hp;
+
+ if (damage > 0) {
+ if (m_hp <= 0) {
+ // TODO: Execute defined fast response
+ // As there is no definition, make a smoke puff
+ ClientSimpleObject *simple = createSmokePuff(
+ m_smgr, m_env, m_position,
+ m_prop.visual_size * BS);
+ m_env->addSimpleObject(simple);
+ } else {
+ // TODO: Execute defined fast response
+ // Flashing shall suffice as there is no definition
+ m_reset_textures_timer = 0.05;
+ if(damage >= 2)
+ m_reset_textures_timer += 0.05 * damage;
+ updateTextures("^[brighten");
+ }
+ }
}
else if(cmd == GENERIC_CMD_UPDATE_ARMOR_GROUPS)
{