static void Prefix(UnityEngine.Object obj) { if (ExileController.Instance != null && obj == ExileController.Instance.gameObject) { // Reset custom button timers where necessary CustomButton.MeetingEndedUpdate(); // Jester and Bounty Hunter win condition if (ExileController.Instance.exiled != null) { byte exiledId = ExileController.Instance.exiled.PlayerId; if ((Jester.jester != null && Jester.jester.PlayerId == exiledId) || (BountyHunter.bountyHunter != null && !BountyHunter.bountyHunter.Data.IsDead && BountyHunter.target != null && BountyHunter.target.PlayerId == exiledId)) { MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.JesterBountyHunterWin, Hazel.SendOption.Reliable, -1); writer.Write(exiledId); AmongUsClient.Instance.FinishRpcImmediately(writer); RPCProcedure.jesterBountyHunterWin(exiledId); } } } }
static void Postfix(byte ACCJCEHMKLN, MessageReader HFPCBBHJIPJ) { byte packetId = ACCJCEHMKLN; MessageReader reader = HFPCBBHJIPJ; switch (packetId) { // Main Controls case (byte)CustomRPC.ResetVaribles: RPCProcedure.resetVariables(); break; case (byte)CustomRPC.ForceEnd: RPCProcedure.forceEnd(); break; case (byte)CustomRPC.SetRole: byte roleId = HFPCBBHJIPJ.ReadByte(); byte playerId = HFPCBBHJIPJ.ReadByte(); RPCProcedure.setRole(roleId, playerId); break; // Role functionality case (byte)CustomRPC.JesterBountyHunterWin: RPCProcedure.jesterBountyHunterWin(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.EngineerFixLights: RPCProcedure.engineerFixLights(); break; case (byte)CustomRPC.EngineerUsedRepair: RPCProcedure.engineerUsedRepair(); break; case (byte)CustomRPC.JanitorClean: RPCProcedure.janitorClean(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.SheriffKill: RPCProcedure.sheriffKill(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.TimeMasterRewindTime: RPCProcedure.timeMasterRewindTime(); break; case (byte)CustomRPC.MedicSetShielded: RPCProcedure.medicSetShielded(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.ShieldedMurderAttempt: RPCProcedure.shieldedMurderAttempt(); break; case (byte)CustomRPC.TimeMasterRevive: RPCProcedure.timeMasterRevive(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.ShifterShift: RPCProcedure.shifterShift(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.SwapperSwap: byte playerId1 = HFPCBBHJIPJ.ReadByte(); byte playerId2 = HFPCBBHJIPJ.ReadByte(); RPCProcedure.swapperSwap(playerId1, playerId2); break; case (byte)CustomRPC.SeerReveal: byte targetId = HFPCBBHJIPJ.ReadByte(); byte targetOrMistakeId = HFPCBBHJIPJ.ReadByte(); RPCProcedure.seerReveal(targetId, targetOrMistakeId); break; case (byte)CustomRPC.MorphlingMorph: RPCProcedure.morphlingMorph(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.CamouflagerCamouflage: RPCProcedure.camouflagerCamouflage(); break; case (byte)CustomRPC.LoverSuicide: RPCProcedure.loverSuicide(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.SetBountyHunterTarget: RPCProcedure.setBountyHunterTarget(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.VampireBiteNotification: RPCProcedure.vampireBiteNotification(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.VampireTryKill: RPCProcedure.vampireTryKill(); break; case (byte)CustomRPC.PlaceGarlic: RPCProcedure.placeGarlic(HFPCBBHJIPJ.ReadBytesAndSize()); break; case (byte)CustomRPC.TrackerUsedTracker: RPCProcedure.trackerUsedTracker(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.JackalKill: RPCProcedure.jackalKill(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.SidekickKill: RPCProcedure.sidekickKill(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.JackalCreatesSidekick: RPCProcedure.jackalCreatesSidekick(HFPCBBHJIPJ.ReadByte()); break; case (byte)CustomRPC.SidekickPromotes: RPCProcedure.sidekickPromotes(); break; } }