Example #1
0
        private void Drawing_OnDraw(EventArgs args)
        {
            if (Config["utilitydraws"].GetValue <MenuBool>("disableDraws").Value)
            {
                return;
            }

            if (Config["utilitydraws"].GetValue <MenuBool>("showWards").Value)
            {
                var circleSize = 30;
                foreach (var obj in OKTWward.HiddenObjList.Where(obj => Render.OnScreen(Drawing.WorldToScreen(obj.pos))))
                {
                    if (obj.type == 1)
                    {
                        OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Yellow);
                        Program.DrawFontTextMap(Tahoma13, "" + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Yellow, true);
                    }

                    if (obj.type == 2)
                    {
                        OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.HotPink);
                        Program.DrawFontTextMap(Tahoma13, "VW", obj.pos, SharpDX.Color.HotPink, true);
                    }

                    if (obj.type == 3)
                    {
                        OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Orange);
                        Program.DrawFontTextMap(Tahoma13, "! " + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Orange, true);
                    }
                }
            }

            var championInfo = Config["utilitydraws"]["enemyinfogrid"].GetValue <MenuBool>("championInfo").Value;
            var GankAlert    = Config["utilitydraws"].GetValue <MenuBool>("GankAlert").Value;
            var ShowKDA      = Config["utilitydraws"]["enemyinfogrid"].GetValue <MenuBool>("ShowKDA").Value;
            var ShowRecall   = Config["utilitydraws"]["enemyinfogrid"].GetValue <MenuBool>("ShowRecall").Value;
            var ShowClicks   = Config["utilitydraws"].GetValue <MenuBool>("ShowClicks").Value;
            var RF           = Config["utilitydraws"].GetValue <MenuBool>("RF").Value;
            var posX         = Config["utilitydraws"]["enemyinfogrid"].GetValue <MenuSlider>("posX").Value * 0.01f * Drawing.Width;
            var posY         = Config["utilitydraws"]["enemyinfogrid"].GetValue <MenuSlider>("posY").Value * 0.01f * Drawing.Height;
            var positionDraw = 0f;
            var positionGang = 500f;
            var FillColor    = System.Drawing.Color.GreenYellow;
            var Color        = System.Drawing.Color.Azure;
            var offset       = 0f;

            foreach (var enemy in GameObjects.EnemyHeroes)
            {
                offset += 0.15f;

                if (Config["utilitydraws"].GetValue <MenuBool>("SS").Value)
                {
                    if (!enemy.IsVisible && !enemy.IsDead)
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (ChampionInfoOne != null && enemy != Program.jungler)
                        {
                            if ((int)(Game.Time * 10) % 2 == 0 && Game.Time - ChampionInfoOne.LastVisibleTime > 3 && Game.Time - ChampionInfoOne.LastVisibleTime < 7)
                            {
                                Program.DrawFontTextScreen(TextBold, "SS " + enemy.CharacterName + " " + (int)(Game.Time - ChampionInfoOne.LastVisibleTime), Drawing.Width * offset, Drawing.Height * 0.02f, SharpDX.Color.Orange);
                            }
                            if (Game.Time - ChampionInfoOne.LastVisibleTime >= 7)
                            {
                                Program.DrawFontTextScreen(TextBold, "SS " + enemy.CharacterName + " " + (int)(Game.Time - ChampionInfoOne.LastVisibleTime), Drawing.Width * offset, Drawing.Height * 0.02f, SharpDX.Color.OrangeRed);
                            }
                        }
                    }
                }

                if (enemy.IsValidTarget() && ShowClicks)
                {
                    var lastWaypoint = enemy.GetWaypoints().Last().ToVector3();
                    if (lastWaypoint.IsValid())
                    {
                        Program.drawLine(enemy.Position, lastWaypoint, 1, System.Drawing.Color.Red);

                        if (enemy.GetWaypoints().Count() > 1)
                        {
                            Program.DrawFontTextMap(Tahoma13, enemy.CharacterName, lastWaypoint, SharpDX.Color.WhiteSmoke, true);
                        }
                    }
                }

                var kolor = System.Drawing.Color.GreenYellow;

                if (enemy.IsDead)
                {
                    kolor = System.Drawing.Color.Gray;
                }
                else if (!enemy.IsVisible)
                {
                    kolor = System.Drawing.Color.OrangeRed;
                }

                var kolorHP = System.Drawing.Color.GreenYellow;

                if (enemy.IsDead)
                {
                    kolorHP = System.Drawing.Color.Gray;
                }
                else if (enemy.HealthPercent < 30)
                {
                    kolorHP = System.Drawing.Color.Red;
                }
                else if (enemy.HealthPercent < 60)
                {
                    kolorHP = System.Drawing.Color.Orange;
                }

                if (championInfo)
                {
                    positionDraw += 15;
                    Program.DrawFontTextScreen(Tahoma13, "" + enemy.Level, posX - 25, posY + positionDraw, SharpDX.Color.White);
                    Program.DrawFontTextScreen(Tahoma13, enemy.CharacterName, posX, posY + positionDraw, SharpDX.Color.White);

                    if (ShowRecall)
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (Game.Time - ChampionInfoOne.FinishRecallTime < 4)
                        {
                            Program.DrawFontTextScreen(Tahoma13, "FINISH", posX - 90, posY + positionDraw, SharpDX.Color.GreenYellow);
                        }
                        else if (ChampionInfoOne.StartRecallTime <= ChampionInfoOne.AbortRecallTime && Game.Time - ChampionInfoOne.AbortRecallTime < 4)
                        {
                            Program.DrawFontTextScreen(Tahoma13, "ABORT", posX - 90, posY + positionDraw, SharpDX.Color.Yellow);
                        }
                        else if (Game.Time - ChampionInfoOne.StartRecallTime < 8)
                        {
                            var recallPercent = (int)((Game.Time - ChampionInfoOne.StartRecallTime) / 8 * 100);
                            var recallX1      = posX - 90;
                            var recallY1      = posY + positionDraw + 6;
                            var recallX2      = (recallX1 + recallPercent / 2) + 1;
                            var recallY2      = posY + positionDraw + 6;
                            Drawing.DrawLine(recallX1, recallY1, recallX1 + 50, recallY2, 8, System.Drawing.Color.Red);
                            Drawing.DrawLine(recallX1, recallY1, recallX2, recallY2, 8, System.Drawing.Color.White);
                        }
                    }

                    var fSlot = enemy.Spellbook.Spells[4];

                    if (fSlot.Name != "SummonerFlash")
                    {
                        fSlot = enemy.Spellbook.Spells[5];
                    }

                    if (fSlot.Name == "SummonerFlash")
                    {
                        var fT = fSlot.CooldownExpires - Game.Time;
                        if (ShowKDA)
                        {
                            if (fT < 0)
                            {
                                Program.DrawFontTextScreen(Tahoma13, "F rdy", posX + 130, posY + positionDraw, SharpDX.Color.GreenYellow);
                            }
                            else
                            {
                                Program.DrawFontTextScreen(Tahoma13, "F " + (int)fT, posX + 130, posY + positionDraw, SharpDX.Color.Yellow);
                            }
                        }
                        if (RF)
                        {
                            if (fT < 2 && fT > -3)
                            {
                                Program.DrawFontTextScreen(TextBold, enemy.CharacterName + " FLASH READY!", Drawing.Width * offset, Drawing.Height * 0.1f, SharpDX.Color.Yellow);
                            }
                            else if (fSlot.Cooldown - fT < 5)
                            {
                                Program.DrawFontTextScreen(TextBold, enemy.CharacterName + " FLASH LOST!", Drawing.Width, Drawing.Height * 0.1f, SharpDX.Color.Red);
                            }
                        }
                    }

                    if (enemy.Level > 5)
                    {
                        var rSlot = enemy.Spellbook.Spells[3];
                        var t     = rSlot.CooldownExpires - Game.Time;
                        if (ShowKDA)
                        {
                            if (t < 0)
                            {
                                Program.DrawFontTextScreen(Tahoma13, "R rdy", posX + 165, posY + positionDraw, SharpDX.Color.GreenYellow);
                            }
                            else
                            {
                                Program.DrawFontTextScreen(Tahoma13, "R " + (int)t, posX + 165, posY + positionDraw, SharpDX.Color.Yellow);
                            }
                        }
                        if (RF)
                        {
                            if (t < 2 && t > -3)
                            {
                                Program.DrawFontTextScreen(TextBold, enemy.CharacterName + " R READY!", Drawing.Width * offset, Drawing.Height * 0.2f, SharpDX.Color.YellowGreen);
                            }
                            else if (rSlot.Cooldown - t < 5)
                            {
                                Program.DrawFontTextScreen(TextBold, enemy.CharacterName + " R LOST!", Drawing.Width * offset, Drawing.Height * 0.1f, SharpDX.Color.Red);
                            }
                        }
                    }
                    else if (ShowKDA)
                    {
                        Program.DrawFontTextScreen(Tahoma13, "R ", posX + 165, posY + positionDraw, SharpDX.Color.Yellow);
                    }
                }

                var Distance = Player.Distance(enemy.Position);

                if (GankAlert && !enemy.IsDead && Distance > 1200)
                {
                    var wts = Drawing.WorldToScreen(Player.Position.Extend(enemy.Position, positionGang));

                    wts[0] = wts[0];
                    wts[1] = wts[1] + 15;

                    if (enemy.HealthPercent > 0)
                    {
                        Drawing.DrawLine(wts[0], wts[1], wts[0] + enemy.HealthPercent / 2 + 1, wts[1], 8, kolorHP);
                    }

                    if (enemy.HealthPercent < 100)
                    {
                        Drawing.DrawLine(wts[0] + enemy.HealthPercent / 2, wts[1], wts[0] + 50, wts[1], 8, System.Drawing.Color.White);
                    }

                    if (enemy.IsVisible)
                    {
                        if (Program.jungler.NetworkId == enemy.NetworkId)
                        {
                            Program.DrawFontTextMap(Tahoma13B, enemy.CharacterName, Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.OrangeRed);
                        }
                        else
                        {
                            Program.DrawFontTextMap(Tahoma13, enemy.CharacterName, Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.White);
                        }
                    }
                    else
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (ChampionInfoOne != null)
                        {
                            if (Game.Time - ChampionInfoOne.LastVisibleTime > 3 && Game.Time - ChampionInfoOne.LastVisibleTime < 7)
                            {
                                Program.DrawFontTextMap(Tahoma13, "SS " + enemy.CharacterName + " " + (int)(Game.Time - ChampionInfoOne.LastVisibleTime), Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.Yellow);
                            }
                            else
                            {
                                Program.DrawFontTextMap(Tahoma13, "SS " + enemy.CharacterName + " " + (int)(Game.Time - ChampionInfoOne.LastVisibleTime), Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.YellowGreen);
                            }
                        }
                        else
                        {
                            Program.DrawFontTextMap(Tahoma13, "SS " + enemy.CharacterName, Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.LightYellow);
                        }
                    }

                    if (Distance < 3500 && enemy.IsVisible && !Render.OnScreen(Drawing.WorldToScreen(enemy.Position)) && Program.jungler != null)
                    {
                        if (Program.jungler.NetworkId == enemy.NetworkId)
                        {
                            Program.drawLine(Player.Position.Extend(enemy.Position, 100), Player.Position.Extend(enemy.Position, positionGang - 100), (int)((3500 - Distance) / 280), System.Drawing.Color.Crimson);
                        }
                        else
                        {
                            if (enemy.IsFacing(Player))
                            {
                                Program.drawLine(Player.Position.Extend(enemy.Position, 100), Player.Position.Extend(enemy.Position, positionGang - 100), (int)((3500 - Distance) / 280), System.Drawing.Color.Orange);
                            }
                            else
                            {
                                Program.drawLine(Player.Position.Extend(enemy.Position, 100), Player.Position.Extend(enemy.Position, positionGang - 100), (int)((3500 - Distance) / 280), System.Drawing.Color.Gold);
                            }
                        }
                    }
                    else if (Distance < 3500 && !enemy.IsVisible && !Render.OnScreen(Drawing.WorldToScreen(Player.Position.Extend(enemy.Position, Distance + 500))))
                    {
                        var need = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (need != null && Game.Time - need.LastVisibleTime < 5)
                        {
                            Program.drawLine(Player.Position.Extend(enemy.Position, 100), Player.Position.Extend(enemy.Position, positionGang - 100), (int)((3500 - Distance) / 300), System.Drawing.Color.Gray);
                        }
                    }
                }

                positionGang = positionGang + 100;
            }

            if (Program.AIOmode == 2)
            {
                Program.DrawFontTextScreen(TextBold, "OKTW AIO only utility mode ON", Drawing.Width * 0.5f, Drawing.Height * 0.7f, SharpDX.Color.Cyan, true);
            }
        }
