Clean battle logic