IEnumerator ShrinkLarge(float targetScale, float time, IEffectable target, SOEffect effect) { Vector3 tagetScaleV3 = target.GetDefaultScale() * targetScale; for (float i = 0; i < time; i = i + 1f) { if (!target.AffectedBy(effect)) { // perhaps they got cured break; } Transform t2 = target.GetTransform(); t2.localScale = tagetScaleV3; target.SetTransform(t2); yield return(new WaitForSeconds(1)); } Transform t = target.GetTransform(); t.localScale = target.GetDefaultScale(); target.SetTransform(t); target.RemoveEffect(effect); }