Implement fungle rpcs

This commit is contained in:
js6pak committed 2023-12-16 23:55:58 +01:00
1 parent 9b58f2b36d
commit 5b14c7b64e
7 files changed
+174

No files matched your search

@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc51CheckZipline
{
public static void Serialize(IMessageWriter writer, bool fromTop)
{
writer.Write(fromTop);
}
public static void Deserialize(IMessageReader reader, out bool fromTop)
{
fromTop = reader.ReadBoolean();
}
}
}
@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc52UseZipline
{
public static void Serialize(IMessageWriter writer, bool fromTop)
{
writer.Write(fromTop);
}
public static void Deserialize(IMessageReader reader, out bool fromTop)
{
fromTop = reader.ReadBoolean();
}
}
}
@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc53TriggerSpores
{
public static void Serialize(IMessageWriter writer, int mushroomId)
{
writer.WritePacked(mushroomId);
}
public static void Deserialize(IMessageReader reader, out int mushroomId)
{
mushroomId = reader.ReadPackedInt32();
}
}
}
@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc54CheckSpore
{
public static void Serialize(IMessageWriter writer, int mushroomId)
{
writer.WritePacked(mushroomId);
}
public static void Deserialize(IMessageReader reader, out int mushroomId)
{
mushroomId = reader.ReadPackedInt32();
}
}
}
@@ -0,0 +1,20 @@
using Impostor.Api.Games;
using Impostor.Api.Net.Inner.Objects;
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc55CheckShapeshift
{
public static void Serialize(IMessageWriter writer, IInnerPlayerControl playerControl, bool shouldAnimate)
{
writer.Write(playerControl);
writer.Write(shouldAnimate);
}
public static void Deserialize(IMessageReader reader, IGame game, out IInnerPlayerControl? playerControl, out bool shouldAnimate)
{
playerControl = reader.ReadNetObject<IInnerPlayerControl>(game);
shouldAnimate = reader.ReadBoolean();
}
}
}
@@ -0,0 +1,13 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc56RejectShapeshift
{
public static void Serialize(IMessageWriter writer)
{
}
public static void Deserialize(IMessageReader reader)
{
}
}
}
@@ -398,6 +398,11 @@ namespace Impostor.Server.Net.Inner.Objects
case RpcCalls.Shapeshift:
{
if (!await ValidateHost(call, sender))
{
return false;
}
if (!await ValidateRole(call, sender, PlayerInfo, RoleTypes.Shapeshifter))
{
return false;
@@ -410,6 +415,11 @@ namespace Impostor.Server.Net.Inner.Objects
case RpcCalls.CheckMurder:
{
if (!await ValidateOwnership(call, sender))
{
return false;
}
if (!await ValidateImpostor(call, sender, PlayerInfo))
{
return false;
@@ -421,6 +431,11 @@ namespace Impostor.Server.Net.Inner.Objects
case RpcCalls.CheckProtect:
{
if (!await ValidateOwnership(call, sender))
{
return false;
}
if (!await ValidateRole(call, sender, PlayerInfo, RoleTypes.GuardianAngel))
{
return false;
@@ -430,6 +445,72 @@ namespace Impostor.Server.Net.Inner.Objects
break;
}
case RpcCalls.CheckZipline:
{
if (!await ValidateOwnership(call, sender))
{
return false;
}
Rpc51CheckZipline.Deserialize(reader, out var fromTop);
break;
}
case RpcCalls.UseZipline:
{
if (!await ValidateHost(call, sender))
{
return false;
}
Rpc52UseZipline.Deserialize(reader, out var fromTop);
break;
}
case RpcCalls.TriggerSpores:
{
if (!await ValidateHost(call, sender))
{
return false;
}
Rpc53TriggerSpores.Deserialize(reader, out var mushroomId);
break;
}
case RpcCalls.CheckSpore:
{
if (!await ValidateOwnership(call, sender))
{
return false;
}
Rpc54CheckSpore.Deserialize(reader, out var mushroomId);
break;
}
case RpcCalls.CheckShapeshift:
{
if (!await ValidateOwnership(call, sender))
{
return false;
}
Rpc46Shapeshift.Deserialize(reader, Game, out var playerControl, out var shouldAnimate);
break;
}
case RpcCalls.RejectShapeshift:
{
if (!await ValidateHost(call, sender))
{
return false;
}
Rpc56RejectShapeshift.Deserialize(reader);
break;
}
default:
return await base.HandleRpcAsync(sender, target, call, reader);
}