coder / coder/balatrobot

fix!(lua.endpoints): allow use of consumables during ROUND_EVAL

Open
#203 0 comments 0 reactions 1 assignee Claimed by @S1M0N38 View on GitHub
completed-in-dev
Dominant language
Python
Stars
72
Forks
18
PR merge metrics
No merged PRs in 30d

Description

The `use` endpoint rejects valid consumable use during `ROUND_EVAL` that the game permits. Verified against `vendors/lovely/dump/` and confirmed empirically.

## Bug

`src/lua/endpoints/use.lua` `requires_state` omits `ROUND_EVAL`, so using a consumable mid-eval returns `INVALID_STATE`. The game allows it: `Card:can_use_consumeable` (`card.lua:1763` in the dump) only excludes `HAND_PLAYED`/`DRAW_TO_HAND`/`PLAY_TAROT`, and `G.FUNCS.use_card` explicitly restores the `G.round_eval` UI offset.

Empirical: used Hermit mid-eval → money 4→8, consumable consumed, state stayed `ROUND_EVAL`.

## Fix

Add `G.STATES.ROUND_EVAL` to `requires_state` **and** the completion-detection `state_restored` whitelist (~L224). Both must change or the endpoint hangs.

Sibling of #202.

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.