Exemple #1
0
def create_player(user, game, players):
    """Create and return player.

    only return player if he is already created
    :param user: user who will be related to player
    :param game: game what will be related to player
    :return: Player object
    """
    players = players.order_by('in_game_order')
    player = players.filter(user=user).first()
    if player is None:
        player = Player(user=user,
                        name=user.username,
                        game=game,
                        chips=GameSerializer(game).data['starting_chips'],
                        is_in_game=True)
    else:
        player.is_in_game = True

    # set player in_game_order
    if len(players) < 1:
        player.in_game_order = 1
    else:
        player.in_game_order = players.reverse()[0].in_game_order + 1

    # update number of connected players
    game.players_connected = len(players)
    game.save()

    player.save()
    return player.id