Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Pass construction-related orders to drones that are working #6145

Closed
lL1l1 opened this issue May 1, 2024 · 9 comments · Fixed by #6176
Closed

Feature: Pass construction-related orders to drones that are working #6145

lL1l1 opened this issue May 1, 2024 · 9 comments · Fixed by #6176
Assignees
Labels
area: sim Area that is affected by the Simulation of the Game type: enhancement

Comments

@lL1l1
Copy link
Contributor

lL1l1 commented May 1, 2024

Issue
Building a project with a drone SACU/ACU assigns the drone to the structure, but the drone doesn't pick up any new orders until it goes idle (finishes the project). This makes it hard to reclaim accidental placements, stop build commands, or reassign buildpower, especially with how small and low selection priority drones are.

Describe the feature
Stop orders, build orders, and assist orders to the main unit should affect drones so that the two basically act as one unit.

@lL1l1 lL1l1 added the area: sim Area that is affected by the Simulation of the Game label May 1, 2024
@Garanas
Copy link
Member

Garanas commented May 1, 2024

Sounds like a great enhancement 👍

@clyfordv
Copy link
Contributor

Should this apply to all assisting units? See photo, SACU has left behind two groups, drones on the bottom gen and t1 engineers on the middle:
image

@clyfordv
Copy link
Contributor

#6169

@lL1l1
Copy link
Contributor Author

lL1l1 commented May 11, 2024

Should this apply to all assisting units?

No, it should only apply to drones that normally auto assist the unit. Currently you can do convenient pre-placement with the main engi while your other engis finish the previous project, which is something I think should be kept.
The main difference with drones and engis is that drones are harder to see, click on, and don't show assist orders, which is why they should be easily controllable by manipulating the parent unit.

Considering that idea, you could implement such controls for kennels, so you can select kennels and re-assign tasks as if they were a hive instead of having to deal with selecting kennel drones which requires shift + drag + filter or double clicking the tiny flying drone.

@clyfordv
Copy link
Contributor

Can you give me an example of a pre-placement scenario just so I have an idea of what I'm working with?

Currently Kennels have a button to select their drones (which works with multiple kennels). It would benefit from a hotkey. Do you think an exFac-esque merged control scheme would be worthwhile?

@lL1l1
Copy link
Contributor Author

lL1l1 commented May 11, 2024

Sometimes I want my ACU to start a build and have all the assisting engineers go there (i.e. a t3 pgen or t3 mex) and then after giving that order I can use my ACU to reclaim some stuff like t1 pgens or excess engis or build some cheaper structures. Maybe the way I personally use it is quite niche though, I haven't seen any widespread ideas on the topic of assisting previous orders.

For kennels, yes I'm essentially advocating for a merged control scheme similar to external factories. The same is for ACU/SACU drones.

@Garanas
Copy link
Member

Garanas commented May 11, 2024

Sometimes I want my ACU to start a build and have all the assisting engineers go there (i.e. a t3 pgen or t3 mex) and then after giving that order I can use my ACU to reclaim some stuff like t1 pgens or excess engis or build some cheaper structures. Maybe the way I personally use it is quite niche though, I haven't seen any widespread ideas on the topic of assisting previous orders.

I also do this on a regular basis, especially when creeping with structures.

@clyfordv
Copy link
Contributor

clyfordv commented May 11, 2024

I see the use case. There's the counterpart, where you have a crowded base, a "squad" engineers with a leader and a bunch of guards, and you want to immediately switch them from one task to another while keeping the assist structure intact/without leaving the guards behind.

What if we nudged the "interrupt engineer pathfinding" action to interact with guards? The navigator interruption would stay, but it would additionally either:

Option A: When assisted engineer + guards are working on Structure X, press hotkey. Guards are then given an explicit repair order that locks them to Structure X until it's complete.
Option B: When assisted engineer is working on Structure Y and guards are working on Structure X, hotkey reassigns all guards to work on the current structure Y.

EDIT: Lemme add the additional work for either is minimal--the functionality is in CheckAssister(s)Focus, just needs a tweak one way or the other.

Perhaps that's too much for one hotkey (it'd need a new name, but the current one may be a little too opaque for somebody not familiar with the backend anyway), but I think new hotkeys are to be avoided whenever possible. There's also a collision where A. guards are working on Structure X and B. you want to interrupt pathfinding on your assisted engineer to work on structure Y, but want the guards to stay on structure X.

I'll take a look at the kennels, probably wise to put it in a separate PR.

@lL1l1
Copy link
Contributor Author

lL1l1 commented May 12, 2024

Integrating the retargeting function into the interrupt pathfiinding hotkey is a good idea. The collision can be avoided by checking if the lead engineer is currently working on a project or moving towards a new one. If it is working on a project, retarget the assisting engineers. If it is not working on a project, interrupt the pathfinding of the engineer.
I also prefer Option B. because it keeps the behavior that people are used to and adds on top of it.

I agree kennels should go into a separate PR, even if some code gets shared.

@lL1l1 lL1l1 linked a pull request May 14, 2024 that will close this issue
@clyfordv clyfordv self-assigned this May 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: sim Area that is affected by the Simulation of the Game type: enhancement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants