Turn and Check markers.

This commit is contained in:
2024-10-28 21:01:44 -05:00
parent a7e26f5210
commit cfd62eeca9
5 changed files with 57 additions and 13 deletions

View File

@@ -70,13 +70,13 @@
}
}
</div>
<p class="text-center">Opponent Hand</p>
<p class="text-center">Opponent's Hand</p>
</div>
<div class="place-self-center">
<PlayerName Name="@opponentName" IsTurn="!IsMyTurn" />
<PlayerName Name="@opponentName" IsTurn="!IsMyTurn" InCheck="IsOpponentInCheck" />
<hr />
<PlayerName Name="@userName" IsTurn="IsMyTurn" />
<PlayerName Name="@userName" IsTurn="IsMyTurn" InCheck="IsPlayerInCheck" />
</div>
<div class="player-area">
@@ -88,7 +88,7 @@
}
else
{
<p class="text-center">Hand</p>
<p class="text-center">Your Hand</p>
<div class="hand">
@if (userHand.Any())
{
@@ -124,7 +124,6 @@
[Parameter] public EventCallback<string> OnClickTile { get; set; }
[Parameter] public EventCallback<Piece> OnClickHand { get; set; }
[Parameter] public EventCallback OnClickJoinGame { get; set; }
[Parameter] public bool IsMyTurn { get; set; }
[Parameter] public bool UseSideboard { get; set; } = true;
private IReadOnlyCollection<Piece> opponentHand;
@@ -167,9 +166,29 @@
}
}
private Func<Task> OnClickTileInternal(string position) => () => OnClickTile.InvokeAsync(position);
private bool IsMyTurn => Session?.BoardState.WhoseTurn == Perspective;
private Func<Task> OnClickHandInternal(Piece piece) => () => OnClickHand.InvokeAsync(piece);
private bool IsPlayerInCheck => Session?.BoardState.PlayerInCheck == Perspective;
private bool IsOpponentInCheck => Session?.BoardState.PlayerInCheck != null && Session.BoardState.PlayerInCheck != Perspective;
private Func<Task> OnClickTileInternal(string position) => () =>
{
if (IsMyTurn)
{
return OnClickTile.InvokeAsync(position);
}
return Task.CompletedTask;
};
private Func<Task> OnClickHandInternal(Piece piece) => () =>
{
if (IsMyTurn)
{
return OnClickHand.InvokeAsync(piece);
}
return Task.CompletedTask;
};
private Task OnClickJoinGameInternal() => OnClickJoinGame.InvokeAsync();
}