public async Task <bool> KelpieHandler(BattleCharacter c) { if (c.IsCasting && _hydroPull.Contains(c.CastingSpellId)) { if (Core.Me.Location.Distance(c.CalculatePointInFront(8f)) > 1f) { await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(c.CalculatePointInFront(8f), "Kelpie"), 1f, true); return(true); } await CommonTasks.StopMoving(); return(true); } if (c.IsCasting && _hydroPush.Contains(c.CastingSpellId)) { if (Core.Me.Location.Distance(c.CalculatePointInFront(30f)) > 1f) { await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(c.CalculatePointInFront(30f), "Kelpie"), 1f, true); return(true); } await CommonTasks.StopMoving(); return(true); } return(false); }
public async Task <bool> ArbudaHandler(BattleCharacter c) { var arbudaId = GameObjectManager.GetObjectByNPCId(6118); if (Core.Me.HasAura(1136)) { if (Core.Me.Location.Distance(new Vector3(-260.6502f, 296f, -87.467f)) > 1f && Core.Me.Location.Distance(new Vector3(-239.1116f, 296f, -108.6389f)) > 1f) { // Find both points, but go to the "activated" seal. // await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(new Vector3(-260.6502f, 296f, -87.467f), "Moonseal"), 1f, true); await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(new Vector3(-239.1116f, 296f, -108.6389f), "Moonseal"), 1f, true); return(true); } await CommonTasks.StopMoving(); return(true); } if (Core.Me.HasAura(1135)) { if (Core.Me.Location.Distance(new Vector3(-239.3287f, 296f, -87.41592f)) > 1f && Core.Me.Location.Distance(new Vector3(-260.6499f, 296f, -108.648f)) > 1f) { // Find both points, but go to the "activated" seal. // await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(new Vector3(-239.3287f, 296f, -87.41592f), "Sunseal"), 2f, true); await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(new Vector3(-260.6499f, 296f, -108.648f), "Sunseal"), 1f, true); return(true); } await CommonTasks.StopMoving(); return(true); } if (c.IsCasting && _foreAndAft.Contains(c.CastingSpellId)) { // Verify flanking logic is correct. if (!arbudaId.IsFlanking) { // Find both points, but go to the closest point. // await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(c.CalculatePointAtSide(8f, false), "Arbuda"), 1f, true); await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(c.CalculatePointAtSide(8f, true), "Arbuda"), 1f, true); return(true); } await CommonTasks.StopMoving(); return(true); } if (c.IsCasting && _portAndStar.Contains(c.CastingSpellId)) { // Verify flanking logic is correct. if (arbudaId.IsFlanking) { await CommonTasks.MoveAndStop(new ff14bot.Pathing.MoveToParameters(c.CalculatePointInFront(8f), "Arbuda"), 1f, true); return(true); } await CommonTasks.StopMoving(); return(true); } return(false); }