示例#1
0
        /// <summary>
        ///     Loads the drawings.
        /// </summary>
        public static void Initialize()
        {
            Drawing.OnDraw += delegate
            {
                if (!Vars.E.IsReady() || !Vars.Menu["drawings"]["edmg"].GetValue <MenuBool>().Value)
                {
                    return;
                }

                ObjectManager.Get <Obj_AI_Base>()
                .Where(
                    h =>
                    h.IsValidTarget() && Kalista.IsPerfectRendTarget(h) &&
                    (h is Obj_AI_Hero || Vars.JungleList.Contains(h.CharData.BaseSkinName)))
                .ToList()
                .ForEach(
                    unit =>
                {
                    var heroUnit = (Obj_AI_Hero)unit;
                    /// <summary>
                    ///     Defines what HPBar Offsets it should display.
                    /// </summary>
                    var mobOffset =
                        Drawings.JungleHpBarOffsetList.FirstOrDefault(
                            x => x.BaseSkinName.Equals(unit.CharData.BaseSkinName));

                    var width = Vars.JungleList.Contains(unit.CharData.BaseSkinName)
                                                    ? mobOffset?.Width ?? Drawings.SWidth
                                                    : Drawings.SWidth;
                    var height = Vars.JungleList.Contains(unit.CharData.BaseSkinName)
                                                     ? mobOffset?.Height ?? Drawings.SHeight
                                                     : Drawings.SHeight;
                    var xOffset = Vars.JungleList.Contains(unit.CharData.BaseSkinName)
                                                      ? mobOffset?.XOffset ?? Drawings.SxOffset(heroUnit)
                                                      : Drawings.SxOffset(heroUnit);
                    var yOffset = Vars.JungleList.Contains(unit.CharData.BaseSkinName)
                                                      ? mobOffset?.YOffset ?? Drawings.SyOffset(heroUnit)
                                                      : Drawings.SyOffset(heroUnit);
                    var barPos = unit.HPBarPosition;
                    {
                        barPos.X += xOffset;
                        barPos.Y += yOffset;
                    }
                    var drawEndXPos   = barPos.X + width * (unit.HealthPercent / 100);
                    var drawStartXPos = barPos.X
                                        + (Vars.GetRealHealth(unit)
                                           > (float)GameObjects.Player.GetSpellDamage(unit, SpellSlot.E)
                                           + (float)
                                           GameObjects.Player.GetSpellDamage(
                                               unit,
                                               SpellSlot.E,
                                               DamageStage.Buff)
                                                               ? width
                                           * ((Vars.GetRealHealth(unit)
                                               - ((float)
                                                  GameObjects.Player.GetSpellDamage(
                                                      unit,
                                                      SpellSlot.E)
                                                  + (float)
                                                  GameObjects.Player.GetSpellDamage(
                                                      unit,
                                                      SpellSlot.E,
                                                      DamageStage.Buff))) / unit.MaxHealth * 100
                                              / 100)
                                                               : 0);
                    Drawing.DrawLine(
                        drawStartXPos,
                        barPos.Y,
                        drawEndXPos,
                        barPos.Y,
                        height,
                        Vars.GetRealHealth(unit)
                        < (float)GameObjects.Player.GetSpellDamage(unit, SpellSlot.E)
                        + (float)GameObjects.Player.GetSpellDamage(unit, SpellSlot.E, DamageStage.Buff)
                                            ? Color.Blue
                                            : Color.Orange);
                    Drawing.DrawLine(
                        drawStartXPos,
                        barPos.Y,
                        drawStartXPos,
                        barPos.Y + height + 1,
                        1,
                        Color.Lime);
                });
            };
        }