예제 #1
0
        protected override void OnDraw()
        {
            if (_changingRangeScan)
            {
                Circle.Draw(Color.White,
                            LaneClearMenu["Plugins.Vayne.LaneClearMenu.ScanRange"].Cast <Slider>().CurrentValue, Player.Instance);
            }

            if (!Settings.Drawings.DrawInfo)
            {
                return;
            }

            foreach (var source in EntityManager.Heroes.Enemies.Where(x => x.IsVisible && x.IsHPBarRendered && x.Position.IsOnScreen() && HasSilverDebuff(x)))
            {
                var hpPosition = source.HPBarPosition;
                hpPosition.Y = hpPosition.Y + 30; // tracker friendly.
                var timeLeft = GetSilverDebuff(source).EndTime - Game.Time;
                var endPos   = timeLeft * 0x3e8 / 32;

                var degree = Misc.GetNumberInRangeFromProcent(timeLeft * 1000d / 3000d * 100d, 3, 110);
                var color  = new Misc.HsvColor(degree, 1, 1).ColorFromHsv();

                Text.X         = (int)(hpPosition.X + endPos);
                Text.Y         = (int)hpPosition.Y + 15; // + text size
                Text.Color     = color;
                Text.TextValue = timeLeft.ToString("F1");
                Text.Draw();

                Drawing.DrawLine(hpPosition.X + endPos, hpPosition.Y, hpPosition.X, hpPosition.Y, 1, color);
            }
        }
예제 #2
0
        private void Drawing_OnEndScene(EventArgs args)
        {
            if (!IsRecallTrackerEnabled || !ActiveTeleports.Any() || Drawing.Direct3DDevice.IsDisposed)
            {
                return;
            }

            if (ActiveTeleports.Any())
            {
                Drawing.DrawLine(BarPosition, new Vector2(BarPosition.X + BarWidth, BarPosition.Y), RecallTrackerBarSize,
                                 Color.FromArgb(ColorPicker.Color.A, ColorPicker.Color.R, ColorPicker.Color.G, ColorPicker.Color.B));
            }

            foreach (
                var teleport in
                ActiveTeleports.Where(x => x.Value != null && x.Value.Status == TeleportStatus.Start).OrderByDescending(x => x.Value.Start))
            {
                var caster = EntityManager.Heroes.AllHeroes.Find(x => x.NetworkId == teleport.Key);
                if (caster == null)
                {
                    continue;
                }

                var count = GetIndex(ActiveTeleports, teleport.Key) + 1;

                var endTime    = teleport.Value.Start + teleport.Value.Duration;
                var percentage = Math.Max(0, Math.Min(100, ((float)endTime - Core.GameTickCount) / teleport.Value.Duration * 100));
                var degree     = Misc.GetNumberInRangeFromProcent(percentage, 3, 110);
                var color      =
                    new Misc.HsvColor(degree, 1, 1)
                {
                    Value =
                        Misc.GetNumberInRangeFromProcent(
                            Math.Max(0, Math.Min((GetIndex(ActiveTeleports, teleport.Key) + 1f) / ActiveTeleports.Count * 100, 100)),
                            0.35f, 1)
                }.ColorFromHsv();

                var endPos = new Vector2(BarPosition.X + BarWidth * percentage / 100, BarPosition.Y);

                var stringBuilder = new StringBuilder();

                stringBuilder.Append($"{caster.Hero} ({(int)caster.Health} HP) ");
                stringBuilder.Append($"{((endTime - Core.GameTickCount)/1000F).ToString("F1")}s ");
                stringBuilder.Append($"({percentage.ToString("F1")}%)");

                Vector2[] linePos =
                {
                    new Vector2(endPos.X, BarPosition.Y + RecallTrackerBarSize / 2f - (int)(TextHeight * 1.27f * count)),
                    new Vector2(endPos.X, BarPosition.Y + RecallTrackerBarSize / 2f)
                };

                Text.Draw(stringBuilder.ToString(), Color.AliceBlue, new Vector2(endPos.X + 5, endPos.Y - TextHeight * 1.25f * count));

                Drawing.DrawLine(BarPosition, endPos, RecallTrackerBarSize, color);

                Drawing.DrawLine(linePos[0], linePos[1], 1, Color.AliceBlue);
            }
        }
