So bullet has a nice behavior where it bounces off an object, using its angle of motion and the angle of the object that it's bouncing off.
However I've been trying to make a pseudo-3D game in which I've determined, in order for physics to not be destroyed too badly, I need to keep the x/y/z coordinates + angle of motion of the objects in variables, then pass them through a relocation pass before the objects are drawn to the screen.
This means that I can't use the bullet behavior, since it doesn't update the object variables which state where it actually is. The vast majority of the behavior is easy to implement via events, but the bounce off function is notably more complex. For example, how do you find the angle of the object it's bouncing off of if the bounding box of the object being bounced off isn't square?