using Kryz.CharacterStats.Examples; using UnityEngine; public class DodgeInterceptor : BrokerInterceptor { protected override void Awake() { base.Awake(); broker.OnIncomingDamage.Subscribe(HandleDodge, GameConstants.BrokerEventPriority.Dodge); } private void HandleDodge(DamageArgs args) { DodgeArgs dodgeArgs = new DodgeArgs() { user = user, dodgedSuccessfully = false }; if (HasDodged()) { Debug.Log("Dodged!"); dodgeArgs.dodgedSuccessfully = true; args.currentValue = 0f; } broker.OnDodge.Invoke(dodgeArgs); } protected bool HasDodged() { return MathHelpers.RollChancePercent(stats.GetStat("dodgechance").Value); } }