]> git.deb.at Git - rhonda/impostor.git/commitdiff
Add task info to player info
authorAlexejheroYTB <alexejhero@gmail.com>
Thu, 12 Nov 2020 11:37:40 +0000 (13:37 +0200)
committerAlexejheroYTB <alexejhero@gmail.com>
Thu, 12 Nov 2020 11:37:40 +0000 (13:37 +0200)
src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs
src/Impostor.Api/Net/Inner/Objects/ITaskInfo.cs [new file with mode: 0644]
src/Impostor.Server/Net/Inner/Objects/InnerGameData.TaskInfo.cs
src/Impostor.Server/Net/Inner/Objects/InnerGameData.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs

index 2715d2de18980d049dc5e9c20a8778ef0dc86b17..23c45f50cf50e6cfc50254dd85e80a695ea12e1d 100644 (file)
@@ -1,4 +1,6 @@
-using Impostor.Api.Innersloth;
+using System;
+using System.Collections.Generic;
+using Impostor.Api.Innersloth;
 
 namespace Impostor.Api.Net.Inner.Objects
 {
@@ -43,5 +45,9 @@ namespace Impostor.Api.Net.Inner.Objects
         ///     Gets the reason why the player is dead in the current game.
         /// </summary>
         DeathReason LastDeathReason { get; }
+        
+        List<ITaskInfo> Tasks { get; }
+        
+        DateTimeOffset LastMurder { get; }
     }
 }
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Inner/Objects/ITaskInfo.cs b/src/Impostor.Api/Net/Inner/Objects/ITaskInfo.cs
new file mode 100644 (file)
index 0000000..7e7fb2f
--- /dev/null
@@ -0,0 +1,15 @@
+using Impostor.Api.Net.Messages;
+
+namespace Impostor.Api.Net.Inner.Objects
+{
+    public interface ITaskInfo
+    {
+        uint Id { get; }
+        
+        bool Complete { get; }
+
+        void Serialize(IMessageWriter writer);
+
+        void Deserialize(IMessageReader reader);
+    }
+}
\ No newline at end of file
index 5dfa5c241569da54ca9e8ff1b9480425f324bac4..40fcbb4c3850996ef08707eb20b7bdf4e90e0663 100644 (file)
@@ -1,10 +1,11 @@
-using Impostor.Api.Net.Messages;
+using Impostor.Api.Net.Inner.Objects;
+using Impostor.Api.Net.Messages;
 
 namespace Impostor.Server.Net.Inner.Objects
 {
     internal partial class InnerGameData
     {
-        public class TaskInfo
+        public class TaskInfo : ITaskInfo
         {
             public uint Id { get; internal set; }
 
index 9f18a52360fa6680b8542bb305f7172fd1b5f4ac..d6042480661ff4ff28ac806fa9c2dd28964c9fb7 100644 (file)
@@ -172,12 +172,12 @@ namespace Impostor.Server.Net.Inner.Objects
                 return;
             }
 
-            player.Tasks = new List<TaskInfo>(taskTypeIds.Length);
+            player.Tasks = new List<ITaskInfo>(taskTypeIds.Length);
 
             for (var i = 0; i < taskTypeIds.Length; i++)
             {
-                player.Tasks.Add(new TaskInfo());
-                player.Tasks[i].Id = (uint)i;
+                var task = new TaskInfo { Id = (uint)i };
+                player.Tasks.Add(task);
             }
         }
     }
index 13163dd1c7256b409c140a1de0b1aa993ce063b8..40bec7cb6777777a145dce02a771a56d6eab7e91 100644 (file)
@@ -36,7 +36,7 @@ namespace Impostor.Server.Net.Inner.Objects
 
         public DeathReason LastDeathReason { get; internal set; }
 
-        public List<InnerGameData.TaskInfo> Tasks { get; internal set; }
+        public List<ITaskInfo> Tasks { get; internal set; }
 
         public DateTimeOffset LastMurder { get; set; }
 
@@ -67,7 +67,7 @@ namespace Impostor.Server.Net.Inner.Objects
             IsImpostor = (flag & 2) > 0;
             IsDead = (flag & 4) > 0;
             var taskCount = reader.ReadByte();
-            Tasks = new List<InnerGameData.TaskInfo>();
+            Tasks = new List<ITaskInfo>();
             for (var i = 0; i < taskCount; i++)
             {
                 Tasks.Add(new InnerGameData.TaskInfo());