UI/GameMenu/GameResults/GameResults.razor
@using Sandbox;
@using Sandbox.UI;
@using System;
@using System.Collections.Generic;
@using System.Linq;
@attribute [StyleSheet]

@namespace GuessIt

<root>

    <div class="content">
        <p class="header">@(Winner.Network.Owner.DisplayName) won!</p>
        <div class="leaderboard">
            @for (int i = 0; i < Leaderboard.Count; i++)
            {
                var item = Leaderboard.ElementAt(i);
                <div class="leaderboard-item @(i % 2 == 1 ? "odd" : "") @(item.Key.IsProxy ? "" : "me")">
                    <div class="rank">##@((i + 1).ToString())</div>
                    <img src=@($"avatar:{item.Key.Network.Owner.SteamId}") />
                    <div class="name">@item.Key.Network.Owner.DisplayName</div>
                    <div class="score">@item.Value</div>
                </div>
            }
        </div>
    </div>

</root>

@code
{
    public Player Winner { get; set; }
    public Dictionary<Player, int> Leaderboard { get; set; }

    protected override int BuildHash()
    {
        return HashCode.Combine(Winner, Leaderboard.Count);
    }

}