private IEnumerator TimedEffect(EffectToApply effect, float repeatTime) { while (true) { yield return(new WaitForSeconds(repeatTime)); effect(this); } }
public void AddTimedEffect(int itemID, EffectToApply effect, float repeatTime) { IEnumerator effectFunction = TimedEffect(effect, repeatTime); if (m_TimedEffects.ContainsKey(itemID)) { m_TimedEffects[itemID].Add(effectFunction); } else { List <IEnumerator> functionEffects = new List <IEnumerator>(); functionEffects.Add(effectFunction); m_TimedEffects.Add(itemID, functionEffects); } StartCoroutine(effectFunction); }