using System.Collections.Generic; using UnityEngine; public class StandardEffectHandler : StatusEffectHandler { // Separate list for ONLY ticking effects protected List tickingEffects = new List(); protected override void UpdateEffects(float deltaTime) { // Only iterate effects that can tick for (int i = 0; i < tickingEffects.Count; i++) { tickingEffects[i].Tick(deltaTime); } } protected override void UpdateCollections(StatusEffect effect, RuntimeEffectInstance runtimeEffect) { base.UpdateCollections(effect, runtimeEffect); // Track ticking effects separately if (runtimeEffect is TickingRuntimeEffectInstance tickingEffect) { tickingEffects.Add(tickingEffect); } } protected override void RemoveFromCollections(RuntimeEffectInstance runtimeEffect) { base.RemoveFromCollections(runtimeEffect); // Remove from ticking list if (runtimeEffect is TickingRuntimeEffectInstance tickingEffect) { tickingEffects.Remove(tickingEffect); } } }