]> git.deb.at Git - rhonda/impostor.git/commitdiff
Expose all global InnerNet objects
authorAeonLucid <aeonlucid@outlook.com>
Fri, 23 Oct 2020 17:13:28 +0000 (19:13 +0200)
committerAeonLucid <aeonlucid@outlook.com>
Fri, 23 Oct 2020 17:13:28 +0000 (19:13 +0200)
src/Impostor.Api/Innersloth/Data/GameNet.cs
src/Impostor.Api/Innersloth/Net/Objects/InnerShipStatus.cs
src/Impostor.Api/ProjectRules.ruleset

index 29ec6f9f12696229b3c28364c9cb29412eae2cda..614e6a25a40ae2437b4f0d2468f415a9230d9e6b 100644 (file)
@@ -1,6 +1,7 @@
 using Impostor.Api.Games;
 using Impostor.Api.Innersloth.Net;
 using Impostor.Api.Innersloth.Net.Objects;
+using Impostor.Api.Innersloth.Net.Objects.Components;
 
 namespace Impostor.Api.Innersloth.Data
 {
@@ -16,46 +17,102 @@ namespace Impostor.Api.Innersloth.Data
             _game = game;
         }
 
+        public InnerLobbyBehaviour LobbyBehaviour { get; private set; }
+
         public InnerGameData GameData { get; private set; }
 
+        public InnerVoteBanSystem VoteBan { get; private set; }
+
+        public InnerShipStatus ShipStatus { get; private set; }
+
         internal void OnSpawn(InnerNetObject netObj)
         {
-            if (netObj is InnerGameData data)
-            {
-                GameData = data;
-            }
-            else if (netObj is InnerPlayerControl control)
+            switch (netObj)
             {
-                // Hook up InnerPlayerControl <-> IClientPlayer.
-                var clientPlayer = _game.GetClientPlayer(control.OwnerId);
-                if (clientPlayer != null)
+                case InnerLobbyBehaviour lobby:
+                {
+                    LobbyBehaviour = lobby;
+                    break;
+                }
+
+                case InnerGameData data:
                 {
-                    clientPlayer.Character = control;
+                    GameData = data;
+                    break;
                 }
 
-                // Hook up InnerPlayerControl <-> InnerPlayerControl.PlayerInfo.
-                control.PlayerInfo = GameData.GetPlayerById(control.PlayerId);
+                case InnerVoteBanSystem voteBan:
+                {
+                    VoteBan = voteBan;
+                    break;
+                }
+
+                case InnerShipStatus shipStatus:
+                {
+                    ShipStatus = shipStatus;
+                    break;
+                }
 
-                if (control.PlayerInfo == null)
+                case InnerPlayerControl control:
                 {
-                    GameData.AddPlayer(control);
+                    // Hook up InnerPlayerControl <-> IClientPlayer.
+                    var clientPlayer = _game.GetClientPlayer(control.OwnerId);
+                    if (clientPlayer != null)
+                    {
+                        clientPlayer.Character = control;
+                    }
+
+                    // Hook up InnerPlayerControl <-> InnerPlayerControl.PlayerInfo.
+                    control.PlayerInfo = GameData.GetPlayerById(control.PlayerId);
+
+                    if (control.PlayerInfo == null)
+                    {
+                        GameData.AddPlayer(control);
+                    }
+
+                    break;
                 }
             }
         }
 
         internal void OnDestroy(InnerNetObject netObj)
         {
-            if (netObj is InnerGameData)
+            switch (netObj)
             {
-                GameData = null;
-            }
-            else if (netObj is InnerPlayerControl control)
-            {
-                // Remove InnerPlayerControl <-> IClientPlayer.
-                var clientPlayer = _game.GetClientPlayer(control.OwnerId);
-                if (clientPlayer != null)
+                case InnerLobbyBehaviour lobby:
+                {
+                    LobbyBehaviour = null;
+                    break;
+                }
+
+                case InnerGameData:
+                {
+                    GameData = null;
+                    break;
+                }
+
+                case InnerVoteBanSystem:
                 {
-                    clientPlayer.Character = null;
+                    VoteBan = null;
+                    break;
+                }
+
+                case InnerShipStatus:
+                {
+                    ShipStatus = null;
+                    break;
+                }
+
+                case InnerPlayerControl control:
+                {
+                    // Remove InnerPlayerControl <-> IClientPlayer.
+                    var clientPlayer = _game.GetClientPlayer(control.OwnerId);
+                    if (clientPlayer != null)
+                    {
+                        clientPlayer.Character = null;
+                    }
+
+                    break;
                 }
             }
         }
index 78ba1fe6bfbb8e671e80ab9b074808351678ed6f..1c08dd6612fc5376a11b953dc58ef30652282b1a 100644 (file)
@@ -45,7 +45,6 @@ namespace Impostor.Api.Innersloth.Net.Objects
             {
                 case 27:
                 {
-                    // Close doors.
                     if (!sender.Character.PlayerInfo.IsImpostor)
                     {
                         Console.WriteLine($"OOPS Fake Impostor: {sender.Character.PlayerInfo.PlayerName} did doors");
index a21a8d40c99c1483a5d48cb2030804c31b065cd0..a380f5c510cd12d1d36aeb7a702449163b11721b 100644 (file)
@@ -3,6 +3,7 @@
         <Rule Id="SA1200" Action="None" />
     </Rules>
     <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.CSharp.DocumentationRules">
+        <Rule Id="SA1600" Action="None" />
         <Rule Id="SA1633" Action="None" />
     </Rules>
     <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.CSharp.ReadabilityRules">