For the hit effect: yes, of course, but without too refined and complicated solutions, I wondered if you could simply add a check at what side (-x or +x sort of thing based on a fixed center 0 value...) of Simon got hit to correct the bounce effect direction...
I just did a review of hit code and I did it different in some parts. Older parts of code are like I described previously, while newer are actually bouncing you away based on projectile trajectory (which in most cases are just left or right too, no need to complex calculations). That's the problem with big/ambitious projects that take too long to finish: we face a bit of inevitable code rotten (a form of technical debt that accumulates over time). But thanks for your reported points, suggestions and the icons, they're welcome. All that makes me very glad that people are interested enough to do such detailed and high-level technical posts such as yours.