Exemple #1
0
                public override bool Draw()
                {
                    var rect = new SharpDX.Rectangle((int)MainMenu.Position.X + 160, (int)MainMenu.Position.Y + 95 + 50, 750, 380);

                    if (MainMenu.IsVisible && IsVisible && rect.IsInside(Position))
                    {
                        _colorPickerSprite.Draw(new Vector2(Position.X + 522, Position.Y - 34));
                        _colorOverlaySprite.Color = SelectedColor;
                        _colorOverlaySprite.Draw(new Vector2(Position.X + 522 + 1, Position.Y - 34 + 1));
                        return(true);
                    }
                    return(false);
                }
Exemple #2
0
        public override void Draw()
        {
            try
            {
                var ia     = 0;
                var ie     = 0;
                var lefty  = Camera.ScreenPosition.Y + HealthTracker["LY"].Cast <Slider>().CurrentValue;
                var leftx  = (Camera.ScreenPosition.X + HealthTracker["LX"].Cast <Slider>().CurrentValue) * 10;
                var righty = Camera.ScreenPosition.Y + HealthTracker["RY"].Cast <Slider>().CurrentValue;
                var rightx = (Camera.ScreenPosition.X + 10 + HealthTracker["RX"].Cast <Slider>().CurrentValue) * 10;
                foreach (var hero in
                         EntityManager.Heroes.AllHeroes.Where(a => (a.IsAlly && HealthTracker["ally"].Cast <CheckBox>().CurrentValue) || (a.IsEnemy && HealthTracker["enemy"].Cast <CheckBox>().CurrentValue)))
                {
                    var spell1   = hero.SlotToSpell(SpellSlot.Summoner1);
                    var spell2   = hero.SlotToSpell(SpellSlot.Summoner2);
                    var i        = hero.Team == GameObjectTeam.Chaos ? ia : ie;
                    var righthud = new Vector2(rightx, (righty + i) * 10);
                    var lefthud  = new Vector2(leftx, (lefty + i) * 10);
                    var hero1    = hero;
                    if (hero.Team == GameObjectTeam.Chaos)
                    {
                        RightEmpty.Draw(righthud);
                        Health(hero, new Vector2(rightx + 17, ((righty + i) * 10) + 79));
                        Mana(hero, new Vector2(rightx + 17, ((righty + i) * 10) + 90));

                        foreach (var sprite in ChampionSprites)
                        {
                            if (hero.IsDead || !hero.IsHPBarRendered)
                            {
                                if (sprite.Key.Equals(hero.Name + "Dead"))
                                {
                                    sprite.Value.Draw(new Vector2(rightx + 11, ((righty + i) * 10) + 4));
                                    if (hero.IsDead)
                                    {
                                        if (DeathTimers.FirstOrDefault(a => a.Key == hero.Name).Value - Game.Time > 0)
                                        {
                                            var time = (int)(DeathTimers.FirstOrDefault(a => a.Key == hero.Name).Value - Game.Time);
                                            DeathText.Position  = new Vector2(rightx + 30, ((righty + i) * 10) + 22);
                                            DeathText.TextValue = time.ToString();
                                            DeathText.Draw();
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (sprite.Key.Equals(hero.Name))
                                {
                                    sprite.Value.Draw(new Vector2(rightx + 13, ((righty + i) * 10) + 6));
                                }
                            }
                        }

                        foreach (var sprite in SummonersSprites)
                        {
                            if (sprite.Key.Contains(hero1.Name + 1))
                            {
                                if (spell1.Timer() > 0)
                                {
                                    if (sprite.Key.Equals(hero1.Name + 1 + "NR"))
                                    {
                                        sprite.Value.Draw(new Vector2(rightx + 80, ((righty + i) * 10) + 5));
                                        CDText.Position  = new Vector2(rightx + 84, ((righty + i) * 10) + 15);
                                        CDText.TextValue = spell1.CoolDown();
                                        CDText.Draw();
                                    }
                                }
                                else if (sprite.Key.Equals(hero1.Name + 1 + "R"))
                                {
                                    sprite.Value.Draw(new Vector2(rightx + 82, ((righty + i) * 10) + 7));
                                }
                            }

                            if (sprite.Key.Contains(hero1.Name + 2))
                            {
                                if (spell2.Timer() > 0)
                                {
                                    if (sprite.Key.Equals(hero1.Name + 2 + "NR"))
                                    {
                                        sprite.Value.Draw(new Vector2(rightx + 79, ((righty + i) * 10) + 39));
                                        CDText.Position  = new Vector2(rightx + 84, ((righty + i) * 10) + 50);
                                        CDText.TextValue = spell2.CoolDown();
                                        CDText.Draw();
                                    }
                                }
                                else if (sprite.Key.Equals(hero1.Name + 2 + "R"))
                                {
                                    sprite.Value.Draw(new Vector2(rightx + 82, ((righty + i) * 10) + 40));
                                }
                            }
                        }

                        foreach (var sprite in UltSprites)
                        {
                            if (hero.SlotToSpell(SpellSlot.R).Timer() > 0 || !hero.SlotToSpell(SpellSlot.R).IsLearned)
                            {
                                if (sprite.Key.Equals(hero.Name + "NR"))
                                {
                                    sprite.Value.Draw(new Vector2(rightx, ((righty + i) * 10) + 1));
                                    if (hero.SlotToSpell(SpellSlot.R).IsLearned)
                                    {
                                        CDText.Position  = new Vector2(rightx + 4, ((righty + i) * 10) + 10);
                                        CDText.TextValue = hero.SlotToSpell(SpellSlot.R).CoolDown();
                                        CDText.Draw();
                                    }
                                }
                            }
                            else if (sprite.Key.Equals(hero1.Name))
                            {
                                sprite.Value.Draw(new Vector2(rightx, ((righty + i) * 10) + 1));
                            }
                        }

                        RightHUD.Draw(righthud);
                        hudText.Position  = new Vector2(rightx + 20, ((righty + i) * 10) + 45);
                        hudText.TextValue = hero.Level.ToString();
                        hudText.Draw();
                        ia += HealthTracker["space"].Cast <Slider>().CurrentValue;
                    }
                    else
                    {
                        LeftEmpty.Draw(lefthud);
                        Health(hero, new Vector2(leftx + 9, ((lefty + i) * 10) + 79));
                        Mana(hero, new Vector2(leftx + 9, ((lefty + i) * 10) + 90));
                        foreach (var sprite in ChampionSprites)
                        {
                            if (hero.IsDead || !hero.IsHPBarRendered)
                            {
                                if (sprite.Key.Equals(hero.Name + "Dead"))
                                {
                                    sprite.Value.Draw(new Vector2(leftx + 40, ((lefty + i) * 10) + 4));
                                    if (hero.IsDead)
                                    {
                                        if (DeathTimers.FirstOrDefault(a => a.Key == hero.Name).Value - Game.Time > 0)
                                        {
                                            var time = (int)(DeathTimers.FirstOrDefault(a => a.Key == hero.Name).Value - Game.Time);
                                            DeathText.Position  = new Vector2(leftx + 60, ((lefty + i) * 10) + 25);
                                            DeathText.TextValue = time.ToString();
                                            DeathText.Draw();
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (sprite.Key.Equals(hero.Name))
                                {
                                    sprite.Value.Draw(new Vector2(leftx + 43, ((lefty + i) * 10) + 6));
                                }
                            }
                        }

                        foreach (var sprite in SummonersSprites)
                        {
                            if (sprite.Key.Contains(hero1.Name + 1))
                            {
                                if (spell1.Timer() > 0)
                                {
                                    if (sprite.Key.Equals(hero1.Name + 1 + "NR"))
                                    {
                                        sprite.Value.Draw(new Vector2(leftx + 5, ((lefty + i) * 10) + 5));
                                        CDText.Position  = new Vector2(leftx + 10, ((lefty + i) * 10) + 15);
                                        CDText.TextValue = spell1.CoolDown();
                                        CDText.Draw();
                                    }
                                }
                                else if (sprite.Key.Equals(hero1.Name + 1 + "R"))
                                {
                                    sprite.Value.Draw(new Vector2(leftx + 6, ((lefty + i) * 10) + 6));
                                }
                            }

                            if (sprite.Key.Contains(hero1.Name + 2))
                            {
                                if (spell2.Timer() > 0)
                                {
                                    if (sprite.Key.Equals(hero1.Name + 2 + "NR"))
                                    {
                                        sprite.Value.Draw(new Vector2(leftx + 5, ((lefty + i) * 10) + 38));
                                        CDText.Position  = new Vector2(leftx + 10, ((lefty + i) * 10) + 48);
                                        CDText.TextValue = spell2.CoolDown();
                                        CDText.Draw();
                                    }
                                }
                                else if (sprite.Key.Equals(hero1.Name + 2 + "R"))
                                {
                                    sprite.Value.Draw(new Vector2(leftx + 6, ((lefty + i) * 10) + 40));
                                }
                            }
                        }

                        foreach (var sprite in UltSprites)
                        {
                            if (hero.SlotToSpell(SpellSlot.R).Timer() > 0 || !hero.SlotToSpell(SpellSlot.R).IsLearned)
                            {
                                if (sprite.Key.Equals(hero.Name + "NR"))
                                {
                                    sprite.Value.Draw(new Vector2(leftx + 86, ((lefty + i) * 10) + 1));
                                    if (hero.SlotToSpell(SpellSlot.R).IsLearned)
                                    {
                                        CDText.Position  = new Vector2(leftx + 91, ((lefty + i) * 10) + 10);
                                        CDText.TextValue = hero.SlotToSpell(SpellSlot.R).CoolDown();
                                        CDText.Draw();
                                    }
                                }
                            }
                            else if (sprite.Key.Equals(hero1.Name))
                            {
                                sprite.Value.Draw(new Vector2(leftx + 86, ((lefty + i) * 10) + 1));
                            }
                        }

                        LeftHUD.Draw(lefthud);
                        hudText.Position  = new Vector2(leftx + 80, ((lefty + i) * 10) + 45);
                        hudText.TextValue = hero.Level.ToString();
                        hudText.Draw();
                        ie += HealthTracker["space"].Cast <Slider>().CurrentValue;
                    }
                }

                /*
                 * var AX = HealthTracker["AX"].Cast<Slider>().CurrentValue * 10;
                 * var AY = HealthTracker["AY"].Cast<Slider>().CurrentValue * 10;
                 * var EX = HealthTracker["EX"].Cast<Slider>().CurrentValue * 10;
                 * var EY = HealthTracker["EY"].Cast<Slider>().CurrentValue * 10;
                 * float iq = 0;
                 * const float ic = 0;
                 * var objpos = new Vector2();
                 * var objmini = new Vector2();
                 *
                 * foreach (
                 *  var obj in
                 *      ObjectsManager.AllObjects.OrderBy(o => o.Distance(ObjectsManager.Fturret))
                 *          .Where(obj => obj.Team(HealthTracker["team"].Cast<ComboBox>().CurrentValue) && HealthTracker[obj.Type.ToString()].Cast<CheckBox>().CurrentValue && obj.Health() > 0))
                 * {
                 *  objpos = obj.Position.WorldToScreen();
                 *  objmini = obj.Position.WorldToMinimap();
                 *
                 *  // World Drawings
                 *  WorldText.TextValue = obj.Health(HealthTracker.DrawPercent("World")).ToString();
                 *  WorldText.Position = new Vector2(objpos.X - 20 + iq, objpos.Y - 80);
                 *  WorldText.Draw();
                 *
                 *  // MiniMap Drawings
                 *  MinimapText.TextValue = obj.Health(HealthTracker.DrawPercent("Minimap")).ToString();
                 *  MinimapText.Position = new Vector2(objmini.X - iq, objmini.Y - iq);
                 *  MinimapText.Draw();
                 *  iq += 0.2f;
                 * }
                 * /*
                 * Team.TextValue = "Enemy";
                 * Team.Position = new Vector2(Camera.ScreenPosition.X + EX, Camera.ScreenPosition.Y + EY + ic - 20f);
                 * Team.Draw();
                 *
                 * Team.TextValue = "Ally";
                 * Team.Position = new Vector2(Camera.ScreenPosition.X + AX, Camera.ScreenPosition.Y + AY - 20f);
                 * Team.Draw();
                 */
            }
            catch (Exception ex)
            {
                Common.Logger.Error("Please report this to Definitely not Kappa.");
                Common.Logger.Error("There was an issue while trying to Draw in Trackers.Handler.");
                Common.Logger.Error(ex.ToString());
            }
        }
Exemple #3
0
 public void Draw(Vector2 pos)
 {
     Sprite.Draw(pos);
 }
Exemple #4
0
 private static void Mana(AIHeroClient hero, Vector2 vector2)
 {
     MP.Scale = new Vector2(1 * (hero.ManaPercent / 100), 1);
     MP.Draw(vector2);
 }
Exemple #5
0
 private static void Health(AIHeroClient hero, Vector2 vector2)
 {
     HP.Scale = new Vector2(1 * (hero.HealthPercent / 100), 1);
     HP.Draw(vector2);
 }
Exemple #6
0
 private void DrawSprite(Vector2 pos)
 {
     img.Draw(pos);
 }
Exemple #7
0
        public void onDraw(EventArgs args)
        {
            var hudSpace = 0;

            foreach (var hero in InfoLoader.ChampionInfoList.Where(x => !x.Hero.IsDead))
            {
                if (Show2DHud.CurrentValue && hero.Hero.IsEnemy)
                {
                    Sprite sprite8 = hero.HudSprite;
                    if (!hero.Hero.IsHPBarRendered)
                    {
                        sprite8.Color = Color.DimGray;
                    }
                    else
                    {
                        sprite8.Color = Color.White;
                    }
                    Vector2 vector45 = new Vector2(HudX.CurrentValue + hudSpace, HudY.CurrentValue);
                    sprite8.Scale = new Vector2(0.33f, 0.33f);
                    sprite8.Draw(vector45 + new Vector2(-10, 14.5f));
                    Vector2 vector46 = new Vector2(vector45.X - 9f, vector45.Y + 64f);
                    Vector2 vector47 = new Vector2(vector45.X - 8f + 33f + 3f, vector45.Y + 64f);
                    EloBuddy.SDK.Rendering.Line.DrawLine(Color.DarkGoldenrod, 18f, vector46, vector47);

                    Vector2 vector48 = new Vector2(vector45.X - 8f, vector45.Y + 64f);
                    Vector2 vector49 = new Vector2(vector45.X - 8f + 33f + 2f, vector45.Y + 64f);
                    EloBuddy.SDK.Rendering.Line.DrawLine(Color.Black, 16f, vector48, vector49);

                    Color color2 = Color.LimeGreen;
                    if (hero.Hero.HealthPercent < 30f)
                    {
                        color2 = Color.OrangeRed;
                    }
                    else if (hero.Hero.HealthPercent < 50f)
                    {
                        color2 = Color.DarkOrange;
                    }
                    Vector2 vector50 = new Vector2(vector45.X - 7f, vector45.Y + 60f);
                    Vector2 vector51 = new Vector2(vector45.X - 7f + 33f * hero.Hero.HealthPercent * 0.01f, vector45.Y + 60f);
                    EloBuddy.SDK.Rendering.Line.DrawLine(color2, 7f, vector50, vector51);

                    Vector2 vector52 = new Vector2(vector45.X - 7f, vector45.Y + 68f);
                    Vector2 vector53 = new Vector2(vector45.X - 7f + 33f * hero.Hero.ManaPercent * 0.01f, vector45.Y + 68f);
                    EloBuddy.SDK.Rendering.Line.DrawLine(Color.DodgerBlue, 5f, vector52, vector53);

                    var spell4         = hero.Hero.Spellbook.Spells[3];
                    var spellDataInst  = hero.Hero.Spellbook.Spells[4];
                    var spellDataInst2 = hero.Hero.Spellbook.Spells[5];

                    if (spell4 != null)
                    {
                        float   num49    = spell4.CooldownExpires - Game.Time;
                        Vector2 vector54 = new Vector2(vector45.X - 2f, vector45.Y - 30f);
                        Vector2 vector55 = new Vector2(vector45.X + 9f, vector45.Y - 20f);
                        Sprite  sprite9  = GetSummonerIcon("r");
                        sprite9.Scale = new Vector2(0.35f, 0.35f);
                        if (hero.Hero.Level < 6)
                        {
                            sprite9.Color = Color.DimGray;
                            sprite9.Draw(vector54);
                        }
                        else if (num49 < 0f)
                        {
                            sprite9.Color = Color.White;
                            sprite9.Draw(vector54);
                        }
                        else
                        {
                            sprite9.Color = Color.DimGray;
                            sprite9.Draw(vector54);
                            DrawFontTextScreen(HudCd, MakeNiceNumber(num49), Color.White, vector55);
                        }
                    }

                    if (spellDataInst != null)
                    {
                        float   num50    = spellDataInst.CooldownExpires - Game.Time;
                        Vector2 vector56 = new Vector2(vector45.X - 13f, vector45.Y - 10f);
                        Vector2 vector57 = new Vector2(vector45.X - 1f, vector45.Y + 2f);
                        Sprite  sprite10 = GetSummonerIcon(spellDataInst.Name);
                        sprite10.Scale = new Vector2(0.35f, 0.35f);
                        if (num50 < 0f)
                        {
                            sprite10.Color = Color.White;
                            sprite10.Draw(vector56);
                        }
                        else
                        {
                            sprite10.Color = Color.DimGray;
                            sprite10.Draw(vector56);
                            DrawFontTextScreen(HudCd, MakeNiceNumber(num50), Color.White, vector57);
                        }
                    }

                    if (spellDataInst2 != null)
                    {
                        float   num51    = spellDataInst2.CooldownExpires - Game.Time;
                        Vector2 vector58 = new Vector2(vector45.X + 9f, vector45.Y - 10f);
                        Vector2 vector59 = new Vector2(vector45.X + 22f, vector45.Y + 2f);
                        Sprite  sprite11 = GetSummonerIcon(spellDataInst2.Name);
                        sprite11.Scale = new Vector2(0.35f, 0.35f);
                        if (num51 < 0f)
                        {
                            sprite11.Color = Color.White;
                            sprite11.Draw(vector58);
                        }
                        else
                        {
                            sprite11.Color = Color.DimGray;
                            sprite11.Draw(vector58);
                            DrawFontTextScreen(HudCd, MakeNiceNumber(num51), Color.White, vector59);
                        }
                    }
                    hudSpace += 45;
                }
                if (Show3DHud.CurrentValue)
                {
                    var vector6        = hero.Hero.HPBarPosition + new Vector2(-8f, -11f);
                    var spell          = hero.Hero.Spellbook.GetSpell(SpellSlot.Q);
                    var spell2         = hero.Hero.Spellbook.GetSpell(SpellSlot.W);
                    var spell3         = hero.Hero.Spellbook.GetSpell(SpellSlot.E);
                    var spell4         = hero.Hero.Spellbook.GetSpell(SpellSlot.R);
                    var spellDataInst  = hero.Hero.Spellbook.Spells[4];
                    var spellDataInst2 = hero.Hero.Spellbook.Spells[5];

                    if (hero.Hero.IsHPBarRendered && hero.Hero.Position.IsOnScreen() && ((ShowTeam3D.CurrentValue && (hero.Hero.IsAlly && !hero.Hero.IsMe)) ||
                                                                                         (ShowEnemies3D.CurrentValue && hero.Hero.IsEnemy) ||
                                                                                         (ShowSelf3D.CurrentValue && hero.Hero.IsMe)))
                    {
                        if (hero.Hero.IsAlly)
                        {
                            vector6 += new Vector2(1f, -2f);
                        }
                        if (hero.Hero.IsMe)
                        {
                            vector6 += new Vector2(25f, 0f);
                        }
                        Line.DrawLine(Color.DimGray, 9f, vector6 + new Vector2(7f, 34f), vector6 + new Vector2(115f, 34f));
                        Line.DrawLine(Color.Black, 7f, vector6 + new Vector2(8f, 34f), vector6 + new Vector2(113f, 34f));
                        float num11 = spell.CooldownExpires - Game.Time;
                        float num12 = spell2.CooldownExpires - Game.Time;
                        float num13 = spell3.CooldownExpires - Game.Time;
                        float num14 = spell4.CooldownExpires - Game.Time;
                        float num15 = (spell4.SData.CooldownTime > 15f) ? spell4.SData.CooldownTime : 90f;
                        float num16 = Math.Max(Math.Min(num11 / spell.SData.CooldownTime, 1f), 0f);
                        float num17 = Math.Max(Math.Min(num12 / spell2.SData.CooldownTime, 1f), 0f);
                        float num18 = Math.Max(Math.Min(num13 / spell3.SData.CooldownTime, 1f), 0f);
                        float num19 = Math.Max(Math.Min(num14 / num15, 1f), 0f);
                        if (spell.Level > 0)
                        {
                            Vector2 vector7 = vector6 + new Vector2(9f, 34f);
                            Line.DrawLine(num16 > 0f ? Color.Orange : Color.YellowGreen, 5f, vector7, vector6 + new Vector2(33f - 24f * num16, 34f));
                            if (num16 > 0f)
                            {
                                DrawFontTextScreen(HudCd, MakeNiceNumber(num11 + 1f), Color.White, vector7 + new Vector2(14f, 11f));
                            }
                        }
                        if (spell2.Level > 0)
                        {
                            Vector2 vector8 = vector6 + new Vector2(35f, 34f);
                            Line.DrawLine(num17 > 0f ? Color.Orange : Color.YellowGreen, 5f, vector8, vector6 + new Vector2(59f - 24f * num17, 34f));
                            if (num17 > 0f)
                            {
                                DrawFontTextScreen(HudCd, MakeNiceNumber(num12 + 1f), Color.White, vector8 + new Vector2(14f, 11f));
                            }
                        }
                        if (spell3.Level > 0)
                        {
                            Vector2 vector9 = vector6 + new Vector2(61f, 34f);
                            Line.DrawLine((num18 > 0f) ? Color.Orange : Color.YellowGreen, 5f, vector9, vector6 + new Vector2(85f - 24f * num18, 34f));
                            if (num18 > 0f)
                            {
                                DrawFontTextScreen(HudCd, MakeNiceNumber(num13 + 1f), Color.White, vector9 + new Vector2(14f, 11f));
                            }
                        }
                        if (spell4.Level > 0)
                        {
                            Vector2 vector10 = vector6 + new Vector2(87f, 34f);
                            Line.DrawLine((num19 > 0f) ? Color.Orange : Color.YellowGreen, 5f, vector10, vector6 + new Vector2(112f - 24f * num19, 34f));
                            if (num19 > 0f)
                            {
                                DrawFontTextScreen(HudCd, MakeNiceNumber(num14 + 1f), Color.White, vector10 + new Vector2(14f, 11f));
                            }
                        }
                        if (spellDataInst != null)
                        {
                            Sprite  sprite   = GetSummonerIconSquare(spellDataInst.Name);
                            Vector2 vector11 = new Vector2(-50f, 14f);
                            if (hero.Hero.IsMe)
                            {
                                vector11 = new Vector2(117f, 14f);
                            }
                            Vector2 vector12 = vector6 + vector11;
                            float   num20    = spellDataInst.CooldownExpires - Game.Time;
                            if (num20 < 0f)
                            {
                                sprite.Color = Color.White;
                                sprite.Draw(vector12);
                            }
                            else
                            {
                                sprite.Color = Color.DimGray;
                                sprite.Draw(vector12);
                                DrawFontTextScreen(HudCd, MakeNiceNumber(num20), Color.White, vector12 + new Vector2(13f, 13f));
                            }
                        }
                        if (spellDataInst2 != null)
                        {
                            Sprite  sprite2  = GetSummonerIconSquare(spellDataInst2.Name);
                            Vector2 vector13 = new Vector2(-22f, 14f);
                            if (hero.Hero.IsMe)
                            {
                                vector13 = new Vector2(145f, 14f);
                            }
                            Vector2 vector14 = vector6 + vector13;
                            float   num21    = spellDataInst2.CooldownExpires - Game.Time;
                            if (num21 < 0f)
                            {
                                sprite2.Color = Color.White;
                                sprite2.Draw(vector14);
                            }
                            else
                            {
                                sprite2.Color = Color.DimGray;
                                sprite2.Draw(vector14);
                                DrawFontTextScreen(HudCd, MakeNiceNumber(num21), Color.White, vector14 + new Vector2(13f, 13f));
                            }
                        }
                    }
                }
            }
        }
Exemple #8
0
        public static void OnEndScene()
        {
            if (!Init.Menu["showrecalls"].Cast <CheckBox>().CurrentValue&& !BaseUltUnits.Any())
            {
                return;
            }

            {
                Drawing.DrawLine(X, Y, X + Length, Y, Height, ColorTranslator.FromHtml("#080d0a"));
            }

            if (BaseUltUnits.Any())
            {
                Warning.Draw(new Vector2(Player.HPBarPosition.X + 40, Player.HPBarPosition.Y - 40));
                Underline.Draw(new Vector2(X - 50, Y + 30));
            }

            foreach (var recall in Recalls.OrderBy(h => h.Started))
            {
                if ((recall.Unit.IsAlly && !Init.Menu["showallies"].Cast <CheckBox>().CurrentValue) ||
                    (recall.Unit.IsAlly && !Init.Menu["showenemies"].Cast <CheckBox>().CurrentValue))
                {
                    continue;
                }

                var recallDuration = recall.Duration;

                if (recall.Status == RecallStatus.Active)
                {
                    var isBaseUlt      = BaseUltUnits.Any(h => h.Unit.NetworkId == recall.Unit.NetworkId);
                    var percent        = GetRecallPercent(recall);
                    var colorIndicator = isBaseUlt
                        ? Color.OrangeRed
                        : (recall.Unit.IsAlly
                            ? Color.DeepSkyBlue
                            : Color.DarkViolet);
                    var colorText = isBaseUlt
                        ? Color.OrangeRed
                        : (recall.Unit.IsAlly
                            ? Color.DeepSkyBlue
                            : Color.PaleVioletRed);
                    var colorBar = isBaseUlt
                        ? Color.Red
                        : (recall.Unit.IsAlly
                            ? Color.DodgerBlue
                            : Color.MediumVioletRed);

                    Bar.Color     = colorBar;
                    Bar.Rectangle = new SharpDX.Rectangle(0, 0,
                                                          (int)(260 * percent), 22);
                    Bar.Draw(new Vector2(X, Y + 4));

                    Drawing.DrawLine(
                        (int)(percent * Length) + X - (float)(LineThickness * 0.5) + 4,
                        Y - (float)(Height * 0.5),
                        (int)(percent * Length) + X - (float)(LineThickness * 0.5) + 4,
                        Y + (float)(Height * 0.5) + recall.TextPos * 20,
                        LineThickness,
                        colorIndicator);

                    Text.Color     = colorText;
                    Text.TextValue = "(" + (int)(percent * 100) + "%) " + recall.Unit.ChampionName;
                    Text.Position  = new Vector2((int)(percent * Length) + X - LineThickness, Y + (int)(Height * 0.5 + 20 + LineThickness) + recall.TextPos * 20);
                    Text.Draw();
                }

                if (recall.Status == RecallStatus.Abort || recall.Status == RecallStatus.Finished)
                {
                    const int fadeoutTime    = 0;
                    var       colorIndicator = recall.Status == RecallStatus.Abort
                        ? Color.OrangeRed
                        : Color.GreenYellow;
                    var colorText = recall.Status == RecallStatus.Abort
                        ? Color.Orange
                        : Color.GreenYellow;
                    var colorBar = recall.Status == RecallStatus.Abort
                        ? Color.Yellow
                        : Color.LawnGreen;

                    var fadeOutPercent = (recall.Ended + fadeoutTime - Game.Time) / fadeoutTime;

                    if (recall.Ended + fadeoutTime > Game.Time)
                    {
                        var timeUsed = recall.Ended - recall.Started;
                        var percent  = timeUsed > recallDuration ? 1 : timeUsed / recallDuration;

                        Bar.Color     = colorBar;
                        Bar.Rectangle = new SharpDX.Rectangle(0, 0, (int)(260 * percent), 22);
                        Bar.Draw(new Vector2(X, Y + 4));

                        Drawing.DrawLine(
                            (int)(percent * Length) + X - (float)(LineThickness * 0.5) + 4,
                            Y - (float)(Height * 0.5),
                            (int)(percent * Length) + X - (float)(LineThickness * 0.5) + 4,
                            Y + (float)(Height * 0.5), LineThickness,
                            Color.FromArgb((int)(254 * fadeOutPercent),
                                           colorIndicator));

                        Text.Color     = colorText;
                        Text.TextValue = recall.Unit.ChampionName;
                        Text.Position  = new Vector2((int)(percent * Length) + X - LineThickness,
                                                     Y + (int)(Height * 0.5 + 20 + LineThickness) + recall.TextPos * 20);
                        Text.Draw();
                    }
                    else
                    {
                        recall.Status  = RecallStatus.Inactive;
                        recall.TextPos = 0;
                    }
                }
            }
            foreach (var unit in BaseUltUnits)
            {
                var duration = Recalls.Find(h => h.Unit.NetworkId == unit.Unit.NetworkId).Duration;
                var barPos   =
                    (unit.FireTime - Recalls.Find(h => unit.Unit.NetworkId == h.Unit.NetworkId).Started)
                    / duration;

                Drawing.DrawLine(
                    (int)(barPos * Length) + X - (float)(LineThickness * 0.5),
                    Y - (float)(Height * 0.5 + LineThickness),
                    (int)(barPos * Length) + X - (float)(LineThickness * 0.5),
                    Y + (float)(Height * 0.5 + LineThickness),
                    LineThickness,
                    Color.Lime);
            }
            Hud.Draw(new Vector2(X - 8, Y - 5));
        }