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); }