IEnumerator BalanceRecovery()
    {
        disbalanceActivityOngoing = true;
        while (currentDisbalance > 0)
        {
            playerUI.NewDisbalanceValueReceived(currentDisbalance / MAX_DISBALANCE);
            if (currentDisbalance >= MAX_DISBALANCE)
            {
                playerEnergy.DropEnergyPack();
                StopCoro();
            }
            currentDisbalance -= BALANCE_RECOVERY_PERSEC * Time.deltaTime;

            yield return(new WaitForEndOfFrame());
        }
        disbalanceActivityOngoing = false;
    }