コード例 #1
0
    public static void Enable()
    {
        bool flag = !DrawUtilities.ShouldRun();

        if (!flag)
        {
            MiscOptions.Compass = OV_PlayerLifeUI.WasCompassEnabled;
            PlayerLifeUI.updateCompass();
        }
    }
コード例 #2
0
        public static void Enable()
        {
            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            MiscOptions.Compass = WasCompassEnabled;
            PlayerLifeUI.updateCompass();
        }
コード例 #3
0
    public static void Enable()
    {
        bool flag = !DrawUtilities.ShouldRun();

        if (!flag)
        {
            MiscOptions.ShowPlayersOnMap = OV_LevelLighting.WasEnabled;
            OV_LevelLighting.OV_updateLighting();
        }
    }
コード例 #4
0
        public static void Enable()
        {
            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            MiscOptions.ShowPlayersOnMap = WasEnabled;
            OV_updateLighting();
        }
コード例 #5
0
        public static void Disable()
        {
            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            WasEnabled = MiscOptions.ShowPlayersOnMap;
            MiscOptions.ShowPlayersOnMap = false;
            OV_updateLighting();
        }
コード例 #6
0
        public static void Disable()
        {
            bool flag  = !DrawUtilities.ShouldRun();
            bool flag2 = !flag;

            if (flag2)
            {
                OV_LevelLighting.WasEnabled  = MiscOptions.ShowPlayersOnMap;
                MiscOptions.ShowPlayersOnMap = false;
                OV_LevelLighting.OV_updateLighting();
            }
        }
コード例 #7
0
        public static void Disable()
        {
            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            WasCompassEnabled   = MiscOptions.Compass;
            MiscOptions.Compass = false;

            PlayerLifeUI.updateCompass();
        }
コード例 #8
0
        public static void Disable()
        {
            bool flag  = !DrawUtilities.ShouldRun();
            bool flag2 = !flag;

            if (flag2)
            {
                OV_PlayerLifeUI.WasCompassEnabled = MiscOptions.Compass;
                MiscOptions.Compass = false;
                PlayerLifeUI.updateCompass();
            }
        }
コード例 #9
0
        void OnGUI()
        {
            if (RadarOptions.Enabled && DrawUtilities.ShouldRun())
            {
                RadarOptions.vew.width = RadarOptions.vew.height = RadarOptions.RadarSize + 10;

                GUI.color          = new Color(1f, 1f, 1f, 0f);
                veww               = GUILayout.Window(345, RadarOptions.vew, RadarMenu, "Radar");
                RadarOptions.vew.x = veww.x;
                RadarOptions.vew.y = veww.y;
                GUI.color          = Color.white;
            }
        }
コード例 #10
0
        public static void Enable()
        {
            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            MiscOptions.ShowPlayersOnMap = WasEnabled;
            MiscOptions.GPS = WasGPSEnabled;

            RefreshStaticMap.Invoke(OptimizationVariables.MainPlayer.inventory, new object[] { GetMap() });
            OV_refreshDynamicMap();
        }
コード例 #11
0
        public static void OV_updateLighting()
        {
            float TBackup = LevelLighting.time;

            if (!DrawUtilities.ShouldRun() || !MiscOptions.SetTimeEnabled || PlayerCoroutines.IsSpying)
            {
                OverrideUtilities.CallOriginal();
                return;
            }

            Time.SetValue(null, MiscOptions.Time);
            OverrideUtilities.CallOriginal();
            Time.SetValue(null, TBackup);
        }
コード例 #12
0
        public void OnGUI()
        {
            if (Event.current.type != EventType.Repaint)
            {
                return;
            }

            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            DrawUtilities.DrawLabel(ESPComponent.ESPFont, LabelLocation.BottomRight, new Vector2(10, 20), $"TA Charge: {OV_PlayerInput.SequenceDiff} Ticks", Color.white, Color.black, 1, null, 13);
        }
コード例 #13
0
        public override void DrawHighlights(SpriteBatch sb, GameTime gt)
        {
            if (gt.TotalGameTime.Seconds > prevFlickerTime)
            {
                flicker         = !flicker;
                prevFlickerTime = gt.TotalGameTime.Seconds;
            }


            if (IsFocused && flicker)
            {
                Vector2 drawVec = new Vector2(this.GetRelativeDrawOffset().X + typeable.Font.MeasureString(typeable.Text.Substring(0, typeable.CursorPosition)).X, this.GetRelativeDrawOffset().Y);

                DrawUtilities.DrawLinePositiveY(sb, drawVec, drawVec + new Vector2(0, -this.Height), 1, Color.White);
            }
        }
