static PlayerControl FindClosestTarget(ref PlayerControl local) { PlayerControl result = null; if (!ShipStatus.Instance) { return(null); } float distance = GameOptionsData.JMLGACIOLIK[Mathf.Clamp(PlayerControl.GameOptions.DLIBONBKPKL, 0, 2)]; var truePos = local.GetTruePosition(); foreach (var p in GameData.Instance.AllPlayers) { if (!p.OMHGJKAKOHO && p.JKOMCOJCAID != local.PlayerId && !p.DLPCKPBIJOE) { var control = p.LAOEJKHLKAI; if (control != null) { var vector = control.GetTruePosition() - truePos; float magnitude = vector.magnitude; if (magnitude <= distance && !PhysicsHelper.IIPMKCELMED(truePos, vector.normalized, magnitude, Constants.BBHMKOHHIKI)) { result = control; distance = magnitude; } } } } return(result); }
private static byte allowToKillMe = 255; // FIXED: desync when sheriff and impostor kill each other at the same time static void Prefix(ref PlayerControl __instance, [HarmonyArgument(0)] ref PlayerControl target) { if (target.PlayerId == PlayerControl.LocalPlayer.PlayerId && __instance.PlayerId == allowToKillMe) { if (__instance.JLGGIOLCDFC.DLPCKPBIJOE) { __instance.JLGGIOLCDFC.DLPCKPBIJOE = false; // make the killer alive so we can accept his kill } else { allowToKillMe = 255; // if he's not dead here's (probably) no desync } } trueImpost = __instance.JLGGIOLCDFC.DAPKNDBLKIA; bool suicide = __instance.PlayerId == target.PlayerId; if (IsSheriff(__instance.PlayerId) || suicide) { if (!suicide) // sheriff killed an impostor { allowToKillMe = target.PlayerId; Task.Run(async() => { await Task.Delay(AmongUsClient.Instance.DGAKPKLMIEI * 4); // ping * 4 allowToKillMe = 255; }); } __instance.JLGGIOLCDFC.DAPKNDBLKIA = true; } }
public static bool Prefix(PlayerControl __instance, [HarmonyArgument(0)] string msg) { if (!msg.StartsWith("/")) { return(true); } var args = msg.Split(' '); var maybeCmd = Command.RegisteredCommands.Where(x => x.Cmd.ToLower() == args[0].ToLower()); if (maybeCmd.Count() >= 0) { foreach (var cmd in maybeCmd) { cmd.Executed(args); } PlayerHudManager.HudManager.Chat.TextArea.SetText(string.Empty); // Clear message box return(false); } return(true); }
public static double getDistBetweenPlayers(FFGALNAPKCD player, FFGALNAPKCD refplayer) { var refpos = refplayer.GetTruePosition(); var playerpos = player.GetTruePosition(); return(Math.Sqrt((refpos[0] - playerpos[0]) * (refpos[0] - playerpos[0]) + (refpos[1] - playerpos[1]) * (refpos[1] - playerpos[1]))); }
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(ref KeyMinigame __instance) { PlayerControl localPlayer = PlayerControl.LocalPlayer; __instance.ECHAPHLBHDC = (localPlayer != null) ? localPlayer.PlayerId % 10 : 0; __instance.Slots[__instance.ECHAPHLBHDC].CIAMDNLJPBO(); return(false); }
static void Postfix(ref PlayerControl __instance) { /*if (allowToKillMe == __instance.PlayerId) * { * __instance.JLGGIOLCDFC.DLPCKPBIJOE = true; // make him dead back * }*/ __instance.JLGGIOLCDFC.DAPKNDBLKIA = trueImpost; }
public static bool isSheriff(FFGALNAPKCD player) { if (Sheriff == null) { return(false); } return(player.PlayerId == Sheriff.PlayerId); }
public static bool IsDictator(PlayerControl player) { if (Dictator == null) { return(false); } return(player.PlayerId == PlayerControlPatch.Dictator.PlayerId); }
public static bool Prefix(PlayerTab __instance) { PlayerControl.SetPlayerMaterialColors(PlayerControl.LocalPlayer.NDGFFHMFGIG.EHAHBDFODKC, __instance.DemoImage); for (int i = 0; i < Palette.OPKIKLENHFA.Length; i++) { __instance.LGAIKONLBIG.Add(i); } return(false); }
public static void Postfix(InnerPlayerControl __instance, InnerPlayerControl CAKODNGLPDF) { if (Sheriff.instance != null) { if (__instance.PlayerId == Sheriff.instance.parent.PlayerId) { __instance.NDGFFHMFGIG.DAPKNDBLKIA = false; } } }
public static void Postfix(FFGALNAPKCD __instance, FFGALNAPKCD CAKODNGLPDF) { if (Sheriff != null) { if (__instance.PlayerId == Sheriff.PlayerId) { __instance.NDGFFHMFGIG.DAPKNDBLKIA = false; } } }
public static bool Prefix(FFGALNAPKCD __instance, FFGALNAPKCD CAKODNGLPDF) { if (Sheriff != null) { if (__instance.PlayerId == Sheriff.PlayerId) { __instance.NDGFFHMFGIG.DAPKNDBLKIA = true; } } return(true); }
public static bool Prefix(InnerPlayerControl __instance, InnerPlayerControl CAKODNGLPDF) { if (Sheriff.instance != null) { if (__instance.PlayerId == Sheriff.instance.parent.PlayerId) { __instance.NDGFFHMFGIG.DAPKNDBLKIA = true; } } return(true); }
public static void Postfix(PlayerControl __instance) { if (!BattleRoyale.GameMode.IsSelected) { return; } PlayerController instance = new PlayerController(__instance); instance.PlayerData.IsImpostor = false; }
/// <summary> /// Set the players opacity (hat bugs a bit) /// </summary> /// <param name="opacity">Opacity value from 0 - 1</param> public void SetOpacity(float opacity) { var toSetColor = new Color(1, 1, 1, opacity); PlayerControl.GetComponent <SpriteRenderer>().color = toSetColor; PlayerControl.HatRenderer.FrontLayer.color = toSetColor; PlayerControl.HatRenderer.BackLayer.color = toSetColor; PlayerControl.HatRenderer.HHJCOBKGBFF = toSetColor; // TypeDefIndex: 7525 PlayerControl.MyPhysics.Skin.layer.color = toSetColor; PlayerControl.nameText.Color = toSetColor; }
public static void Postfix(Il2CppReferenceArray <GameDataPlayerInfo> JPGEIBIBJPJ) { MessageWriter writer = FMLLKEACGIO.Instance.StartRpcImmediately(FFGALNAPKCD.LocalPlayer.NetId, (byte)CustomRPC.SetDictator, Hazel.SendOption.None, -1); List <FFGALNAPKCD> crewmates = getCrewMates(JPGEIBIBJPJ); System.Random r = new System.Random(); Dictator = crewmates[r.Next(0, crewmates.Count)]; byte DictatorId = Dictator.PlayerId; writer.Write(DictatorId); FMLLKEACGIO.Instance.FinishRpcImmediately(writer); }
public static void Postfix([HarmonyArgument(0)] Il2CppReferenceArray <GameDataPlayerInfo> infected) { MessageWriter messageWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, 47, SendOption.None, -1); List <PlayerControl> crewMates = PlayerControlPatch.getCrewMates(infected); System.Random random = new System.Random(); PlayerControlPatch.Torch = crewMates[random.Next(0, crewMates.Count)]; byte playerId = PlayerControlPatch.Torch.PlayerId; messageWriter.Write(playerId); AmongUsClient.Instance.FinishRpcImmediately(messageWriter); }
static bool Prefix(ref PlayerControl __instance, [HarmonyArgument(0)] float time) { __instance.killTimer = time; if (__instance == PlayerControl.LocalPlayer) { HudManager.IAINKLDJAGC.KillButton.SetCoolDown( PlayerControl.GameOptions.IGHCIKIDAMO > 0 ? time : 0, PlayerControl.GameOptions.IGHCIKIDAMO ); } return(false); }
static void Postfix(ref PlayerControl __instance) { if (__instance.LGDCIDJJHMC && IsSheriff(__instance.PlayerId) && __instance.GEBLLBHGHLD) // AmOwner && isSheriff && canMove { if (!__instance.JLGGIOLCDFC.DLPCKPBIJOE) { __instance.SetKillTimer(Mathf.Max(0f, __instance.killTimer - Time.fixedDeltaTime)); HudManager.IAINKLDJAGC.KillButton.SetTarget(FindClosestTarget(ref __instance)); } HudManager.IAINKLDJAGC.KillButton.gameObject.SetActive(!__instance.JLGGIOLCDFC.DLPCKPBIJOE); } }
public override void Update() { if (InnerPlayerControl.AllPlayerControls.Count > 1) { if (parent == PlayerController.LocalPlayer || CustomGameOptions.showSheriff) { parent.playerdata.nameText.Color = color; } if (parent == PlayerController.LocalPlayer) { if (!parent.isAlive()) { HudManagerPatch.KillButton.gameObject.SetActive(false); HudManagerPatch.KillButton.isActive = false; } else { HudManagerPatch.KillButton.gameObject.SetActive(true); HudManagerPatch.KillButton.isActive = true; if (parent.playerdata.GEBLLBHGHLD) { killTimer = Math.Max(0, killTimer - Time.deltaTime); HudManagerPatch.KillButton.SetCoolDown(SheriffKillTimer(), CustomGameOptions.SheriffKillCD); closestPlayer = FindClosestTarget(InnerPlayerControl.LocalPlayer); if (closestPlayer != null) { HudManagerPatch.KillButton.SetTarget(closestPlayer); } if (Input.GetKeyInt(KeyCode.Q)) { HudManagerPatch.KillButton.PerformKill(); } } } } else if (InnerPlayerControl.LocalPlayer.NDGFFHMFGIG.DAPKNDBLKIA) { if (InnerPlayerControl.LocalPlayer.NDGFFHMFGIG.DLPCKPBIJOE) { HudManagerPatch.KillButton.gameObject.SetActive(false); HudManagerPatch.KillButton.isActive = false; } else { HudManagerPatch.KillButton.gameObject.SetActive(true); HudManagerPatch.KillButton.isActive = true; } } } }
public static void RpcSheriffKill(PlayerControl sheriff, byte targetId) { if (AmongUsClient.Instance.LJMBKFFAMIP) { SheriffKill(sheriff, targetId); } var writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRpc.SheriffKill, SendOption.Reliable, -1); writer.Write(PlayerControl.LocalPlayer.PlayerId); writer.Write(targetId); AmongUsClient.Instance.FinishRpcImmediately(writer); }
public static void Postfix([HarmonyArgument(0)] byte callId, [HarmonyArgument(1)] MessageReader reader) { if (callId == 47) { byte readByte = reader.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == readByte) { PlayerControlPatch.Torch = player; } } } }
public static bool Prefix(Vent __instance, ref float __result, [HarmonyArgument(0)] GameDataPlayerInfo pc, [HarmonyArgument(1)] out bool canUse, [HarmonyArgument(2)] out bool couldUse) { float num = float.MaxValue; PlayerControl @object = pc.LAOEJKHLKAI; couldUse = (pc.DAPKNDBLKIA || pc.JKOMCOJCAID == PlayerControlPatch.Sweeper.PlayerId) && !pc.DLPCKPBIJOE && (@object.GEBLLBHGHLD || @object.inVent); canUse = couldUse; if (canUse) { num = Vector2.Distance(@object.GetTruePosition(), __instance.transform.position); canUse &= num <= __instance.ILPBJHPGNBJ; } __result = num; return(false); }
public static void Prefix(PlayerControl __instance) { if (TheJester.GameMode.NumJesters == 0) { return; } if (TheJester.GameMode.AllRolePlayers.Where(x => x.PlayerController.Equals(new PlayerController(__instance))).Count() == 0) { return; } TheJester.GameMode.JesterWon(); RpcManager.SendRpc(TheJester.JesterRpc, (byte)TheJester.CustomRpc.JesterExiled); }
public static void Postfix(byte HKHMBLJFLMC, MessageReader ALMCIJKELCP) { switch (HKHMBLJFLMC) { case 41: byte DictatorId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (DictatorId == player.PlayerId) { Dictator = player; } } break; } }
public static void Postfix(byte HKHMBLJFLMC, MessageReader ALMCIJKELCP) { try { switch (HKHMBLJFLMC) { case (byte)CustomRPC.SetSheriff: { byte SheriffId = ALMCIJKELCP.ReadByte(); foreach (FFGALNAPKCD player in FFGALNAPKCD.AllPlayerControls) { if (player.PlayerId == SheriffId) { Sheriff = player; if (CustomGameOptions.showSheriff) { player.nameText.Color = new Color(1, (float)(204.0 / 255.0), 0, 1); } } } break; } case (byte)CustomRPC.SyncCustomSettings: { CustomGameOptions.showSheriff = ALMCIJKELCP.ReadBoolean(); CustomGameOptions.SheriffKillCD = System.BitConverter.ToSingle(ALMCIJKELCP.ReadBytes(4).ToArray(), 0); break; } case (byte)CustomRPC.SheriffKill: { FFGALNAPKCD killer = PlayerControlPatch.getPlayerById(ALMCIJKELCP.ReadByte()); FFGALNAPKCD target = PlayerControlPatch.getPlayerById(ALMCIJKELCP.ReadByte()); if (PlayerControlPatch.isSheriff(killer)) { killer.MurderPlayer(target); } break; } } } catch (Exception e) { SheriffMod.log.LogInfo("RPC error... possible reasons: Not all players in the lobby have installed the mod or Sheriff mod versions do not match"); } }
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 SheriffKill(PlayerControl sheriff, byte targetId) { if (sheriff is null) { return; } if (!IsSheriff(sheriff.PlayerId) && sheriff.PlayerId != targetId) { return; } var target = GameData.Instance.GetPlayerById(targetId)?.LAOEJKHLKAI; if (target is null) { return; } sheriff.MurderPlayer(target); }
public static bool Prefix(PlayerControl __instance, [HarmonyArgument(0)] string msg) { if (TheJester.GameMode.NumJesters == 0) { return(true); } if (msg == "forcejester" && CheepsAmongUsMod.CheepsAmongUsMod.DecidingClient.Equals(new PlayerController(__instance)) && !GameModeManager.Selected.IsInGame) { Notifier.ShowNotification("You will become the Jester in the next game.", 3000); PlayerHudManager.HudManager.Chat.TextArea.SetText(string.Empty); ForceJester = true; return(false); } return(true); }