Exemple #1
0
        public static async Task <bool> InterruptTarget()
        {
            if (!M.VengeanceAllowInterrupt)
            {
                return(false);
            }
            // use consume magic at 20 yards first
            //WoWUnit interruptTarget = GetInterruptTarget(20f);
            //L.debugLog(string.Format($"Interrupt target 20yd: {CurrentTarget.SafeName}"));
            if (await S.GCD(SB.ConsumeMagic, C.DefensiveColor,
                            VS.VengeanceAllowInterruptConsumeMagic &&
                            CurrentTarget.IsValidCombatUnit() &&
                            CurrentTarget.ShouldInterrupt(VS.VengeanceInterruptMinimumTime, VS.VengeanceInterruptTimeLeft),
                            string.Format($"Interrupt: {CurrentTarget.SafeName}, casting: {CurrentTarget.CastingSpell?.Name}")
                            ))
            {
                return(true);
            }


            //interruptTarget = GetInterruptTarget(30f);
            //if (interruptTarget != null)
            //{
            //    L.debugLog(string.Format($"Interrupt target 30yd: {interruptTarget.SafeName} casting: {interruptTarget.CastingSpell?.Name}"));
            //    // now look for sigil of silence
            if (await S.CastGround(SB.SigilOfSilence, C.DefensiveColor, VS.VengeanceAllowInterruptSigilOfSilence &&
                                   CurrentTarget.ShouldInterrupt(VS.VengeanceInterruptMinimumTime, VS.VengeanceInterruptTimeLeft),
                                   string.Format($"Interrupt: {CurrentTarget.SafeName}, casting: {CurrentTarget.CastingSpell?.Name}")))
            {
                return(true);
            }

            // now look for sigil of misery
            if (await S.CastGround(SB.SigilOfMisery, C.DefensiveColor, VS.VengeanceAllowInterruptSigilOfMisery &&
                                   CurrentTarget.ShouldInterrupt(VS.VengeanceInterruptMinimumTime, VS.VengeanceInterruptTimeLeft),
                                   string.Format($"Interrupt: {CurrentTarget.SafeName}, casting: {CurrentTarget.CastingSpell?.Name}")))
            {
                return(true);
            }

            //}

            return(false);
        }