31 lines
801 B
C#
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);
|
|
}
|
|
}
|