Example #2
0
        private void OnDraw(EventArgs args)
        {
            if (getCheckBoxItem("disableDraws"))
            {
                return;
            }

            if (getCheckBoxItem("showWards"))
            {
                var circleSize = 30;
                foreach (var obj in OKTWward.HiddenObjList.Where(obj => Render.OnScreen(Drawing.WorldToScreen(obj.pos)))
                         )
                {
                    if (obj.type == 1)
                    {
                        OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Yellow);
                        DrawFontTextMap(Tahoma13, "" + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Yellow);
                    }

                    if (obj.type == 2)
                    {
                        OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.HotPink);
                        DrawFontTextMap(Tahoma13, "VW", obj.pos, SharpDX.Color.HotPink);
                    }
                    if (obj.type == 3)
                    {
                        OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Orange);
                        DrawFontTextMap(Tahoma13, "! " + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Orange);
                    }
                }
            }


            var blink = true;

            if ((int)(Game.Time * 10) % 2 == 0)
            {
                blink = false;
            }

            var   HpBar        = getCheckBoxItem("HpBar");
            var   championInfo = getCheckBoxItem("championInfo");
            var   GankAlert    = getCheckBoxItem("GankAlert");
            var   ShowKDA      = getCheckBoxItem("ShowKDA");
            var   ShowClicks   = getCheckBoxItem("ShowClicks");
            var   posY         = getSliderItem("posY") * 0.01f * Drawing.Height;
            var   posX         = getSliderItem("posX") * 0.01f * Drawing.Width;
            float positionDraw = 0;
            float positionGang = 500;
            var   Width        = 103;
            var   Height       = 8;
            var   XOffset      = 10;
            var   YOffset      = 20;
            var   FillColor    = System.Drawing.Color.GreenYellow;
            var   Color        = System.Drawing.Color.Azure;
            float offset       = 0;

            foreach (var enemy in Program.Enemies)
            {
                if (getCheckBoxItem("SS"))
                {
                    offset += 0.15f;
                    if (!enemy.IsVisible && !enemy.IsDead)
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (ChampionInfoOne != null && enemy != Program.jungler)
                        {
                            if ((int)(Game.Time * 10) % 2 == 0 && Game.Time - ChampionInfoOne.LastVisableTime > 3 &&
                                Game.Time - ChampionInfoOne.LastVisableTime < 7)
                            {
                                DrawFontTextScreen(TextBold,
                                                   "SS " + enemy.ChampionName + " " +
                                                   (int)(Game.Time - ChampionInfoOne.LastVisableTime), Drawing.Width * offset,
                                                   Drawing.Height * 0.02f, SharpDX.Color.OrangeRed);
                            }
                            if (Game.Time - ChampionInfoOne.LastVisableTime >= 7)
                            {
                                DrawFontTextScreen(TextBold,
                                                   "SS " + enemy.ChampionName + " " +
                                                   (int)(Game.Time - ChampionInfoOne.LastVisableTime), Drawing.Width * offset,
                                                   Drawing.Height * 0.02f, SharpDX.Color.OrangeRed);
                            }
                        }
                    }
                }

                if (enemy.IsValidTarget() && ShowClicks)
                {
                    var lastWaypoint = enemy.GetWaypoints().Last().To3D();
                    if (lastWaypoint.IsValid())
                    {
                        drawLine(enemy.Position, lastWaypoint, 1, Color.Red);

                        if (enemy.GetWaypoints().Count() > 1)
                        {
                            DrawFontTextMap(Tahoma13, enemy.ChampionName, lastWaypoint, SharpDX.Color.WhiteSmoke);
                        }
                    }
                }

                if (HpBar && enemy.IsHPBarRendered && Render.OnScreen(Drawing.WorldToScreen(enemy.Position)))
                {
                    var barPos = enemy.HPBarPosition;

                    float QdmgDraw = 0, WdmgDraw = 0, EdmgDraw = 0, RdmgDraw = 0, damage = 0;
                    ;

                    if (Q.IsReady())
                    {
                        damage = damage + Q.GetDamage(enemy);
                    }

                    if (W.IsReady() && Player.ChampionName != "Kalista")
                    {
                        damage = damage + W.GetDamage(enemy);
                    }

                    if (E.IsReady())
                    {
                        damage = damage + E.GetDamage(enemy);
                    }

                    if (R.IsReady())
                    {
                        damage = damage + R.GetDamage(enemy);
                    }

                    if (Q.IsReady())
                    {
                        QdmgDraw = Q.GetDamage(enemy) / damage;
                    }

                    if (W.IsReady() && Player.ChampionName != "Kalista")
                    {
                        WdmgDraw = W.GetDamage(enemy) / damage;
                    }

                    if (E.IsReady())
                    {
                        EdmgDraw = E.GetDamage(enemy) / damage;
                    }

                    if (R.IsReady())
                    {
                        RdmgDraw = R.GetDamage(enemy) / damage;
                    }

                    var percentHealthAfterDamage = Math.Max(0, enemy.Health - damage) / enemy.MaxHealth;

                    var yPos                     = barPos.Y + YOffset;
                    var xPosDamage               = barPos.X + XOffset + Width * percentHealthAfterDamage;
                    var xPosCurrentHp            = barPos.X + XOffset + Width * enemy.Health / enemy.MaxHealth;

                    var differenceInHP = xPosCurrentHp - xPosDamage;
                    var pos1           = barPos.X + XOffset + 107 * percentHealthAfterDamage;

                    for (var i = 0; i < differenceInHP; i++)
                    {
                        if (Q.IsReady() && i < QdmgDraw * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, Color.Cyan);
                        }
                        else if (W.IsReady() && i < (QdmgDraw + WdmgDraw) * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, Color.Orange);
                        }
                        else if (E.IsReady() && i < (QdmgDraw + WdmgDraw + EdmgDraw) * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, Color.Yellow);
                        }
                        else if (R.IsReady() && i < (QdmgDraw + WdmgDraw + EdmgDraw + RdmgDraw) * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, Color.YellowGreen);
                        }
                    }
                }

                var kolor = Color.GreenYellow;

                if (enemy.IsDead)
                {
                    kolor = Color.Gray;
                }
                else if (!enemy.IsVisible)
                {
                    kolor = Color.OrangeRed;
                }

                var kolorHP = Color.GreenYellow;

                if (enemy.IsDead)
                {
                    kolorHP = Color.GreenYellow;
                }
                else if ((int)enemy.HealthPercent < 30)
                {
                    kolorHP = Color.Red;
                }
                else if ((int)enemy.HealthPercent < 60)
                {
                    kolorHP = Color.Orange;
                }

                if (championInfo)
                {
                    positionDraw += 15;
                    DrawFontTextScreen(Tahoma13, "" + enemy.Level, posX - 25, posY + positionDraw, SharpDX.Color.White);
                    DrawFontTextScreen(Tahoma13, enemy.ChampionName, posX, posY + positionDraw, SharpDX.Color.White);

                    if (true)
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (Game.Time - ChampionInfoOne.FinishRecallTime < 4)
                        {
                            DrawFontTextScreen(Tahoma13, "FINISH", posX - 90, posY + positionDraw,
                                               SharpDX.Color.GreenYellow);
                        }
                        else if (ChampionInfoOne.StartRecallTime <= ChampionInfoOne.AbortRecallTime &&
                                 Game.Time - ChampionInfoOne.AbortRecallTime < 4)
                        {
                            DrawFontTextScreen(Tahoma13, "ABORT", posX - 90, posY + positionDraw,
                                               SharpDX.Color.Yellow);
                        }
                        else if (Game.Time - ChampionInfoOne.StartRecallTime < 8)
                        {
                            var recallPercent = (int)((Game.Time - ChampionInfoOne.StartRecallTime) / 8 * 100);
                            var recallX1      = posX - 90;
                            var recallY1      = posY + positionDraw + 3;
                            var recallX2      = recallX1 + recallPercent / 2 + 1;
                            var recallY2      = posY + positionDraw + 3;
                            Drawing.DrawLine(recallX1, recallY1, recallX1 + 50, recallY2, 8, Color.Red);
                            Drawing.DrawLine(recallX1, recallY1, recallX2, recallY2, 8, Color.White);
                        }
                    }

                    if (ShowKDA)
                    {
                        var fSlot = enemy.Spellbook.Spells[4];

                        if (fSlot.Name != "SummonerFlash")
                        {
                            fSlot = enemy.Spellbook.Spells[5];
                        }

                        if (fSlot.Name == "SummonerFlash")
                        {
                            var fT = fSlot.CooldownExpires - Game.Time;
                            if (fT < 0)
                            {
                                DrawFontTextScreen(Tahoma13, "F rdy", posX + 110, posY + positionDraw,
                                                   SharpDX.Color.GreenYellow);
                            }
                            else
                            {
                                DrawFontTextScreen(Tahoma13, "F " + (int)fT, posX + 110, posY + positionDraw,
                                                   SharpDX.Color.Yellow);
                            }
                        }

                        if (enemy.Level > 5)
                        {
                            var rSlot = enemy.Spellbook.Spells[3];
                            var t     = rSlot.CooldownExpires - Game.Time;

                            if (t < 0)
                            {
                                DrawFontTextScreen(Tahoma13, "R rdy", posX + 145, posY + positionDraw,
                                                   SharpDX.Color.GreenYellow);
                            }
                            else
                            {
                                DrawFontTextScreen(Tahoma13, "R " + (int)t, posX + 145, posY + positionDraw,
                                                   SharpDX.Color.Yellow);
                            }
                        }
                        else
                        {
                            DrawFontTextScreen(Tahoma13, "R ", posX + 145, posY + positionDraw, SharpDX.Color.Yellow);
                        }
                    }

                    //Drawing.DrawText(posX - 70, posY + positionDraw, kolor, enemy.Level + " lvl");
                }

                var Distance = Player.Distance(enemy.Position);
                if (GankAlert && !enemy.IsDead && Distance > 1200)
                {
                    var wts =
                        Drawing.WorldToScreen(ObjectManager.Player.Position.Extend(enemy.Position, positionGang).To3D());

                    wts[0] = wts[0];
                    wts[1] = wts[1] + 15;

                    if ((int)enemy.HealthPercent > 0)
                    {
                        Drawing.DrawLine(wts[0], wts[1], wts[0] + (int)enemy.HealthPercent / 2 + 1, wts[1], 8, kolorHP);
                    }

                    if ((int)enemy.HealthPercent < 100)
                    {
                        Drawing.DrawLine(wts[0] + (int)enemy.HealthPercent / 2, wts[1], wts[0] + 50, wts[1], 8,
                                         Color.White);
                    }

                    if (Distance > 3500 && enemy.IsVisible)
                    {
                        DrawFontTextMap(Tahoma13, enemy.ChampionName,
                                        Player.Position.Extend(enemy.Position, positionGang).To3D(), SharpDX.Color.White);
                    }
                    else if (!enemy.IsVisible)
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (ChampionInfoOne != null)
                        {
                            if (Game.Time - ChampionInfoOne.LastVisableTime > 3 &&
                                Game.Time - ChampionInfoOne.LastVisableTime < 7)
                            {
                                if (blink)
                                {
                                    DrawFontTextMap(Tahoma13,
                                                    "SS " + enemy.ChampionName + " " +
                                                    (int)(Game.Time - ChampionInfoOne.LastVisableTime),
                                                    Player.Position.Extend(enemy.Position, positionGang).To3D(),
                                                    SharpDX.Color.Yellow);
                                }
                            }
                            else
                            {
                                DrawFontTextMap(Tahoma13,
                                                "SS " + enemy.ChampionName + " " +
                                                (int)(Game.Time - ChampionInfoOne.LastVisableTime),
                                                Player.Position.Extend(enemy.Position, positionGang).To3D(), SharpDX.Color.Yellow);
                            }
                        }
                        else
                        {
                            DrawFontTextMap(Tahoma13, "SS " + enemy.ChampionName,
                                            Player.Position.Extend(enemy.Position, positionGang).To3D(), SharpDX.Color.Yellow);
                        }
                    }
                    else if (blink)
                    {
                        DrawFontTextMap(Tahoma13B, enemy.ChampionName,
                                        Player.Position.Extend(enemy.Position, positionGang).To3D(), SharpDX.Color.OrangeRed);
                    }

                    if (Distance < 3500 && enemy.IsVisible &&
                        !Render.OnScreen(
                            Drawing.WorldToScreen(Player.Position.Extend(enemy.Position, Distance + 500).To3D())))
                    {
                        drawLine(Player.Position.Extend(enemy.Position, 100).To3D(),
                                 Player.Position.Extend(enemy.Position, positionGang - 100).To3D(),
                                 (int)((3500 - Distance) / 300), Color.OrangeRed);
                    }
                    else if (Distance < 3500 && !enemy.IsVisible &&
                             !Render.OnScreen(
                                 Drawing.WorldToScreen(Player.Position.Extend(enemy.Position, Distance + 500).To3D())))
                    {
                        var need = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (need != null && Game.Time - need.LastVisableTime < 5)
                        {
                            drawLine(Player.Position.Extend(enemy.Position, 100).To3D(),
                                     Player.Position.Extend(enemy.Position, positionGang - 100).To3D(),
                                     (int)((3500 - Distance) / 300), Color.Gray);
                        }
                    }
                }
                positionGang = positionGang + 100;
            }

            if (Program.AIOmode == 2)
            {
                Drawing.DrawText(Drawing.Width * 0.2f, Drawing.Height * 1f, Color.Cyan, "OKTW AIO only utility mode ON");
            }
        }
