Battle algorithm