示例#1
0
        private void PutCasterInCombatModeAfterCastOnCombatant()
        {
            if (CasterUnit.IsInCombat)
            {
                return;
            }

            var targetsInCombat = UnitTargets.Where(target => target.IsInCombat).Count();

            if (targetsInCombat > 0)
            {
                CasterUnit.IsInCombat = true;
            }
        }
示例#2
0
        /// <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);
        }