freeciv21 icon indicating copy to clipboard operation
freeciv21 copied to clipboard

Action Dialogs are Annoying!

Open jwrober opened this issue 1 year ago • 9 comments

Is your feature request related to a problem? Please describe. This is a meta issue, subsequent more detailed issues related to the problem should link here.

Any time a unit attempts to perform an action, the player is presented with an action dialog box. Many actions are obvious and don't need some kind of confirmation box and other times the box is important. We need some sanity...

Per @lmoureaux ... to initiate this discussion, I see 3 kinds of actions:

  1. Actions whose properties are known beforehand except in corner cases (attack, capture, embark, ... there might be a stealth fighter protecting a workers stack, for instance)
  2. Actions whose properties are not known in advance (trade routes/enter marketplace)
  3. Actions whose availability is not known in advance (diplomat actions)

Actions can be possible or not depending on rules specified in the ruleset. Actions can also be prevented by other actions being available. It's so complicated that the server currently needs to tell the client what can be done when the unit reaches its target.

Describe the solution you'd like For option 1 above, if the action is obvious then don't ask me. For example:

  • If I send a unit to a transporter, don't ask me to embark. I told the unit to embark by moving it to the boat! If the boat is "full" (e.g. the cargo capacity is at limit) then a message would be good or simply leave the unit on the shore.
  • If I send a unit into a city that also has a transporter inside, don't ask me to do anything. Just allow the unit to go into the city. If I want to move the unit to the boat I can in the City Dialog with the Alight option on the unit(s) to board.
  • Some units that special actions (e.g. Diplomats) that enter friendly (self or allied) cities should not have a prompt.
  • If I have a transporter on a coastal tile and I disembark a unit to a land tile and then ask a second unit to disembark to the same land tile, don't ask me. I obviously asked the unit to go there.

Some examples of corner cases for option 1...

  • If I send a unit to attack a city, I think a kind of "are you sure" dialog might be in order. I might have mis-clicked or something. e.g. for attack and capture type actions - ask.
  • ?

For option 2 above, there are certain units with action properties that are simply unknown. We should ask here. For example:

  • Caravan entering a city. It isn't obvious if we want to create a trade route, help build a wonder, enter the "marketplace" or simply go into the city. We need to ask.
  • Diplomatic events. Similar to Caravans, Diplomats can do many things against a unit or a city. We need to ask.

Any dialog option needs to be very clear. Tool-tips can be used to help the player. For example: If an action dialog says "wait" and "do nothing" there is a difference. The "wait" options is the same as the wait action, which means the player isn't finished with the unit yet and wants the game to prompt. The "do nothing" options is less obvious, but essentially means "I'm done". That isn't clear, however and makes for confusing UX.

Describe alternatives you've considered None

Additional context Blauwal started a Discord conversation here - https://discord.com/channels/378908274113904641/912500712833974322/1157780210377298024

jwrober avatar Oct 02 '23 22:10 jwrober

2 ¢ from my side:

I think that generally having the “wait” option in such a dialog is superfluous: if you really want to wait, you can just choose to do nothing and then press W. Waiting is not an action but about controlling the order in which units perform their activities.

Furthermore, it would make sense to drop the “do nothing” option, because this is also not about executing an action but precisely about not executing an action. If someone really attempted to make a move by mistake and now wants to get out of this while there is still this dialog shown, he can just close the dialog by pressing the “close” button in the window frame. Well, usually dialogs also have a “Cancel” button in addition, but such a button should indeed be labeled “Cancel” and not “Do nothing”, I’d say.

If, however, “do nothing” is actually about having the unit not be automatically selected anymore during this turn, there should also be no “do nothing” option but for essentially the same reasons as with “wait”: you can just cancel and then press Space.

If after the removal of “wait” and “do nothing” it turns out that there is only one option left, for example “attack”, then no dialog should be shown but the sole possible action should just be executed.

jeltsch avatar Oct 03 '23 00:10 jeltsch

I think that especially what I wrote above about “do nothing” and not showing a dialog if only one action is left is in line with normal functioning of dialogs in GUIs: They are not about generally giving you a chance to abort accidentally initiated activities (except for confirmation dialogs), but they are rather presented to you if the concrete activity isn’t yet clear and you need to make a choice, and the possibility to cancel is only there so that you don’t find yourself in a situation where an activity hasn’t been performed yet (because you still have to make a choice) but nevertheless you can’t avoid some activity being performed.

jeltsch avatar Oct 03 '23 00:10 jeltsch

To clarify further, think of saving a file: If you choose “Save as …”, you’re presented with a dialog, because you have to choose a file path. It would be pretty bad if you accidentally initiated saving and are now in this dialog with no saving having happened yet, but you can’t prevent saving anymore. If, however, you just selected “Save”, no dialog is shown that asks you whether you really want to save. Instead, it is assumed that you think before you select “Save”. :slightly_smiling_face:

jeltsch avatar Oct 03 '23 00:10 jeltsch

For option 2 above, there are certain units with action properties that are simply unknown. We should ask here. For example:

* Caravan entering a city. It isn't obvious if we want to create a trade route, help build a wonder, enter the "marketplace" or simply go into the city. We need to ask.

Actually, even this action can be de-menued. By default, a caravan enters a city and then, once in, a menu/shortcut action is needed to establish trade route.

Simply, passing through cities happens more often than starting trade routes. Having a menu pop-up every time is a >50% of the time unnecessary.

Same goes for helping a wonder.

Corbeau-1 avatar Apr 23 '24 11:04 Corbeau-1

By default, a caravan enters a city and then, once in

If the caravan has one move left, it can establish the trade route from outside the city. If it had to move inside the city, it would waste a turn.

lmoureaux avatar Apr 23 '24 13:04 lmoureaux

By default, a caravan enters a city and then, once in

If the caravan has one move left, it can establish the trade route from outside the city. If it had to move inside the city, it would waste a turn.

Not if you make it possible to establish a traderoute with 0 MP.

Corbeau-1 avatar Apr 23 '24 17:04 Corbeau-1

By default, a caravan enters a city and then, once in

If the caravan has one move left, it can establish the trade route from outside the city. If it had to move inside the city, it would waste a turn.

Not if you make it possible to establish a traderoute with 0 MP.

It's ruleset-controlled

lmoureaux avatar Apr 23 '24 17:04 lmoureaux

By default, a caravan enters a city and then, once in

If the caravan has one move left, it can establish the trade route from outside the city. If it had to move inside the city, it would waste a turn.

Not if you make it possible to establish a traderoute with 0 MP.

It's ruleset-controlled

See? No problem.

Corbeau-1 avatar Apr 23 '24 17:04 Corbeau-1

What's more, this dialog has keyboard shortcuts that can be inadvertently activated if the dialog comes up while you're typing.

lmoureaux avatar May 19 '24 14:05 lmoureaux