Focus Fire Drones and Rockets

Hello everybody,

I’ve been using the botengine script for anomaly ratting. Currently sitting in a Gila, problem is that the Rockets and the Drones are attacking different targets which kills the ticks of bounties, is there a newer version of it which I missed which does this?

thanks in advance!

I use this in my droneManagement function

activeTargetAssignedIconsDoNotContainDrones =
                                case readingFromGameClient.targets |> List.filter .isActiveTarget |> List.head of
                                    Nothing ->
                                        False

                                    Just activeTarget ->
                                        activeTarget.assignedIcons
                                            |> List.filter (.uiNode >> .pythonObjectTypeName >> (==) "Sprite")
                                            |> List.filter (.uiNode >> EveOnline.ParseUserInterface.getHintTextFromDictEntries >> Maybe.map (String.toLower >> String.contains "drone") >> Maybe.withDefault False)
                                            |> List.isEmpty

Essentially, if my active target do not have the drone icons underneath it will re-order the drones to attack it. I think it is important to keep drone on passive once you develop a proper drone management function. It keeps them where they are supposed to be at all time.

launchAndEngageGroupNameDrones : ReadingFromGameClient -> BotDecisionContext -> String -> Maybe DecisionPathNode
launchAndEngageGroupNameDrones readingFromGameClient context groupName =
    readingFromGameClient.dronesWindow
        |> Maybe.andThen
            (\dronesWindow ->
                case ( dronesWindow.droneGroupInBay, dronesWindow.droneGroupInLocalSpace ) of
                    ( Just droneGroupInBay, Just droneGroupInLocalSpace ) ->
                        let
                            idlingDrones =
                                droneGroupInLocalSpace.drones
                                    |> List.filter (.uiNode >> .uiNode >> EveOnline.ParseUserInterface.getAllContainedDisplayTexts >> List.any (String.toLower >> String.contains "idle"))

                            dronesInBayQuantity =
                                droneGroupInBay.header.quantityFromTitle |> Maybe.withDefault 0

                            dronesInLocalSpaceQuantity =
                                droneGroupInLocalSpace.header.quantityFromTitle |> Maybe.withDefault 0

                            droneGroupExpectedDisplayText =
                                groupName

                            activeTargetAssignedIconsDoNotContainDrones =
                                case readingFromGameClient.targets |> List.filter .isActiveTarget |> List.head of
                                    Nothing ->
                                        False

                                    Just activeTarget ->
                                        activeTarget.assignedIcons
                                            |> List.filter (.uiNode >> .pythonObjectTypeName >> (==) "Sprite")
                                            |> List.filter (.uiNode >> EveOnline.ParseUserInterface.getHintTextFromDictEntries >> Maybe.map (String.toLower >> String.contains "drone") >> Maybe.withDefault False)
                                            |> List.isEmpty
                        in
                        if (context.readingFromGameClient.targets |> List.length) == 0 then
                            returnDronesToBay context context.readingFromGameClient

                        else if (1 < (idlingDrones |> List.length) || (dronesInLocalSpaceQuantity > 0 && activeTargetAssignedIconsDoNotContainDrones)) && (context |> distanceFromLockedTarget) < context.eventContext.appSettings.distanceToEngageRatsWithDrones then
                            Just
                                (endDecisionPath
                                    (actWithoutFurtherReadings
                                        ( "Engaging " ++ groupName ++ " drones."
                                        , [ EffectOnWindow.KeyDown EffectOnWindow.vkey_F
                                          , EffectOnWindow.KeyUp EffectOnWindow.vkey_F
                                          ]
                                        )
                                    )
                                )
                        else
                            example
1 Like