UI/GameStatePlayer.razor
@using System;
@using Sandbox;
@using Sandbox.UI;

@inherits Panel

<div class="bar-container @(IsLocalPlayer ? "me" : "")">
    @if ( IsLocalPlayer )
    {
        <div class="me-icon" />
    }

    <div class="score-bar @(Score > 0 ? "not-zero" : "")" style="width: @(Score/Max*100f)%">
        <div class="score">@Score</div>
    </div>
</div>

@code
{
    [Parameter] public PlayerData Player { get; set; }
    [Parameter] public bool IsLocalPlayer { get; set; }

    [Parameter] public float Score { get; set; } = 0;
    [Parameter] public float Max { get; set; } = 10;

    protected override int BuildHash()
    {
        return HashCode.Combine(IsLocalPlayer, Score, Max);
    }
}