Files
FaraonCardGame/Faraon.Client/Components/PlayerSlot.razor
T
2026-08-28 16:34:40 +02:00

60 lines
2.1 KiB
Plaintext

@namespace Faraon.Client.Components
<div class="player-slot @PositionClass">
<div class="avatar-badge @(IsCurrentTurn ? "active-turn" : "") @(Player.IsSkipped ? "is-skipped" : "") @(Player.HasFinished ? "is-finished" : "")">
@if (Player.HasFinished)
{
<div class="badge-finished-pos">
@Player.FinishedPosition
</div>
}
<div class="avatar-icon">@Player.Avatar</div>
<div class="avatar-name">
@Player.Name
@if (Player.Type == PlayerType.AI)
{
<span style="font-size: 0.7rem; opacity: 0.8;">(AI)</span>
}
</div>
<div class="avatar-card-count">
@if (Player.IsEliminated)
{
<span style="color: #ef4444; font-weight: 800;">☠️ Vyradený</span>
}
else if (Player.HasFinished)
{
<span>Skončil 🏆</span>
}
else
{
<span>@Player.Hand.Count @(Player.Hand.Count == 1 ? "karta" : (Player.Hand.Count < 5 ? "karty" : "kariet"))</span>
}
@if (IsOlympicMode)
{
<div style="font-size: 0.72rem; color: var(--gold); margin-top: 2px;">
🏅 @Player.OlympicCardsCount @(Player.OlympicCardsCount == 1 ? "karta" : (Player.OlympicCardsCount < 5 ? "karty" : "kariet"))
</div>
}
</div>
</div>
<!-- Mini karty pre vizuálny odpočet kariet v ruke -->
@if (!Player.HasFinished && !Player.IsEliminated)
{
<div class="opponent-mini-cards">
@for (int i = 0; i < Math.Min(Player.Hand.Count, 8); i++)
{
<div class="mini-card-back"></div>
}
</div>
}
</div>
@code {
[Parameter, EditorRequired] public Player Player { get; set; } = default!;
[Parameter] public bool IsCurrentTurn { get; set; } = false;
[Parameter] public bool IsOlympicMode { get; set; } = false;
[Parameter] public string PositionClass { get; set; } = "slot-top";
}