def test_update_player_location(self): """Functional: posting to update_player_location should update the x, y location of the player.""" post_data = {'location_x': '234.234', 'location_y': '432.432'} response = self.client.post( reverse('update_player_location', args=[self.player.player_name]), post_data) player = Player.get_player_by_player_name(self.player.player_name) self.assertEqual(player.location_x, u'234.234') self.assertEqual(player.location_y, u'432.432')
def update_player_location(request, player_name): player = Player.get_player_by_player_name(player_name) if not player: raise Http404 location_x = request.POST.get('location_x') location_y = request.POST.get('location_y') player.update_location(location_x, location_y) return HttpResponse(simplejson.dumps({}), mimetype="application/json")
def pick_up_flag(request, player_name): player = Player.get_player_by_player_name(player_name) if not player: raise Http404 game_name = request.POST.get('game_name') flag = Flag.get_flag_by_game_name(game_name) if abs(flag.location_x - player.location_x) < 1 and abs(flag.location_y - player.location_y) < 1: player.pick_up_flag(flag) return HttpResponse(simplejson.dumps({}), mimetype="application/json") raise HttpResponseBadRequest('can\'t reach')
def test_update_player_location(self): """Functional: posting to update_player_location should update the x, y location of the player.""" post_data = { 'location_x': '234.234', 'location_y': '432.432' } response = self.client.post(reverse('update_player_location', args=[self.player.player_name]), post_data) player = Player.get_player_by_player_name(self.player.player_name) self.assertEqual(player.location_x, u'234.234') self.assertEqual(player.location_y, u'432.432')
def get_player(request, player_name): player = Player.get_player_by_player_name(player_name) if not player: return HttpResponse(content='player not found', status=404) response_data = { 'location_x': player.location_x, 'location_y': player.location_y, 'player_name': player.player_name, 'flags': player.flag_list, 'games': player.game_list } return HttpResponse(simplejson.dumps(response_data), mimetype="application/json")
def pick_up_flag(request, player_name): player = Player.get_player_by_player_name(player_name) if not player: raise Http404 game_name = request.POST.get('game_name') flag = Flag.get_flag_by_game_name(game_name) if abs(flag.location_x - player.location_x) < 1 and abs( flag.location_y - player.location_y) < 1: player.pick_up_flag(flag) return HttpResponse(simplejson.dumps({}), mimetype="application/json") raise HttpResponseBadRequest('can\'t reach')
def create_game(cls, game_name, player_list, goal_x, goal_y): game = Game() game.game_name = game_name game.goal_x = goal_x game.goal_y = goal_y game.is_active = False game.player_list = player_list game.winner = '' game.save() for player_name in player_list: if not Player.get_player_by_player_name(player_name): player = Player.create_player(player_name, game_name) return game
def tag_nearest_player(request, player_name): player = Player.get_player_by_player_name(player_name) game_name = request.POST.get('game_name') game = Game.get_game_by_game_name(game_name) closest_player = None nearest = settings.TAG_RANGE for player_to_tag in game.player_list: if player_to_tag != player.player_name: distance = player.distance_to_player(player_to_tag) if distance < nearest: nearest = distance closest_player = player_to_tag if closest_player: player.tag_player(closest_player, game) return HttpResponse(simplejson.dumps({}), mimetype="application/json")
def create_player(request): player_name = request.POST.get('player_name') if not Player.get_player_by_player_name(player_name): player = Player.create_player([], player_name) return HttpResponse(simplejson.dumps({}), mimetype="application/json")
def add_player_to_game(self, player_name): if player_name not in self.player_list: player = Player.get_player_by_player_name(player_name) or Player.create_player(player_name, self.game_name) player.add_game_to_player(self.game_name) self.player_list.append(player_name) self.save()