A bunch of collision detection resolution

jesus butts this needs feedback