private IEnumerator UpdateCoolingDown(ManaSlot slot)
    {
        float cd = 0;
        float rev = 360f * slot.GetCooldownTime(); // one revolution for each second of cooldown

        while (true)
        {
            cd = Mathf.Pow(1 - slot.GetCooldownPercent(), 2);
            transform.rotation = Quaternion.Euler(0, 0, cd * rev);

            if (!slot.IsOnCooldown()) break;
            yield return null;
        }
        SetSpellIcon(empty_slot);
    }