add battle logic