コード例 #14
0
    public static void OV_updateLighting()
    {
        float time = LevelLighting.time;
        bool  flag = !DrawUtilities.ShouldRun() || !MiscOptions.SetTimeEnabled || PlayerCoroutines.IsSpying;

        if (flag)
        {
            OverrideUtilities.CallOriginal(null, new object[0]);
        }
        else
        {
            OV_LevelLighting.Time.SetValue(null, MiscOptions.Time);
            OverrideUtilities.CallOriginal(null, new object[0]);
            OV_LevelLighting.Time.SetValue(null, time);
        }
    }
コード例 #15
0
ファイル: Button.cs プロジェクト: lexwebb/InfiniteBoxEngine
 public Button(String name, String text, Vector2 position, int width, int height, Control alignedTo, Color color, Color hoverColor, Color heldColor) :
     base(position, width, height, alignedTo,
          new Dictionary <string, Texture2D> {
     { "image", DrawUtilities.GetWhitePixelTexture() },
     { "hoverImage", DrawUtilities.GetWhitePixelTexture() },
     { "heldImage", DrawUtilities.GetWhitePixelTexture() }
 })
 {
     this.currentImage = Images["image"];
     this.font         = EngineContentManager.GetXNAContent().Load <SpriteFont>("Visitor");
     this.text         = text;
     this.color        = color;
     this.heldColor    = heldColor;
     this.hoverColor   = hoverColor;
     this.currentColor = color;
 }
コード例 #16
0
        public static void Enable()
        {
            bool flag  = !DrawUtilities.ShouldRun();
            bool flag2 = !flag;

            if (flag2)
            {
                MiscOptions.ShowPlayersOnMap = OV_PlayerDashboardInformationUI.WasEnabled;
                MiscOptions.GPS = OV_PlayerDashboardInformationUI.WasGPSEnabled;
                OV_PlayerDashboardInformationUI.RefreshStaticMap.Invoke(OptimizationVariables.MainPlayer.inventory, new object[]
                {
                    OV_PlayerDashboardInformationUI.GetMap()
                });
                OV_PlayerDashboardInformationUI.OV_refreshDynamicMap();
            }
        }
コード例 #17
0
        public void DrawBone(SpriteBatch sb, Vector2 originPosition, Vector2 endPosition, float length, float rotation, Color color)
        {
            //Center Line
            DrawUtilities.DrawLineNegativeY(sb, originPosition, endPosition, 1, color);
            //Left line
            Vector2 pos = originPosition - new Vector2(5, 0);
            Vector2 pos2;

            pos2.X = (float)Math.Cos(-rotation) * (pos.X - originPosition.X) - (float)Math.Sin(-rotation) * (pos.Y - originPosition.Y) + originPosition.X;
            pos2.Y = (float)Math.Sin(-rotation) * (pos.X - originPosition.X) + (float)Math.Cos(-rotation) * (pos.Y - originPosition.Y) + originPosition.Y;
            DrawUtilities.DrawLineNegativeY(sb, pos2, endPosition, 1, color);
            //Right line
            pos    = originPosition + new Vector2(5, 0);
            pos2.X = (float)Math.Cos(-rotation) * (pos.X - originPosition.X) - (float)Math.Sin(-rotation) * (pos.Y - originPosition.Y) + originPosition.X;
            pos2.Y = (float)Math.Sin(-rotation) * (pos.X - originPosition.X) + (float)Math.Cos(-rotation) * (pos.Y - originPosition.Y) + originPosition.Y;
            DrawUtilities.DrawLineNegativeY(sb, pos2, endPosition, 1, color);
        }
コード例 #18
0
        public static void DisableAllVisuals()
        {
            SpyManager.InvokePre();
            if (DrawUtilities.ShouldRun())
            {
                if (OptimizationVariables.MainPlayer.equipment.asset is ItemGunAsset pAsset)
                {
                    UseableGun PGun = OptimizationVariables.MainPlayer.equipment.useable as UseableGun;

                    PlayerUI.updateCrosshair(PGun.isAiming
                                                ? WeaponComponent.AssetBackups[pAsset.id][5]
                                                : WeaponComponent.AssetBackups[pAsset.id][6]);
                }
            }

            SpyManager.DestroyComponents();
        }
