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(); 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); } }