예제 #3
0
        protected override void OnDraw()
        {
            if (Settings.Drawings.DrawW && (!Settings.Drawings.DrawSpellRangesWhenReady || W.IsReady()))
            {
                Circle.Draw(ColorPicker[0].Color, W.Range, Player.Instance);
            }
            if (Settings.Drawings.DrawE && (!Settings.Drawings.DrawSpellRangesWhenReady || E.IsReady()))
            {
                Circle.Draw(ColorPicker[1].Color, E.Range, Player.Instance);
            }
            if (Settings.Drawings.DrawR && (!Settings.Drawings.DrawSpellRangesWhenReady || R.IsReady()))
            {
                Circle.Draw(ColorPicker[2].Color, R.Range, Player.Instance);
            }

            if (_changingRangeScan)
            {
                Circle.Draw(Color.White,
                            LaneClearMenu["Plugins.Twitch.LaneClearMenu.ScanRange"].Cast <Slider>().CurrentValue, Player.Instance);
            }

            if (!Settings.Drawings.DrawDamageIndicator)
            {
                return;
            }

            foreach (var source in StaticCacheProvider.GetChampions(CachedEntityType.EnemyHero, x => x.IsVisible && x.IsHPBarRendered && x.Position.IsOnScreen() && HasDeadlyVenomBuff(x)))
            {
                var hpPosition = source.HPBarPosition;
                hpPosition.Y = hpPosition.Y + 30; // tracker friendly.

                if (GetDeadlyVenomBuff(source) != null)
                {
                    var timeLeft = GetDeadlyVenomBuff(source).EndTime - Game.Time;
                    var endPos   = timeLeft * 0x3e8 / 0x37;

                    var degree = Misc.GetNumberInRangeFromProcent(timeLeft * 1000d / 6000d * 100d, 3, 110);
                    var color  = new Misc.HsvColor(degree, 1, 1).ColorFromHsv();

                    Text.X         = (int)(hpPosition.X + endPos);
                    Text.Y         = (int)hpPosition.Y + 15; // + text size
                    Text.Color     = color;
                    Text.TextValue = timeLeft.ToString("F1");
                    Text.Draw();

                    Drawing.DrawLine(hpPosition.X + endPos, hpPosition.Y, hpPosition.X, hpPosition.Y, 1, color);
                }

                var percentDamage = Math.Min(100, Damage.GetEDamage(source) / source.TotalHealthWithShields() * 100);

                Text.X         = (int)(hpPosition.X - 50);
                Text.Y         = (int)source.HPBarPosition.Y;
                Text.Color     = new Misc.HsvColor(Misc.GetNumberInRangeFromProcent(percentDamage, 3, 110), 1, 1).ColorFromHsv();
                Text.TextValue = percentDamage.ToString("F1");
                Text.Draw();
            }
        }
예제 #4
0
        protected override void OnDraw()
        {
            if (Settings.Drawings.DrawQ && (!Settings.Drawings.DrawSpellRangesWhenReady || Q.IsReady()))
            {
                Circle.Draw(ColorPicker[0].Color, Q.Range, Player.Instance);
            }
            if (Settings.Drawings.DrawW && (!Settings.Drawings.DrawSpellRangesWhenReady || W.IsReady()))
            {
                Circle.Draw(ColorPicker[1].Color, W.Range, Player.Instance);
            }
            if (Settings.Drawings.DrawE && (!Settings.Drawings.DrawSpellRangesWhenReady || E.IsReady()))
            {
                Circle.Draw(ColorPicker[2].Color, E.Range, Player.Instance);
            }
            if (Settings.Drawings.DrawR && (!Settings.Drawings.DrawSpellRangesWhenReady || R.IsReady()))
            {
                Circle.Draw(ColorPicker[3].Color, R.Range, Player.Instance);
            }

            if (!Settings.Drawings.DrawInfos)
            {
                return;
            }

            if (HasKogMawWBuff)
            {
                var hpPosition = Player.Instance.HPBarPosition;
                hpPosition.Y = hpPosition.Y + 18;
                var timeLeft = GetKogMawWBuff.EndTime - Game.Time;
                var endPos   = timeLeft * 1000 / 95;

                var degree = Misc.GetNumberInRangeFromProcent(timeLeft * 1000d / 8000d * 100d, 3, 110);
                var color  = new Misc.HsvColor(degree, 1, 1).ColorFromHsv();

                Text.Color     = color;
                Text.TextValue = timeLeft.ToString("F1");
                Text.X         = (int)(hpPosition.X + 45 + endPos);
                Text.Y         = (int)hpPosition.Y + 12; // + text size
                Text.Draw();

                Drawing.DrawLine(hpPosition.X + 45 + endPos, hpPosition.Y, hpPosition.X + 45, hpPosition.Y, 1, color);
                Drawing.DrawLine(hpPosition.X + 45 + endPos, hpPosition.Y, hpPosition.X + 45 + endPos, hpPosition.Y + 8, 1, color);
            }

            foreach (var source in EntityManager.Heroes.Enemies.Where(x => x.IsHPBarRendered && x.IsInRange(Player.Instance, R.Range)))
            {
                var hpPosition = source.HPBarPosition;
                hpPosition.Y = hpPosition.Y + 30; // tracker friendly.
                var percentDamage = Math.Min(100, Damage.GetRDamage(source) / source.TotalHealthWithShields(true) * 100);

                Text.Color     = new Misc.HsvColor(Misc.GetNumberInRangeFromProcent(percentDamage, 3, 110), 1, 1).ColorFromHsv();
                Text.TextValue = percentDamage.ToString("F1") + "%";
                Text.X         = (int)(hpPosition.X - Text.Bounding.Width - 5);
                Text.Y         = (int)source.HPBarPosition.Y;
                Text.Draw();
            }
        }