コード例 #19
0
 // Token: 0x06000170 RID: 368 RVA: 0x00002B12 File Offset: 0x00000D12
 public static IEnumerator AimToObject()
 {
     for (;;)
     {
         bool flag  = !DrawUtilities.ShouldRun() || !AimbotOptions.Enabled;
         bool flag4 = flag;
         if (flag4)
         {
             yield return(new WaitForSeconds(0.1f));
         }
         else
         {
             bool flag2 = AimbotCoroutines.LockedObject != null && AimbotCoroutines.LockedObject.transform != null && ESPComponent.MainCamera != null;
             bool flag5 = flag2;
             if (flag5)
             {
                 bool flag3 = HotkeyUtilities.IsHotkeyHeld("_AimbotKey") || !AimbotOptions.OnKey;
                 bool flag6 = flag3;
                 if (flag6)
                 {
                     AimbotCoroutines.IsAiming = true;
                     bool smooth = AimbotOptions.Smooth;
                     bool flag7  = smooth;
                     if (flag7)
                     {
                         AimbotCoroutines.SmoothAim(AimbotCoroutines.LockedObject);
                     }
                     else
                     {
                         AimbotCoroutines.Aim(AimbotCoroutines.LockedObject);
                     }
                 }
                 else
                 {
                     AimbotCoroutines.IsAiming = false;
                 }
             }
             else
             {
                 AimbotCoroutines.IsAiming = false;
             }
             yield return(new WaitForEndOfFrame());
         }
     }
     yield break;
 }
コード例 #20
0
    public void FixedUpdate()
    {
        bool flag = !DrawUtilities.ShouldRun();

        if (!flag)
        {
            bool flag2 = MiscOptions.SpectatedPlayer != null && !PlayerCoroutines.IsSpying;
            if (flag2)
            {
                OptimizationVariables.MainPlayer.look.isOrbiting     = true;
                OptimizationVariables.MainPlayer.look.orbitPosition  = MiscOptions.SpectatedPlayer.transform.position - OptimizationVariables.MainPlayer.transform.position;
                OptimizationVariables.MainPlayer.look.orbitPosition += new Vector3(0f, 3f, 0f);
            }
            else
            {
                OptimizationVariables.MainPlayer.look.isOrbiting = MiscOptions.Freecam;
            }
        }
    }
コード例 #21
0
        // Token: 0x060001AE RID: 430 RVA: 0x00002C14 File Offset: 0x00000E14
        public static IEnumerator PickupItems()
        {
            for (;;)
            {
                bool flag  = !DrawUtilities.ShouldRun() || !ItemOptions.AutoItemPickup;
                bool flag4 = flag;
                if (flag4)
                {
                    yield return(new WaitForSeconds(0.5f));
                }
                else
                {
                    Collider[] array = Physics.OverlapSphere(OptimizationVariables.MainPlayer.transform.position, 19f, RayMasks.ITEM);
                    int        num;
                    for (int i = 0; i < array.Length; i = num + 1)
                    {
                        Collider col   = array[i];
                        bool     flag2 = col == null || col.GetComponent <InteractableItem>() == null || col.GetComponent <InteractableItem>().asset == null;
                        bool     flag5 = !flag2;
                        if (flag5)
                        {
                            InteractableItem item  = col.GetComponent <InteractableItem>();
                            bool             flag3 = !ItemUtilities.Whitelisted(item.asset, ItemOptions.ItemFilterOptions);
                            bool             flag6 = !flag3;
                            if (flag6)
                            {
                                item.use();
                                col  = null;
                                item = null;
                            }
                            item = null;
                        }
                        num = i;
                        col = null;
                    }
                    yield return(new WaitForSeconds((float)(ItemOptions.ItemPickupDelay / 1000)));

                    array = null;
                    array = null;
                }
            }
            yield break;
        }
コード例 #22
0
        public static IEnumerator UpdateBodiesInMotionSet()
        {
            while (true)
            {
                if (!DrawUtilities.ShouldRun() || !WeaponOptions.EnableBulletDropPrediction)
                {
                    yield return(new WaitForSeconds(1));

                    continue;
                }

                Level.effects.FindAllChildrenWithName("Projectile", gameObjectOut);
                Level.effects.FindAllChildrenWithName("Throwable", gameObjectOut);

                foreach (var gameObject in gameObjectOut)
                {
                    if (gameObject.GetComponent <Rigidbody>()?.velocity == Vector3.zero)
                    {
                        continue;
                    }

                    if (gameObject.name == "Projectile")
                    {
                        TrajectoryComponent.BodiesInMotion.Add(gameObject);
                    }
                    else if (gameObject.name == "Throwable")
                    {
                        var sticky = gameObject.GetComponent <StickyGrenade>();
                        if (sticky != null && gameObject.GetComponent <Rigidbody>()?.useGravity == false)
                        {
                            continue;
                        }

                        TrajectoryComponent.BodiesInMotion.Add(gameObject);
                    }
                }

                gameObjectOut.Clear();

                yield return(new WaitForSeconds(0.2F));
            }
        }
