ArcAnnihilation.Core.Drawing_OnDraw C# (CSharp) Метод

Drawing_OnDraw() приватный статический Метод

private static Drawing_OnDraw ( EventArgs args ) : void
args System.EventArgs
Результат void
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (Menu.Item("DrawItems").GetValue<bool>())
            {
                var startPos = new Vector2(Menu.Item("DrawItems.pos.x").GetValue<Slider>().Value,
                    Menu.Item("DrawItems.pos.y").GetValue<Slider>().Value);
                var itemCount = 0;
                var size = new Vector2(40, 25);
                var extraButtonPos = startPos - new Vector2(0, 20);
                var extraButtonSize = new Vector2(size.X*6*0.7f, 19);
                var isIn = Utils.IsUnderRectangle(Game.MouseScreenPosition, extraButtonPos.X, extraButtonPos.Y,
                    extraButtonSize.X, extraButtonSize.Y);
                if (isIn)
                {
                    Drawing.DrawRect(extraButtonPos, extraButtonSize,
                        new Color(0, 155, 255, 255), true);
                    Drawing.DrawRect(extraButtonPos, extraButtonSize,
                        new Color(0, 0, 0, 140));
                    var textSize = Drawing.MeasureText("Move me", "Arial",
                        new Vector2((float) (extraButtonSize.Y*.90), extraButtonSize.Y/2), FontFlags.AntiAlias);
                    var textPos = extraButtonPos +
                                  new Vector2((extraButtonSize.X - textSize.X)/2, (extraButtonSize.Y - textSize.Y)/2);
                    Drawing.DrawText(
                        "Move me",
                        textPos,
                        new Vector2(textSize.Y, 0),
                        Color.White,
                        FontFlags.AntiAlias | FontFlags.StrikeOut);
                }
                if (_keyState)
                {
                    Menu.Item("DrawItems.pos.x").SetValue(new Slider((int) Game.MouseScreenPosition.X - 50, 0, 2500));
                    Menu.Item("DrawItems.pos.y")
                        .SetValue(new Slider((int) ((int) Game.MouseScreenPosition.Y + extraButtonSize.Y/2), 0, 2500));
                }
                Drawing.DrawRect(startPos, new Vector2(size.X*6*0.7f, size.Y*1.15f),
                    new Color(0, 155, 255, 255), true);
                if (_drawType)
                {
                    if (Menu.Item("AutoHeal.Enable").GetValue<KeyBind>().Active && !isIn)
                    {
                        Drawing.DrawRect(extraButtonPos, extraButtonSize,
                            new Color(0, 155, 255, 255), true);
                        var text = "Auto Heal " +
                                   $"[{Utils.KeyToText(Menu.Item("AutoHeal.Enable").GetValue<KeyBind>().Key)}]";
                        var textSize = Drawing.MeasureText(text, "Arial",
                            new Vector2((float) (extraButtonSize.Y*.90), extraButtonSize.Y/2), FontFlags.AntiAlias);
                        var textPos = extraButtonPos +
                                      new Vector2((extraButtonSize.X - textSize.X)/2, (extraButtonSize.Y - textSize.Y)/2);
                        Drawing.DrawText(
                            text,
                            textPos,
                            new Vector2(textSize.Y, 0),
                            Color.White,
                            FontFlags.AntiAlias | FontFlags.StrikeOut);
                    }
                    if (Menu.Item("hotkeyClone").GetValue<KeyBind>().Active)
                    {
                        extraButtonPos = startPos + new Vector2(0, size.Y);
                        var boxSize = new Vector2(size.X*6*0.7f, size.Y*1.15f);
                        Drawing.DrawRect(extraButtonPos, boxSize,
                            new Color(0, 155, 255, 255), true);
                        var text = "Clone Mode " +
                                   $"[{Utils.KeyToText(Menu.Item("hotkeyClone").GetValue<KeyBind>().Key)}]";
                        var textSize = Drawing.MeasureText(text, "Arial",
                            new Vector2((float) (boxSize.Y*.6), boxSize.Y/2), FontFlags.AntiAlias);
                        var imageSize = new Vector2((float) (boxSize.Y*0.60 + 10), (float) (boxSize.Y*0.60));
                        textSize += new Vector2(imageSize.X, 0);
                        var textPos = extraButtonPos +
                                      new Vector2((boxSize.X - textSize.X)/2, boxSize.Y/2 - textSize.Y/2);
                        //+ new Vector2(2, boxSize.Y / 2 - textSize.Y / 2);
                        Drawing.DrawText(
                            text,
                            textPos,
                            new Vector2(textSize.Y, 0),
                            Color.White,
                            FontFlags.AntiAlias | FontFlags.StrikeOut);
                        var itemPos = textPos + new Vector2(10 + textSize.X - imageSize.X, 0);
                        if (_globalTarget2 != null)
                        {
                            Drawing.DrawRect(itemPos, imageSize,
                                Textures.GetHeroTexture(_globalTarget2.StoredName()));
                            Drawing.DrawRect(itemPos, imageSize, Color.Black, true);
                        }
                    }
                    else if (Menu.Item("AutoPush.Enable").GetValue<KeyBind>().Active)
                    {
                        extraButtonPos = startPos + new Vector2(0, size.Y);
                        var boxSize = new Vector2(size.X*6*0.7f, size.Y*1.15f);
                        Drawing.DrawRect(extraButtonPos, boxSize,
                            new Color(0, 155, 255, 255), true);
                        var text = "Auto Push " +
                                   $"[{Utils.KeyToText(Menu.Item("AutoPush.Enable").GetValue<KeyBind>().Key)}]";
                        var textSize = Drawing.MeasureText(text, "Arial",
                            new Vector2((float) (boxSize.Y*.6), boxSize.Y/2), FontFlags.AntiAlias);
                        var textPos = extraButtonPos +
                                      new Vector2((boxSize.X - textSize.X)/2, boxSize.Y/2 - textSize.Y/2);
                        Drawing.DrawText(
                            text,
                            textPos,
                            new Vector2(textSize.Y, 0),
                            Color.White,
                            FontFlags.AntiAlias | FontFlags.StrikeOut);
                    }
                }
                foreach (var f in SpellBaseList)
                {
                    if (itemCount>6)
                        continue;
                    var cd = f.GetLastCd() - Game.RawGameTime + f.GetLastTime() + 1;//f.GetCooldown();
                    if (cd > 0)
                    {
                        /*if (Utils.SleepCheck("draw_items_cooldown" + f.Name))
                        {
                            Utils.Sleep(1000, "draw_items_cooldown" + f.Name);
                            f.SetCooldown(f.GetCooldown()-1);
                            //var time = (f.GetLastTime()-Game.GameTime)%60;
                            //Print($"Time: {time}");
                            //f.SetCooldown(f.GetLastCd() + time);
                        }*/
                        var itemPos = startPos + new Vector2(2+size.X*itemCount*0.7f, 2);

                        Drawing.DrawRect(itemPos, size,
                            f.GetTexture());
                        var cooldown =
                            ((int)Math.Min(cd, 999)).ToString(CultureInfo.InvariantCulture);
                            //((int)Math.Min(cd+1, 999)).ToString(CultureInfo.InvariantCulture);
                        var textSize = Drawing.MeasureText(cooldown, "Arial",
                            new Vector2((float) (size.Y*.75), size.Y/2), FontFlags.AntiAlias);
                        var textPos = itemPos + new Vector2(0, size.Y - textSize.Y);
                        Drawing.DrawRect(textPos - new Vector2(0, 0),
                            new Vector2(textSize.X, textSize.Y),
                            new Color(0, 0, 0, 200));
                        Drawing.DrawText(
                            cooldown,
                            textPos,
                            new Vector2(textSize.Y, 0),
                            Color.White,
                            FontFlags.AntiAlias | FontFlags.StrikeOut);
                        itemCount++;
                    }
                }
                var kek = SpellBaseList.Where(x => x.GetCooldown() <= 0 && x.GetCooldown() >= -5).ToList();
                foreach (var item in kek)
                {
                    SpellBaseList.Remove(item);
                    //Print("Kick from ItemCooldownBase: " + item.Name);
                }
            }

            if (Menu.Item("AutoPush.DrawLine").GetValue<bool>() &&
                Menu.Item("AutoPush.Enable").GetValue<KeyBind>().Active &&
                !Menu.Item("hotkeyClone").GetValue<KeyBind>().Active)
            {
                var me = ObjectManager.LocalHero;
                foreach (var hero in Objects.Tempest.GetCloneList(me))
                {
                    var nearestTower =
                        Objects.Towers.GetTowers()
                            .Where(x => x.Team == hero.GetEnemyTeam())
                            .OrderBy(y => y.Distance2D(hero))
                            .FirstOrDefault() ?? Objects.Fountains.GetEnemyFountain();
                    var fountain = Objects.Fountains.GetAllyFountain();
                    var curlane = GetCurrentLane(hero);
                    var clospoint = GetClosestPoint(curlane);
                    var useThisShit = clospoint.Distance2D(fountain) - 250 > hero.Distance2D(fountain);

                    if (nearestTower == null) continue;
                    var pos222 = curlane == "mid" || !useThisShit ? nearestTower.Position : clospoint;
                    var w2Shero = Drawing.WorldToScreen(hero.Position);
                    var w2SPos = Drawing.WorldToScreen(pos222);
                    if ((w2Shero.X == 0 && w2Shero.Y == 0) || (w2SPos.X == 0 && w2SPos.Y == 0)) continue;
                    //Print($"w2shero: {w2shero.X}/{w2shero.Y}");
                    //Print($"w2sPos: {w2sPos.X}/{w2sPos.Y}");
                    Drawing.DrawLine(w2Shero, w2SPos, Color.YellowGreen);
                }
            }
            /*var position = Game.MousePosition;
            Drawing.DrawText($"{position.X},{position.Y},{position.Z}", Game.MouseScreenPosition, new Vector2(0, 50), Color.Red,
                        FontFlags.AntiAlias | FontFlags.DropShadow);*/
            Vector2 pos;
            if (Menu.Item("hotkeyClone").GetValue<KeyBind>().Active)
            {
                var startPos = new Vector2(Drawing.Width - 250, 100);
                var size = new Vector2(180, 90);
                if (!_drawType)
                {
                    Drawing.DrawRect(startPos, size, new Color(0, 0, 0, 100));
                    Drawing.DrawRect(startPos, size, new Color(0, 0, 0, 255), true);
                    Drawing.DrawText(
                        "Clone Mode is Active" +
                        $"[{Utils.KeyToText(Menu.Item("hotkeyClone").GetValue<KeyBind>().Key)}]",
                        startPos + new Vector2(10, 10), new Vector2(20), new Color(0, 155, 255),
                        FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Additive | FontFlags.Custom |
                        FontFlags.StrikeOut);
                }
                if (_globalTarget2 != null && _globalTarget2.IsAlive)
                {
                    if (!_drawType)
                    {
                        pos = Drawing.WorldToScreen(_globalTarget2.Position);
                        Drawing.DrawText("CloneTarget", pos, new Vector2(0, 50), Color.Red,
                            FontFlags.AntiAlias | FontFlags.DropShadow);
                        var name = "materials/ensage_ui/heroes_horizontal/" +
                                   _globalTarget2.Name.Replace("npc_dota_hero_", "") + ".vmat";
                        size = new Vector2(50, 50);
                        Drawing.DrawRect(startPos + new Vector2(10, 35), size + new Vector2(13, -6),
                            Textures.GetTexture(name));
                        Drawing.DrawRect(startPos + new Vector2(10, 35), size + new Vector2(14, -5),
                            new Color(0, 0, 0, 255), true);
                    }
                    foreach (var me in Objects.Tempest.GetCloneList(_mainHero).ToList())
                    {
                        DrawEffects(me,_globalTarget2);
                    }
                    foreach (var me in Objects.Necronomicon.GetNecronomicons(_mainHero).ToList())
                    {
                        DrawEffects(me,_globalTarget2);
                    }
                }
            }
            else if (!_drawType && Menu.Item("AutoPush.Enable").GetValue<KeyBind>().Active)
            {
                var startPos = new Vector2(Drawing.Width - 250, 100);
                var size = new Vector2(180, 40);
                Drawing.DrawRect(startPos, size, new Color(0, 0, 0, 100));
                Drawing.DrawRect(startPos, size, new Color(0, 0, 0, 255), true);
                Drawing.DrawText("AutoPush is Active " + $"[{Utils.KeyToText(Menu.Item("AutoPush.Enable").GetValue<KeyBind>().Key)}]", startPos + new Vector2(10, 10), new Vector2(20), new Color(0, 155, 255),
                    FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Additive | FontFlags.Custom |
                    FontFlags.StrikeOut);
            }
            if (!_drawType && Menu.Item("AutoHeal.Enable").GetValue<KeyBind>().Active)
            {
                var startPos = new Vector2(Drawing.Width - 250, 190);
                var size = new Vector2(180, 30);
                Drawing.DrawRect(startPos, size, new Color(0, 0, 0, 100));
                Drawing.DrawRect(startPos, size, new Color(0, 0, 0, 255), true);
                Drawing.DrawText("AutoHeal is Active" + $"[{Utils.KeyToText(Menu.Item("AutoHeal.Enable").GetValue<KeyBind>().Key)}]", startPos + new Vector2(10, 10), new Vector2(20), new Color(0, 155, 255),
                    FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Additive | FontFlags.Custom |
                    FontFlags.StrikeOut);
            }

            if (_globalTarget == null || !_globalTarget.IsAlive) return;
            pos = Drawing.WorldToScreen(_globalTarget.Position);
            Drawing.DrawText("target", pos, new Vector2(0, 50), Color.Red, FontFlags.AntiAlias | FontFlags.DropShadow);
            foreach (var me in Objects.Tempest.GetCloneList(_mainHero).ToList())
            {
                try
                {
                    DrawEffects(me, _globalTarget);
                }
                catch { Print("error Type: 1"); }

            }
            foreach (var me in Objects.Necronomicon.GetNecronomicons(_mainHero).ToList())
            {
                try
                {
                    DrawEffects(me, _globalTarget);
                }
                catch (Exception)
                {
                    Print("error Type: 2");
                }

            }
            try
            {
                DrawEffects(_mainHero, _globalTarget);
            }
            catch (Exception)
            {
                Print("error Type: 3");
            }
        }