aboutsummaryrefslogtreecommitdiffstats
path: root/code/ui/overlay
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2023-07-27 22:11:31 +0100
committerLeonardo Bishop <me@leonardobishop.com>2023-07-27 22:11:31 +0100
commit71db52c5443a7bf82d9a23a770994a42b043be04 (patch)
treef75f2605bb1bdc53842cd85c90d105dcc77e1c10 /code/ui/overlay
Initial commit
Diffstat (limited to 'code/ui/overlay')
-rw-r--r--code/ui/overlay/BlindedOverlay.Network.cs20
-rw-r--r--code/ui/overlay/BlindedOverlay.razor65
-rw-r--r--code/ui/overlay/RoleOverlay.cs20
-rw-r--r--code/ui/overlay/RoleOverlay.razor94
4 files changed, 199 insertions, 0 deletions
diff --git a/code/ui/overlay/BlindedOverlay.Network.cs b/code/ui/overlay/BlindedOverlay.Network.cs
new file mode 100644
index 0000000..c81751e
--- /dev/null
+++ b/code/ui/overlay/BlindedOverlay.Network.cs
@@ -0,0 +1,20 @@
+using Sandbox;
+
+namespace MurderGame;
+
+public partial class BlindedOverlay
+{
+ [ClientRpc]
+ public static void Show( )
+ {
+ Instance.SetClass( "hidden", false );
+ Instance.ShowOverlay = true;
+ }
+
+ [ClientRpc]
+ public static void Hide()
+ {
+ Instance.SetClass( "hidden", true );
+ Instance.ShowOverlay = false;
+ }
+}
diff --git a/code/ui/overlay/BlindedOverlay.razor b/code/ui/overlay/BlindedOverlay.razor
new file mode 100644
index 0000000..024c31a
--- /dev/null
+++ b/code/ui/overlay/BlindedOverlay.razor
@@ -0,0 +1,65 @@
+@using Sandbox;
+@using Sandbox.UI;
+
+@namespace MurderGame
+@inherits Panel
+
+<style>
+ @@keyframes fadeIn
+ {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+ blindedoverlay
+ {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background-color: rgba(0, 0, 0, 0.80);
+ width: 100vw;
+ height: 100vh;
+ backdrop-filter-blur: 16px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex-direction: column;
+ gap: 100vh;
+ animation-name: fadeIn;
+ animation-duration: 1s;
+ animation-iteration-count: 1;
+ animation-timing-function: linear;
+ animation-fill-mode: forwards;
+ }
+ .overlay-message
+ {
+ margin: 20vh;
+ color: white;
+ font-size: 35px;
+ font-family: "Roboto";
+ font-weight: 700;
+ }
+</style>
+
+<div class="overlay-message">
+You shot a bystander!
+</div>
+
+@code
+{
+ public static BlindedOverlay Instance { get; private set; }
+
+ public bool ShowOverlay { get; set; } = false;
+
+ public BlindedOverlay()
+ {
+ SetClass( "hidden", true );
+
+ Instance = this;
+ }
+
+ protected override int BuildHash()
+ {
+ return ShowOverlay.GetHashCode();
+ }
+
+} \ No newline at end of file
diff --git a/code/ui/overlay/RoleOverlay.cs b/code/ui/overlay/RoleOverlay.cs
new file mode 100644
index 0000000..84758b7
--- /dev/null
+++ b/code/ui/overlay/RoleOverlay.cs
@@ -0,0 +1,20 @@
+using Sandbox;
+
+namespace MurderGame;
+
+public partial class RoleOverlay
+{
+ [ClientRpc]
+ public static void Show( )
+ {
+ Instance.SetClass( "hidden", false );
+ Instance.ShowOverlay = true;
+ }
+
+ [ClientRpc]
+ public static void Hide()
+ {
+ Instance.SetClass( "hidden", true );
+ Instance.ShowOverlay = false;
+ }
+}
diff --git a/code/ui/overlay/RoleOverlay.razor b/code/ui/overlay/RoleOverlay.razor
new file mode 100644
index 0000000..c41e359
--- /dev/null
+++ b/code/ui/overlay/RoleOverlay.razor
@@ -0,0 +1,94 @@
+
+@using Sandbox;
+@using Sandbox.UI;
+
+@namespace MurderGame
+@inherits Panel
+
+<style>
+ roleoverlay
+ {
+ position: absolute;
+ left: 0;
+ top: 0;
+ background-color: #000000;
+ width: 100vw;
+ height: 100vh;
+ z-index: 10000;
+ }
+ .container {
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ max-width: 700px;
+ text-align: center;
+ gap: 50px;
+ margin: 0 auto;
+ top: 200px;
+ }
+ .name
+ {
+ font-size: 50;
+ font-weight: 700;
+ font-family: "Roboto";
+ }
+ .description
+ {
+ font-size: 30;
+ font-family: "Roboto";
+ }
+</style>
+
+<div class="container">
+ <div class="name" style="color: @(GetTeamColour())">
+ @GetTeamName()
+ </div>
+ <div class="description" style="color: @(GetTeamColour())">
+ @GetTeamDescription()
+ </div>
+</div>
+
+@code
+{
+ public string GetTeamName()
+ {
+ if (Game.LocalPawn is Player player)
+ {
+ return TeamOperations.GetTeamName(player.CurrentTeam);
+ }
+ return "";
+ }
+ public string GetTeamDescription()
+ {
+ if (Game.LocalPawn is Player player)
+ {
+ return TeamOperations.GetTeamDescription(player.CurrentTeam);
+ }
+ return "";
+ }
+ public string GetTeamColour()
+ {
+ if (Game.LocalPawn is Player player)
+ {
+ return TeamOperations.GetTeamColour(player.CurrentTeam);
+ }
+ return "";
+ }
+
+ public static RoleOverlay Instance { get; private set; }
+
+ public bool ShowOverlay { get; set; } = false;
+
+ public RoleOverlay()
+ {
+ SetClass( "hidden", true );
+
+ Instance = this;
+ }
+
+ protected override int BuildHash()
+ {
+ return ShowOverlay.GetHashCode();
+ }
+
+}