From 2d78e008ac8a75a3d2564f141a110a8e5df9cf81 Mon Sep 17 00:00:00 2001 From: AlexejheroYTB Date: Thu, 12 Nov 2020 13:37:40 +0200 Subject: [PATCH] Add task info to player info --- .../Net/Inner/Objects/IInnerPlayerInfo.cs | 8 +++++++- src/Impostor.Api/Net/Inner/Objects/ITaskInfo.cs | 15 +++++++++++++++ .../Net/Inner/Objects/InnerGameData.TaskInfo.cs | 5 +++-- .../Net/Inner/Objects/InnerGameData.cs | 6 +++--- .../Net/Inner/Objects/InnerPlayerInfo.cs | 4 ++-- 5 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 src/Impostor.Api/Net/Inner/Objects/ITaskInfo.cs diff --git a/src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs b/src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs index 2715d2d..23c45f5 100644 --- a/src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs +++ b/src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs @@ -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. /// DeathReason LastDeathReason { get; } + + List 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 index 0000000..7e7fb2f --- /dev/null +++ b/src/Impostor.Api/Net/Inner/Objects/ITaskInfo.cs @@ -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 diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerGameData.TaskInfo.cs b/src/Impostor.Server/Net/Inner/Objects/InnerGameData.TaskInfo.cs index 5dfa5c2..40fcbb4 100644 --- a/src/Impostor.Server/Net/Inner/Objects/InnerGameData.TaskInfo.cs +++ b/src/Impostor.Server/Net/Inner/Objects/InnerGameData.TaskInfo.cs @@ -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; } diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerGameData.cs b/src/Impostor.Server/Net/Inner/Objects/InnerGameData.cs index 9f18a52..d604248 100644 --- a/src/Impostor.Server/Net/Inner/Objects/InnerGameData.cs +++ b/src/Impostor.Server/Net/Inner/Objects/InnerGameData.cs @@ -172,12 +172,12 @@ namespace Impostor.Server.Net.Inner.Objects return; } - player.Tasks = new List(taskTypeIds.Length); + player.Tasks = new List(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); } } } diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs index 13163dd..40bec7c 100644 --- a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs +++ b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs @@ -36,7 +36,7 @@ namespace Impostor.Server.Net.Inner.Objects public DeathReason LastDeathReason { get; internal set; } - public List Tasks { get; internal set; } + public List 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(); + Tasks = new List(); for (var i = 0; i < taskCount; i++) { Tasks.Add(new InnerGameData.TaskInfo()); -- 2.39.5