fix bugs, update weapon fire logic