{% macro stats_list(stats, show_rating, show_streaks) %} <!-- Table for statistics of a variant --> <div class="history-bullets"> <ul class="stat-list"> <li> <span class="stat-description">Rating:</span> {% if show_rating %} {{stats.rating}} {% else %} - {% endif %} </li> {% if show_streaks %} <li> <span class="stat-description">Maximum Streak:</span> {{stats.max_streak}} </li> {% endif %} <li> <span class="stat-description">Total Perfect Scores:</span> {{stats.games_won}} </li> <li> <span class="stat-description">Total Bottom Deck Risk:</span> {{stats.total_bdr}} </li> <li> <span class="stat-description">Total Crits Lost:</span> {{stats.total_crits_lost}} </li> <li> <span class="stat-description">Total Turns Taken:</span> {{stats.total_moves}} </li> </ul> <ul class="stat-list"> <li> <span class="stat-description">Total Games Played:</span> {{stats.games_played}} </li> {% if show_streaks %} <li> <span class="stat-description">Current Streak:</span> {{stats.current_streak}} </li> {% endif %} <li> <span class="stat-description">Winrate:</span> {{stats.winrate}}% </li> <li> <span class="stat-description">Average Bottom Deck Risk:</span> {{stats.average_bdr}} </li> <li> <span class="stat-description">Average Crits Lost:</span> {{stats.average_crits_lost}} </li> <li> <span class="stat-description">Average Turns Taken:</span> {{stats.average_moves}} </li> </ul> </div> {% endmacro %} {% macro games_table_js(data, div_id, show_player_num, show_var_rating, show_user_rating) %} var table_{{div_id}} = new Tabulator("#table-{{div_id}}", { maxHeight: 400, data: {{data}}, layout: "fitDataStretch", columns: [ {title: "Game", field: "game_id", formatter: "link", formatterParams:{ urlPrefix: "https://hanab.live/replay/", target:"_blank" }}, {% if show_player_num %} {title: "# Players", field: "num_players"}, {% endif %} {% if show_var_rating %} {title: "+/-", field: "variant_rating_change"}, {title: "ELO After", field: "variant_rating_after"}, {% endif %} {% if show_user_rating %} {title: "+/-", field: "user_rating_change"}, {title: "ELO After", field: "user_rating_after"}, {% endif %} {title: "Players", field: "users", formatter:function(cell, formatterParams, onRendered) { let links = cell.getValue().map(player => `<a href="/player/${encodeURIComponent(player)}">${player}</a>`); return links.join(", "); }}, {title: "Seed", field: "seed", formatter: "link", formatterParams: { urlPrefix: "https://hanab.live/seed/", target:"_blank" }}, {title: "Score", field: "score"}, {title: "BDR", field: "num_bdrs"}, {title: "Turns", field: "num_turns"}, {title: "Result", field: "game_outcomes"} ], }); {% endmacro %} {% macro player_table_js(data, div_id) %} var table_{{div_id}} = new Tabulator("#table-{{div_id}}", { data: {{data}}, layout: "fitDataStretch", initialSort: [ {column: "name", dir: "asc"}, ], columns: [ {title: "Player", field: "name", formatter: "link", formatterParams:{ urlPrefix: "/player/", }}, {title: "No Variant", columns: [ {title: "ELO", field: "novar_rating"}, {title: "Rank", field: "novar_rank"}, {title: "Games", field: "novar_games_played"}, {title: "Win%", field: "novar_winrate"}, {title: "Streak", field: "novar_cur_streak"}, {title: "Max Streak", field: "novar_max_streak"}, ]}, {title: "Clue Starved", columns: [ {title: "ELO", field: "cs_rating"}, {title: "Rank", field: "cs_rank"}, {title: "Games", field: "cs_games_played"}, {title: "Win%", field: "cs_winrate"}, {title: "Streak", field: "cs_cur_streak"}, {title: "Max Streak", field: "cs_max_streak"} ]}, ] }); {% endmacro %}