40 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|