Color posts now block lasers.
Lasers Are Blocked
This seems like a simple rule, until you realize there is an infinite loop issue with the logic. If a post were to go up on a beam that already passed it, it would block the beam, potentially negating the post going up, and the cycle would continue forever.
Lets say you have a blue laser, red color post, and red goal block. The goal block is then hit by a red laser. This causes the color post to go down, which lets the blue laser through. The blue laser hits the block, turning it magenta, which unsolves the color post. The color post is now blocking the laser, which starts the cycle all over again.
I decided to fix this by keeping the “heavy” logic consistent with other color post edge cases. Internally, laser beams are now “heavy”, so the posts can be smart and stay down when under a laser beam. This fixed the infinite loop problem, but there were many more bugs and edge cases.
The other bugs were related to beam recalculations, and time travel. Fixed these by using more actions with the action stack/tree, instead of component-level states. There may still be more, but I’ve tested as much as I could so far with test levels, and have yet to find other bugs.
I think the original rules for vehicles were too overpowered, and not focused on what they are needed for - rotation. I am adjusting the logic to make these not protect against any dangers - pollution and lasers. Vehicles can only be used to rotate rotatable objects, with the cost of adding pollution to the level. Vehicles will need to only emit pollution when exiting areas - otherwise you’d get damaged just changing directions. Pushing the vehicle while outside of it, or rotating vehicles with other vehicles, are both allowed.
Implement color posts Implement color post/laser interactions Level design with lasers and current mechanics
- Implement new vehicle
- Level design with vehicles
- Implement time travel rewind & undo (instead of undo acting like rewind)
- Implement time immune changers
- Level design with time travel
- Prepare for release
- UI rework, including controls popups for new players and on death
- Graphics clarity update (clearly represent mechanics)
- Animations implementation
- User feedback
- Proper assets from professional(s)
- Marketing (trailer, steam page, etc.)