fixes
This commit is contained in:
@@ -24,9 +24,9 @@ else
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
<div style="font-size: 0.95rem; font-weight: 700; color: #a3b899;">
|
||||
<div class="turn-header-info">
|
||||
Ťah #@Engine.State.TurnCount • Na rade:
|
||||
<span style="color: var(--gold); font-weight: 900;">
|
||||
<span class="active-turn-header-player">
|
||||
@Engine.State.CurrentPlayer.Avatar @Engine.State.CurrentPlayer.Name
|
||||
</span>
|
||||
</div>
|
||||
@@ -98,13 +98,20 @@ else
|
||||
</div>
|
||||
|
||||
<!-- Spodný slot: Aktívny hráč v zobrazení -->
|
||||
<div class="slot-bottom">
|
||||
<div class="slot-bottom @(IsViewingPlayerTurn ? "active-turn-slot" : "")">
|
||||
<div class="avatar-badge @(IsViewingPlayerTurn ? "active-turn" : "") @(ViewingPlayer.IsSkipped ? "is-skipped" : "")"
|
||||
style="margin-bottom: 8px;">
|
||||
@if (IsViewingPlayerTurn && !ViewingPlayer.HasFinished && !ViewingPlayer.IsEliminated)
|
||||
{
|
||||
<div class="turn-indicator-badge">
|
||||
<span class="turn-indicator-dot"></span>
|
||||
<span class="turn-indicator-text">SI NA ŤAHU</span>
|
||||
</div>
|
||||
}
|
||||
<div style="display: flex; align-items: center; gap: 8px;">
|
||||
<span class="avatar-icon">@ViewingPlayer.Avatar</span>
|
||||
<span class="avatar-name">@ViewingPlayer.Name</span>
|
||||
<span class="avatar-card-count">(@ViewingPlayer.Hand.Count kariet)</span>
|
||||
<span class="avatar-card-count">(@ViewingPlayer.Hand.Count @(ViewingPlayer.Hand.Count == 1 ? "karta" : (ViewingPlayer.Hand.Count < 5 ? "karty" : "kariet")))</span>
|
||||
@if (Engine.State.Rules.OlympicMode)
|
||||
{
|
||||
<span style="font-size: 0.75rem; color: var(--gold); background: rgba(0,0,0,0.4); padding: 2px 8px; border-radius: 10px; border: 1px solid rgba(245, 176, 65, 0.4);">
|
||||
@@ -211,6 +218,7 @@ else
|
||||
|
||||
private List<Player> ConfiguredPlayers = new();
|
||||
private RuleOptions ConfiguredRules = new();
|
||||
private Player? _previousTurnPlayer;
|
||||
|
||||
private Player ViewingPlayer
|
||||
{
|
||||
@@ -260,6 +268,7 @@ else
|
||||
Engine.OnGameEvent += HandleGameEvent;
|
||||
Engine.StartGame(gamePlayers, ConfiguredRules);
|
||||
|
||||
_previousTurnPlayer = Engine.State.CurrentPlayer;
|
||||
IsInLobby = false;
|
||||
LastEventMessage = "Hra začala! Veľa šťastia.";
|
||||
|
||||
@@ -282,7 +291,7 @@ else
|
||||
await Fx.PlayCardDrawAsync();
|
||||
break;
|
||||
case GameEventType.SevenStacked:
|
||||
await Fx.PlaySevenStackAsync(Math.Max(1, e.ExtraData / 2));
|
||||
await Fx.PlaySevenStackAsync(Math.Max(1, e.ExtraData / 3));
|
||||
await Fx.TriggerDopamineBannerAsync($"🔥 +{e.ExtraData} KARIET!", "Trestná reťaz sediem", "triple");
|
||||
break;
|
||||
case GameEventType.AceSkipped:
|
||||
@@ -297,7 +306,6 @@ else
|
||||
break;
|
||||
case GameEventType.CardsBurned:
|
||||
await Fx.PlayBurnExplosionAsync();
|
||||
await Fx.TriggerDopamineBannerAsync("💥 SPÁLENÉ!", "Zhoda 4 kariet na stole", "quad");
|
||||
break;
|
||||
case GameEventType.PlayerFinished:
|
||||
case GameEventType.MatchWon:
|
||||
@@ -311,10 +319,27 @@ else
|
||||
await Fx.PlayHeartbeatAsync();
|
||||
}
|
||||
|
||||
await CheckTurnTransitionAsync();
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
private async Task CheckTurnTransitionAsync()
|
||||
{
|
||||
if (Engine == null || Engine.State.Players.Count == 0 || Engine.State.IsGameOver) return;
|
||||
var current = Engine.State.CurrentPlayer;
|
||||
if (_previousTurnPlayer != null && _previousTurnPlayer != current)
|
||||
{
|
||||
var prev = _previousTurnPlayer;
|
||||
_previousTurnPlayer = current;
|
||||
await Fx.AnimateTurnTransitionAsync(GetPlayerPosition(prev), GetPlayerPosition(current));
|
||||
}
|
||||
else
|
||||
{
|
||||
_previousTurnPlayer = current;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetPlayerPosition(Player player)
|
||||
{
|
||||
if (player == ViewingPlayer) return "bottom";
|
||||
|
||||
Reference in New Issue
Block a user