Esempio n. 1
0
def get_player_totals(acc):
    peid, plid = _get_ids(acc)
    total_games = _total_games(peid)
    if not total_games:
        return (messages["db_pstats_no_game"].format(acc), [])
    conn = _conn()
    c = conn.cursor()
    c.execute(
        """SELECT
                   gpr.role AS role,
                   COUNT(1) AS total
                 FROM person pe
                 JOIN player pl
                   ON pl.person = pe.id
                 JOIN game_player gp
                   ON gp.player = pl.id
                 JOIN game_player_role gpr
                   ON gpr.game_player = gp.id
                 WHERE pe.id = ?
                 GROUP BY role""", (peid, ))
    tmp = {}
    totals = []
    for row in c:
        tmp[row[0]] = row[1]
    c.execute(
        """SELECT SUM(gp.team_win OR gp.indiv_win)
                 FROM game_player gp
                 JOIN player pl
                   ON pl.id = gp.player
                 JOIN person pe
                   ON pe.id = pl.person
                 WHERE pe.id = ?""", (peid, ))
    won_games = c.fetchone()[0]
    order = list(role_order())
    name = _get_display_name(peid)
    #ordered role stats
    totals = [
        messages["db_role_games"].format(r, tmp[r]) for r in order if r in tmp
    ]
    #lover or any other special stats
    totals += [
        messages["db_role_games"].format(r, t) for r, t in tmp.items()
        if r not in order
    ]
    return (messages["db_total_games"].format(name, total_games,
                                              won_games / total_games), totals)
Esempio n. 2
0
def on_new_role(evt, var, user, old_role):
    if evt.params.inherit_from is None and evt.data["role"] == "amnesiac":
        roles = set(role_order()) - _get_blacklist(var)
        ROLES[user] = random.choice(list(roles))
Esempio n. 3
0
def role_order():
    # Deprecated in favour of cats.role_order()
    from src import cats
    return cats.role_order()
Esempio n. 4
0
def on_new_role(evt, var, user, old_role):
    if evt.params.inherit_from is None and evt.data["role"] == "amnesiac":
        roles = set(role_order()) - _get_blacklist(var)
        ROLES[user] = random.choice(list(roles))