From eb86c3c683bf161a0887d94e641b66632735454b Mon Sep 17 00:00:00 2001 From: miniduikboot Date: Thu, 8 Jul 2021 00:08:35 +0200 Subject: [PATCH] Implement RPC 35: Update System --- .../Net/Messages/Rpcs/Rpc35UpdateSystem.cs | 27 +++++++++++++++++++ .../Objects/ShipStatus/InnerShipStatus.cs | 6 +++++ 2 files changed, 33 insertions(+) create mode 100644 src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs diff --git a/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs b/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs new file mode 100644 index 0000000..269b865 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs @@ -0,0 +1,27 @@ +using Impostor.Api.Games; +using Impostor.Api.Innersloth; +using Impostor.Api.Net.Inner.Objects; + +namespace Impostor.Api.Net.Messages.Rpcs +{ + public static class Rpc35UpdateSystem + { + public static void Serialize(IMessageWriter writer, SystemTypes systemType, IInnerPlayerControl playerControl, ushort sid, byte state, byte ventId) + { + writer.Write((byte)systemType); + writer.Write(playerControl.NetId); + writer.Write(sid); + writer.Write(state); + writer.Write(ventId); + } + + public static void Deserialize(IMessageReader reader, IGame game, out SystemTypes systemType, out IInnerPlayerControl? playerControl, out ushort sId, out byte state, out byte ventId) + { + systemType = (SystemTypes)reader.ReadByte(); + playerControl = reader.ReadNetObject(game); + sId = reader.ReadUInt16(); + state = reader.ReadByte(); + ventId = reader.ReadByte(); + } + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs b/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs index 4d14c63..30338f1 100644 --- a/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs +++ b/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs @@ -105,6 +105,12 @@ namespace Impostor.Server.Net.Inner.Objects.ShipStatus break; } + case RpcCalls.UpdateSystem: + { + Rpc35UpdateSystem.Deserialize(reader, Game, out var systemType, out var playerControl, out var sId, out var state, out var ventId); + break; + } + default: return await base.HandleRpcAsync(sender, target, call, reader); } -- 2.39.5