Had an issue where the bot would ask for help locating the inventory window if it was not open, implemented a fix. Now it will open the inventory when it is closed.
ensureMiningHoldIsSelectedInInventoryWindow : ReadingFromGameClient -> (EveOnline.ParseUserInterface.InventoryWindow -> DecisionPathNode) -> DecisionPathNode
ensureMiningHoldIsSelectedInInventoryWindow readingFromGameClient continueWithInventoryWindow =
case readingFromGameClient |> inventoryWindowWithMiningHoldSelectedFromGameClient of
Just inventoryWindow ->
continueWithInventoryWindow inventoryWindow
Nothing ->
case readingFromGameClient.inventoryWindows |> List.head of
Nothing ->
case findInventoryButtonInNeocom readingFromGameClient of
Just inventoryButton ->
describeBranch "Opening the inventory window."
(mouseClickOnUIElement MouseButtonLeft inventoryButton
|> Result.Extra.unpack
(always (describeBranch "Failed to click inventory button." askForHelpToGetUnstuck))
decideActionForCurrentStep
)
Nothing ->
describeBranch "Could not find the inventory button in the Neocom." askForHelpToGetUnstuck
Just inventoryWindow ->
describeBranch
"mining hold is not selected. Select the mining hold."
(case inventoryWindow |> activeShipTreeEntryFromInventoryWindow of
Nothing ->
describeBranch "I do not see the active ship in the inventory." askForHelpToGetUnstuck
Just activeShipTreeEntry ->
let
maybeMiningHoldTreeEntry =
activeShipTreeEntry
|> miningHoldFromInventoryWindowShipEntry
in
case maybeMiningHoldTreeEntry of
Nothing ->
describeBranch "I do not see the mining hold under the active ship in the inventory."
(case activeShipTreeEntry.toggleBtn of
Nothing ->
describeBranch "I do not see the toggle button to expand the active ship tree entry."
askForHelpToGetUnstuck
Just toggleBtn ->
describeBranch "Click the toggle button to expand."
(mouseClickOnUIElement MouseButtonLeft toggleBtn
|> Result.Extra.unpack
(always (describeBranch "Failed to click" askForHelpToGetUnstuck))
decideActionForCurrentStep
)
)
Just miningHoldTreeEntry ->
describeBranch "Click the tree entry representing the mining hold."
(mouseClickOnUIElement MouseButtonLeft miningHoldTreeEntry.uiNode
|> Result.Extra.unpack
(always (describeBranch "Failed to click" askForHelpToGetUnstuck))
decideActionForCurrentStep
)
)