     var maxLife: Int
     var currentLife: Int {
         didSet {
+            // whenever current life is changed, we should update life sparkle bonus value.
             if hasLifeSparkle {
                 updateBonusGroup()
             }

                }
            }
            currentLife = min(maxLife, currentLife + restoredLife)
            
            // generate log
            if shouldGenerateLogs {

            
            combo += 1

            // calculate life (as restored life may change life sparkle bonus value. And in fact, restoring life is calculated first)
            var restoredLife = bestHealer?.lifeValue ?? 0
            if hasSkillBoost {
                if hasDamegeGuard && restoredLife == 0 {
