Fully implement battle gameplay