You could still use the bullet behavior. Just have it disabled until you want to bounce. Then when you want to use the bounce you enable it, set the speed and angle of motion from your variables, use the bonce action, then set your variables from the bullet's speed and such, and finally disable the behavior.
If you want to do it with events, here's one way:
1. when the object collides with a wall, move it backwards till it isn't with a loop.
object is overlapping wall
--- object: move -1 pixel at angleOfMotion degrees
2. Next we need to find the angle between the object an the wall. One way you can approximate this is with detectors sprites or checking if points around the object collide with walls.
3. Then you can bounce by setting the angleOfMotion to 2*normal+180-angleOfMotion.