1.3.1: Removed unused scripts.
This commit is contained in:
@@ -147,11 +147,11 @@
|
||||
<span>📊</span> 详细数据面板 (Detailed Stats)
|
||||
</h3>
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-y-6 gap-x-4">
|
||||
{% macro detail_item(label, value, key, format_str='{:.2f}', sublabel=None) %}
|
||||
{% macro detail_item(label, value, key, format_str='{:.2f}', sublabel=None, count_label=None) %}
|
||||
{% set dist = distribution[key] if distribution else None %}
|
||||
<div class="flex flex-col group relative">
|
||||
<div class="flex flex-col group relative h-full">
|
||||
<div class="flex justify-between items-center mb-1">
|
||||
<span class="text-xs font-bold text-gray-400 uppercase tracking-wider">{{ label }}</span>
|
||||
<span class="text-xs font-bold text-gray-400 uppercase tracking-wider truncate" title="{{ label }}">{{ label }}</span>
|
||||
{% if dist %}
|
||||
<span class="inline-flex items-center px-1.5 py-0.5 rounded text-xs font-bold
|
||||
{% if dist.rank == 1 %}bg-yellow-50 text-yellow-700 border border-yellow-100
|
||||
@@ -186,6 +186,13 @@
|
||||
<span>H:{{ format_str.format(dist.max) }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Count Label (Bottom Right) -->
|
||||
{% if count_label is not none %}
|
||||
<div class="absolute bottom-0 right-0 text-[10px] font-bold text-gray-400 font-mono">
|
||||
{{ count_label }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
@@ -222,16 +229,8 @@
|
||||
{{ detail_item('3K Rounds (三杀)', features['basic_avg_kill_3'], 'basic_avg_kill_3') }}
|
||||
{{ detail_item('4K Rounds (四杀)', features['basic_avg_kill_4'], 'basic_avg_kill_4') }}
|
||||
{{ detail_item('5K Rounds (五杀)', features['basic_avg_kill_5'], 'basic_avg_kill_5') }}
|
||||
{{ detail_item('Multi-Kill % (多杀率)', features['basic_multi_kill_rate'], 'basic_multi_kill_rate', '{:.1%}') }}
|
||||
|
||||
<!-- Row 6: Clutch -->
|
||||
{{ detail_item('1v1 Wins (1v1胜)', features['basic_total_1v1'], 'basic_total_1v1', '{:.0f}') }}
|
||||
{{ detail_item('1v2 Wins (1v2胜)', features['basic_total_1v2'], 'basic_total_1v2', '{:.0f}') }}
|
||||
{{ detail_item('1v3 Wins (1v3胜)', features['basic_total_1v3'], 'basic_total_1v3', '{:.0f}') }}
|
||||
{{ detail_item('1v4 Wins (1v4胜)', features['basic_total_1v4'], 'basic_total_1v4', '{:.0f}') }}
|
||||
{{ detail_item('1v5 Wins (1v5胜)', features['basic_total_1v5'], 'basic_total_1v5', '{:.0f}') }}
|
||||
|
||||
<!-- Row 7: Special -->
|
||||
<!-- Row 6: Special -->
|
||||
{{ detail_item('Perfect Kills (无伤杀)', features['basic_avg_perfect_kill'], 'basic_avg_perfect_kill') }}
|
||||
{{ detail_item('Revenge Kills (复仇杀)', features['basic_avg_revenge_kill'], 'basic_avg_revenge_kill') }}
|
||||
</div>
|
||||
@@ -296,15 +295,34 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Group 5: SPECIAL (Clutch & Multi) -->
|
||||
<div>
|
||||
<h4 class="text-xs font-black text-gray-400 uppercase tracking-widest mb-4 border-b border-gray-100 dark:border-slate-700 pb-2">
|
||||
SPECIAL (Clutch & Multi)
|
||||
</h4>
|
||||
{% set rounds = l2_stats.get('total_rounds', 0) or 1 %}
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-y-6 gap-x-4">
|
||||
{{ detail_item('1v1 Win%', (l2_stats.get('c1', 0) or 0) / rounds, 'l2_c1', '{:.1%}', count_label=l2_stats.get('c1', 0)) }}
|
||||
{{ detail_item('1v2 Win%', (l2_stats.get('c2', 0) or 0) / rounds, 'l2_c2', '{:.1%}', count_label=l2_stats.get('c2', 0)) }}
|
||||
{{ detail_item('1v3 Win%', (l2_stats.get('c3', 0) or 0) / rounds, 'l2_c3', '{:.1%}', count_label=l2_stats.get('c3', 0)) }}
|
||||
{{ detail_item('1v4 Win%', (l2_stats.get('c4', 0) or 0) / rounds, 'l2_c4', '{:.1%}', count_label=l2_stats.get('c4', 0)) }}
|
||||
{{ detail_item('1v5 Win%', (l2_stats.get('c5', 0) or 0) / rounds, 'l2_c5', '{:.1%}', count_label=l2_stats.get('c5', 0)) }}
|
||||
|
||||
{% set mk_count = (l2_stats.get('k2', 0) or 0) + (l2_stats.get('k3', 0) or 0) + (l2_stats.get('k4', 0) or 0) + (l2_stats.get('k5', 0) or 0) %}
|
||||
{% set ma_count = (l2_stats.get('a2', 0) or 0) + (l2_stats.get('a3', 0) or 0) + (l2_stats.get('a4', 0) or 0) + (l2_stats.get('a5', 0) or 0) %}
|
||||
|
||||
{{ detail_item('Multi-Kill Rate', mk_count / rounds, 'l2_mk', '{:.1%}', count_label=mk_count) }}
|
||||
{{ detail_item('Multi-Assist Rate', ma_count / rounds, 'l2_ma', '{:.1%}', count_label=ma_count) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Group 4: SIDE (T/CT Preference) -->
|
||||
<div>
|
||||
<h4 class="text-xs font-black text-gray-400 uppercase tracking-widest mb-4 border-b border-gray-100 dark:border-slate-700 pb-2">
|
||||
SIDE (T/CT Preference)
|
||||
</h4>
|
||||
|
||||
{% macro vs_item(label, t_key, ct_key, format_str='{:.2f}') %}
|
||||
{% set t_val = features[t_key] or 0 %}
|
||||
{% set ct_val = features[ct_key] or 0 %}
|
||||
{% macro vs_item_val(label, t_val, ct_val, format_str='{:.2f}') %}
|
||||
{% set diff = ct_val - t_val %}
|
||||
|
||||
{# Dynamic Sizing #}
|
||||
@@ -367,6 +385,10 @@
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro vs_item(label, t_key, ct_key, format_str='{:.2f}') %}
|
||||
{{ vs_item_val(label, features[t_key] or 0, features[ct_key] or 0, format_str) }}
|
||||
{% endmacro %}
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
{{ vs_item('Rating (Rating/KD)', 'side_rating_t', 'side_rating_ct') }}
|
||||
{{ vs_item('KD Ratio', 'side_kd_t', 'side_kd_ct') }}
|
||||
@@ -375,8 +397,23 @@
|
||||
{{ vs_item('First Death Rate (首死率)', 'side_first_death_rate_t', 'side_first_death_rate_ct', '{:.1%}') }}
|
||||
{{ vs_item('KAST (贡献率)', 'side_kast_t', 'side_kast_ct', '{:.1%}') }}
|
||||
{{ vs_item('RWS (Round Win Share)', 'side_rws_t', 'side_rws_ct') }}
|
||||
{{ vs_item('Multi-Kill Rate (多杀率)', 'side_multikill_rate_t', 'side_multikill_rate_ct', '{:.1%}') }}
|
||||
{{ vs_item('Headshot Rate (爆头率)', 'side_headshot_rate_t', 'side_headshot_rate_ct', '{:.1%}') }}
|
||||
|
||||
{# New Comparisons #}
|
||||
{% set t_rounds = side_stats.get('T', {}).get('rounds', 0) or 1 %}
|
||||
{% set ct_rounds = side_stats.get('CT', {}).get('rounds', 0) or 1 %}
|
||||
|
||||
{% set t_clutch = (side_stats.get('T', {}).get('total_clutch', 0) or 0) / t_rounds %}
|
||||
{% set ct_clutch = (side_stats.get('CT', {}).get('total_clutch', 0) or 0) / ct_rounds %}
|
||||
{{ vs_item_val('Clutch Win Rate (残局率)', t_clutch, ct_clutch, '{:.1%}') }}
|
||||
|
||||
{% set t_mk = (side_stats.get('T', {}).get('total_multikill', 0) or 0) / t_rounds %}
|
||||
{% set ct_mk = (side_stats.get('CT', {}).get('total_multikill', 0) or 0) / ct_rounds %}
|
||||
{{ vs_item_val('Multi-Kill Rate (多杀率)', t_mk, ct_mk, '{:.1%}') }}
|
||||
|
||||
{% set t_ma = (side_stats.get('T', {}).get('total_multiassist', 0) or 0) / t_rounds %}
|
||||
{% set ct_ma = (side_stats.get('CT', {}).get('total_multiassist', 0) or 0) / ct_rounds %}
|
||||
{{ vs_item_val('Multi-Assist Rate (多助攻)', t_ma, ct_ma, '{:.1%}') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user