Toroban: Update #36
Implemented remaining time-travel compatible, player-laser interactions.
Overview
Now, lasers kill player segments. Edge cases such as single/multiple middle segments being hit by laser(s), are all handled. When middle segments are destroyed, new player “head” entities are formed by upgrading the next available segments, which forms player clone groups that all move together.
Changes
- Implemented CreateEntity action and new addEffect queue to ActionTimeline
- CreateEntity has callbacks for running events at different points in the redo/undo life cycle
- An
addEffect
callback now is passed to action methods, to be able to safely queue up additional actions to run during redo/undo - after getEffects already has run. This is used to run additional actions after CreateEntity runs when adding player segments.
- Fixed DestroyEntity time travel issue
- Detached entities were not considered valid with regular PicoES
entity.valid()
check - Added “valid” component to use in default
mutates()
- Detached entities were not considered valid with regular PicoES
- Fixed RemoveComponent undo bug changing class instance type to vanilla object type
- Caused by using PicoES
entity.update()
on undo() to restore previous component data - Updated PicoES 0.5.3 to include a new
entity.setRaw()
method to more easily restore component data by reference to an existing/previous component
- Caused by using PicoES
- Other fixes not listed here
Next Tasks
- Implement pausing followed entities (like the new player)
- Merging logic
- Camera positioning logic
- Proper player sprites (2.5D)
- Animation for walking
- Animation for death
- Screenshots and more gameplay recordings to share