Exemple #1
0
        public static void OnRender()
        {
            if (Global.Player.IsDead)
            {
                return;
            }

            if (MenuConfig.Drawings["Pred"].Enabled &&
                SpellManager.Q.Ready)
            {
                foreach (var shadow in ShadowManager.Shadows.Where(ShadowManager.IsShadow))
                {
                    if (shadow.Distance(Global.Player) > 1300)
                    {
                        continue;
                    }

                    if ((Global.Player.GetSpell(SpellSlot.W).ToggleState != 0 || Global.Player.GetSpell(SpellSlot.R).ToggleState != 0) &&

                        Render.WorldToScreen(Global.Player.ServerPosition, out var playerVector2) &&
                        Render.WorldToScreen(shadow.ServerPosition, out var shadowVector2))
                    {
                        Render.Line(playerVector2, shadowVector2, 3, true, Color.White);
                    }

                    var enemy = GameObjects.Enemy.FirstOrDefault(x => x.Distance(shadow) <= SpellManager.Q.Range);
                    if (enemy == null || !enemy.IsValidTarget())
                    {
                        return;
                    }

                    var pred     = SpellManager.Q.GetPrediction(enemy, shadow.ServerPosition, shadow.ServerPosition);
                    var extended = shadow.ServerPosition.Extend(pred.CastPosition, SpellManager.Q.Range);
                    var rect     = new Geometry.Rectangle(shadow.ServerPosition.To2D(), extended.To2D(), SpellManager.Q.Width);
                    rect.Draw(Color.Crimson);

                    Render.WorldToScreen(shadow.ServerPosition, out var shadow2D);
                    Render.WorldToScreen(extended, out var extended2D);
                    Render.Line(shadow2D, extended2D, Color.MediumVioletRed);
                }
            }

            if (MenuConfig.Drawings["Range"].Enabled)
            {
                Render.Circle(Global.Player.Position,
                              Global.Orbwalker.Mode == OrbwalkingMode.Mixed ? SpellManager.WCastRange + Global.Player.AttackRange : SpellManager.R.Range,
                              (uint)MenuConfig.Drawings["Segments"].Value,
                              Color.Crimson);
            }

            if (SpellManager.Q.Ready &&
                MenuConfig.Drawings["Q"].Enabled)
            {
                Render.Circle(Global.Player.Position, SpellManager.Q.Range, (uint)MenuConfig.Drawings["Segments"].Value, Color.Cyan);
            }
        }
Exemple #2
0
        /// <summary>
        ///     Initializes the menus.
        /// </summary>
        public void Drawings()
        {
            /// <summary>
            ///     Loads the Q drawing.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Drawings["q"].As <MenuBool>().Enabled)
            {
                Render.Circle(UtilityClass.Player.Position, SpellClass.Q.Range, 30, Color.LightGreen);
            }

            /// <summary>
            ///     Loads the E drawings.
            /// </summary>
            if (SpellClass.E.Ready)
            {
                /// <summary>
                ///     Loads the E range drawing.
                /// </summary>
                if (MenuClass.Drawings["e"].As <MenuBool>().Enabled)
                {
                    Render.Circle(UtilityClass.Player.Position, SpellClass.E.Range, 30, Color.Cyan);
                }

                /// <summary>
                ///     Loads the E rectangles drawing.
                /// </summary>
                if (MenuClass.Drawings["epred"].As <MenuBool>().Enabled)
                {
                    var       playerPos           = UtilityClass.Player.Position;
                    const int CondemnDistancePush = 420;
                    foreach (var target in Extensions.GetBestEnemyHeroesTargetsInRange(SpellClass.E.Range))
                    {
                        var targetPos    = (Vector2)target.Position;
                        var targetRadius = target.BoundingRadius;

                        var posImpact    = (Vector2)target.Position.Extend(playerPos, -CondemnDistancePush);
                        var posRectangle = new Geometry.Rectangle(targetPos, posImpact, targetRadius);

                        var predImpact    = (Vector2)SpellClass.E.GetPrediction(target).CastPosition.Extend(playerPos, -CondemnDistancePush);
                        var predRectangle = new Geometry.Rectangle(targetPos, predImpact, targetRadius);

                        posRectangle.Draw(Bools.AnyWallInBetween(targetPos, posImpact) ? Color.Blue : Color.OrangeRed);
                        predRectangle.Draw(Bools.AnyWallInBetween(targetPos, predImpact) ? Color.Blue : Color.OrangeRed);
                    }
                }
            }
        }
