Updated player logic