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); }
private void OnSlotFilled(ManaSlot slot) { SpellSlotIcon icon = slot_icons[slot]; icon.SetSpellIcon(slot.GetOriginSpell().icon_sprite); }
private void OnSlotEmptied(ManaSlot slot) { SpellSlotIcon icon = slot_icons[slot]; icon.SetCooldown(slot, sprite_slot_cd); }
public void SetManaSlot(ManaSlot slot) { this.slot = slot; }
public void SetCooldown(ManaSlot slot, Sprite cd_sprite) { icon.sprite = cd_sprite; StopAllCoroutines(); StartCoroutine(UpdateCoolingDown(slot)); }