コード例 #23
0
        public void FixedUpdate()
        {
            if (!DrawUtilities.ShouldRun())
            {
                return;
            }

            if (MiscOptions.SpectatedPlayer != null && !PlayerCoroutines.IsSpying)
            {
                OptimizationVariables.MainPlayer.look.isOrbiting = true;

                OptimizationVariables.MainPlayer.look.orbitPosition =
                    MiscOptions.SpectatedPlayer.transform.position -
                    OptimizationVariables.MainPlayer.transform.position;

                OptimizationVariables.MainPlayer.look.orbitPosition += new Vector3(0, 3, 0);
            }
            else
            {
                OptimizationVariables.MainPlayer.look.isOrbiting = MiscOptions.Freecam;
            }
        }
コード例 #24
0
        public static IEnumerator PickupItems()
        {
            // #if DEBUG
            DebugUtilities.Log("Starting Item Coroutine");
            //  #endif

            while (true)
            {
                if (!DrawUtilities.ShouldRun() || !ItemOptions.AutoItemPickup)
                {
                    yield return(new WaitForSeconds(0.5f));

                    continue;
                }

                Collider[] array = Physics.OverlapSphere(OptimizationVariables.MainPlayer.transform.position, 19f, RayMasks.ITEM);

                for (int i = 0; i < array.Length; i++)
                {
                    Collider col = array[i];
                    if (col == null || col.GetComponent <InteractableItem>() == null ||
                        col.GetComponent <InteractableItem>().asset == null)
                    {
                        continue;
                    }

                    InteractableItem item = col.GetComponent <InteractableItem>();

                    if (!ItemUtilities.Whitelisted(item.asset, ItemOptions.ItemFilterOptions))
                    {
                        continue;
                    }

                    item.use();
                }

                yield return(new WaitForSeconds(ItemOptions.ItemPickupDelay / 1000));
            }
        }
コード例 #25
0
    public static void DisableAllVisuals()
    {
        SpyManager.InvokePre();
        bool flag = DrawUtilities.ShouldRun();

        if (flag)
        {
            ItemGunAsset itemGunAsset;
            bool         flag2 = (itemGunAsset = (OptimizationVariables.MainPlayer.equipment.asset as ItemGunAsset)) != null;
            if (flag2)
            {
                UseableGun useableGun = OptimizationVariables.MainPlayer.equipment.useable as UseableGun;
                PlayerUI.updateCrosshair(useableGun.isAiming ? WeaponComponent.AssetBackups[itemGunAsset.id][5] : WeaponComponent.AssetBackups[itemGunAsset.id][6]);
            }
        }
        if (LevelLighting.seaLevel == 0f)
        {
            LevelLighting.seaLevel = MiscOptions.Altitude;
        }

        SpyManager.DestroyComponents();
    }
コード例 #26
0
 // Token: 0x06000183 RID: 387 RVA: 0x00002B74 File Offset: 0x00000D74
 public static IEnumerator DoChams()
 {
     DebugUtilities.Log("Starting Chams Coroutine");
     for (;;)
     {
         bool flag  = !DrawUtilities.ShouldRun() || ESPCoroutines.UnlitChams == null;
         bool flag2 = flag;
         if (flag2)
         {
             yield return(new WaitForSeconds(1f));
         }
         else
         {
             try
             {
                 bool chamsEnabled = ESPOptions.ChamsEnabled;
                 bool flag3        = chamsEnabled;
                 if (flag3)
                 {
                     ESPCoroutines.EnableChams();
                 }
                 else
                 {
                     ESPCoroutines.DisableChams();
                 }
             }
             catch (Exception ex2)
             {
                 Exception ex = ex2;
                 Exception e  = ex;
                 Debug.LogException(e);
                 e = null;
             }
             yield return(new WaitForSeconds(5f));
         }
     }
     yield break;
 }
コード例 #27
0
ファイル: OV_Input.cs プロジェクト: keenan-smith/Thanking
        public static bool OV_GetKey(KeyCode key)
        {
            if (!DrawUtilities.ShouldRun() || !InputEnabled)
            {
                return((bool)OverrideUtilities.CallOriginal(null, key));
            }

            if (key == ControlsSettings.primary && TriggerbotOptions.IsFiring)
            {
                return(true);
            }

            if ((key == ControlsSettings.left ||
                 key == ControlsSettings.right ||
                 key == ControlsSettings.up ||
                 key == ControlsSettings.down) &&
                MiscOptions.SpectatedPlayer != null)
            {
                return(false);
            }

            return((bool)OverrideUtilities.CallOriginal(null, key));
        }
