Well, to me it looks like you've got tons of repetition in there. What's the point of having seperate types if 99.9% of the time they do the same thing?
Also, here it seems to work fine. The only problems come in whent he terget is moving.
Also, here it seems to work fine. The only problems come in whent he terget is moving.