public void RemoveBuff(Buff buff) { if (buff.RunningRoutine != null) { StopCoroutine(buff.RunningRoutine); } buff.EffectPrefab.transform.SetParent(null); buff.EffectPrefab.transform.gameObject.SetActive(false); CurrentBuffs.Remove(buff); DevBuff buffReference = Content.Instance.GetBuff(buff.Key); if (!string.IsNullOrEmpty(buffReference.DebuffSoundKey)) { AudioControl.Instance.Play(buffReference.DebuffSoundKey); } if (!string.IsNullOrEmpty(buffReference.DebuffPrefabKey)) { ResourcesLoader.Instance.GetRecycledObject(buffReference.DebuffPrefabKey).transform.position = transform.position; } if (Game.Instance.isBitch) { StopBuffEffect(buff.Key); } }
protected IEnumerator HandleBuff(Buff buff) { DevBuff buffRef = Content.Instance.GetBuff(buff.Key); buff.EffectPrefab = ResourcesLoader.Instance.GetRecycledObject(buffRef.EffectPrefab); buff.EffectPrefab.transform.SetParent(transform); buff.EffectPrefab.transform.position = transform.position; AudioControl.Instance.Play(buffRef.AudioKey); while (buff.Duration > 0) { yield return(new WaitForSeconds(1f)); buff.Duration--; } buff.RunningRoutine = null; RemoveBuff(buff); }
public void RemoveBuff(Buff buff) { if (buff.RunningRoutine != null) { StopCoroutine(buff.RunningRoutine); } if (buff.EffectPrefab != null) { buff.EffectPrefab.transform.SetParent(null); buff.EffectPrefab.transform.gameObject.SetActive(false); } CurrentBuffs.Remove(buff); DevBuff buffReference = Content.Instance.GetBuff(buff.Key); if (buffReference != null) { if (!string.IsNullOrEmpty(buffReference.DebuffSoundKey)) { AudioControl.Instance.Play(buffReference.DebuffSoundKey); } if (!string.IsNullOrEmpty(buffReference.DebuffPrefabKey)) { ResourcesLoader.Instance.GetRecycledObject(buffReference.DebuffPrefabKey).transform.position = transform.position; } } if (Info.ID == LocalUserInfo.Me.ClientCharacter.ID) { InputController.StopBuffEffect(buff.Key); } }