Files
BABA_YAGA/Assets/Scripts/Player/vEffect/Scripts/vEffectReceiver.cs
2026-06-04 10:42:23 +07:00

28 lines
912 B
C#

namespace Invector
{
[vClassHeader("Effect Receiver", "Use with the EffectSender component to trigger a Effect.")]
public class vEffectReceiver : vMonoBehaviour
{
[System.Serializable]
public class vEffectByName
{
public string effectName;
public vEffectEvent onReceiveEffect;
}
[System.Serializable]
public class vEffectEvent : UnityEngine.Events.UnityEvent<vIEffect> { }
public vEffectEvent onReceiveEffect;
public vEffectByName[] effectsByName;
public virtual void OnReceiveEffect<T>(T effect) where T : vIEffect
{
onReceiveEffect.Invoke(effect);
for (int i = 0; i < effectsByName.Length; i++)
{
if (effectsByName[i].effectName.Equals(effect.EffectName)) effectsByName[i].onReceiveEffect.Invoke(effect);
}
}
}
}