diff --git a/src/Sanderling.ABot/Bot/Bot.cs b/src/Sanderling.ABot/Bot/Bot.cs index e815d3e..b844553 100644 --- a/src/Sanderling.ABot/Bot/Bot.cs +++ b/src/Sanderling.ABot/Bot/Bot.cs @@ -133,6 +133,8 @@ IEnumerable SequenceRootTask() if (!saveShipTask.AllowRoam) yield break; + yield return new UndockTask { MemoryMeasurement = MemoryMeasurementAtTime?.Value }; + var combatTask = new CombatTask { bot = this }; yield return combatTask; diff --git a/src/Sanderling.ABot/Bot/Task/Undock.cs b/src/Sanderling.ABot/Bot/Task/Undock.cs new file mode 100644 index 0000000..2c6b483 --- /dev/null +++ b/src/Sanderling.ABot/Bot/Task/Undock.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Sanderling.Motor; +using Sanderling.Parse; + +namespace Sanderling.ABot.Bot.Task +{ + public class UndockTask : IBotTask + { + public IMemoryMeasurement MemoryMeasurement; + + public IEnumerable Component => null; + + public MotionParam Motion + { + get + { + if (MemoryMeasurement?.IsUnDocking ?? false) + return null; + + if (!(MemoryMeasurement?.IsDocked ?? false)) + return null; + + return MemoryMeasurement?.WindowStation?.FirstOrDefault()?.UndockButton?.MouseClick(BotEngine.Motor.MouseButtonIdEnum.Left); + } + } + } +} diff --git a/src/Sanderling.ABot/Sanderling.ABot.csproj b/src/Sanderling.ABot/Sanderling.ABot.csproj index 0707071..3e7e5d2 100644 --- a/src/Sanderling.ABot/Sanderling.ABot.csproj +++ b/src/Sanderling.ABot/Sanderling.ABot.csproj @@ -76,6 +76,7 @@ +