return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc00PlayAnimation.Deserialize(reader, out var task);
break;
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc01CompleteTask.Deserialize(reader, out var taskId);
await HandleCompleteTask(sender, taskId);
break;
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc11ReportDeadBody.Deserialize(reader, out var targetId);
break;
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc12MurderPlayer.Deserialize(reader, Game, out var murdered, out var result);
return await HandleMurderPlayer(sender, (InnerPlayerControl?)murdered, result);
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc13SendChat.Deserialize(reader, out var message);
return await HandleSendChat(sender, message);
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc14StartMeeting.Deserialize(reader, out var targetId);
await HandleStartMeeting(targetId);
break;
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc15SetScanner.Deserialize(reader, out var on, out var scannerCount);
break;
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc16SendChatNote.Deserialize(reader, out var playerId, out var chatNoteType);
break;
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
// TODO: deserialize and expose the result in an API
break;
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc44SetRole.Deserialize(reader, out var role);
PlayerInfo.RoleType = role;
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc45ProtectPlayer.Deserialize(reader, Game, out var protectTarget, out _);
return await HandleProtectPlayer(sender, protectTarget);
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc46Shapeshift.Deserialize(reader, Game, out _, out _);
break;
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
Rpc47CheckMurder.Deserialize(reader, Game, out var murdered);
return await HandleCheckMurder(sender, (InnerPlayerControl?)murdered);
}
return false;
}
+ if (!await ValidateBroadcast(call, sender, target))
+ {
+ return false;
+ }
+
+ // CheckProtect should only be passed to Host
Rpc48CheckProtect.Deserialize(reader, Game, out _);
break;
}
return false;
}
+ if (!await ValidateCmd(call, sender, target))
+ {
+ return false;
+ }
+
Rpc51CheckZipline.Deserialize(reader, out var fromTop);
break;
}
return false;
}
+ if (!await ValidateCmd(call, sender, target))
+ {
+ return false;
+ }
+
Rpc54CheckSpore.Deserialize(reader, out var mushroomId);
break;
}
return false;
}
+ if (!await ValidateRole(call, sender, PlayerInfo, RoleTypes.Shapeshifter))
+ {
+ return false;
+ }
+
+ if (!await ValidateCmd(call, sender ,target))
+ {
+ return false;
+ }
+
Rpc46Shapeshift.Deserialize(reader, Game, out var playerControl, out var shouldAnimate);
break;
}