ui/PanelComponents/Hud.razor
@using Sandbox;
@using Sandbox.UI;
@namespace SS1
@inherits PanelComponent
<root>
@*@if(Manager.Instance.IsGameOver || !(Manager.Instance.HasSpawnedBoss && Manager.Instance.IsPauseMenuOpen))*@
<TimerPanel></TimerPanel>
<PlayerNametags></PlayerNametags>
@{
var hoveredStatus = Manager.Instance.HoveredStatus;
}
@if (hoveredStatus != null)
{
<StatusTooltip Status=@hoveredStatus style="left:@(Mouse.Position.x * Panel.ScaleFromScreen + 50)px; top:@(Mouse.Position.y * Panel.ScaleFromScreen - 50)px;"></StatusTooltip>
}
@if (Manager.Instance.IsGameOver && Manager.Instance.ShowFinalPanel)
{
<DeathPanel />
}
@if (Manager.Instance.HasSpawnedBoss && Manager.Instance.Boss != null && !Manager.Instance.IsBossDead)
{
<BossNametag [email protected] [email protected] />
}
@if (Manager.Instance.ElapsedTime < 0.75f)
{
<div class="fade_in"></div>
}
</root>
@code
{
public static Hud Instance { get; private set; }
TimeSince fadeTime = 0;
protected override void OnStart()
{
Instance = this;
}
public void FadeIn()
{
fadeTime = 0;
}
protected override int BuildHash()
{
var hoveredStatusHash = Manager.Instance.HoveredStatus != null ? Time.Now : 0f;
return System.HashCode.Combine(
fadeTime < 0.8f,
Manager.Instance.IsGameOver,
Manager.Instance.HasSpawnedBoss,
Manager.Instance.IsBossDead,
Manager.Instance.ShowFinalPanel,
hoveredStatusHash
);
}
}