Example #3
0
        private void Drawing_OnEndScene(EventArgs args)
        {
            if (Config.Item("disableDraws").GetValue<bool>())
                return;

            bool blink = true;

            if ((int)(Game.Time * 10) % 2 == 0)
                blink = false;

            var minimap = Config.Item("minimap").GetValue<bool>();
            var HpBar = Config.Item("HpBar").GetValue<bool>();
            var championInfo = Config.Item("championInfo").GetValue<bool>();
            var ScreenRadar = Config.Item("ScreenRadar").GetValue<bool>();
            var ScreenRadarEnemy = Config.Item("ScreenRadarEnemy").GetValue<bool>();
            var ScreenRadarJungler = Config.Item("ScreenRadarJungler").GetValue<bool>();
            var SpellTrackerEnemy = Config.Item("SpellTrackerEnemy").GetValue<bool>();
            var SpellTrackerAlly = Config.Item("SpellTrackerAlly").GetValue<bool>();
            var SpellTrackerMe = Config.Item("SpellTrackerMe").GetValue<bool>();
            var SpellTrackerLvl = Config.Item("SpellTrackerLvl").GetValue<bool>();
            var ShowClicks = Config.Item("ShowClicks").GetValue<bool>();
            var championInfoHD = Config.Item("championInfoHD").GetValue<bool>();
            float posY = (Config.Item("posY").GetValue<Slider>().Value * 0.001f) * Drawing.Height;
            float posX = (Config.Item("posX").GetValue<Slider>().Value * 0.001f) * Drawing.Width;

            int Width = 103;
            int Height = 8;
            int XOffset = 10;
            int YOffset = 20;
            var FillColor = System.Drawing.Color.GreenYellow;
            var Color = System.Drawing.Color.Azure;

            var hudSpace = 0;
            var area = 5000;
            var notPos = new Vector2(Drawing.Width / 2 - 150, Drawing.Height / 6);

            var centerScreenWorld = Drawing.ScreenToWorld(centerScreen);
            if (Config.Item("Notification").GetValue<bool>())
            {
                var noti = NotificationsList.FirstOrDefault();
                if (noti != null)
                {
                    if (noti.TimeRec == 0)
                    {
                        noti.TimeRec = Utils.TickCount;
                    }
                    else if (Utils.TickCount - noti.TimeRec > 3000)
                    {
                        NotificationsList.Remove(noti);
                    }
                    else
                    {
                        float time = Utils.TickCount - noti.TimeRec;
                        float calcOpacity = 1;

                        if (time < 500)
                            calcOpacity = time / 500;
                        else if (time > 2500)
                            calcOpacity = (3000 - time) / 500;

                        var opacity = new ColorBGRA(256, 256, 256, 0.9f * calcOpacity);
                        Not.Position = notPos;

                        if (noti.Lost)
                            Not.Color = new ColorBGRA(0, 0.5f, 1f, 0.6f * calcOpacity);

                        else
                            Not.Color = new ColorBGRA(0.5f, 0, 0, 0.6f * calcOpacity);

                        Not.OnEndScene();

                        if (noti.Lost)
                        {
                            Lost.Position = notPos + new Vector2(81, 8);
                            Lost.Color = opacity;
                            Lost.OnEndScene();
                        }
                        else
                        {
                            Isready.Position = notPos + new Vector2(81, 8);
                            Isready.Color = opacity;
                            Isready.OnEndScene();
                        }

                        noti.SpellIco.Position = notPos + new Vector2(8, 8);
                        noti.SpellIco.Color = opacity;
                        noti.SpellIco.OnEndScene();

                        noti.Hero.Position = notPos + new Vector2(152, 8);
                        noti.Hero.Color = opacity;
                        noti.Hero.Scale = new Vector2(0.547f, 0.547f);
                        noti.Hero.OnEndScene();

                    }
                }
            }
            if (Config.Item("showWards").GetValue<bool>())
            {
                #region showWards
                var circleSize = 30;
                foreach (var obj in OKTWward.HiddenObjList.Where(obj => Render.OnScreen(Drawing.WorldToScreen(obj.pos))))
                {
                    if (obj.pos.IsOnScreen())
                    {
                        var pos = Drawing.WorldToScreen(obj.pos) + new Vector2(-50, -50); ;
                        if (obj.type == 1)
                        {
                            Drawing.DrawText(pos.X - 15, pos.Y - 13, System.Drawing.Color.YellowGreen, MakeNiceNumber(obj.endTime - Game.Time));
                            Ward.Position = pos + new Vector2(10, 10);

                            Ward.OnEndScene();
                            DrawFontTextMap(Tahoma13, ((int)(obj.endTime - Game.Time)).ToString(), obj.pos + new Vector3(-18, 18, 0), SharpDX.Color.White);
                        }
                        else if (obj.type == 2)
                        {
                            Pink.Position = pos + new Vector2(10, 10);
                            Pink.OnEndScene();

                        }
                        else if (obj.type == 3)
                        {
                            OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Orange);
                            DrawFontTextMap(Tahoma13, "! " + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Orange);
                        }
                    }

                    {
                        var pos = Drawing.WorldToMinimap(obj.pos);
                        if (obj.type == 1)
                        {
                            WardMM.Position = pos;
                            WardMM.OnEndScene();
                        }
                        else if (obj.type == 2)
                        {
                            PinkMM.Position = pos;
                            PinkMM.OnEndScene();
                        }
                        else if (obj.type == 3)
                        {

                        }
                    }
                }
                #endregion
            }

            foreach (var hero in OKTWtracker.ChampionInfoList.Where(x => !x.Hero.IsDead))
            {
                var barPos = hero.Hero.HPBarPosition;
                var q = hero.Hero.Spellbook.GetSpell(SpellSlot.Q);
                var w = hero.Hero.Spellbook.GetSpell(SpellSlot.W);
                var e = hero.Hero.Spellbook.GetSpell(SpellSlot.E);
                var r = hero.Hero.Spellbook.GetSpell(SpellSlot.R);

                if (hero.Hero.IsVisible && ((SpellTrackerAlly && (hero.Hero.IsAlly && !hero.Hero.IsMe)) || (SpellTrackerEnemy && hero.Hero.IsEnemy) || (SpellTrackerMe && hero.Hero.IsMe)))
                {
                    if (hero.Hero.IsAlly)
                        barPos = barPos + new Vector2(0, -4);
                    if (hero.Hero.IsMe)
                        barPos = barPos + new Vector2(25, -7);

                    Drawing.DrawLine(barPos + new Vector2(7, 34), barPos + new Vector2(115, 34), 9, System.Drawing.Color.DimGray);
                    Drawing.DrawLine(barPos + new Vector2(8, 35), barPos + new Vector2(113, 35), 7, System.Drawing.Color.Black);

                    var qCal = Math.Max(Math.Min((q.CooldownExpires - Game.Time) / q.Cooldown, 1), 0);
                    var wCal = Math.Max(Math.Min((w.CooldownExpires - Game.Time) / w.Cooldown, 1), 0);
                    var eCal = Math.Max(Math.Min((e.CooldownExpires - Game.Time) / e.Cooldown, 1), 0);
                    var rCal = Math.Max(Math.Min((r.CooldownExpires - Game.Time) / r.Cooldown, 1), 0);

                    if (q.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(9, 36), barPos + new Vector2(33 - (24 * qCal), 36), 5, qCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(q.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(10 + i * 5, 37), barPos + new Vector2(11 + i * 5, 37), 3, System.Drawing.Color.Black);
                            
                        
                    }
                    if (w.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(35, 36), barPos + new Vector2(59 - (24 * wCal), 36), 5, wCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(w.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(36 + i * 5, 37), barPos + new Vector2(37 + i * 5, 37), 3, System.Drawing.Color.Black);
                        
                    }
                    if (e.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(61, 36), barPos + new Vector2(85 - (24 * eCal), 36), 5, eCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(e.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(62 + i * 5, 37), barPos + new Vector2(63 + i * 5, 37), 3, System.Drawing.Color.Black);
                        
                    }
                    if (r.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(87, 36), barPos + new Vector2(112 - (24 * rCal), 36), 5, rCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(r.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(88 + i * 5, 37), barPos + new Vector2(89 + i * 5, 37), 3, System.Drawing.Color.Black);
                    }
                }

                if (hero.Hero.IsMe)
                    continue;

                if (hero.Hero.IsEnemy)
                {
                    if (ShowClicks && hero.Hero.IsValidTarget() && hero.LastWayPoint.IsValid() && hero.Hero.Position.Distance(hero.LastWayPoint) > 100)
                    {
                        drawLine(hero.Hero.Position, hero.LastWayPoint, 1, System.Drawing.Color.Red);
                        DrawFontTextMap(Tahoma13, hero.Hero.ChampionName, hero.LastWayPoint, SharpDX.Color.WhiteSmoke);
                    }
                    #region Damage indicators
                    if (HpBar && hero.Hero.IsHPBarRendered && hero.Hero.Position.IsOnScreen())
                    {
                        
                        if (HpBar)
                        {
                            float QdmgDraw = 0, WdmgDraw = 0, EdmgDraw = 0, RdmgDraw = 0, damage = 0;
                            bool qRdy = Player.Spellbook.GetSpell(SpellSlot.Q).IsReady();
                            bool wRdy = Player.Spellbook.GetSpell(SpellSlot.W).IsReady();
                            bool eRdy = Player.Spellbook.GetSpell(SpellSlot.E).IsReady();
                            bool rRdy = Player.Spellbook.GetSpell(SpellSlot.R).IsReady();

                            float qDmg = 0;
                            float wDmg = 0;
                            float eDmg = 0;
                            float rDmg = 0;

                            if (qRdy)
                                qDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.Q);
                            if (wRdy)
                                wDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.W);
                            if (eRdy)
                                eDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.E);
                            if (rRdy)
                                rDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.R);

                            damage = qDmg + wDmg + eDmg + rDmg;

                            if (qRdy)
                                QdmgDraw = (qDmg / damage);

                            if (wRdy && Player.ChampionName != "Kalista")
                                WdmgDraw = (wDmg / damage);

                            if (eRdy)
                                EdmgDraw = (eDmg / damage);

                            if (rRdy)
                                RdmgDraw = (rDmg / damage);

                            var percentHealthAfterDamage = Math.Max(0, hero.Hero.Health - damage) / hero.Hero.MaxHealth;

                            var yPos = barPos.Y + YOffset;
                            var xPosDamage = barPos.X + XOffset + Width * percentHealthAfterDamage;
                            var xPosCurrentHp = barPos.X + XOffset + Width * hero.Hero.Health / hero.Hero.MaxHealth;

                            float differenceInHP = xPosCurrentHp - xPosDamage;
                            var pos1 = barPos.X + XOffset + (107 * percentHealthAfterDamage);

                            for (int i = 0; i < differenceInHP; i++)
                            {
                                if (qRdy && i < QdmgDraw * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Cyan);
                                else if (wRdy && i < (QdmgDraw + WdmgDraw) * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Orange);
                                else if (eRdy && i < (QdmgDraw + WdmgDraw + EdmgDraw) * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Yellow);
                                else if (rRdy && i < (QdmgDraw + WdmgDraw + EdmgDraw + RdmgDraw) * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.YellowGreen);
                            }
                        }
                    }
                    #endregion
                    if (minimap)
                    {
                        if (!hero.Hero.IsVisible)
                        {
                            var minimapSprite = hero.MinimapSprite;

                            var lastWP = hero.LastWayPoint;
                            var heroPos = hero.PredictedPos;

                            if (!hero.LastWayPoint.IsZero)
                            {
                                if (heroPos.Distance(lastWP) < 1200)
                                    lastWP = heroPos.Extend(lastWP, 1200);
                                Drawing.DrawLine(Drawing.WorldToMinimap(heroPos), Drawing.WorldToMinimap(lastWP), 2, System.Drawing.Color.OrangeRed);
                            }

                            minimapSprite.Position = Drawing.WorldToMinimap(heroPos) - new Vector2(10, 10);
                            minimapSprite.OnEndScene();
                        }
                    }

                    if (championInfo && championInfoHD)
                    {

                        var hudSprite = hero.HudSprite;

                        if (!hero.Hero.IsVisible)
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                        else
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());

                        Vector2 hudPos = new Vector2(posX + hudSpace, posY);
                        float scale = 0.5f;
                        hudSprite.Scale = new Vector2(scale, scale);
                        hudSprite.Position = hudPos - new Vector2(12, 10);
                        hudSprite.OnEndScene();

                        var vec1manaB = new Vector2(hudPos.X - 9, hudPos.Y + 48);
                        var vec2manaB = new Vector2(hudPos.X - 8 + 50 + 3, hudPos.Y + 48);
                        Drawing.DrawLine(vec1manaB, vec2manaB, 18, System.Drawing.Color.DarkGoldenrod);

                        var vec1hpB = new Vector2(hudPos.X - 8, hudPos.Y + 49);
                        var vec2hpB = new Vector2(hudPos.X - 8 + 50 + 2, hudPos.Y + 49);
                        Drawing.DrawLine(vec1hpB, vec2hpB, 16, System.Drawing.Color.Black);

                        System.Drawing.Color color = System.Drawing.Color.LimeGreen;
                        if (hero.Hero.HealthPercent < 30)
                            color = System.Drawing.Color.OrangeRed;
                        else if (hero.Hero.HealthPercent < 50)
                            color = System.Drawing.Color.DarkOrange;
                        var vec1hp = new Vector2(hudPos.X - 7, hudPos.Y + 50);
                        var vec2hp = new Vector2(hudPos.X - 7 + hero.Hero.HealthPercent / 2, hudPos.Y + 50);
                        Drawing.DrawLine(vec1hp, vec2hp, 7, color);

                        var vec1mana = new Vector2(hudPos.X - 7, hudPos.Y + 59);
                        var vec2mana = new Vector2(hudPos.X - 7 + hero.Hero.ManaPercent / 2, hudPos.Y + 59);
                        Drawing.DrawLine(vec1mana, vec2mana, 5, System.Drawing.Color.DodgerBlue);
                        var vecHudLevel = new Vector2(hudPos.X + 30, hudPos.Y + 33);

                        DrawFontTextScreen(HudLevel, hero.Hero.Level.ToString(), vecHudLevel.X, vecHudLevel.Y, SharpDX.Color.White);

                        {
                            if (Game.Time - hero.FinishRecallTime < 4)
                            {
                                DrawFontTextScreen(RecFont, "    FINISH", hudPos.X - 10, hudPos.Y + 18, SharpDX.Color.YellowGreen);
                            }
                            else if (hero.StartRecallTime <= hero.AbortRecallTime && Game.Time - hero.AbortRecallTime < 4)
                            {
                                DrawFontTextScreen(RecFont, "    ABORT", hudPos.X - 10, hudPos.Y + 18, SharpDX.Color.Yellow);
                            }
                            else if (Game.Time - hero.StartRecallTime < 8)
                            {
                                var recallPercent = (Game.Time - hero.StartRecallTime) / 8;
                                var vec1rec = new Vector2(hudPos.X - 9, hudPos.Y + 35);
                                var vec2rec = new Vector2(hudPos.X - 8 + 50 + 3, hudPos.Y + 35);
                                Drawing.DrawLine(vec1rec, vec2rec, 14, System.Drawing.Color.DarkGoldenrod);

                                vec1rec = new Vector2(hudPos.X - 8, hudPos.Y + 36);
                                vec2rec = new Vector2(hudPos.X - 8 + 50 + 2, hudPos.Y + 36);
                                Drawing.DrawLine(vec1rec, vec2rec, 12, System.Drawing.Color.Black);

                                vec1rec = new Vector2(hudPos.X - 7, hudPos.Y + 37);
                                vec2rec = new Vector2(hudPos.X - 7 + 100 * recallPercent / 2, hudPos.Y + 37);
                                Drawing.DrawLine(vec1rec, vec2rec, 10, System.Drawing.Color.Yellow);

                                if (blink)
                                    DrawFontTextScreen(RecFont, "RECALLING", hudPos.X - 10, hudPos.Y + 18, SharpDX.Color.White);

                            }
                        }

                        var ult = hero.Hero.Spellbook.Spells[3];
                        var sum1 = hero.Hero.Spellbook.Spells[4];
                        var sum2 = hero.Hero.Spellbook.Spells[5];

                        if (ult != null)
                        {
                            var sumTime = ult.CooldownExpires - Game.Time;

                            var spritePos = new Vector2(hudPos.X + 3, hudPos.Y - 53);
                            var vecHudCd = new Vector2(hudPos.X + 10, hudPos.Y - 46);
                            var sumSprite = GetSummonerIcon("r");
                            sumSprite.Position = spritePos;

                            sumSprite.Scale = new Vector2(0.4f, 0.4f);
                            if (hero.Hero.Level < 6)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum1 != null)
                        {
                            var sumTime = sum1.CooldownExpires - Game.Time;

                            var vecFlashPos = new Vector2(hudPos.X - 10, hudPos.Y - 30);
                            var vecHudCd = new Vector2(hudPos.X - 4, hudPos.Y - 24);
                            var sumSprite = GetSummonerIcon(sum1.Name);
                            sumSprite.Position = vecFlashPos;
                            sumSprite.Scale = new Vector2(0.4f, 0.4f);

                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum2 != null)
                        {
                            var sumTime = sum2.CooldownExpires - Game.Time;

                            var vecHealPos = new Vector2(hudPos.X + 15, hudPos.Y - 30);
                            var vecHudCd = new Vector2(hudPos.X + 22, hudPos.Y - 24);
                            var sumSprite = GetSummonerIcon(sum2.Name);
                            sumSprite.Position = vecHealPos;
                            sumSprite.Scale = new Vector2(0.4f, 0.4f);

                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }
                        hudSpace += 65;
                    }
                    else if (championInfo)
                    {
                        var hudSprite = hero.HudSprite;

                        if (!hero.Hero.IsVisible)
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                        else
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());

                        Vector2 hudPos = new Vector2(posX + hudSpace, posY);
                        float scale = 0.33f;
                        hudSprite.Scale = new Vector2(scale, scale);
                        hudSprite.Position = hudPos - new Vector2(11, -8);
                        hudSprite.OnEndScene();

                        var vec1manaB = new Vector2(hudPos.X - 9, hudPos.Y + 48);
                        var vec2manaB = new Vector2(hudPos.X - 8 + 33 + 3, hudPos.Y + 48);
                        Drawing.DrawLine(vec1manaB, vec2manaB, 18, System.Drawing.Color.DarkGoldenrod);

                        var vec1hpB = new Vector2(hudPos.X - 8, hudPos.Y + 49);
                        var vec2hpB = new Vector2(hudPos.X - 8 + 33 + 2, hudPos.Y + 49);
                        Drawing.DrawLine(vec1hpB, vec2hpB, 16, System.Drawing.Color.Black);

                        System.Drawing.Color color = System.Drawing.Color.LimeGreen;
                        if (hero.Hero.HealthPercent < 30)
                            color = System.Drawing.Color.OrangeRed;
                        else if (hero.Hero.HealthPercent < 50)
                            color = System.Drawing.Color.DarkOrange;
                        var vec1hp = new Vector2(hudPos.X - 7, hudPos.Y + 50);
                        var vec2hp = new Vector2(hudPos.X - 7 +  33 * hero.Hero.HealthPercent * 0.01f, hudPos.Y + 50);
                        Drawing.DrawLine(vec1hp, vec2hp, 7, color);

                        var vec1mana = new Vector2(hudPos.X - 7, hudPos.Y + 59);
                        var vec2mana = new Vector2(hudPos.X - 7 + 33 * hero.Hero.ManaPercent * 0.01f, hudPos.Y + 59);
                        Drawing.DrawLine(vec1mana, vec2mana, 5, System.Drawing.Color.DodgerBlue);
                        var vecHudLevel = new Vector2(hudPos.X + 15, hudPos.Y + 36);
                        DrawFontTextScreen(HudLevel2, hero.Hero.Level.ToString(), vecHudLevel.X, vecHudLevel.Y, SharpDX.Color.White);
                        {
                            if (Game.Time - hero.FinishRecallTime < 4)
                            {
                                DrawFontTextScreen(HudLevel2, "FINISH", hudPos.X - 9, hudPos.Y + 18, SharpDX.Color.YellowGreen);
                            }
                            else if (hero.StartRecallTime <= hero.AbortRecallTime && Game.Time - hero.AbortRecallTime < 4)
                            {
                                DrawFontTextScreen(HudLevel2, "ABORT", hudPos.X - 9, hudPos.Y + 18, SharpDX.Color.Yellow);
                            }
                            else if (Game.Time - hero.StartRecallTime < 8)
                            {
                                var recallPercent = (Game.Time - hero.StartRecallTime) / 8;
                                var vec1rec = new Vector2(hudPos.X - 9, hudPos.Y + 35);
                                var vec2rec = new Vector2(hudPos.X - 8 + 33 + 3, hudPos.Y + 35);
                                Drawing.DrawLine(vec1rec, vec2rec, 14, System.Drawing.Color.DarkGoldenrod);

                                vec1rec = new Vector2(hudPos.X - 8, hudPos.Y + 36);
                                vec2rec = new Vector2(hudPos.X - 8 + 33 + 2, hudPos.Y + 36);
                                Drawing.DrawLine(vec1rec, vec2rec, 12, System.Drawing.Color.Black);

                                vec1rec = new Vector2(hudPos.X - 7, hudPos.Y + 37);
                                vec2rec = new Vector2(hudPos.X - 7 + 33 * recallPercent, hudPos.Y + 37);
                                Drawing.DrawLine(vec1rec, vec2rec, 10, System.Drawing.Color.Yellow);

                                if (blink)
                                    DrawFontTextScreen(HudLevel2, "RECALL", hudPos.X - 9, hudPos.Y + 18, SharpDX.Color.White);

                            }
                        }

                        var ult = hero.Hero.Spellbook.Spells[3];
                        var sum1 = hero.Hero.Spellbook.Spells[4];
                        var sum2 = hero.Hero.Spellbook.Spells[5];

                        if (ult != null)
                        {
                            var sumTime = ult.CooldownExpires - Game.Time;

                            var spritePos = new Vector2(hudPos.X - 2, hudPos.Y - 30);
                            var vecHudCd = new Vector2(hudPos.X + 2, hudPos.Y - 24);
                            var sumSprite = GetSummonerIcon("r");
                            sumSprite.Position = spritePos;

                            sumSprite.Scale = new Vector2(0.35f, 0.35f);
                            if (hero.Hero.Level < 6)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum1 != null)
                        {
                            var sumTime = sum1.CooldownExpires - Game.Time;

                            var vecFlashPos = new Vector2(hudPos.X - 13, hudPos.Y - 10);
                            var vecHudCd = new Vector2(hudPos.X - 8, hudPos.Y - 5);
                            var sumSprite = GetSummonerIcon(sum1.Name);
                            sumSprite.Position = vecFlashPos;
                            sumSprite.Scale = new Vector2(0.35f, 0.35f);
                            
                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum2 != null)
                        {
                            var sumTime = sum2.CooldownExpires - Game.Time;

                            var vecHealPos = new Vector2(hudPos.X + 9, hudPos.Y - 10);
                            var vecHudCd = new Vector2(hudPos.X + 15, hudPos.Y - 5);
                            var sumSprite = GetSummonerIcon(sum2.Name);
                            sumSprite.Position = vecHealPos;
                            sumSprite.Scale = new Vector2(0.35f, 0.35f);

                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }
                        hudSpace += 45;
                    }
                }

                if (ScreenRadar && !hero.Hero.Position.IsOnScreen() && (!ScreenRadarEnemy || hero.Hero.IsEnemy) && (!ScreenRadarJungler || hero.IsJungler))
                {
                    var dis = centerScreenWorld.Distance(hero.Hero.Position);
                    if (dis < area)
                    {
                        float scale = 1.1f;

                        if (dis < area)
                            scale -= dis / area;

                        var normalSprite = hero.NormalSprite;

                        Vector2 dupa2 = centerScreen.Extend(Drawing.WorldToScreen(hero.Hero.Position), Drawing.Height / 2 - 120);

                        normalSprite.Scale = new Vector2(scale, scale);

                        if (hero.Hero.IsEnemy)
                        {
                            if (!hero.Hero.IsHPBarRendered)
                            {
                                dupa2 = centerScreen.Extend(Drawing.WorldToScreen(hero.LastWayPoint), Drawing.Height / 2 - 120);
                                normalSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                            }
                            else
                                normalSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                        }
                        normalSprite.Scale = new Vector2(scale, scale);
                        normalSprite.Position = dupa2;
                        normalSprite.OnEndScene();
                    }
                }
            }
        }