public static void Postfix(HudManager __instance) { if ( PlayerControl.AllPlayerControls.Count <= 1 || PlayerControl.LocalPlayer == null || PlayerControl.LocalPlayer.Data == null || !PlayerControl.LocalPlayer.Is(RoleEnum.Covert) ) { return; } Covert role = Role.GetRole <Covert>(PlayerControl.LocalPlayer); if (role.CovertButton == null) { role.CovertButton = Object.Instantiate(__instance.KillButton, HudManager.Instance.transform); role.CovertButton.renderer.enabled = true; } role.CovertButton.renderer.sprite = CovertSprite; role.CovertButton.gameObject.SetActive(!PlayerControl.LocalPlayer.Data.IsDead && !MeetingHud.Instance); if (role.IsCovert) { role.CovertButton.SetCoolDown(role.CovertTimeRemaining, CustomGameOptions.CovertDuration); return; } role.CovertButton.SetCoolDown(role.CooldownTimer(), CustomGameOptions.CovertCooldown); role.CovertButton.renderer.color = Palette.EnabledColor; role.CovertButton.renderer.material.SetFloat("_Desat", 0f); }
public static bool Prefix(KillButtonManager __instance) { if (!PlayerControl.LocalPlayer.Is(RoleEnum.Covert)) { return(true); } if ( !PlayerControl.LocalPlayer.CanMove || PlayerControl.LocalPlayer.Data.IsDead ) { return(false); } Covert role = Role.GetRole <Covert>(PlayerControl.LocalPlayer); if (__instance != role.CovertButton) { return(true); } if ( __instance.isCoolingDown || !__instance.isActiveAndEnabled || role.CooldownTimer() != 0 ) { return(false); } MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.GoCovert, SendOption.Reliable, -1); writer.Write(PlayerControl.LocalPlayer.PlayerId); AmongUsClient.Instance.FinishRpcImmediately(writer); role.GoCovert(); return(false); }