use vector methods for all operations, add player run state, state based max velocity