Card-Forge / Card-Forge/forge

PlayerControllerHuman method cleanup

Open
#10,674 5 comments 0 reactions 2 assignees Claimed by @tool4ever View on GitHub
keep
Dominant language
Java
Stars
2.7k
Forks
1.1k
Avg merge
1d 1h
Merged PRs (30d)
163

Description

[MostComulent](https://github.com/Card-Forge/forge/pull/10660#issuecomment-4445383320):

> Potential follow-up:
>
> Forge currently processes a discard effect as two separate actions: reveal stage shows window with revealed cards, user clicks ok, then it repaints window for discard stage. I don't think there's any reason from a rules perspective why that two stage process is necessary? If the discard stage is able to display the revealed cards at same time (which it now does in this PR) this can potentially be consolidated into one action (at least on desktop). Would need to consider mobile UI.

[tool4ever:](https://github.com/Card-Forge/forge/pull/10660#issuecomment-4445724108)

> yea some API even call `tempShowCards` on their own
> and there is also `DelayedReveal` which offers a more dedicated mechanism for this?
>
> In general there should be substantial cleanup potential for redundant or almost useless code in these PlayerController methods, just need to carefully consider what each effect attempts to do...
>
> and ideally some more Javadoc to explain less obvious concepts

---

AI has developed this as initial cleanup concept, particularly consolidating logic from `chooseCardsForEffect`, `chooseSingleEntityForEffect`, `chooseEntitiesForEffect`, `chooseCardsToDiscardFrom` into a single helper:

**[2026-05-14-selection-dispatch-cleanup-design.md](https://github.com/user-attachments/files/27754666/2026-05-14-selection-dispatch-cleanup-design.md)**

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.