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);
}