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

Explicit harverster delivery order should be honored only once #15997

Open
ubitux opened this Issue Jan 4, 2019 · 3 comments

Comments

Projects
None yet
2 participants
@ubitux
Copy link
Contributor

ubitux commented Jan 4, 2019

Current behavior: if an harvester has an explicit delivery ordered to a distant refinery, it will keep doing that long distance mining forever. This is not a bug as is but desired as documented in the code "NOTE: An explicit deliver order forces the harvester to always deliver to this refinery." (Harvester.cs).

Suggested alternative behavior: an explicit deliver order should force the harvester to deliver to the targeted refinery only once.

The rationale being that, as far as I can tell, ordering delivery to a specific refinery happens in the following two scenarios:

  1. an attack happens, harvs are ordered to go harvest somewhere else for a while by specifying a distant refinery
  2. on the main base, the harv is micro-ed to harvest close ore patches. Then when the expansion is set up, one of these harv is sent to the expansion specifying a delivery on the expansion ref

In the first scenario, the player will likely forget the harv or might actually call back different harvs. This will cause the never-forgetting-harv to continue making a non-optimal path on the patch they're currently harvesting (think of a large multi mine ore patch with several refs, these harv will never pick a more optimal one).

In the second scenario, the harv will harvest back and forth between the explicit patches in the main base and the refinery expansion.

@ubitux

This comment has been minimized.

Copy link
Contributor

ubitux commented Jan 4, 2019

I may add that in the 2nd scenario, things happening are actually even worse than expected: https://0x0.st/sRfO.mp4

@ubitux

This comment has been minimized.

Copy link
Contributor

ubitux commented Jan 4, 2019

As pointed out on Discord, it makes sense to remember the refinery in multi-player mode, where you want deliveries happening to an ally with your harvester. So if the "deliver once" mode is to be implemented, we probably want to remember the player to which it should deliver to when choosing the closest refinery.

@netnazgul

This comment has been minimized.

Copy link
Contributor

netnazgul commented Jan 4, 2019

Some notes from discord on this:

20:06] netnazgul: I generally don't like things that do some complex stuff behind the curtains and are only known to you if you actually know the code of it
[20:08] netnazgul: maybe you can force-lock an ore truck to refinery with, I don't know, a ctrl+click [where simple click will just unload ore truck once]
20:09] netnazgul: and also would be helpful if this ref lock is shown somehow. With a line or with a caption on the refinery
[20:09] netnazgul: like selecting an ore truck you see "primary" for the refinery it is locked to

also

20:10] bµg: also: how do you roll back to non-ordered way?
[20:10] bµg: except selling the ref

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment