static bool Prefix(MeetingHud __instance) { if (__instance.DHCOPOOJCLN.All((PlayerVoteArea ps) => ps.isDead || ps.didVote)) { byte[] self = calculateVotes(__instance); bool tie; int maxIdx = IndexOfMax(self, (byte p) => (int)p, out tie) - 1; GameData.OFKOJOKOOAK exiled = null; foreach (GameData.OFKOJOKOOAK pi in GameData.Instance.AllPlayers) { if (pi.GMBAIPNOKLP == maxIdx) { exiled = pi; break; } } byte[] array = new byte[10]; for (int i = 0; i < __instance.DHCOPOOJCLN.Length; i++) { PlayerVoteArea playerVoteArea = __instance.DHCOPOOJCLN[i]; array[(int)playerVoteArea.HMPHKKGPLAG] = playerVoteArea.GetState(); } // RPCVotingComplete if (AmongUsClient.Instance.HNMILJEOEKN) { __instance.MJIJGEBBMAO(array, exiled, tie); } MessageWriter messageWriter = AmongUsClient.Instance.StartRpc(__instance.NetId, 23, Hazel.SendOption.Reliable); messageWriter.WriteBytesAndSize(array); messageWriter.Write((exiled != null) ? exiled.GMBAIPNOKLP : byte.MaxValue); messageWriter.Write(tie); messageWriter.EndMessage(); } return(false); }
static bool Prefix(MeetingHud __instance) { if (__instance.playerStates.All((PlayerVoteArea ps) => ps.isDead || ps.didVote)) { // If skipping is disabled, replace skipps/no-votes with self vote if (target == null && blockSkippingInEmergencyMeetings && noVoteIsSelfVote) { foreach (PlayerVoteArea playerVoteArea in __instance.playerStates) { if (playerVoteArea.votedFor < 0) { playerVoteArea.votedFor = playerVoteArea.TargetPlayerId; // TargetPlayerId } } } byte[] self = calculateVotes(__instance); bool tie; int maxIdx = IndexOfMax(self, (byte p) => (int)p, out tie) - 1; GameData.PlayerInfo exiled = null; foreach (GameData.PlayerInfo pi in GameData.Instance.AllPlayers) { if (pi.PlayerId == maxIdx) { exiled = pi; break; } } byte[] array = new byte[15]; for (int i = 0; i < __instance.playerStates.Length; i++) { PlayerVoteArea playerVoteArea = __instance.playerStates[i]; array[(int)playerVoteArea.TargetPlayerId] = playerVoteArea.GetState(); } // RPCVotingComplete if (AmongUsClient.Instance.AmClient) { __instance.VotingComplete(array, exiled, tie); } MessageWriter messageWriter = AmongUsClient.Instance.StartRpc(__instance.NetId, 23, Hazel.SendOption.Reliable); messageWriter.WriteBytesAndSize(array); messageWriter.Write((exiled != null) ? exiled.PlayerId : byte.MaxValue); messageWriter.Write(tie); messageWriter.EndMessage(); } return(false); }