fight function complete