reorganized simulateCombat function