using System;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Media;
using Buddy.Coroutines;
using ff14bot;
using ff14bot.Enums;
using ff14bot.Helpers;
using ff14bot.Managers;
using ff14bot.Objects;
using YourRaidingBuddy.Helpers;
using YourRaidingBuddy.Settings;
using TreeSharp;
using System.Collections.Generic;
using YourRaidingBuddy.Books;
namespace YourRaidingBuddy.Rotations
{
public class Monk : Root
{
private static LocalPlayer Me { get { return Core.Player; } } //Core.Player.CurrentTarget as BattleCharacter
public override ClassJobType[] Class
{
get { return new[] { ClassJobType.Monk }; }
}
public override void OnInitialize()
{
;
}
#region NewRotation
public static async Task<bool> AutoMode()
{
if (!Me.CurrentTarget.IsViable())
return false;
return await MonkRotation();
}
public static async Task<bool> HotkeyMode()
{
if (!Me.CurrentTarget.IsViable())
return false;
// if (VariableBook.HkmMultiTarget) await MonkAoE();
return await MonkRotation();
}
public static async Task<bool> MonkRotation
{
await MonkOpener();
return false;
}
public static async Task<bool> MonkOpener()
{
if (await Spell.ApplyCast("Perfect Balance", Me, () => !Me.HasAura("Perfect Balance"))) return true;
if (await Spell.ApplyCast("Internal Release", Me, () => !Me.HasAura("Internal Release"))) return true;
if (await Spell.ApplyCast("Blood for Blood", Me, () => !Me.HasAura("Blood for Blood"))) return true;
if (await Spell.ApplyCast("Demolish", Me.CurrentTarget, () => !Me.CurrentTarget.HasAura("Demolish"))) return true;
if (await Spell.CastSpell("Snap Punch", Me, () => !Me.HasAura("Greased Lightning II"))) return true;
if (await Spell.CastSpell("Snap Punch", Me, () => !Me.HasAura("Greased Lightning III"))) return true;
if (await Spell.NoneGcdCast("Elixir Field", Me, () => !Me.HasAura("Greased Lightning III"))) return true;
if (await Spell.NoneGcdCast("Howling Fist", Me, () => !Me.HasAura("Greased Lightning III"))) return true;
if (await Spell.NoneGcdCast("Steel Peak", Me, () => !Me.HasAura("Greased Lightning III"))) return true;
return false;
}
#endregion