fix!(lua.endpoints): allow rearrange of jokers/consumables during ROUND_EVAL and BLIND_SELECT
- Dominant language
- Python
- Stars
- 72
- Forks
- 18
- PR merge metrics
- No merged PRs in 30d
Description
The `rearrange` endpoint rejects valid reordering of jokers and consumables during `ROUND_EVAL` and `BLIND_SELECT` that the game permits. Verified against `vendors/lovely/dump/`.
## Bug
`src/lua/endpoints/rearrange.lua` `requires_state` omits `ROUND_EVAL` and `BLIND_SELECT`, so reordering jokers or consumables mid-eval or during blind selection returns `INVALID_STATE`.
The game allows it: `CardArea:set_ranks()` (`cardarea.lua:245` in the dump) sets `states.drag.can = true` based purely on area type. Both `G.jokers` and `G.consumeables` are created with `type = 'joker'` (`game.lua:2291`/`2297`), so they fall into the `else` branch with no state guard.
Only jokers and consumables are affected; hand cards are not (no hand is shown in these states, and the hand branch is already correctly restricted to `SELECTING_HAND`/`SMODS_BOOSTER_OPENED`).
## Fix
Add `G.STATES.ROUND_EVAL` and `G.STATES.BLIND_SELECT` to `requires_state` and to the completion-detection state lists for the jokers/consumables branches (~L215, ~L221). Leave the hand branch unchanged.
Sibling of #202, #203–#206.
Contributor guide
Assessment
This issue has not been assessed yet.