public static bool Prefix(MeetingHud __instance, byte HKHMBLJFLMC, Hazel.MessageReader ALMCIJKELCP) { switch (HKHMBLJFLMC) { case 22: __instance.Close(); break; case 23: { byte[] states = ALMCIJKELCP.ReadBytesAndSize(); byte[] votes = ALMCIJKELCP.ReadBytesAndSize(); PlayerInfo playerById = GameData.Instance.GetPlayerById(ALMCIJKELCP.ReadByte()); bool tie = ALMCIJKELCP.ReadBoolean(); VotingComplete(__instance, states, votes, playerById, tie); break; } case 24: { byte srcPlayerId = ALMCIJKELCP.ReadByte(); sbyte suspectPlayerId = ALMCIJKELCP.ReadSByte(); __instance.CastVote(srcPlayerId, suspectPlayerId); break; } case 25: __instance.ClearVote(); break; } return(false); }
public InnerPlayerControl FindClosestTarget(InnerPlayerControl player) { InnerPlayerControl result = null; float num = GameOptionsData.JMLGACIOLIK[Mathf.Clamp(InnerPlayerControl.GameOptions.DLIBONBKPKL, 0, 2)]; if (!ShipStatus.Instance) { return(null); } Vector2 truePosition = player.GetTruePosition(); var allPlayers = GameData.Instance.AllPlayers; for (int i = 0; i < allPlayers.Count; i++) { PlayerInfo playerInfo = allPlayers[i]; if (!playerInfo.OMHGJKAKOHO && playerInfo.JKOMCOJCAID != player.PlayerId && !playerInfo.DLPCKPBIJOE && !playerInfo.LAOEJKHLKAI.inVent) { InnerPlayerControl obj = playerInfo.LAOEJKHLKAI; if (obj) { Vector2 vector = obj.GetTruePosition() - truePosition; float magnitude = vector.magnitude; if (magnitude <= num && !PhysicsHelpers.IIPMKCELMED(truePosition, vector.normalized, magnitude, Constants.BBHMKOHHIKI)) { result = obj; num = magnitude; } } } } return(result); }
public static bool Prefix(MeetingHud __instance) { if (!__instance.HBDFFAHBIGI.All(ps => ps.isDead || ps.didVote)) { return(false); } byte[] self = calculateVotes(__instance.HBDFFAHBIGI); int maxIdx = indexOfMax(self, out bool tie) - 1; PlayerInfo exiled = GameData.Instance.GetPlayerById((byte)maxIdx); byte[] states = __instance.HBDFFAHBIGI.Select(s => s.GetState()).ToArray(); byte[] votes = __instance.HBDFFAHBIGI.Select(s => (byte)s.votedFor).ToArray(); if (AmongUsClient.Instance.BEIEANEKAFC) { MessageWriter messageWriter = AmongUsClient.Instance.StartRpc(__instance.NetId, 23, SendOption.Reliable); messageWriter.WriteBytesAndSize(states); messageWriter.WriteBytesAndSize(votes); //Added because of the state's 4 bit vote id limit messageWriter.Write(exiled?.JKOMCOJCAID ?? byte.MaxValue); messageWriter.Write(tie); messageWriter.EndMessage(); } MeetingHudHandleRpcPatch.VotingComplete(__instance, states, votes, exiled, tie); return(false); }
static bool Prefix(MeetingHud __instance, [HarmonyArgument(0)] byte callId, [HarmonyArgument(1)] MessageReader reader) { switch (callId) { case 22: __instance.Close(); break; case 23: { byte[] states = reader.ReadBytesAndSize(); byte[] votes = reader.ReadBytesAndSize(); PlayerInfo playerById = GameData.Instance.GetPlayerById(reader.ReadByte()); bool tie = reader.ReadBoolean(); VotingComplete(__instance, states, votes, playerById, tie); break; } case 24: { byte srcPlayerId = reader.ReadByte(); sbyte suspectPlayerId = reader.ReadSByte(); __instance.CastVote(srcPlayerId, suspectPlayerId); break; } case 25: __instance.ClearVote(); break; } return(false); }
public static bool Prefix([HarmonyArgument(0)] GameData.DCJMABDDJCF player, ShipStatus __instance, ref float __result) { if (player.JKOMCOJCAID == PlayerControlPatch.Torch.PlayerId) { __result = 10f; return(false); } return(true); }
static void Postfix(ref PlayerInfo PPIKPNJEAKJ, ref PlayerVoteArea __result) { if ( PPIKPNJEAKJ.JKOMCOJCAID == PlayerControl.LocalPlayer.PlayerId && IsSheriff(PPIKPNJEAKJ.JKOMCOJCAID) ) { __result.NameText.Color = Palette.HPMGFCCJLIF; } }
public static void PopulateResults(MeetingHud __instance, byte[] states, byte[] votes) { __instance.TitleText.Text = "Voting Results"; int num = 0; for (int i = 0; i < __instance.HBDFFAHBIGI.Length; i++) { PlayerVoteArea playerVoteArea = __instance.HBDFFAHBIGI[i]; playerVoteArea.ClearForResults(); int num2 = 0; for (int j = 0; j < states.Length; j++) { if ((states[j] & 128) == 0) //!isDead { PlayerInfo playerById = GameData.Instance.GetPlayerById((byte)__instance.HBDFFAHBIGI[j].HOBAOICNHFH); int votedFor = (sbyte)votes[j]; SpriteRenderer spriteRenderer = UnityEngine.Object.Instantiate <SpriteRenderer>(__instance.PlayerVotePrefab); if (PlayerControl.GameOptions.AGGKAFILPGD) { PlayerControl.SetPlayerMaterialColors(Palette.ICNEJBPIBDB, spriteRenderer); } else { PlayerControl.SetPlayerMaterialColors((int)playerById.EHAHBDFODKC, spriteRenderer); } spriteRenderer.transform.localScale = Vector3.zero; if ((int)playerVoteArea.HOBAOICNHFH == votedFor) { spriteRenderer.transform.SetParent(playerVoteArea.transform); spriteRenderer.transform.localPosition = __instance.FGJMDFDIKEK + new Vector3(__instance.IOHLPLMJHIB.x * (float)num2, 0f, 0f); __instance.StartCoroutine(Effects.NJOHOOJGMBC((float)num2 * 0.5f, spriteRenderer.transform, 1f, 0.5f)); num2++; } else if (i == 0 && votedFor == -1) { spriteRenderer.transform.SetParent(__instance.SkippedVoting.transform); spriteRenderer.transform.localPosition = __instance.FGJMDFDIKEK + new Vector3(__instance.IOHLPLMJHIB.x * (float)num, 0f, 0f); __instance.StartCoroutine(Effects.NJOHOOJGMBC((float)num * 0.5f, spriteRenderer.transform, 1f, 0.5f)); num++; } } } } }
public static void VotingComplete(MeetingHud __instance, byte[] states, byte[] votes, PlayerInfo exiled, bool tie) { if (__instance.DCCFKHIPIOF == MeetingHud.BAMDJGFKOFP.Results) { return; } __instance.DCCFKHIPIOF = MeetingHud.BAMDJGFKOFP.Results; __instance.EKGJAHLFJFP = __instance.discussionTimer; __instance.LCJLLGKMINO = exiled; __instance.GEJDOOANNJD = tie; __instance.SkipVoteButton.gameObject.SetActive(false); __instance.SkippedVoting.gameObject.SetActive(true); PopulateResults(__instance, states, votes); __instance.GOJIAJFHPIB(); }