UI/GameMenu/Header/GameHeader.razor
@using Sandbox;
@using Sandbox.UI;
@using System;
@using System.Collections.Generic;
@namespace GuessIt
<root class="panel game-header">
<div class="game-info">
@if (Menu.LobbyState != LobbyState.WaitingForPlayers)
{
<div class="timer">@MathF.Floor(MathF.Max(GameTimer, 0))</div>
}
@if (Round > 0)
{
<div class="round">Round @(Round) of @(Rounds)</div>
}
</div>
<div class="game-word">
<GameWord @ref="WordPanel" />
</div>
<div class="game-settings">
@if (Menu.LobbyState == LobbyState.WaitingForPlayers && Networking.IsHost)
{
<button class="@StartButtonClasses()" ToolTip=@StartButtonTooltip() [email protected]>Start Game</button>
}
@* <div class="settings" onclick=@OpenSettings>⚙️</div> *@
</div>
</root>
@code
{
public GameMenu Menu { get; set; }
public GameWord WordPanel { get; set; }
public int Round => Menu.CurrentRound;
public int Rounds => Menu.TotalRounds;
public float GameTimer => Menu.GameTimer;
protected override void OnAfterTreeRender(bool firstTime)
{
base.OnAfterTreeRender(firstTime);
if (firstTime)
{
WordPanel.SetOverride(Connection.All.Count() <= 1 ? "Waiting for players..." : "Waiting for host to begin...");
}
}
string StartButtonTooltip()
{
if (Connection.All.Count() > 1) return "";
return "Need one more player to start";
}
public string StartButtonClasses()
{
if (!Networking.IsHost) return "hidden";
if (Connection.All.Count() > 1) return "";
return "disabled";
}
void OpenSettings()
{
}
protected override int BuildHash() => System.HashCode.Combine(Round, Rounds, MathF.Floor(GameTimer));
}