A Razor UI component (PerkWorldPanel) for Sandbox that renders a perk card with rarity background color and icon, and hides itself if the PerkItem indicates so. It gets the color from PerkManager and displays the PerkItem.IconPath as a background image.
@namespace Sandbox
@using Sandbox;
@using Sandbox.UI;
@using System;
@inherits PanelComponent
@attribute [StyleSheet("PerkWorldPanel.razor.scss")]
@if(PerkItem.ShouldHidePanel)
{
return;
}
<root>
@{
var bgColor = PerkManager.GetCardRarityColor(PerkItem.PerkRarity, PerkItem.Curse);
}
<panel class="rarity" style="background-color:@(bgColor.Rgba);">
<panel class="icon" style="background-image: url(@(PerkItem.IconPath)); " />
</panel>
</root>
@code
{
[Property] public PerkItem PerkItem { get; set; }
protected override int BuildHash()
{
return HashCode.Combine(Time.Now);
}
}