public bool WillTrigger(SpellTriggerActivationInfo activationInfo) { if (activationInfo.Spell.IsTriggered) { return(false); } if (Aura.AuraInfo.UsesCharges && Aura.Charges < 1) { return(false); } if (!activationInfo.Actor.SpellHistory.IsReady(EffectInfo.TriggeredSpell)) { return(false); } if (!EffectInfo.TriggerFlags.HasAnyFlag(activationInfo.SpellTriggerFlags)) { return(false); } for (int i = 0; i < EffectInfo.TriggerConditions.Count; i++) { if (EffectInfo.TriggerConditions[i].IsApplicableAndInvalid(activationInfo.Actor, activationInfo.ActionTarget, activationInfo.Spell)) { return(false); } } return(RandomUtils.CheckSuccess(EffectInfo.Chance)); }