diff options
Diffstat (limited to 'src/content_cao.cpp')
-rw-r--r-- | src/content_cao.cpp | 23 |
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) { |