Skip to content

Replace the "Done" button with context-aware prompts#14547

Open
simsor wants to merge 1 commit into
magefree:masterfrom
simsor:context-aware-done
Open

Replace the "Done" button with context-aware prompts#14547
simsor wants to merge 1 commit into
magefree:masterfrom
simsor:context-aware-done

Conversation

@simsor
Copy link
Copy Markdown

@simsor simsor commented Feb 24, 2026

The goal of this PR is to change the "Done" button to be more context-aware (this should fix part of #1802 )

It adds a new Option for FeedbackPanel.prepareFeedback() called CUSTOM_SELECT_MESSAGE, which overrides the "Done" message if it is present.

Then, GamePanel.select() has some more logic to set a custom message:

  • If the stack has things in it, we show "No response"
image
  • Otherwise, we try to show the name of the next phase step (the order is hardcoded, I could not find a way to get the next step name programatically)
image

Cheers!

EDIT: I have also updated pressYesOkOrDone() to auto-press "No response" or any button which matches a phase transition. Because this required having the phase step order again, I moved this list to the PhaseStep class, as a static member (I hope that's OK).

- Adds Constants.Option.CUSTOM_SELECT_MESSAGE
- Uses this option to change the "Done" button to either "No response"
  or the name of the next phase.
- Update "pressOKYesOrDone()" to handle these new button values
@xenohedron
Copy link
Copy Markdown
Contributor

I like this idea overall, but many things could be improved further.

  • Players don't receive priority during untap step.
  • It is very strange to indicate "first combat damage" when there are no creatures with first/double strike and that step will be skipped
  • It is misleading to have to click "declare blockers" to lock in the declaration of attackers, because then you still get priority during the declare attackers step. The original text of "Done" seems fine for that situation.
  • Ideally the text for the next phase could account for the stops set in preferences, and not indicate a step where priority won't be held.
  • If no attackers are declared (and no creatures put onto battlefield attacking) then the declare blockers / combat damage steps are skipped, so the next step would be end of combat
  • If the next step is on the following turn, then I think it could be more helpful to say "pass turn" on your turn, "your turn" when the next turn is yours, and "next turn" when it's changing from one opponent to another opponent

@JayDi85
Copy link
Copy Markdown
Member

JayDi85 commented May 10, 2026

BTW there were many reports on bad GUI after done/cancel button logic change some years ago -- many players remember size-position of the buttons and clicks on it without mouse move. So old changes were reverted. Just keep it in mind for use cases research.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants