Exemplo n.º 1
0
            public static bool UseButtonManager_DoClick(UseButtonManager __instance)
            {
                if (__instance.isActiveAndEnabled && PlayerControl.LocalPlayer != null &&
                    PlayerControl.LocalPlayer.Data != null && __instance.currentTarget == null) // currentTarget
                {
                    var myRole = PlayerControl.LocalPlayer.GetRole();
                    if (myRole == null || !myRole.CanSabotage(null))
                    {
                        return(true);
                    }
                    HudManager.Instance.ShowMap((Action <MapBehaviour>)(m =>
                    {
                        foreach (MapRoom mapRoom in m.infectedOverlay.rooms.ToArray().Where(r => !myRole.CanSabotage(r.room)))
                        {
                            mapRoom.gameObject.SetActive(false);
                        }

                        m.ShowInfectedMap();
                    }));

                    return(false);
                }

                return(true);
            }
Exemplo n.º 2
0
            public static bool Prefix(UseButtonManager __instance, IUsable CAKODNGLPDF)
            {
                if (CAKODNGLPDF == null)
                {
                    return(true);
                }

                var Console = CAKODNGLPDF.TryCast <Console>();

                if (Console == null)
                {
                    return(true);
                }

                if (!Map.ContainsKey(Console.ConsoleId))
                {
                    return(true);
                }

                var CustomUsable = Map[Console.ConsoleId];

                __instance.currentTarget    = CAKODNGLPDF;
                __instance.UseButton.sprite = CustomUsable.UseIcon != null
                                        ? CustomUsable.UseIcon
                                        : __instance.UseImage;
                CooldownHelpers.SetCooldownNormalizedUvs(__instance.UseButton);
                __instance.UseButton.material.SetFloat(Globals.PERCENT,
                                                       CustomUsable.PercentCooldown);
                __instance.UseButton.color = UseButtonManager.EnabledColor;

                return(false);
            }
Exemplo n.º 3
0
        public static bool Prefix(UseButtonManager __instance)
        {
            if (__instance.isActiveAndEnabled && PlayerControl.LocalPlayer && Tasks.NearestTask != null && Tasks.AllCustomPlateform != null)
            {
                Tasks.NearestTask.Use(PlayerControl.LocalPlayer);
                return(false);
            }

            return(true);
        }
Exemplo n.º 4
0
 public static void UseButtonManager_SetTarget(UseButtonManager __instance, [HarmonyArgument(0)] IUsable?target)
 {
     if (target == null && PlayerControl.LocalPlayer != null && PlayerControl.LocalPlayer.Data != null &&
         (PlayerControl.LocalPlayer.GetRole()?.CanSabotage(null) ?? false) &&
         PlayerControl.LocalPlayer.CanMove)
     {
         __instance.UseButton.sprite = TranslationController.Instance.GetImage(ImageNames.SabotageButton);
         CooldownHelpers.SetCooldownNormalizedUvs(__instance.UseButton);
         __instance.UseButton.color = UseButtonManager.EnabledColor;
     }
 }
Exemplo n.º 5
0
 public static void Postfix(UseButtonManager __instance)
 {
     if (HudPatch.currentTarget != null)
     {
         PlayerControl.LocalPlayer.UseClosest();
     }
     else
     {
         MapBehaviour.Instance.ShowInfectedMap();
     }
 }
Exemplo n.º 6
0
        public static void Postfix(UseButtonManager __instance, [HarmonyArgument(0)] IUsable target)
        {
            HudPatch.currentTarget = target;

            if (target == null)
            {
                if (!HudPatch.isImpostor()) // i dont wanna mess with it if they're already an impostor
                {
                    __instance.UseButton.sprite = __instance.SabotageImage;
                    __instance.UseButton.color  = UseButtonManager.EnabledColor;
                }
            }
        }
Exemplo n.º 7
0
 public static void Postfix(UseButtonManager __instance)
 {
     if (!(PlayerControl.AllPlayerControls.Count > 1 && PlayerControl.LocalPlayer.isMafioso() &&
           !Utils.Godfather.Data.IsDead))
     {
         return;
     }
     if (__instance.UseButton.sprite != __instance.SabotageImage)
     {
         return;
     }
     __instance.UseButton.sprite = __instance.UseImage;
     __instance.UseButton.color  = UseButtonManager.DisabledColor;
 }
