diff --git a/adventure/api.py b/adventure/api.py index 2a0d2c893..136bb7b96 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -41,12 +41,26 @@ def other_players(request): def move(request): player = request.user.player prev_maze = player.current_maze + directions = [] + + try: + directions += [request.data['direction']] + except: + pass + try: - room = player.move(request.data['direction']) - maze = dict(player.maze()) if prev_maze != room.maze.id else None - position = {'x': room.x, 'y': room.y} - pusher.trigger('Tower-Maze', 'movement', - {'player': player.id, **position}) + directions += request.data['directions'] + except: + pass + + try: + for direction in directions: + room = player.move(direction) + maze = dict(player.maze()) if prev_maze != room.maze.id else None + position = {'x': room.x, 'y': room.y} + pusher.trigger('Tower-Maze', 'movement', + {'player': player.id, **position}) + return JsonResponse({'player': {**position, 'maze': room.maze.id}, 'nextMaze': maze}, safe=True) except: return JsonResponse({'detail': 'Invalid Direction'}, safe=True, status=400)