40 lines
1.2 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class StandardEffectHandler : StatusEffectHandler
{
// Separate list for ONLY ticking effects
protected List<TickingRuntimeEffectInstance> tickingEffects = new List<TickingRuntimeEffectInstance>();
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);
}
}
}