コード例 #28
0
        public static bool OV_GetKey(KeyCode key)
        {
            bool flag  = !DrawUtilities.ShouldRun() || !OV_Input.InputEnabled;
            bool flag2 = flag;
            bool result;

            if (flag2)
            {
                result = (bool)OverrideUtilities.CallOriginal(null, new object[]
                {
                    key
                });
            }
            else
            {
                bool flag3 = key == ControlsSettings.primary && TriggerbotOptions.IsFiring;
                bool flag4 = flag3;
                result = (flag4 || (((key != ControlsSettings.left && key != ControlsSettings.right && key != ControlsSettings.up && key != ControlsSettings.down) || !(MiscOptions.SpectatedPlayer != null)) && (bool)OverrideUtilities.CallOriginal(null, new object[]
                {
                    key
                })));
            }
            return(result);
        }
コード例 #29
0
        public static void drawLine(List <NodeInfo> rayList)
        {
            List <IPoint>        ps    = new List <IPoint>();
            IGraphicsContainer3D layer = GISMapApplication.Instance.GetLayer(LayerNames.Rays) as IGraphicsContainer3D;

            LTE.Geometric.Point t;
            for (int i = 0, cnt = rayList.Count; i < cnt; i++)
            {
                t = rayList[i].PointOfIncidence;
                IPoint t_p = new PointClass();
                t_p.X = t.X;
                t_p.Y = t.Y;
                t_p.Z = t.Z;
                ps.Add(t_p);
                t     = rayList[i].CrossPoint;
                t_p   = new PointClass();
                t_p.X = t.X;
                t_p.Y = t.Y;
                t_p.Z = t.Z;
                ps.Add(t_p);
                DrawUtilities.DrawLine(layer, ps);
                ps.Clear();
            }
        }