Exemplo n.º 8
0
        public static bool Prefix(UseButtonManager __instance)
        {
            if (!(PlayerControl.AllPlayerControls.Count > 1 && PlayerControl.LocalPlayer.isMafioso() &&
                  !Utils.Godfather.Data.IsDead))
            {
                return(true);
            }
            var data = PlayerControl.LocalPlayer.Data;

            if (__instance.Field_7 != null)
            {
                return(true);
            }
            return(data == null || !data.IsImpostor);
        }
Exemplo n.º 9
0
        static void Postfix(UseButtonManager __instance)
        {
            if (__instance.Field_3 != null)
            {
                return;
            }

            // Mafia sabotage button render patch
            bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer);
            bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.Data.IsDead);

            if (blockSabotageJanitor || blockSabotageMafioso)
            {
                // __instance.UseButton.sprite = __instance.UseImage;
                __instance.UseButton.color = new Color(1f, 1f, 1f, 0.3f);
            }
        }
Exemplo n.º 10
0
        static void Postfix(UseButtonManager __instance)
        {
            if (__instance.FKANCEFMKPH != null)
            {
                return;
            }

            // Mafia sabotage button render patch
            bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer);
            bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.IDOFAMCIJKE.FGNJJFABIHJ);

            if (blockSabotageJanitor || blockSabotageMafioso)
            {
                __instance.UseButton.sprite = DestroyableSingleton <TranslationController> .CMJOLNCMAPD.GetImage(ImageNames.UseButton);

                __instance.UseButton.color = new Color(1f, 1f, 1f, 0.3f);
            }
        }
Exemplo n.º 11
0
        static bool Prefix(UseButtonManager __instance)
        {
            if (__instance.FKANCEFMKPH != null)
            {
                return(true);
            }

            // Mafia sabotage button click patch
            bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer);
            bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.IDOFAMCIJKE.FGNJJFABIHJ);

            if (blockSabotageJanitor || blockSabotageMafioso)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 12
0
        static bool Prefix(UseButtonManager __instance)
        {
            if (__instance.currentTarget != null)
            {
                return(true);
            }

            // Mafia sabotage button click patch
            bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer);
            bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.Data.IsDead);

            if (blockSabotageJanitor || blockSabotageMafioso)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 13
0
        static bool Prefix(UseButtonManager __instance)
        {
            if (__instance.LHAKKAAOLLM != null)
            {
                return(true);
            }

            // Mafia sabotage button click patch
            bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer);
            bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.PPMOEEPBHJO.IAGJEKLJCCI);

            if (blockSabotageJanitor || blockSabotageMafioso)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 14
0
        static void Postfix(UseButtonManager __instance)
        {
            // Trickster render special vent button
            if (__instance.currentTarget != null && Trickster.trickster != null && Trickster.trickster == PlayerControl.LocalPlayer)
            {
                Vent possibleVent = __instance.currentTarget.TryCast <Vent>();
                if (possibleVent != null && possibleVent.gameObject != null && possibleVent.gameObject.name.StartsWith("JackInTheBoxVent_"))
                {
                    __instance.UseButton.sprite = Trickster.getTricksterVentButtonSprite();
                }
            }

            // Mafia sabotage button render patch
            bool blockSabotageJanitor = (Janitor.janitor != null && Janitor.janitor == PlayerControl.LocalPlayer);
            bool blockSabotageMafioso = (Mafioso.mafioso != null && Mafioso.mafioso == PlayerControl.LocalPlayer && Godfather.godfather != null && !Godfather.godfather.Data.IsDead);

            if (__instance.currentTarget == null && (blockSabotageJanitor || blockSabotageMafioso))
            {
                __instance.UseButton.sprite = DestroyableSingleton <TranslationController> .Instance.GetImage(ImageNames.UseButton);

                __instance.UseButton.color = new Color(1f, 1f, 1f, 0.3f);
            }
        }