public override async Task <bool> Combat() { if (!Common_Utils.InActiveInstance() || Target == null) { return(false); } if (BotManager.Current.IsAutonomous && !ff14bot.Managers.RoutineManager.IsAnyDisallowed(CapabilityFlags.Movement)) { if (await Movement.MovementComposite().ExecuteCoroutine()) { return(false); } } if (Me.IsCasting) { return(await DodgeManager.DodgeThis(Me.SpellCastInfo.SpellData, CurrentTarget, CastedAura, IsDot, IsBuff, IsHealingSpell)); } Logger.DebugLog("Pulsing Combat"); switch (MainSettingsModel.Instance.CurrentRoutine) { case "Barret": return(await BarretRotation.Combat()); case "Beatrix": return(await BeatrixRotation.Combat()); case "Cecil": return(await CecilRotation.Combat()); case "Cyan": return(await CyanRotation.Combat()); case "Edward": return(await EdwardRotation.Combat()); case "Eiko": return(await EikoRotation.Combat()); case "Elayne": return(await ElayneRotation.Combat()); case "Freya": return(await FreyaRotation.Combat()); case "Mikoto": if (HealTarget() != null) { return(await MikotoRotation.Heal()); } return(await MikotoRotation.Combat()); case "Paine": return(await PaineRotation.Combat()); case "Remiel": if (HealTarget() != null) { return(await MikotoRotation.Heal()); } return(await RemielRotation.Combat()); case "Sabin": return(await SabinRotation.Combat()); case "Shadow": return(await ShadowRotation.Combat()); case "Surito": if (HealTarget() != null) { return(await MikotoRotation.Heal()); } return(await SuritoRotation.Combat()); case "Vivi": return(await ViviRotation.Combat()); } return(false); }