Exemple #3
0
        private void DrawModelDisplayStageObjects()
        {
            if (_mesh != null)
            {
                GL.Color3(Color.White);
                for (var i = 0; i < _mesh.Triangles.Length; i += 3)
                {
                    var v1 = _mesh.Vertices[_mesh.Triangles[i]];
                    var v2 = _mesh.Vertices[_mesh.Triangles[i + 1]];
                    var v3 = _mesh.Vertices[_mesh.Triangles[i + 2]];

                    Helpers.Helpers.DrawTriangle(v1, v2, v3);
                }
            }

            if (_scannedObject == null)
            {
                return;
            }
            GL.Color3(Color.Orange);
            _scannedObject.Draw();
        }
Exemple #4
0
        public static void OnRender()
        {
            if (Global.Player.IsDead)
            {
                return;
            }

            if (MenuConfig.Drawings["Pred"].Enabled)
            {
                foreach (var shadow in ShadowManager.Shadows.Where(ShadowManager.IsShadow))
                {
                    var enemy = GameObjects.Enemy.FirstOrDefault(x => x.Distance(shadow) <= SpellManager.Q.Range);
                    if (enemy == null)
                    {
                        continue;
                    }

                    var pred     = SpellManager.Q.GetPrediction(enemy, shadow.ServerPosition, shadow.ServerPosition);
                    var extended = shadow.ServerPosition.Extend(pred.CastPosition, SpellManager.Q.Range);
                    var rect     = new Geometry.Rectangle(shadow.ServerPosition.To2D(), extended.To2D(), SpellManager.Q.Width);
                    rect.Draw(Color.Crimson);

                    Render.WorldToScreen(shadow.ServerPosition, out var shadow2D);
                    Render.WorldToScreen(extended, out var extended2D);
                    Render.Line(shadow2D, extended2D, Color.MediumVioletRed);
                }
            }

            if (MenuConfig.Drawings["Range"].Enabled)
            {
                Render.Circle(Global.Player.Position, SpellManager.WCastRange + (Global.Orbwalker.Mode == OrbwalkingMode.Combo ? SpellManager.R.Range : Global.Player.AttackRange), (uint)MenuConfig.Drawings["Segments"].Value, Color.Crimson);
            }

            if (SpellManager.Q.Ready && MenuConfig.Drawings["Q"].Enabled)
            {
                Render.Circle(Global.Player.Position, SpellManager.Q.Range, (uint)MenuConfig.Drawings["Segments"].Value, Color.Cyan);
            }
        }
Exemple #5
0
        /// <summary>
        ///     Initializes the menus.
        /// </summary>
        public void Drawings()
        {
            /// <summary>
            ///     Loads the Q drawing.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Drawings["q"].As <MenuBool>().Enabled)
            {
                Render.Circle(UtilityClass.Player.Position, SpellClass.Q.Range, 30, Color.LightGreen);
            }

            /// <summary>
            ///     Loads the Feather linking drawing.
            /// </summary>
            if (!UtilityClass.Player.SpellBook.GetSpell(SpellSlot.E).State.HasFlag(SpellState.Cooldown) &&
                MenuClass.Drawings["feathers"].As <MenuBool>().Enabled)
            {
                foreach (var feather in Feathers)
                {
                    var hitbox = new Geometry.Rectangle((Vector2)UtilityClass.Player.Position, (Vector2)feather.Value, SpellClass.Q.Width);
                    hitbox.Draw(
                        GameObjects.EnemyHeroes.Any(h => hitbox.IsInside((Vector2)h.Position))
                            ? Color.Blue
                            : Color.OrangeRed);
                }
            }

            /// <summary>
            ///     Loads the R drawing.
            /// </summary>
            if (SpellClass.R.Ready &&
                MenuClass.Drawings["r"].As <MenuBool>().Enabled)
            {
                Render.Circle(UtilityClass.Player.Position, SpellClass.R.Range, 30, Color.Red);
            }
        }
Exemple #6
0
        /// <summary>
        ///     Initializes the menus.
        /// </summary>
        public void Drawings()
        {
            /// <summary>
            ///     Loads the Q range drawing.
            /// </summary>
            if (SpellClass.Q.Ready &&
                MenuClass.Drawings["q"].As <MenuBool>().Enabled)
            {
                Render.Circle(UtilityClass.Player.Position, SpellClass.Q.Range, 30, Color.LightGreen);
            }

            /// <summary>
            ///     Loads the Q path drawing.
            /// </summary>
            if (MenuClass.Drawings["qpath"].As <MenuBool>().Enabled)
            {
                foreach (var axe in Axes)
                {
                    var axeRectangle = new Geometry.Rectangle((Vector2)UtilityClass.Player.Position, (Vector2)axe.Value, 1);
                    Render.Circle(axe.Value, 30f, 30, Color.Yellow);
                    axeRectangle.Draw(Color.Yellow);
                }
            }
        }