fix!(lua.endpoints): allow sell of jokers/consumables during ROUND_EVAL
- Dominant language
- Python
- Stars
- 72
- Forks
- 18
- PR merge metrics
- No merged PRs in 30d
Description
The `sell` endpoint rejects valid sales during `ROUND_EVAL` that the game permits. Verified against `vendors/lovely/dump/` and confirmed empirically.
## Bug
`src/lua/endpoints/sell.lua` `requires_state` omits `ROUND_EVAL`, so selling a joker or consumable mid-eval returns `INVALID_STATE`. The game allows it: `Card:can_sell_card` (`card.lua:1896` in the dump) has no `ROUND_EVAL` guard, and jokers/consumables share `area.config.type == 'joker'` (`game.lua:2291`).
Empirical: sold a joker mid-eval → money 8→9, joker removed, state stayed `ROUND_EVAL`.
## Fix
Add `G.STATES.ROUND_EVAL` to `requires_state` **and** the completion-detection `valid_state` whitelist (~L150). Both must change or the endpoint hangs.
Sibling of #202.
Contributor guide
Assessment
This issue has not been assessed yet.