basic combat loop