private void InitAutoHealTimer() { healTimer = new DownTimer(1f / vigorStat.ActualValue); healTimer.OnTimerEnd += () => healthSysBehav.Heal(resolveStat.ActualValue, this); healTimer.OnTimerEnd += () => healTimer.SetNewDefaultTime(1f / vigorStat.ActualValue); healTimer.OnTimerEnd += () => healTimer.Reset(); healthSysBehav.StatsBasedHealthContainer.onHealthChange += (cur, max) => { var wasDamaged = cur < prevHealth; if (wasDamaged) { healTimer.Reset(); } prevHealth = cur; }; }