Menu UI, pushable items, and visual paradox states!
- Added menu UI with previous/restart/next buttons
- Added ability to push time immune changers (players/pausers)
- This includes being able to push the changers into other pausable objects
- Added visual paradox states when objects are stacked due to time travel
- Fixed: Timeline pruning bug, with destroyed entities as time entities
- Fixed: Stacked items sometimes being pushable (now they are never able to be pushed)
- Internal: Can now return an object with a “tries” array in getEffects. This will try each array item until one succeeds. If none succeed, it blocks the whole action. Helpful for logic such as consuming items or pushing them if they cannot be consumed.
Now that time travel is implemented and much more stable, I want it to become a core mechanic of the game, instead of something introduced for the first time by level 30. My goal is now to introduce this as early as possible, to really show players what the game is about right when they start playing. The toroidal world could also be shown in level 1. The extras such as life points, lasers, and mirrors, can all be introduced in later levels.
Max Life Points
Now with other items being pushable, it only makes sense to apply this to life points as well. Since life points are always consumed, they are also a bit over-powered without a limit. The display eventually cuts off after they go off the screen.
This can be done by limiting the max number of life points. I am thinking about using 3-5, to allow for either 1 or 2 full round trips through lasers. Leaning more towards 3 to enable the pushing mechanic earlier in the game without getting too complex with tons of life points.
The current heart/empty heart states will stay, but the bar will be within a fixed size area that indicates the maximum amount of life points. Once reaching the max, no more life points can be consumed and they will start to be pushed like blocks.
This implementation could be tricky the way actions and systems interact now. Not sure how I am going to handle mixed damages and life points. One solution is to generate invisible damager entities so that a system isn’t needed for applying health updates.