private void PutCasterInCombatModeAfterCastOnCombatant() { if (CasterUnit.IsInCombat) { return; } var targetsInCombat = UnitTargets.Where(target => target.IsInCombat).Count(); if (targetsInCombat > 0) { CasterUnit.IsInCombat = true; } }
/// <summary> /// Trigger proc on the caster of the spell. /// </summary> /// <param name="flags">What spell caster casted ie. ProcTriggerFlags.DoneHarmfulSpell</param> /// <param name="hitFlags">Hit result of the spell</param> private void TriggerProcOnCaster(ProcTriggerFlags flags, ProcHitFlags hitFlags) { var casterAction = new SimpleUnitAction { Attacker = CasterUnit, Spell = Spell, Victim = m_hitInfoByTarget.Count > 0 ? m_hitInfoByTarget.First().Key : null, IsCritical = hitFlags.HasAnyFlag(ProcHitFlags.CriticalHit) }; var triggerer = UnitTargets.FirstOrDefault(); CasterUnit.Proc(flags, triggerer, casterAction, true, hitFlags); }