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); }