Zannick / logic-graph

Tools for video game logic representation and analysis, particularly routing and beatability checks for speedruns and randomizers.
MIT License
3 stars 0 forks source link

Mark pairs of actions that undo each other #27

Closed Zannick closed 1 year ago

Zannick commented 1 year ago

We've actions that can be marked as cycles, for when it's possible to do the same action multiple times to cycle through modes, for example. However, we might add some special versions that change modes and set some other context (e.g. AV2 will have a "Throw Drone" action in some places). Since there are still actions considered to undo other actions (e.g. AV2 will have a "Recall Drone" action). To avoid the search algorithm generating many sequences of [Throw Drone, move, Recall], we should have Recall disallowed until another action is performed, item collected, or other condition met (moved far enough away that Recall has a different effect, e.g. for performing AV2 stuckness glitches... but this could also be a different Recall action).

To avoid having to spell out the full list of actions, we could give actions fields like undo_type and undoes.

Zannick commented 1 year ago

This is probably unnecessary now with duplicate state checking.