Shield is now on hit rather than time based

I have also added the shield code into .hit() so that it factors enemy
bullets and enemy collision (can be taken out if shield is only supposed
to block bullets)