UI panel that shows a legendary ability card. Looks up the ability from LegendaryAbilities by player card, then draws nickname, name, description, stamina cost, cooldown in match minutes, activation and counterplay, with Russian/English text picked from GamePreferences. Has a compact mode that only shows the heading.
@using Sandbox
@using Sandbox.UI
@using Socer
@using System
@inherits Panel
@if(LegendaryAbilities.Get(Card) is { } ability)
{
<root class="legendary-ability-info @(Compact?"compact":"") localized-text">
<div class="legendary-ability-heading"><img src="/ui-icons/ui-line-nav-cup.svg" /><div><label class="legendary-ability-nickname">@ability.Nickname(GamePreferences.Russian)</label><label class="legendary-ability-name">@ability.Name(GamePreferences.Russian)</label></div></div>
@if(!Compact)
{
<label class="legendary-ability-description">@ability.Description(GamePreferences.Russian)</label>
<div class="legendary-ability-cost"><div><label>@T("Стамина","Stamina")</label><b>@($"−{ability.StaminaCost*100:0}%")</b></div><div><label>@T("Перезарядка","Cooldown")</label><b>@T($"{ability.CooldownSeconds/4:0.#} мин. матча",$"{ability.CooldownSeconds/4:0.#} match min.")</b></div></div>
<div class="legendary-ability-details">
<div><label class="legendary-ability-detail-title">@T("Когда срабатывает","Activation")</label><label class="legendary-ability-trigger">@ability.Trigger(GamePreferences.Russian)</label></div>
<div><label class="legendary-ability-detail-title">@T("Как противодействовать","Counterplay")</label><label class="legendary-ability-counter">@ability.Counter(GamePreferences.Russian)</label></div>
</div>
<label class="legendary-ability-permanent">@T("Фирменный приём сохраняется при улучшениях.","Upgrade cards preserve this signature ability.")</label>
}
</root>
}
else
{
<root class="empty"></root>
}
@code {
[Parameter] public PlayerCard Card {get;set;}
[Parameter] public bool Compact {get;set;}
static string T(string ru,string en)=>GamePreferences.Russian?ru:en;
protected override int BuildHash()=>HashCode.Combine(Card?.CardKey,Compact,GamePreferences.Russian);
}