public bool CalculateHealth(int current, out int result) { var needCalculate = false; result = current; if (m_TotalDamage != 0) { result = result - m_TotalDamage; m_TotalDamage = 0; needCalculate |= true; } if (m_TotalHealthBuff != 0) { result = result + m_TotalHealthBuff; m_TotalHealthBuff = 0; needCalculate |= true; } result = Mathf.Clamp(result, 0, m_Target.GetMaxHealth()); return(needCalculate); }