]> git.deb.at Git - rhonda/impostor.git/commitdiff
Add simple ping toleration to murder player check
authorjs6pak <kubastaron@hotmail.com>
Sun, 11 Apr 2021 14:05:08 +0000 (16:05 +0200)
committerjs6pak <kubastaron@hotmail.com>
Sun, 11 Apr 2021 14:05:08 +0000 (16:05 +0200)
src/Impostor.Api/Net/IHazelConnection.cs
src/Impostor.Server/Net/Hazel/HazelConnection.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs
src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs

index c3ce51e159761428b781deaafafff058af1d7c5e..09f17c3c15fe21d46200d2390385ccbcb34d0638 100644 (file)
@@ -24,6 +24,11 @@ namespace Impostor.Api.Net
         /// </summary>
         IClient? Client { get; set; }
 
+        /// <summary>
+        ///     Gets the average ping of the client.
+        /// </summary>
+        float AveragePing { get; }
+
         /// <summary>
         ///     Sends a message writer to the connection.
         /// </summary>
index c59a91c2d1761104a367b214582d071f6939b924..fab5ff551b8b2b8059052e336903efea415eaf25 100644 (file)
@@ -27,6 +27,8 @@ namespace Impostor.Server.Net.Hazel
 
         public IClient? Client { get; set; }
 
+        public float AveragePing => InnerConnection is NetworkConnection networkConnection ? networkConnection.AveragePingMs : 0;
+
         public ValueTask SendAsync(IMessageWriter writer)
         {
             return InnerConnection.SendAsync(writer);
index 06191a18f2c473d1d99c5b3ce317bd9f88f82d7e..488e7259830918f3a4f9cc15700bfe77b7770677 100644 (file)
@@ -544,7 +544,7 @@ namespace Impostor.Server.Net.Inner.Objects
                 }
             }
 
-            PlayerInfo.LastMurder = _dateTimeProvider.UtcNow;
+            PlayerInfo.LastMurder = _dateTimeProvider.UtcNow - TimeSpan.FromMilliseconds(sender.Client.Connection.AveragePing);
 
             if (target != null && !target.PlayerInfo.IsDead)
             {
index c611c2949e4bec9267af3e65d3a1a5a04d7badaa..292899aa5a4d9068bcfdc3ce1c52b9bbdb147b19 100644 (file)
@@ -17,6 +17,7 @@ namespace Impostor.Tools.ServerReplay.Mocks
         public IPEndPoint EndPoint { get; }
         public bool IsConnected { get; }
         public IClient Client { get; set; }
+        public float AveragePing => 0;
 
         public ValueTask SendAsync(IMessageWriter writer)
         {