magefree / mage

Magic Another Game Engine
http://xmage.today
MIT License
1.88k stars 772 forks source link

GUI: need universal choice dialog (another helper window)? #11507

Open JayDi85 opened 11 months ago

JayDi85 commented 11 months ago

Some ideas for GUI improvements.

Original problem: its hard to open/close diff zone windows, hard to monitor “red buttons” in players panels, hard to search and check selectable permanents on big table (scrolling battlefield instead zoom out is pain)

Solution example: MTGA with playable graveyard cards in hand zone;

So what is a choice helper dialog? It’s optional window/dialog to display all possible targets/choices from all zones and objects. Its looks like card choose dialog but with additional panels and features:

  1. Show current game’s request as text;
  2. Show all possible choices from all zones and objects as card views:
    • cards;
    • permanents;
    • stack objects;
    • triggers;
    • command objects;
    • need research: attackers/blockers
    • need research: players;
    • need research: yes/no choices;
    • need research: replacement effects;
    • need research: abilities in modes;
  3. Slider to zoom in and zoom out (example: deck editor and card render dialogs);
  4. Search filter (see example with hints helper dialog);
  5. Buttons/tabs to switch between zones like: all (10), hand (5), grave (2), players (2)
  6. Checkbox to show all objects from selected zone (example: choose playable card from hand zone, but you want to see non-playable cards too)
  7. Settings to setup popup in diff use cases and view mode (e.g. ignore attacker/blocker, pay choices; show all objects for some choices, etc);
  8. Keyboard shortcuts to make choices instead mouse clicks (e.g. by num pads);
  9. Can be useful for blind and other players to keep all useful data in one place, with text/screen readers support (#5920). Can be useful for pro players who don't need to look at battlefield or cards before choose. Can be useful for keyboard fans.

Its a client side feature, all required data already sent by a server.

JayDi85 commented 11 months ago

BTW multi zones dialog with “tabs” will be implemented anyway (related to #11213, #7685)