mirror of
https://github.com/Impostor/Impostor.git
synced 2026-10-20 01:46:11 +00:00
Add basic implementation of judge overruling
This commit is contained in:
1 parent
caab877c80
commit
a161aa7045
2 files changed
+32
-2
No files matched your search
@@ -59,5 +59,6 @@
|
||||
"CheckVanish": 62,
|
||||
"StartVanish": 63,
|
||||
"CheckAppear": 64,
|
||||
"StartAppear": 65
|
||||
}
|
||||
"StartAppear": 65,
|
||||
"QueueOverruleVotes": 66
|
||||
}
|
||||
@@ -22,6 +22,8 @@ namespace Impostor.Server.Net.Inner.Objects
|
||||
{
|
||||
internal partial class InnerMeetingHud : InnerNetObject
|
||||
{
|
||||
private static readonly GameVersion JudgeMinVersion = new GameVersion(2026, 7, 15); // 18.0
|
||||
|
||||
private readonly ILogger<InnerMeetingHud> _logger;
|
||||
private readonly IEventManager _eventManager;
|
||||
|
||||
@@ -108,6 +110,17 @@ namespace Impostor.Server.Net.Inner.Objects
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sender.Client.GameVersion >= JudgeMinVersion)
|
||||
{
|
||||
var overruleQueueListLength = reader.ReadPackedInt32();
|
||||
for (var i = 0; i < overruleQueueListLength; i++)
|
||||
{
|
||||
var msg = reader.ReadMessage();
|
||||
|
||||
// TODO parse and handle JudgeOverrule
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override async ValueTask<bool> HandleRpcAsync(ClientPlayer sender, ClientPlayer? target, RpcCalls call, IMessageReader reader)
|
||||
@@ -161,6 +174,22 @@ namespace Impostor.Server.Net.Inner.Objects
|
||||
break;
|
||||
}
|
||||
|
||||
case RpcCalls.QueueOverruleVotes:
|
||||
{
|
||||
if (!await ValidateRole(call, sender, sender.Character!.PlayerInfo, RoleTypes.Judge) ||
|
||||
!await ValidateTarget(call, sender, target) ||
|
||||
!await ValidateHost(call, target!))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var judgePlayerId = reader.ReadByte();
|
||||
var targetPlayerId = reader.ReadByte();
|
||||
var overruleNonce = reader.ReadUInt16();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
return await base.HandleRpcAsync(sender, target, call, reader);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user