From 9864bae192e4c8b150c96a8dac6df6dfe529353b Mon Sep 17 00:00:00 2001
From: Arthur <14136326+Morb0@users.noreply.github.com>
Date: Fri, 24 Jun 2022 04:33:24 +0300
Subject: [PATCH] Add basic server icarus components
---
.../Icarus/IcarusTerminalComponent.cs | 16 +++++++++++
Content.Server/Icarus/IcarusTerminalSystem.cs | 28 +++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 Content.Server/Icarus/IcarusTerminalComponent.cs
create mode 100644 Content.Server/Icarus/IcarusTerminalSystem.cs
diff --git a/Content.Server/Icarus/IcarusTerminalComponent.cs b/Content.Server/Icarus/IcarusTerminalComponent.cs
new file mode 100644
index 0000000000..8c3cb785f1
--- /dev/null
+++ b/Content.Server/Icarus/IcarusTerminalComponent.cs
@@ -0,0 +1,16 @@
+namespace Content.Server.Icarus;
+
+///
+/// Used to store Icarus terminal keys
+///
+[RegisterComponent]
+public sealed class IcarusTerminalComponent : Component
+{
+ [ViewVariables(VVAccess.ReadWrite)]
+ [DataField("totalKeys")]
+ public int TotalKeys = 3;
+
+ [ViewVariables(VVAccess.ReadWrite)]
+ [DataField("activatedKeys")]
+ public int ActivatedKeys = 0;
+}
diff --git a/Content.Server/Icarus/IcarusTerminalSystem.cs b/Content.Server/Icarus/IcarusTerminalSystem.cs
new file mode 100644
index 0000000000..844595e372
--- /dev/null
+++ b/Content.Server/Icarus/IcarusTerminalSystem.cs
@@ -0,0 +1,28 @@
+namespace Content.Server.Icarus;
+
+///
+/// Handle Icarus activation terminal
+///
+public sealed class IcarusTerminalSystem : EntitySystem
+{
+ ///
+ public override void Initialize()
+ {
+
+ }
+
+ public void OnKeyInsert()
+ {
+
+ }
+
+ public void Fire()
+ {
+ // TODO: Fire Icarus beam
+ }
+
+ public bool IsUnlocked(IcarusTerminalComponent comp)
+ {
+ return comp.ActivatedKeys == comp.TotalKeys;
+ }
+}