示例#1
0
        private void OnDrawingDraw(EventArgs args)
        {
            if (!Utils.ShouldDraw() || _ePercent == null)
            {
                return;
            }
            var ePercentCircle = _ePercent.GetValue <Circle>();

            if (ePercentCircle.Active && E.IsReady())
            {
                var sharpColor = new SharpDX.Color(
                    ePercentCircle.Color.R, ePercentCircle.Color.G, ePercentCircle.Color.B);
                var maxRange = E.Range * 1.5f;
                var targets  = GameObjects.EnemyHeroes.Cast <Obj_AI_Base>().Concat(GameObjects.Jungle);

                foreach (var enemy in
                         targets.Where(
                             e =>
                             e.IsValidTarget(maxRange) && e.Position.IsOnScreen() &&
                             (e is Obj_AI_Hero || Utils.IsBigJungle(e))))
                {
                    var damage = Rend.GetDamage(enemy);
                    if (damage > 0)
                    {
                        var percent = (int)(damage / enemy.Health * 100);
                        if (percent > 0)
                        {
                            var screen   = Drawing.WorldToScreen(enemy.Position);
                            var position = enemy.Team == GameObjectTeam.Neutral
                                ? new Vector2(screen.X, screen.Y + 30)
                                : new Vector2(enemy.HPBarPosition.X + 73, enemy.HPBarPosition.Y - 28);
                            _font.DrawTextCentered(percent + " %", position, sharpColor);
                        }
                    }
                }
            }
        }