RiftMayhem/Assets/Scripts/EntityBroker/OnProcInterceptor.cs

31 lines
801 B
C#

using UnityEngine;
public class OnProcInterceptor : BrokerInterceptor
{
EntityEventBroker sourceBroker;
protected override void Awake()
{
base.Awake();
broker.OnIncomingDamageProcessed.Subscribe(HandlePossibleProcs, GameConstants.BrokerEventPriority.Procs);
}
private void HandlePossibleProcs(DamageArgs args)
{
if (args.currentValue <= 0) return;
sourceBroker = args.user.GetComponent<EntityEventBroker>();
if (args.isCrit)
sourceBroker.OnCrit.Invoke(args);
else if (args.applicationMethod == EffectApplicationMethod.Hit)
sourceBroker.OnHit.Invoke(args);
else
sourceBroker.OnTick.Invoke(args);
if (args.targetDead)
sourceBroker.OnKill.Invoke(args);
}
}