From e7c83769ef259c1437948bfab130856569eff104 Mon Sep 17 00:00:00 2001 From: miniduikboot Date: Wed, 7 Jul 2021 22:18:50 +0200 Subject: [PATCH] Implement RPC 34: Boot from vent --- src/Impostor.Api/Net/Inner/RpcCalls.cs | 2 ++ .../Net/Messages/Rpcs/Rpc34BootFromVent.cs | 15 +++++++++++++++ .../Objects/Components/InnerPlayerPhysics.cs | 8 ++++++++ 3 files changed, 25 insertions(+) create mode 100644 src/Impostor.Api/Net/Messages/Rpcs/Rpc34BootFromVent.cs diff --git a/src/Impostor.Api/Net/Inner/RpcCalls.cs b/src/Impostor.Api/Net/Inner/RpcCalls.cs index b251a93..1fe2327 100644 --- a/src/Impostor.Api/Net/Inner/RpcCalls.cs +++ b/src/Impostor.Api/Net/Inner/RpcCalls.cs @@ -35,5 +35,7 @@ ClimbLadder = 31, UsePlatform = 32, SendQuickChat = 33, + BootFromVent = 34, + UpdateSystem = 35, } } diff --git a/src/Impostor.Api/Net/Messages/Rpcs/Rpc34BootFromVent.cs b/src/Impostor.Api/Net/Messages/Rpcs/Rpc34BootFromVent.cs new file mode 100644 index 0000000..9ae2cb4 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/Rpcs/Rpc34BootFromVent.cs @@ -0,0 +1,15 @@ +namespace Impostor.Api.Net.Messages.Rpcs +{ + public static class Rpc34BootFromVent + { + public static void Serialize(IMessageWriter writer, int ventId) + { + writer.WritePacked(ventId); + } + + public static void Deserialize(IMessageReader reader, out int ventId) + { + ventId = reader.ReadPackedInt32(); + } + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/Components/InnerPlayerPhysics.cs b/src/Impostor.Server/Net/Inner/Objects/Components/InnerPlayerPhysics.cs index 0e84a68..54cf137 100644 --- a/src/Impostor.Server/Net/Inner/Objects/Components/InnerPlayerPhysics.cs +++ b/src/Impostor.Server/Net/Inner/Objects/Components/InnerPlayerPhysics.cs @@ -46,6 +46,7 @@ namespace Impostor.Server.Net.Inner.Objects.Components { case RpcCalls.EnterVent: case RpcCalls.ExitVent: + { if (!await ValidateImpostor(call, sender, _playerControl.PlayerInfo)) { return false; @@ -86,6 +87,13 @@ namespace Impostor.Server.Net.Inner.Objects.Components } break; + } + + case RpcCalls.BootFromVent: + { + Rpc34BootFromVent.Deserialize(reader, out var ventId); + break; + } case RpcCalls.ClimbLadder: Rpc31ClimbLadder.Deserialize(reader, out var ladderId, out var lastClimbLadderSid); -- 2.39.5