public void RpcAddEffect(PlayerEffect effect) { // Add it. PlayerEffects.Add(effect); // Notify event listeners of changes. OnPlayerEffectsChanged.Invoke(); OnPlayerEffectsAdded.Invoke(effect); }
/// <summary> /// Update is called every frame. /// </summary> private void Update() { // This is trash. Refactor earlier than 3 a.m. // Decrement duration values List <PlayerEffect> newPlayerEffectsList = new List <PlayerEffect>(); foreach (PlayerEffect effect in PlayerEffects) { // If the duration will be above zero, re-add to the collection. Dump it out otherwise. if (effect.duration - Time.deltaTime > 0) { PlayerEffect modified = new PlayerEffect(effect.effectType, effect.duration - Time.deltaTime, effect.modifierFloat, effect.modifierString); newPlayerEffectsList.Add(modified); } else { // Notify event listeners of changes. OnPlayerEffectsChanged.Invoke(); } } PlayerEffects = newPlayerEffectsList; }