SkillBadgeView.razor

A Razor UI panel that renders a skill badge for a UniqueSkill at a given grade. Picks the icon path from UniqueSkills.ArtPath or a default empty-slot SVG, sets a localized tooltip (Russian or English), and hashes its parameters for rebuilds.

@using Sandbox
@using Sandbox.UI
@using Socer
@using System
@inherits Panel

<root class="skill-emblem skill-grade-@Grade @CssClass @(HasSkill?"":"skill-empty") localized-text" title="@BadgeTooltip" style="@($"background-image:url('{BadgePath}');")">
    @if(!HasSkill){<div class="skill-empty-symbol"></div>}
</root>

@code {
    [Parameter] public UniqueSkill Skill {get;set;}
    [Parameter] public int Grade {get;set;}=1;
    [Parameter] public string CssClass {get;set;}="";
    bool HasSkill=>UniqueSkills.Get(Skill)!=null;
    string BadgePath=>HasSkill?UniqueSkills.ArtPath(Skill,Grade):"/skill-icons/badge-normal.svg";
    string BadgeTooltip=>HasSkill?$"{UniqueSkills.Name(Skill,GamePreferences.Russian)} · {UniqueSkills.GradeName(Grade,GamePreferences.Russian)}":GamePreferences.Russian?"Пустой слот скилла":"Empty skill slot";
    protected override int BuildHash()=>HashCode.Combine(Skill,Grade,CssClass,GamePreferences.Russian);
}