-using Impostor.Api.Innersloth;
+using System;
+using System.Collections.Generic;
+using Impostor.Api.Innersloth;
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
--- /dev/null
+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
-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; }
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);
}
}
}
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; }
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());