FAForever / fa

Lua code for FAF
226 stars 233 forks source link

Make the stop button cancel all units in the build queue except the one currently in production #262

Closed julesjacobs closed 9 years ago

julesjacobs commented 9 years ago

Double clicking on the stop button will cancel the entire queue including the unit currently in production. Usually that is a mistake, so it should not be the single click behavior :)

Sheeo commented 9 years ago

:+1:

aeoncleanse commented 9 years ago

Errrrm, no. I don't want this, it's a dumb idea. The stop button is the STOP button, used when you want to immediately stop what you're doing and start something else, for whatever reason. 99% of the time I use it, I WANT that whole queue to die. If you don't want your in-progress unit to vanish, use the menus to reduce the queue, and be more sensible with the STOP command.

ChrisKitching commented 9 years ago

I'm with icedreamer on this one. The stop command is generally used for "oh shit, stop everything and panic build a fighter before that nuclear bomber kills me". It might be useful to add a new "clear queue" command, but we should preserve the behaviour of "stop", otherwise we'll just create confusion.

RoundTab1er commented 9 years ago

99% of the time I use it, I want it to stop all units BUT the one building it. Beyond this, the menus are so laggy that canceling 5-10 units takes WAY more time than I care/can spend on such an insignificant action.

On Mon, Dec 29, 2014 at 4:14 PM, IceDreamer notifications@github.com wrote:

Errrrm, no. I don't want this, it's a dumb idea. The stop button is the STOP button, used when you want to immediately stop what you're doing and start something else, for whatever reason. 99% of the time I use it, I WANT that whole queue to die. If you don't want your in-progress unit to vanish, use the menus to reduce the queue, and be more sensible with the STOP command.

— Reply to this email directly or view it on GitHub https://github.com/FAForever/fa/issues/262#issuecomment-68303739.

ChrisKitching commented 9 years ago

Yes, so you want a new, key-bindable, "clear queue" command.

Changing the semantics of "stop" is going to cause confusion and annoy people.

aeoncleanse commented 9 years ago

I'm totally up for a new command, but stop is stop and should remain stop. Perhaps default bind for the new command should be ctrl + s for all units

julesjacobs commented 9 years ago

For the 0.01% of cases where you want to clear the entire queue, double clicking on the stop button would do just that. It makes sense that if there's only one unit in the queue (the unit currently in production) then clicking the stop button will remove that unit. However, if there are multiple units in the queue, the first click will clear the queue, and the second click will stop the unit in production. Having an extra button clutters the UI. A separate key-bindable command would be OK too, but it's worse UI design to have the action that is a mistake in most cases be the action that gets a button in the UI. The stop button is like a CTRL-K button for the unit currently in production.

Using the menus to reduce the queue is too much work. Usually I just use the stop button anyway because clearing the queue except the unit in production takes too much time. I do feel bad for canceling the unit in production, especially because you don't get the mass and energy back.

aeoncleanse commented 9 years ago

Yes, the stop button IS like a ctrl-k for the in-production unit. It always has been. It always should be! That's the point of it, an emergency CRAP, STOP, DO THIS INSTEAD button. I'm sorry but as far as I'm concerned the command is perfect, you're just using it wrong. I'm also not aware of double-click vs single-click functionality being present anywhere else in supcom's UI, it just doesn't work like that. The functionality you desire would indeed be useful, but not on the stop button. That's for stopping things.

Sheeo commented 9 years ago

I look at it this way: The majority of the time you don't want a factory to stop all production, you simply want it to clear the queue, therefore it makes sense to assign "Stop" to this.

It's not like it says STOP! on the tin :) A seperate command could be introduced that does just this.

ChrisKitching commented 9 years ago

We seem to agree that both commands should exist: it'll definitely be handy to have a soft stop. The question seems to be which of the two things becomes a new command. I don't think it's a good idea to change the behaviour of an existing function that's so integral to the game: people will have keybinding and habits related to it who will get confused when it suddenly stops doing what it used to. It seems that adding a new command (which you can bind to the "s" key if you like) gets us the new feature with no risk of pissing anyone off. On 30 Dec 2014 12:34, "Michael Søndergaard" notifications@github.com wrote:

I look at it this way: The majority of the time you don't want a factory to stop all production, you simply want it to clear the queue, therefore it makes sense to assign "Stop" to this.

It's not like it says STOP! on the tin :) A seperate command could be introduced that does just this.

— Reply to this email directly or view it on GitHub https://github.com/FAForever/fa/issues/262#issuecomment-68352876.

aeoncleanse commented 9 years ago

No Sheeo, the majority of the time I want to stop production, I DO want to stop all production immediately. So does everyone else I've asked. If you don't want to do that, you just go into the factory and cancel the queue down, because this situation is one where you have time to mess with multiple clicks. No way should the default behaviour be changed.

julesjacobs commented 9 years ago

"just go into the factory and cancel the queue down" is not a solution. It takes too much time.

If you want to cancel the unit in production the majority of the time, that's simply bad gameplay...

ChrisKitching commented 9 years ago

You're probably right: the only problem is it's been that way for a very, very long time. We definitely want to have a "safe stop" feature, but I think we shouldn't quietly replace a function that's been around forever.

julesjacobs commented 9 years ago

The game changed an immense amount already. This is a very minor change in comparison.

RoundTab1er commented 9 years ago

Given that in this PR the stop button preserves the "oh crap" behavior (granted, its TWO clicks, not one), is this a huge deal? On flip side, is it such a big deal to add another button?

My 2cents

ChrisKitching commented 9 years ago

Remember, some people will be using a keybinding instead of clicking (I don't think I've ever actually clicked the button). Such people might not even notice the new behaviour right away. There'll be complaints. :P

shrug

Why not just add a new button?

aeoncleanse commented 9 years ago

We're not changing the default behaviour. At least, not without me kicking up a huge stink we're not :) New command, new keybind option, new UI element to do it. Could even make the stop button have a dropdown like the fire mode button, so you can change what it does when you click/hotbind it... Actually yeah let's do that.

julesjacobs commented 9 years ago

Hopefully sheeo > your stink :P

RoundTab1er commented 9 years ago

IceDreamer's last suggestion is very reasonable. Hopefully the dropdown could be made to remember your decision across sessions, otherwise it would be kinda useless

aeoncleanse commented 9 years ago

Oh it would have to remember the setting cross-session, absolutely

Sheeo commented 9 years ago

Until this discussion reaches a consensus; I'm closing this issue.

I've created a thread on the forums for further talks, hopefully with a wider audience of players.