Alright, this is just beyond rediculous. When using text to debug my own game, it was giving me negative numbers. 225 (left-up) became -135, while 315 (right-up) became -35. And checking for those numbers, and/or the ranges that included them, still didn't make the events work, either. And the bullets still moved in the correct directions despite this.
I really truly feel like this is a complete bug now.
So I don't know much about what you are doing, but this seems like you are getting wraparound on your angles.
315 = -35
225 = -135
remember angles just mean rotating around a circle and 20 degrees = 20+360=20+360*2 but it is also equal to 20+360*(-1)
you need to be very careful with angles so that you are looking at the correct quadrant. Checking for a specific angle range can be very dangerous and lead to funny situations like this
so perhaps for what you need to do, you'll need to add a check
if angle < 0, add 360
if angle >360, substract 360
that way you'll always be in the range 0-360. By the way, getting a 0-360 range for angles is not the same as using the remainder function (%).