{% extends "base.html" %} {% block content %}
{% if player.avatar_url %} {% else %}
{{ player.username[:2] | upper if player.username else '??' }}
{% endif %} {% if session.get('is_admin') %} {% endif %}

{{ player.username }}

{{ player.steam_id_64 }}

{% for tag in metadata.tags %} {{ tag }} {% if session.get('is_admin') %}
{% endif %}
{% endfor %} {% if session.get('is_admin') %}
{% endif %}
{% macro stat_card(label, metric_key, format_str, icon) %} {% set dist = distribution[metric_key] if distribution else None %}
{{ icon }} {{ label }}
{% if dist %} Rank #{{ dist.rank }} {% endif %}
{{ format_str.format(dist.val if dist else 0) }}
{% if dist %}
{% set range = dist.max - dist.min %} {% set percent = ((dist.val - dist.min) / range * 100) if range > 0 else 100 %}
{{ format_str.format(dist.min) }} Avg: {{ format_str.format(dist.avg) }} {{ format_str.format(dist.max) }}
{% else %}
No team data
{% endif %}
{% endmacro %} {{ stat_card('Rating', 'rating', '{:.2f}', 'โญ') }} {{ stat_card('K/D Ratio', 'kd', '{:.2f}', '๐Ÿ”ซ') }} {{ stat_card('ADR', 'adr', '{:.1f}', '๐Ÿ”ฅ') }} {{ stat_card('KAST', 'kast', '{:.1%}', '๐Ÿ›ก๏ธ') }}

๐Ÿ“ˆ ่ฟ‘ๆœŸ่กจ็Žฐ่ตฐๅŠฟ (Performance Trend)

Carry (>1.5)
Normal (1.0-1.5)
Poor (<0.6)

๐Ÿ•ธ๏ธ ่ƒฝๅŠ›ๅ…ญ็ปดๅ›พ (Capabilities)

ๆฏ”่ต›่ฎฐๅฝ• (Match History)

{{ history|length }} Matches
{% for m in history | reverse %} {% else %} {% endfor %}
Date/Map Result Rating K/D ADR Link
{{ m.map_name }}
{{ 'WIN' if m.is_win else 'LOSS' }} {% if m.party_size and m.party_size > 1 %} ๐Ÿ‘ฅ {{ m.party_size }} {% endif %}
{% set r = m.rating or 0 %}
{{ "%.2f"|format(r) }}
{{ "%.2f"|format(m.kd_ratio or 0) }} {{ "%.1f"|format(m.adr or 0) }}
๐Ÿœ๏ธ
No matches recorded yet.

็•™่จ€ๆฟ (Comments)

{% for comment in comments %}
{{ comment.username[:1] | upper }}
{{ comment.username }} {{ comment.created_at }}

{{ comment.content }}

{% else %}
No comments yet.
{% endfor %}
{% endblock %} {% block scripts %} {% endblock %}