Open
Description
Currently difficult cases:
- A bug is reported to happen only when a long action is saved and loaded - those are notoriously hard to reproduce
- Bug requires a character to be asleep when an autosave triggers
- Bug is caused by specific actions being in action backlog, which usually requires pressing
.
at the right time. Debugging should not require dexterity of the user. - Bug is caused by a character being put to sleep or forcibly moved during an action
Possible solution:
- Allow "dot breaking" (pressing wait to interrupt) sleep, all long actions, states when you can't act for any reason like lack of moves (but not animations, though it could buffer the dot to happen as soon as animation finishes)
- For uninterruptible actions and sleep, it would open up a popup and prevent time from passing until resumed, but not allow interruption
- When a debug setting switch is on, the popup for all long actions (and sleep, where applicable) would include new options:
- Trigger a quicksave
- Interrupt and drop activity
- Interrupt and move activity to backlog
- Pop current action and proceed to next one on the stack (goes back to this menu, to prevent the game from going "real time")
- Continue for one turn/tick
- Continue until finish
- Continue until this action is popped. This could be implemented with a debug long action that only interrupts itself and pops
- When another debug switch is on, all long actions and sleep interrupt before the first tick, including on game load
- Resume activity option in debug menu. Would resume the first activity in the backlog, regardless of whether it is valid now.
- (Optional) "Trigger an interrupt at time point" event, started from debug menu.
Alternative solution
Just add proper tests whenever someone reports a long action bug.