public override async Task <bool> PreCombat() { if (!Common_Utils.InActiveInstance()) { return(false); } if (OpenerEnabled) { return(await Pull()); } if (MainSettingsModel.Instance.UseAutoSprint && Target == null && Me.EnemiesInRange(20) == 0 && MovementManager.IsMoving) { await Spells.Sprint.Use(Me, true); } if (Me.IsCasting) { return(await DodgeManager.DodgeThis(Me.SpellCastInfo.SpellData, CurrentTarget, CastedAura, IsDot, IsBuff, IsHealingSpell)); } Logger.DebugLog("Pulsing Pre-combat"); switch (MainSettingsModel.Instance.CurrentRoutine) { case "Barret": return(await BarretRotation.PreCombat()); case "Beatrix": return(await BeatrixRotation.PreCombat()); case "Cecil": return(await CecilRotation.PreCombat()); case "Cyan": return(await CyanRotation.PreCombat()); case "Edward": return(await EdwardRotation.PreCombat()); case "Eiko": return(await EikoRotation.PreCombat()); case "Elayne": return(await ElayneRotation.PreCombat()); case "Freya": return(await FreyaRotation.PreCombat()); case "Mikoto": return(await MikotoRotation.PreCombat()); case "Paine": return(await PaineRotation.PreCombat()); case "Remiel": return(await RemielRotation.PreCombat()); case "Sabin": return(await SabinRotation.PreCombat()); case "Shadow": return(await ShadowRotation.PreCombat()); case "Surito": return(await SuritoRotation.PreCombat()); case "Vivi": return(await ViviRotation.PreCombat()); } return(false); }