]> git.deb.at Git - rhonda/impostor.git/commitdiff
Add PlayerReportedBodyEvent (#96)
authordanbudworthmead <danbudworthmead@gmail.com>
Wed, 28 Oct 2020 17:55:06 +0000 (17:55 +0000)
committerGitHub <noreply@github.com>
Wed, 28 Oct 2020 17:55:06 +0000 (18:55 +0100)
src/Impostor.Api/Events/Game/Player/IPlayerReportedBodyEvent.cs [new file with mode: 0644]
src/Impostor.Server/Events/Game/Player/PlayerReportedBodyEvent.cs [new file with mode: 0644]
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs

diff --git a/src/Impostor.Api/Events/Game/Player/IPlayerReportedBodyEvent.cs b/src/Impostor.Api/Events/Game/Player/IPlayerReportedBodyEvent.cs
new file mode 100644 (file)
index 0000000..800d958
--- /dev/null
@@ -0,0 +1,12 @@
+using Impostor.Api.Net.Inner.Objects;
+
+namespace Impostor.Api.Events.Player
+{
+    public interface IPlayerReportedBodyEvent : IPlayerEvent
+    {
+        /// <summary>
+        ///     Gets the player who's body got reported.
+        /// </summary>
+        IInnerPlayerControl Body { get; }
+    }
+}
diff --git a/src/Impostor.Server/Events/Game/Player/PlayerReportedBodyEvent.cs b/src/Impostor.Server/Events/Game/Player/PlayerReportedBodyEvent.cs
new file mode 100644 (file)
index 0000000..6798106
--- /dev/null
@@ -0,0 +1,26 @@
+using Impostor.Api.Events.Player;
+using Impostor.Api.Games;
+using Impostor.Api.Net;
+using Impostor.Api.Net.Inner.Objects;
+
+namespace Impostor.Server.Events.Player
+{
+    public class PlayerReportedBodyEvent : IPlayerReportedBodyEvent
+    {
+        public PlayerReportedBodyEvent(IGame game, IClientPlayer clientPlayer, IInnerPlayerControl playerControl, IInnerPlayerControl body)
+        {
+            Game = game;
+            ClientPlayer = clientPlayer;
+            PlayerControl = playerControl;
+            Body = body;
+        }
+
+        public IGame Game { get; }
+
+        public IClientPlayer ClientPlayer { get; }
+
+        public IInnerPlayerControl PlayerControl { get; }
+
+        public IInnerPlayerControl Body { get; }
+    }
+}
index 68add3473b55b389854ca46086bb5c7d694892c5..213a868461959b8a47b7ac2a42b7ed010b278c3c 100644 (file)
@@ -1,4 +1,5 @@
 using System;
+using System.Linq;
 using System.Threading.Tasks;
 using Impostor.Api;
 using Impostor.Api.Events.Managers;
@@ -248,6 +249,8 @@ namespace Impostor.Server.Net.Inner.Objects
                     }
 
                     var deadBodyPlayerId = reader.ReadByte();
+                    await _eventManager.CallAsync(new PlayerReportedBodyEvent(_game, sender, this, _game.GetClientPlayer(deadBodyPlayerId).Character));
+
                     break;
                 }