コード例 #30
0
        public void OV_Update()
        {
            bool flag = !DrawUtilities.ShouldRun();

            if (!flag)
            {
                bool flag2 = OptimizationVariables.MainPlayer.stance.stance != EPlayerStance.DRIVING && OptimizationVariables.MainPlayer.stance.stance != EPlayerStance.SITTING && !OptimizationVariables.MainPlayer.life.isDead && !OptimizationVariables.MainPlayer.workzone.isBuilding;
                if (flag2)
                {
                    bool flag3 = Time.realtimeSinceStartup - OV_PlayerInteract.lastInteract > 0.1f;
                    if (flag3)
                    {
                        int  num   = 0;
                        bool flag4 = InteractionOptions.InteractThroughWalls && !PlayerCoroutines.IsSpying;
                        if (flag4)
                        {
                            bool flag5 = !InteractionOptions.NoHitBarricades;
                            if (flag5)
                            {
                                num |= RayMasks.BARRICADE;
                            }
                            bool flag6 = !InteractionOptions.NoHitItems;
                            if (flag6)
                            {
                                num |= RayMasks.ITEM;
                            }
                            bool flag7 = !InteractionOptions.NoHitResources;
                            if (flag7)
                            {
                                num |= RayMasks.RESOURCE;
                            }
                            bool flag8 = !InteractionOptions.NoHitStructures;
                            if (flag8)
                            {
                                num |= RayMasks.STRUCTURE;
                            }
                            bool flag9 = !InteractionOptions.NoHitVehicles;
                            if (flag9)
                            {
                                num |= RayMasks.VEHICLE;
                            }
                            bool flag10 = !InteractionOptions.NoHitEnvironment;
                            if (flag10)
                            {
                                num |= (RayMasks.LARGE | RayMasks.MEDIUM | RayMasks.ENVIRONMENT | RayMasks.GROUND);
                            }
                        }
                        else
                        {
                            num = RayMasks.PLAYER_INTERACT;
                        }
                        OV_PlayerInteract.lastInteract = Time.realtimeSinceStartup;
                        float num2 = (InteractionOptions.InteractThroughWalls && !PlayerCoroutines.IsSpying) ? 20f : 4f;
                        PhysicsUtility.raycast(new Ray(Camera.main.transform.position, Camera.main.transform.forward), out OV_PlayerInteract.hit, (OptimizationVariables.MainPlayer.look.perspective == EPlayerPerspective.THIRD) ? (num2 + 2f) : num2, num, QueryTriggerInteraction.UseGlobal);
                    }
                    Transform transform = (!(OV_PlayerInteract.hit.collider != null)) ? null : OV_PlayerInteract.hit.collider.transform;
                    bool      flag11    = transform != OV_PlayerInteract.focus;
                    if (flag11)
                    {
                        bool flag12 = OV_PlayerInteract.focus != null && PlayerInteract.interactable != null;
                        if (flag12)
                        {
                            InteractableDoorHinge componentInParent = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>();
                            bool flag13 = componentInParent != null;
                            if (flag13)
                            {
                                HighlighterTool.unhighlight(componentInParent.door.transform);
                            }
                            else
                            {
                                HighlighterTool.unhighlight(PlayerInteract.interactable.transform);
                            }
                        }
                        OV_PlayerInteract.focus         = null;
                        OV_PlayerInteract.target        = null;
                        OV_PlayerInteract.interactable  = null;
                        OV_PlayerInteract.interactable2 = null;
                        bool flag14 = transform != null;
                        if (flag14)
                        {
                            OV_PlayerInteract.focus         = transform;
                            OV_PlayerInteract.interactable  = OV_PlayerInteract.focus.GetComponentInParent <Interactable>();
                            OV_PlayerInteract.interactable2 = OV_PlayerInteract.focus.GetComponentInParent <Interactable2>();
                            bool flag15 = PlayerInteract.interactable != null;
                            if (flag15)
                            {
                                OV_PlayerInteract.target = PlayerInteract.interactable.transform.FindChildRecursive("Target");
                                bool flag16 = PlayerInteract.interactable.checkInteractable();
                                if (flag16)
                                {
                                    bool isEnabled = PlayerUI.window.isEnabled;
                                    if (isEnabled)
                                    {
                                        bool flag17 = PlayerInteract.interactable.checkUseable();
                                        if (flag17)
                                        {
                                            Color green;
                                            bool  flag18 = !PlayerInteract.interactable.checkHighlight(out green);
                                            if (flag18)
                                            {
                                                green = Color.green;
                                            }
                                            InteractableDoorHinge componentInParent2 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>();
                                            bool flag19 = componentInParent2 != null;
                                            if (flag19)
                                            {
                                                HighlighterTool.highlight(componentInParent2.door.transform, green);
                                            }
                                            else
                                            {
                                                HighlighterTool.highlight(PlayerInteract.interactable.transform, green);
                                            }
                                        }
                                        else
                                        {
                                            Color red = Color.red;
                                            InteractableDoorHinge componentInParent3 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>();
                                            bool flag20 = componentInParent3 != null;
                                            if (flag20)
                                            {
                                                HighlighterTool.highlight(componentInParent3.door.transform, red);
                                            }
                                            else
                                            {
                                                HighlighterTool.highlight(PlayerInteract.interactable.transform, red);
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    OV_PlayerInteract.target       = null;
                                    OV_PlayerInteract.interactable = null;
                                }
                            }
                        }
                    }
                }
                else
                {
                    bool flag21 = OV_PlayerInteract.focus != null && PlayerInteract.interactable != null;
                    if (flag21)
                    {
                        InteractableDoorHinge componentInParent4 = OV_PlayerInteract.focus.GetComponentInParent <InteractableDoorHinge>();
                        bool flag22 = componentInParent4 != null;
                        if (flag22)
                        {
                            HighlighterTool.unhighlight(componentInParent4.door.transform);
                        }
                        else
                        {
                            HighlighterTool.unhighlight(PlayerInteract.interactable.transform);
                        }
                    }
                    OV_PlayerInteract.focus         = null;
                    OV_PlayerInteract.target        = null;
                    OV_PlayerInteract.interactable  = null;
                    OV_PlayerInteract.interactable2 = null;
                }
                bool isDead = OptimizationVariables.MainPlayer.life.isDead;
                if (!isDead)
                {
                    bool flag23 = PlayerInteract.interactable != null;
                    if (flag23)
                    {
                        EPlayerMessage message;
                        string         text;
                        Color          color;
                        bool           flag24 = PlayerInteract.interactable.checkHint(out message, out text, out color) && !PlayerUI.window.showCursor;
                        if (flag24)
                        {
                            bool flag25 = PlayerInteract.interactable.CompareTag("Item");
                            if (flag25)
                            {
                                PlayerUI.hint((!(OV_PlayerInteract.target != null)) ? OV_PlayerInteract.focus : OV_PlayerInteract.target, message, text, color, new object[]
                                {
                                    ((InteractableItem)PlayerInteract.interactable).item,
                                    ((InteractableItem)PlayerInteract.interactable).asset
                                });
                            }
                            else
                            {
                                PlayerUI.hint((!(OV_PlayerInteract.target != null)) ? OV_PlayerInteract.focus : OV_PlayerInteract.target, message, text, color, new object[0]);
                            }
                        }
                    }
                    else
                    {
                        bool flag26 = OV_PlayerInteract.purchaseAsset != null && OptimizationVariables.MainPlayer.movement.purchaseNode != null && !PlayerUI.window.showCursor;
                        if (flag26)
                        {
                            PlayerUI.hint(null, EPlayerMessage.PURCHASE, string.Empty, Color.white, new object[]
                            {
                                OV_PlayerInteract.purchaseAsset.itemName,
                                OptimizationVariables.MainPlayer.movement.purchaseNode.cost
                            });
                        }
                        else
                        {
                            bool flag27 = OV_PlayerInteract.focus != null && OV_PlayerInteract.focus.CompareTag("Enemy");
                            if (flag27)
                            {
                                Player player = DamageTool.getPlayer(OV_PlayerInteract.focus);
                                bool   flag28 = player != null && player != Player.player && !PlayerUI.window.showCursor;
                                if (flag28)
                                {
                                    PlayerUI.hint(null, EPlayerMessage.ENEMY, string.Empty, Color.white, new object[]
                                    {
                                        player.channel.owner
                                    });
                                }
                            }
                        }
                    }
                    EPlayerMessage message2;
                    float          data;
                    bool           flag29 = PlayerInteract.interactable2 != null && PlayerInteract.interactable2.checkHint(out message2, out data) && !PlayerUI.window.showCursor;
                    if (flag29)
                    {
                        PlayerUI.hint2(EPlayerMessage.ENEMY, (!OV_PlayerInteract.isHoldingKey) ? 0f : ((Time.realtimeSinceStartup - OV_PlayerInteract.lastKeyDown) / this.salvageTime), 1f);
                    }
                    bool flag30 = (OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.DRIVING || OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.SITTING) && !Input.GetKey(KeyCode.LeftShift);
                    if (flag30)
                    {
                        bool keyDown = Input.GetKeyDown(KeyCode.F1);
                        if (keyDown)
                        {
                            this.hotkey(0);
                        }
                        bool keyDown2 = Input.GetKeyDown(KeyCode.F2);
                        if (keyDown2)
                        {
                            this.hotkey(1);
                        }
                        bool keyDown3 = Input.GetKeyDown(KeyCode.F3);
                        if (keyDown3)
                        {
                            this.hotkey(2);
                        }
                        bool keyDown4 = Input.GetKeyDown(KeyCode.F4);
                        if (keyDown4)
                        {
                            this.hotkey(3);
                        }
                        bool keyDown5 = Input.GetKeyDown(KeyCode.F5);
                        if (keyDown5)
                        {
                            this.hotkey(4);
                        }
                        bool keyDown6 = Input.GetKeyDown(KeyCode.F6);
                        if (keyDown6)
                        {
                            this.hotkey(5);
                        }
                        bool keyDown7 = Input.GetKeyDown(KeyCode.F7);
                        if (keyDown7)
                        {
                            this.hotkey(6);
                        }
                        bool keyDown8 = Input.GetKeyDown(KeyCode.F8);
                        if (keyDown8)
                        {
                            this.hotkey(7);
                        }
                        bool keyDown9 = Input.GetKeyDown(KeyCode.F9);
                        if (keyDown9)
                        {
                            this.hotkey(8);
                        }
                        bool keyDown10 = Input.GetKeyDown(KeyCode.F10);
                        if (keyDown10)
                        {
                            this.hotkey(9);
                        }
                    }
                    bool keyDown11 = Input.GetKeyDown(ControlsSettings.interact);
                    if (keyDown11)
                    {
                        OV_PlayerInteract.lastKeyDown  = Time.realtimeSinceStartup;
                        OV_PlayerInteract.isHoldingKey = true;
                    }
                    bool flag31 = Input.GetKeyDown(ControlsSettings.inspect) && ControlsSettings.inspect != ControlsSettings.interact && OptimizationVariables.MainPlayer.equipment.canInspect;
                    if (flag31)
                    {
                        OptimizationVariables.MainPlayer.channel.send("askInspect", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, new object[0]);
                    }
                    bool flag32 = OV_PlayerInteract.isHoldingKey;
                    if (flag32)
                    {
                        bool keyUp = Input.GetKeyUp(ControlsSettings.interact);
                        if (keyUp)
                        {
                            OV_PlayerInteract.isHoldingKey = false;
                            bool showCursor = PlayerUI.window.showCursor;
                            if (showCursor)
                            {
                                bool flag33 = OptimizationVariables.MainPlayer.inventory.isStoring && OptimizationVariables.MainPlayer.inventory.shouldInteractCloseStorage;
                                if (flag33)
                                {
                                    PlayerDashboardUI.close();
                                    PlayerLifeUI.open();
                                }
                                else
                                {
                                    bool active = PlayerBarricadeSignUI.active;
                                    if (active)
                                    {
                                        PlayerBarricadeSignUI.close();
                                        PlayerLifeUI.open();
                                    }
                                    else
                                    {
                                        bool active2 = PlayerBarricadeStereoUI.active;
                                        if (active2)
                                        {
                                            PlayerBarricadeStereoUI.close();
                                            PlayerLifeUI.open();
                                        }
                                        else
                                        {
                                            bool active3 = PlayerBarricadeLibraryUI.active;
                                            if (active3)
                                            {
                                                PlayerBarricadeLibraryUI.close();
                                                PlayerLifeUI.open();
                                            }
                                            else
                                            {
                                                bool active4 = PlayerBarricadeMannequinUI.active;
                                                if (active4)
                                                {
                                                    PlayerBarricadeMannequinUI.close();
                                                    PlayerLifeUI.open();
                                                }
                                                else
                                                {
                                                    bool active5 = PlayerNPCDialogueUI.active;
                                                    if (active5)
                                                    {
                                                        bool dialogueAnimating = PlayerNPCDialogueUI.dialogueAnimating;
                                                        if (dialogueAnimating)
                                                        {
                                                            PlayerNPCDialogueUI.skipText();
                                                        }
                                                        else
                                                        {
                                                            bool dialogueHasNextPage = PlayerNPCDialogueUI.dialogueHasNextPage;
                                                            if (dialogueHasNextPage)
                                                            {
                                                                PlayerNPCDialogueUI.nextPage();
                                                            }
                                                            else
                                                            {
                                                                PlayerNPCDialogueUI.close();
                                                                PlayerLifeUI.open();
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        bool active6 = PlayerNPCQuestUI.active;
                                                        if (active6)
                                                        {
                                                            PlayerNPCQuestUI.closeNicely();
                                                        }
                                                        else
                                                        {
                                                            bool active7 = PlayerNPCVendorUI.active;
                                                            if (active7)
                                                            {
                                                                PlayerNPCVendorUI.closeNicely();
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                bool flag34 = OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.DRIVING || OptimizationVariables.MainPlayer.stance.stance == EPlayerStance.SITTING;
                                if (flag34)
                                {
                                    VehicleManager.exitVehicle();
                                }
                                else
                                {
                                    bool flag35 = OV_PlayerInteract.focus != null && PlayerInteract.interactable != null;
                                    if (flag35)
                                    {
                                        bool flag36 = PlayerInteract.interactable.checkUseable();
                                        if (flag36)
                                        {
                                            PlayerInteract.interactable.use();
                                        }
                                    }
                                    else
                                    {
                                        bool flag37 = OV_PlayerInteract.purchaseAsset != null;
                                        if (flag37)
                                        {
                                            bool flag38 = OptimizationVariables.MainPlayer.skills.experience >= OptimizationVariables.MainPlayer.movement.purchaseNode.cost;
                                            if (flag38)
                                            {
                                                OptimizationVariables.MainPlayer.skills.sendPurchase(OptimizationVariables.MainPlayer.movement.purchaseNode);
                                            }
                                        }
                                        else
                                        {
                                            bool flag39 = ControlsSettings.inspect == ControlsSettings.interact && OptimizationVariables.MainPlayer.equipment.canInspect;
                                            if (flag39)
                                            {
                                                OptimizationVariables.MainPlayer.channel.send("askInspect", ESteamCall.SERVER, ESteamPacket.UPDATE_UNRELIABLE_BUFFER, new object[0]);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            bool flag40 = Time.realtimeSinceStartup - OV_PlayerInteract.lastKeyDown > this.salvageTime;
                            if (flag40)
                            {
                                OV_PlayerInteract.isHoldingKey = false;
                                bool flag41 = !PlayerUI.window.showCursor && PlayerInteract.interactable2 != null;
                                if (flag41)
                                {
                                    PlayerInteract.interactable2.use();
                                }
                            }
                        }
                    }
                }
            }
        }