well hot digity, look at you go...how's it feel? First, do you like the behavior when you run it? yes?Job well done. May I make more suggestions? What I think now is, I want to be able to pull that conditional set out of the main paint block into its own function block. How can I do this while retaining access to the PaintEventArgs?
Try to reorganize your code to have this stand alone function. (refactor it) then we'll see what options become available to us with another trick up our sleeves. (conditional we got, something must be worth some practice, let's find out) after you get this try to make your test smaller in keywords and symbols so when you look at it, it almost tells you what it's doing. (self commenting)
I like it phil. Keep going. This is the point where you decide to try to be a smart organized coder and write pretty code or a sloppy bad coder. Take your time...You can do it.
Going after a variable name for that stinkin' 510 decimal and find out what the crackin' that is. I know it's not a killZ, the logic is backward going in. Bullets travel in y direction? Probably. Need to finish off with the other axis check for a good hit.