void ChangeHealth(FixPoint delta_health, int source_id) { if (delta_health > 0) { if (m_current_health + delta_health > m_current_max_health) { delta_health = m_current_max_health - m_current_health; } } else { if (-delta_health > m_current_health) { delta_health = -m_current_health; } } if (delta_health == 0) { return; } m_current_health += delta_health; #if COMBAT_CLIENT ChangeHealthRenderMessage msg = RenderMessage.Create <ChangeHealthRenderMessage>(); msg.Construct(ParentObject.ID, delta_health, m_current_health); GetLogicWorld().AddRenderMessage(msg); #endif if (m_current_health <= 0) { EntityUtil.KillEntity(ParentObject as Entity, source_id); } }
void ProcessRenderMessage_ChangeHealth(ChangeHealthRenderMessage msg) { RenderEntity render_entity = m_render_entity_manager.GetObject(msg.EntityID); if (render_entity == null) { return; } }