]> git.deb.at Git - rhonda/impostor.git/commitdiff
PlayerSetStartCounterEvent (#113)
authordanbudworthmead <danbudworthmead@gmail.com>
Thu, 12 Nov 2020 03:01:32 +0000 (03:01 +0000)
committerGitHub <noreply@github.com>
Thu, 12 Nov 2020 03:01:32 +0000 (04:01 +0100)
src/Impostor.Api/Events/Game/Player/IPlayerSetStartCounterEvent.cs [new file with mode: 0644]
src/Impostor.Server/Events/Game/Player/PlayerSetStartCounterEvent.cs [new file with mode: 0644]
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs

diff --git a/src/Impostor.Api/Events/Game/Player/IPlayerSetStartCounterEvent.cs b/src/Impostor.Api/Events/Game/Player/IPlayerSetStartCounterEvent.cs
new file mode 100644 (file)
index 0000000..d7fc562
--- /dev/null
@@ -0,0 +1,10 @@
+namespace Impostor.Api.Events.Player
+{
+    public interface IPlayerSetStartCounterEvent : IPlayerEvent
+    {
+        /// <summary>
+        ///     Gets the current time of the start counter.
+        /// </summary>
+        byte Value { get; }
+    }
+}
diff --git a/src/Impostor.Server/Events/Game/Player/PlayerSetStartCounterEvent.cs b/src/Impostor.Server/Events/Game/Player/PlayerSetStartCounterEvent.cs
new file mode 100644 (file)
index 0000000..821aa2d
--- /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.Game.Player
+{
+    public class PlayerSetStartCounterEvent : IPlayerSetStartCounterEvent
+    {
+        public PlayerSetStartCounterEvent(IGame game, IClientPlayer clientPlayer, IInnerPlayerControl playerControl, byte value)
+        {
+            Game = game;
+            ClientPlayer = clientPlayer;
+            PlayerControl = playerControl;
+            Value = value;
+        }
+
+        public byte Value { get; }
+
+        public IClientPlayer ClientPlayer { get; }
+
+        public IInnerPlayerControl PlayerControl { get; }
+
+        public IGame Game { get; }
+    }
+}
index 3270064506d4dc646291f78227c5ffbea1eb71c9..df4f0b5bb33fa89e5a247cd11cf3860951c33b2f 100644 (file)
@@ -6,6 +6,7 @@ using Impostor.Api.Events.Managers;
 using Impostor.Api.Innersloth;
 using Impostor.Api.Net;
 using Impostor.Api.Net.Messages;
+using Impostor.Server.Events.Game.Player;
 using Impostor.Server.Events.Player;
 using Impostor.Server.Net.Inner.Objects.Components;
 using Impostor.Server.Net.State;
@@ -397,6 +398,12 @@ namespace Impostor.Server.Net.Inner.Objects
 
                     // Is either start countdown or byte.MaxValue
                     var secondsLeft = reader.ReadByte();
+
+                    if (secondsLeft < byte.MaxValue)
+                    {
+                        await _eventManager.CallAsync(new PlayerSetStartCounterEvent(_game, sender, this, secondsLeft));
+                    }
+
                     break;
                 }