예제 #5
0
        protected override void OnDraw()
        {
            if (_changingRangeScan)
            {
                Circle.Draw(Color.White,
                            LaneClearMenu["Plugins.Tristana.LaneClearMenu.ScanRange"].Cast <Slider>().CurrentValue, Player.Instance);
            }

            if (Settings.Drawings.DrawW && (!Settings.Drawings.DrawSpellRangesWhenReady || W.IsReady()))
            {
                Circle.Draw(ColorPicker[0].Color, W.Range, Player.Instance);
            }

            if (!Settings.Drawings.DrawInfo)
            {
                return;
            }

            foreach (var source in EntityManager.Heroes.Enemies.Where(x => x.IsVisible && x.IsHPBarRendered && x.Position.IsOnScreen() && x.Buffs.Any(k => k.Name.ToLowerInvariant() == "tristanaechargesound")))
            {
                var hpPosition = source.HPBarPosition;
                hpPosition.Y = hpPosition.Y + 30; // tracker friendly.
                var timeLeft = source.Buffs.Find(x => x.Name.ToLowerInvariant() == "tristanaechargesound").EndTime - Game.Time;
                var endPos   = timeLeft * 0x3e8 / 0x25;

                var degree = Misc.GetNumberInRangeFromProcent(timeLeft * 1000d / 4000d * 100d, 3, 110);
                var color  = new Misc.HsvColor(degree, 1, 1).ColorFromHsv();

                Text.X         = (int)(hpPosition.X + endPos);
                Text.Y         = (int)hpPosition.Y + 15; // + text size
                Text.Color     = color;
                Text.TextValue = timeLeft.ToString("F1");
                Text.Draw();

                var percentDamage = Math.Min(100, Damage.GetEPhysicalDamage(source) / source.TotalHealthWithShields() * 100);

                Text.X         = (int)(hpPosition.X - 50);
                Text.Y         = (int)source.HPBarPosition.Y;
                Text.Color     = new Misc.HsvColor(Misc.GetNumberInRangeFromProcent(percentDamage, 3, 110), 1, 1).ColorFromHsv();
                Text.TextValue = percentDamage.ToString("F1");
                Text.Draw();

                Drawing.DrawLine(hpPosition.X + endPos, hpPosition.Y, hpPosition.X, hpPosition.Y, 1, color);
            }
        }
예제 #6
0
        protected override void OnDraw()
        {
            if (_changingRangeScan)
            {
                Circle.Draw(SharpDX.Color.White,
                            LaneClearMenu["Plugins.Quinn.LaneClearMenu.ScanRange"].Cast <Slider>().CurrentValue, Player.Instance);
            }

            if (Settings.Drawings.DrawQ && (!Settings.Drawings.DrawSpellRangesWhenReady || Q.IsReady()))
            {
                Circle.Draw(ColorPicker[0].Color, Q.Range, Player.Instance);
            }
            if (Settings.Drawings.DrawE && (!Settings.Drawings.DrawSpellRangesWhenReady || E.IsReady()))
            {
                Circle.Draw(ColorPicker[1].Color, E.Range, Player.Instance);
            }

            if (!Settings.Drawings.DrawDamageIndicator)
            {
                return;
            }

            foreach (var source in EntityManager.Heroes.Enemies.Where(x => x.IsVisible && x.IsHPBarRendered && x.Position.IsOnScreen() && HasWBuff(x)))
            {
                var hpPosition = source.HPBarPosition;
                hpPosition.Y = hpPosition.Y + 30; // tracker friendly.
                var timeLeft = GetWBuff(source).EndTime - Game.Time;
                var endPos   = timeLeft * 0x3e8 / 0x25;

                var degree = Misc.GetNumberInRangeFromProcent(timeLeft * 1000d / 4000d * 100d, 3, 110);
                var color  = new Misc.HsvColor(degree, 1, 1).ColorFromHsv();

                Text.X         = (int)(hpPosition.X + endPos);
                Text.Y         = (int)hpPosition.Y + 15; // + text size
                Text.Color     = color;
                Text.TextValue = timeLeft.ToString("F1");
                Text.Draw();

                Drawing.DrawLine(hpPosition.X + endPos, hpPosition.Y, hpPosition.X, hpPosition.Y, 1, color);
            }
        }