From f137095304f456b06229e4d17ee8249e974fceaf Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Fri, 28 Jul 2023 13:37:17 +0100 Subject: Add spectator mode --- code/ui/spectator/Spectator.razor | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 code/ui/spectator/Spectator.razor (limited to 'code/ui/spectator') diff --git a/code/ui/spectator/Spectator.razor b/code/ui/spectator/Spectator.razor new file mode 100644 index 0000000..f6fe8af --- /dev/null +++ b/code/ui/spectator/Spectator.razor @@ -0,0 +1,63 @@ +@using Sandbox; +@using Sandbox.UI; +@using System; + +@namespace MurderGame +@inherits Panel + + + +@if (Spectating) { +
+
Spectating @TargetName
+
+} + +@code +{ + public bool Spectating { get; set; } + public string TargetName { get; set; } + + protected override int BuildHash() + { + var localPawn = Game.LocalPawn; + if (localPawn is Player player) + { + var spectator = player.Spectator; + if (spectator != null) + { + var target = spectator.Target; + Spectating = true; + TargetName = (target != null && target.IsValid() && target.LifeState == LifeState.Alive) ? target.Client.Name : ""; + return HashCode.Combine(Spectating.GetHashCode(), TargetName.GetHashCode()); + } + } + if (Spectating) + { + Spectating = false; + } + return Spectating.GetHashCode(); + } +} -- cgit v1.2.3-70-g09d2