ui/CardIcon.razor
@using Sandbox;
@using Sandbox.UI;
@inherits PanelComponent
<root style="opacity: @(Card.IconOpacity);">
@{
// Log.Info($"Card.CardType: {Card.CardType} Card.GetIconFilename(Card.CardType): {Card.GetIconFilename(Card.CardType)}");
}
@* <div class="icon" style="background-image: url(@Card.GetIconFilename(Card.CardType));"></div> *@
@if(Card.HasHP(Card.CardType))
{
<div class="hp_container" style="bottom: @(Utils.Map(Card.CardIconScale, 1f, 1.1f, 0f, -20f))px;">
@for(int i = 0; i < Card.HP; i++)
{
<div class="hp_icon">❤️</div>
}
@for(int i = 0; i < Card.GetMaxHP(Card.CardType) - Card.HP; i++)
{
<div class="hp_icon">🖤</div>
}
</div>
}
@if(Card.IsLocked)
{
<div class="lock" style="background-image:url(@("textures/lock_shadow.png")); left: -60px; bottom: -12px; opacity: 0.95; "></div>
<div class="lock" style="background-image: url(@("textures/lock.png")); left: -40px; bottom: 8px;">
</div>
<div class="lock_label">
@(Card.LockTurnsRemaining)
</div>
}
</root>
@code
{
public Card Card { get; set; }
protected override int BuildHash()
{
return HashCode.Combine(
Card.CardType,
Card.HasHP(Card.CardType) ? Card.HP : 0,
Card.IsLocked ? Card.LockTurnsRemaining : 0,
Card.IconOpacity,
Card.CardIconScale
);
}
}