Esempio n. 1
0
        /// <summary>
        ///     The draw suicide.
        /// </summary>
        /// <param name="handle">
        ///     The handle.
        /// </param>
        /// <param name="health">
        ///     The health.
        /// </param>
        /// <param name="x">
        ///     The x.
        /// </param>
        /// <param name="sizey">
        ///     The size y.
        /// </param>
        /// <param name="sizeX">
        ///     The size x.
        /// </param>
        /// <param name="enabled">
        ///     The enabled.
        /// </param>
        /// <param name="hero">
        ///     The hero.
        /// </param>
        public static void DrawSuicide(
            uint handle,
            float health,
            double x,
            double sizey,
            double sizeX,
            bool enabled,
            Unit hero)
        {
            var suicideAttackDmg = Variables.Damage.GetSuicideDamage()[handle];

            if (!(suicideAttackDmg > 0))
            {
                return;
            }

            var dmg     = health - suicideAttackDmg;
            var canKill = dmg <= 0;
            var meepo   = hero as Meepo;

            if ((meepo == null || meepo.WhichMeepo == 0) &&
                Variables.Menu.DrawingsMenu.Item("drawTopPanel").GetValue <bool>())
            {
                Drawing.DrawText(
                    canKill ? "Yes" : "No",
                    new Vector2(canKill ? (float)(x + (sizeX / 2)) : (float)(x + (sizeX / 1.7)), (float)sizey),
                    new Vector2(17, 17),
                    enabled ? Color.DarkOrange : Color.DimGray,
                    FontFlags.AntiAlias);
            }

            if (!hero.IsVisible || !hero.IsAlive)
            {
                return;
            }

            if (!Variables.Menu.DrawingsMenu.Item("drawSuicideKills").GetValue <bool>())
            {
                return;
            }

            var screenPos = HUDInfo.GetHPbarPosition(hero);

            if (screenPos.X + 20 > Drawing.Width || screenPos.X - 20 < 0 || screenPos.Y + 100 > Drawing.Height ||
                screenPos.Y - 30 < 0)
            {
                return;
            }

            var text     = canKill ? "Yes" : "No " + Math.Floor(dmg);
            var size     = new Vector2(15, 15);
            var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
            var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3);

            Drawing.DrawText(
                text,
                position,
                size,
                enabled ? (canKill ? Color.LawnGreen : Color.Red) : Color.Gray,
                FontFlags.AntiAlias);
        }
Esempio n. 2
0
 public static void OnDraw(EventArgs args)
 {
     if (!MenuManager.IsStackerEnabled || !MenuManager.IsEnable)
     {
         return;
     }
     foreach (var bomb in Core.Bombs.Where(x => x.IsRemoteMine && x.Active && x.Stacker.IsActive))
     {
         var topPos   = HUDInfo.GetHPbarPosition(bomb.Bomb);
         var size     = new Vector2((float)HUDInfo.GetHPBarSizeX(bomb.Bomb), (float)HUDInfo.GetHpBarSizeY(bomb.Bomb));
         var text     = bomb.Stacker.Counter.ToString();
         var textSize = Drawing.MeasureText(text, "Arial",
                                            new Vector2((float)(size.Y * 4.5f), (float)(size.Y * 4.5f)), FontFlags.AntiAlias);
         var textPos = topPos + new Vector2(size.X / 2 - textSize.X / 2, size.Y * 2);
         Drawing.DrawText(
             text,
             textPos + new Vector2(2, 2),
             new Vector2(textSize.Y, 0),
             Color.White,
             FontFlags.AntiAlias | FontFlags.StrikeOut);
     }
 }
        /// <summary>
        ///     The execute.
        /// </summary>
        /// <param name="hero">
        ///     The hero.
        /// </param>
        /// <returns>
        ///     The <see cref="bool" />.
        /// </returns>
        public bool Execute(Hero hero)
        {
            bool cankill;

            if (Variables.Menu.DetonationMenu.Item("autoDetonateAegis").GetValue <bool>())
            {
                cankill = true;
            }
            else
            {
                cankill = hero.CanDie();
            }

            if ((Variables.Instance.Techies.EnabledHeroes.ContainsKey(hero.ClassID) &&
                 !Variables.Instance.Techies.EnabledHeroes[hero.ClassID]) || hero.IsInvul() || hero.IsMagicImmune() ||
                hero.HasModifiers(
                    new[]
            {
                "modifier_juggernaut_blade_fury",
                "modifier_ember_spirit_sleight_of_fist_caster_invulnerability"
            },
                    false) || !cankill)
            {
                return(false);
            }

            if (!Utils.SleepCheck(hero.ClassID + "Techies.AutoDetonate"))
            {
                return(false);
            }

            var tempDamage = hero.GetStackDamage();

            if (!(tempDamage.Item1 >= hero.Health))
            {
                return(false);
            }

            if (tempDamage.Item3 != null && tempDamage.Item3.AutoDetonate)
            {
                Detonate(tempDamage.Item2);
                Utils.Sleep(500, hero.ClassID + "Techies.AutoDetonate");
                return(true);
            }

            if (tempDamage.Item3 == null || tempDamage.Item3.AutoDetonate ||
                !Variables.Menu.DrawingsMenu.Item("Techies.ShowNotification").GetValue <bool>())
            {
                return(false);
            }

            if (!Utils.SleepCheck("Techies.Notification." + hero.StoredName()))
            {
                return(false);
            }

            Utils.Sleep(15000, "Techies.Notification." + hero.StoredName());
            if (this.notification == null)
            {
                this.notification = new Notification(
                    5000,
                    new Vector2(HUDInfo.ScreenSizeX(), (float)(HUDInfo.ScreenSizeY() / 2.3)),
                    new Vector2(HUDInfo.ScreenSizeX() / 8, HUDInfo.ScreenSizeX() / 30));
            }

            this.notification.RemoteMines = tempDamage.Item2;
            this.notification.PopUp(hero);
            return(false);
        }
Esempio n. 4
0
        private static void Main()
        {
            menu = new Menu("Harass Helper", "harassHelper", true);

            menu.AddItem(
                enabledHarras     = new MenuItem("enabled", "Enabled").SetValue(new KeyBind('Z', KeyBindType.Toggle)));
            menu.AddItem(showText = new MenuItem("showText", "Show active text").SetValue(true));
            menu.AddItem(
                textX = new MenuItem("textX", "Text position X").SetValue(new Slider(10, 0, (int)HUDInfo.ScreenSizeX())));
            menu.AddItem(
                textY =
                    new MenuItem("textY", "Text position Y").SetValue(
                        new Slider((int)(HUDInfo.ScreenSizeY() * 0.70), 0, (int)HUDInfo.ScreenSizeY())));

            menu.AddItem(aggro   = new MenuItem("aggro", "Aggro key").SetValue(new KeyBind(107, KeyBindType.Press)));
            menu.AddItem(unaggro = new MenuItem("unaggro", "Unaggro key").SetValue(new KeyBind(109, KeyBindType.Press)));

            menu.AddItem(
                aggroMove =
                    new MenuItem("aggroMove", "Aggro move").SetValue(false)
                    .SetTooltip("Move to mouse position when using aggro"));
            menu.AddItem(
                unaggroMove =
                    new MenuItem("unaggroMove", "Unaggro move").SetValue(false)
                    .SetTooltip("Move to mouse position when using unaggro"));

            menu.AddItem(
                enabledTowerUnnagro =
                    new MenuItem("enabledTowerUnnagro", "Auto tower unnagro").SetValue(
                        new KeyBind('X', KeyBindType.Toggle)));
            menu.AddItem(
                towerUnnagroHp =
                    new MenuItem("towerUnnagro", "Auto tower unnagro when hp lower than").SetValue(
                        new Slider(600, 0, 2000)));

            menu.AddToMainMenu();

            Events.OnLoad  += OnLoad;
            Events.OnClose += OnClose;
        }
Esempio n. 5
0
        public static void OnDraw(EventArgs args)
        {
            if (!Checker)
            {
                return;
            }
            var refresh = Members.System.ToList();

            foreach (var heroModifier in refresh.Where(x => x.Owner == null || !x.Owner.IsValid || !x.Owner.IsAlive))
            {
                Members.System.Remove(heroModifier);
            }
            foreach (var heroModifier in Members.System)
            {
                var target     = heroModifier.Owner;
                var modList    = heroModifier.Modifiers;
                var isHero     = heroModifier.IsHero;
                var maxCounter = isHero
                    ? Members.Menu.Item("Counter.Hero").GetValue <Slider>().Value
                    : Members.Menu.Item("Counter.Creep").GetValue <Slider>().Value;
                if (isHero)
                {
                    if (!Members.Menu.Item("Enable.Heroes").GetValue <bool>())
                    {
                        continue;
                    }
                }
                else
                {
                    if (!Members.Menu.Item("Enable.Creeps").GetValue <bool>())
                    {
                        continue;
                    }
                }
                var counter = 0;
                var extra   = isHero ? 0 : 5;
                var hudPos  = HUDInfo.GetHPbarPosition(target);
                if (hudPos.IsZero)
                {
                    continue;
                }
                var startPos = hudPos + new Vector2(0, HUDInfo.GetHpBarSizeY() * 2 + extra) +
                               new Vector2(Members.Menu.Item("ExtraPos.X").GetValue <Slider>().Value,
                                           Members.Menu.Item("ExtraPos.Y").GetValue <Slider>().Value);
                var size = new Vector2(Members.Menu.Item("Settings.IconSize").GetValue <Slider>().Value,
                                       Members.Menu.Item("Settings.IconSize").GetValue <Slider>().Value);
                foreach (var modifier in modList.Where(x => x != null && x.IsValid && !Members.BlackList.Contains(x.Name)))
                {
                    if (counter >= maxCounter)
                    {
                        continue;
                    }
                    var remTime = modifier.RemainingTime;

                    /*if (remTime<=1)
                     *  continue;*/
                    var itemPos = startPos;
                    if (DrawVerticallyIcon)
                    {
                        itemPos += new Vector2(2, -2 + size.X * counter);
                    }
                    else
                    {
                        itemPos += new Vector2(-2 + size.X * counter, 2);
                    }
                    if (DrawRoundIcon)
                    {
                        Drawing.DrawRect(itemPos, size,
                                         Textures.GetTexture(
                                             $"materials/ensage_ui/modifier_textures/Round/{modifier.TextureName}.vmat"));
                    }
                    else
                    {
                        Drawing.DrawRect(itemPos, size,
                                         Textures.GetTexture(
                                             $"materials/ensage_ui/modifier_textures/{modifier.TextureName}.vmat"));
                        Drawing.DrawRect(itemPos, size,
                                         Color.Black, true);
                    }
                    var timer    = Math.Min(remTime + 0.1, 99).ToString("0.0");
                    var textSize = Drawing.MeasureText(timer, "Arial",
                                                       new Vector2(
                                                           (float)(size.Y * Members.Menu.Item("Settings.TextSize").GetValue <Slider>().Value / 100),
                                                           size.Y / 2), FontFlags.AntiAlias);
                    var textPos = itemPos + new Vector2(0, size.Y - textSize.Y);
                    Drawing.DrawRect(textPos - new Vector2(0, 0),
                                     new Vector2(textSize.X, textSize.Y),
                                     new Color(0, 0, 0, 200));
                    var clr = remTime >= 1 ? Color.White : ChangeColor ? Color.Red : Color.White;
                    Drawing.DrawText(
                        timer,
                        textPos,
                        new Vector2(textSize.Y, 0),
                        clr,
                        FontFlags.AntiAlias | FontFlags.StrikeOut);
                    counter++;
                }
            }
        }
        private void Drawing_OnDraw(EventArgs args)
        {
            if (!Game.IsInGame)
            {
                return;
            }
            if (menu.Item("hpdraw").GetValue <bool>())
            {
                if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
                {
                    return;
                }

                var ultLvl = me.Spellbook.SpellR.Level;
                var enemy  =
                    ObjectManager.GetEntities <Hero>()
                    .Where(y => y.Team != me.Team && y.IsAlive && y.IsVisible && !y.IsIllusion)
                    .ToList();

                foreach (var x in enemy)
                {
                    //Console.WriteLine(1);
                    var health    = x.Health;
                    var maxHealth = x.MaximumHealth;

                    var manna  = (x.MaximumMana - x.Mana);
                    var damage = Math.Floor((manna * ult[ultLvl]) * (1 - x.MagicDamageResist));
                    var hpleft = health;
                    var hpperc = hpleft / maxHealth;

                    var     dmgperc = Math.Min(damage, health) / maxHealth;
                    Vector2 hbarpos;
                    hbarpos = HUDInfo.GetHPbarPosition(x);

                    Vector2 screenPos;
                    var     enemyPos = x.Position + new Vector3(0, 0, x.HealthBarOffset);
                    if (!Drawing.WorldToScreen(enemyPos, out screenPos))
                    {
                        continue;
                    }

                    var start = screenPos;


                    hbarpos.X = start.X + (HUDInfo.GetHPBarSizeX(x) / 2);
                    hbarpos.Y = start.Y;
                    var   hpvarx   = hbarpos.X;
                    var   hpbary   = hbarpos.Y;
                    float a        = (float)Math.Round((damage * HUDInfo.GetHPBarSizeX(x)) / (x.MaximumHealth));
                    var   position = hbarpos - new Vector2(a, 32 * scaleY);

                    //Console.WriteLine("damage" + damage.ToString());

                    try
                    {
                        float left = (float)Math.Round(damage / 7);
                        Drawing.DrawRect(
                            position,
                            new Vector2(a, (float)(HUDInfo.GetHpBarSizeY(x))),
                            (x.Health > 0) ? new Color(150, 225, 150, 80) : new Color(70, 225, 150, 225));
                        Drawing.DrawRect(position, new Vector2(a, (HUDInfo.GetHpBarSizeY(x))), Color.Black, true);
                    }
                    catch (Exception v)
                    {
                        Console.WriteLine(v.Message);
                    }
                }
            }
        }
Esempio n. 7
0
        public static void Init()
        {
            Effects.Clear();
            _shrineList.Clear();
            _sleeper          = new Sleeper();
            _abilityDictinart = new Dictionary <uint, Ability>();
            if (_firstTime)
            {
                _firstTime  = false;
                _shrineList =
                    ObjectManager.GetEntities <Unit>()
                    .Where(x => x.IsValid && x.IsAlive && x.ClassId == SrineClass && x.Team == Members.MyPlayer.Team)
                    .ToList();
                Entity.OnInt32PropertyChange += (sender, args) =>
                {
                    var me = sender as Unit;
                    if (me?.ClassId == SrineClass)
                    {
                        if (args.PropertyName == "m_iTaggedAsVisibleByTeam")
                        {
                            //22 not vis
                            //30 under vis

                            var newValue = args.NewValue;
                            var oldValue = args.OldValue;
                            if (newValue != oldValue && newValue == 30)
                            {
                            }
                        }
                    }
                };
                Game.OnUpdate += args =>
                {
                    if (_sleeper.Sleeping)
                    {
                        return;
                    }
                    _sleeper.Sleep(100);
                    if (Enable)
                    {
                        foreach (var v in _shrineList)
                        {
                            var dist = v.Distance2D(Members.MyHero);

                            if (dist <= 700 && v.CheckForAbility())
                            {
                                HandleEffect(v);
                            }
                            else
                            {
                                UnHandleEffect(v);
                            }
                        }
                    }
                    else
                    {
                        if (Effects.Any())
                        {
                            Effects.ToDictionary(x => x.Key, y => y.Value).ForEach(x => UnHandleEffect(x.Key));
                        }
                    }
                };
                Drawing.OnDraw += args =>
                {
                    if (Draw || IsNumsEnable)
                    {
                        foreach (var v in _shrineList)
                        {
                            var pos = HUDInfo.GetHPbarPosition(v);
                            if (pos.IsZero)
                            {
                                continue;
                            }
                            var filler = v.GetFiller();
                            if (filler == null || filler.AbilityState == AbilityState.Ready)
                            {
                                continue;
                            }
                            var cd        = filler.Cooldown;
                            var cdLength  = filler.CooldownLength;
                            var hpBarSize = HUDInfo.GetHPBarSizeX();
                            var size      = new Vector2(hpBarSize * 2, BarSize);
                            var buff      = v.FindModifier("modifier_filler_heal_aura");
                            var isBuff    = buff != null;
                            var remTine   = buff?.RemainingTime;
                            var cdDelta   = isBuff ? buff.RemainingTime * size.X / 5 : cd * size.X / cdLength;
                            pos += new Vector2(-hpBarSize / 2, hpBarSize * 1.5f);
                            if (Draw)
                            {
                                Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black);
                                Drawing.DrawRect(pos, new Vector2(isBuff ? cdDelta : size.X - cdDelta, size.Y),
                                                 isBuff ? Color.Orange : Color.YellowGreen);
                                Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black, true);
                            }
                            if (IsNumsEnable)
                            {
                                var text     = isBuff ? $"{(int) (remTine/5*100)}%" : $"{(int) (100 - cd/cdLength*100)}%";
                                var textSize = Drawing.MeasureText(text, "Arial",
                                                                   new Vector2((float)(size.Y * DigSize), size.Y / 2), FontFlags.AntiAlias);
                                var textPos = pos + new Vector2(size.X / 2 - textSize.X / 2, size.Y - textSize.Y);

                                /*Drawing.DrawRect(textPos - new Vector2(0, 0),
                                 * new Vector2(textSize.X, textSize.Y),
                                 * new Color(0, 0, 0, 200));*/
                                Drawing.DrawText(
                                    text,
                                    textPos,
                                    new Vector2(textSize.Y, 0),
                                    Color.White,
                                    FontFlags.AntiAlias | FontFlags.StrikeOut);
                            }
                        }
                    }
                };
                ObjectManager.OnRemoveEntity += args =>
                {
                    var shrine = args.Entity;
                    if (shrine.ClassId == SrineClass)
                    {
                        _shrineList.Remove(shrine as Unit);
                    }
                };
            }
        }
Esempio n. 8
0
        private static void DrawUltiDamage(EventArgs args)
        {
            DrawingOnCore();
            enemies = ObjectManager.GetEntities <Hero>()
                      .Where(x => x.IsVisible && x.IsAlive && x.Team != me.Team && !x.IsMagicImmune() && !x.IsIllusion).ToList();
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || enemies.Count == 0)
            {
                return;
            }

            if (Menu.Item("dmg").IsActive())
            {
                foreach (var v in enemies)
                {
                    damage[v.Handle] = (float)CalculateDamage(v);
                    var useMana = CalculateMana(v);
                    //Console.WriteLine("useMana" + useMana);
                    var screenPos = HUDInfo.GetHPbarPosition(v);

                    if (!OnScreen(v.Position))
                    {
                        continue;
                    }

                    var travelSpeed = R.GetAbilityData("ball_lightning_move_speed", R.Level);
                    var travelTime  = me.Distance2D(v) / travelSpeed;
                    var distance    = v.IsMoving ? me.Distance2D(v.Predict(travelTime)) : me.Distance2D(v);

                    var startManaCost = R.GetAbilityData("ball_lightning_initial_mana_base") +
                                        me.MaximumMana / 100 * R.GetAbilityData("ball_lightning_initial_mana_percentage");

                    var costPerUnit = (12 + me.MaximumMana * 0.007) / 100.0;

                    var rManacost = startManaCost + costPerUnit * Math.Floor(distance / 100) * 100;
                    var text1     = v.Health <= damage[v.Handle] ? "✔ Damage:" + Math.Floor(damage[v.Handle])
                                                             : "✘ Damage:" + (int)Math.Floor(damage[v.Handle]);
                    var text2     = me.Mana >= useMana ? "✔ Mana:" + (int)Math.Floor(useMana) : "✘ Mana:" + (int)Math.Floor(useMana);
                    var text3     = me.Mana >= rManacost ? "✔ Distance:" + (int)me.Distance2D(v) : "✘ Distance:" + (int)me.Distance2D(v);
                    var size      = new Vector2(15, 15);
                    var textSize1 = Drawing.MeasureText(text1, "Comic Sans MS", size, FontFlags.DropShadow);//"Arial"  "Cursive""Comic Sans MS"
                    var textSize2 = Drawing.MeasureText(text2, "Comic Sans MS", size, FontFlags.DropShadow);
                    var textSize3 = Drawing.MeasureText(text3, "Comic Sans MS", size, FontFlags.DropShadow);
                    var position1 = new Vector2(screenPos.X + 65, screenPos.Y + 12);
                    var position2 = new Vector2(screenPos.X + 65, screenPos.Y + 24);
                    var position3 = new Vector2(screenPos.X + 65, screenPos.Y + 36);


                    Drawing.DrawText(
                        text1,
                        new Vector2(screenPos.X + 64, screenPos.Y + 13),
                        size,
                        Color.Black,
                        FontFlags.DropShadow);
                    Drawing.DrawText(
                        text1,
                        position1,
                        size,
                        v.Health <= damage[v.Handle] ? Color.LawnGreen : Color.OrangeRed,
                        FontFlags.DropShadow);

                    Drawing.DrawText(
                        text2,
                        new Vector2(screenPos.X + 64, screenPos.Y + 25),
                        size,
                        Color.Black,
                        FontFlags.DropShadow);
                    Drawing.DrawText(
                        text2,
                        position2,
                        size,
                        me.Mana >= useMana ? Color.LawnGreen : Color.OrangeRed,
                        FontFlags.DropShadow);

                    Drawing.DrawText(
                        text3,
                        new Vector2(screenPos.X + 64, screenPos.Y + 37),
                        size,
                        Color.Black,
                        FontFlags.DropShadow);
                    Drawing.DrawText(
                        text3,
                        position3,
                        size,
                        me.Mana >= rManacost ? Color.LawnGreen : Color.OrangeRed,
                        FontFlags.DropShadow);
                }
            }
        } // DrawUltiDamage::END
Esempio n. 9
0
 public TargetFind()
 {
     this.sleeper  = new Sleeper();
     this.heroIcon = Drawing.GetTexture("materials/ensage_ui/miniheroes/lone_druid");
     this.iconSize = new Vector2(HUDInfo.GetHpBarSizeY() * 2);
 }
Esempio n. 10
0
 public static Vector2 GetTopPanelPosition(Hero _Unit)
 {
     if (_TopPanelPoses.ContainsKey(_Unit.ClassId))
     {
         return(_TopPanelPoses[_Unit.ClassId]);
     }
     else
     {
         var _Pos = HUDInfo.GetTopPanelPosition(_Unit) + new Vector2(0, (float)HUDInfo.GetTopPanelSizeX(_Unit));
         _TopPanelPoses.Add(_Unit.ClassId, _Pos);
         return(_Pos);
     }
 }
Esempio n. 11
0
        private void OnDraw(EventArgs args)
        {
            if (Menu.TextItem)
            {
                var setPosText = new Vector2(Config.Screen.X - Menu.TextXItem - 10, Menu.TextYItem - 70);
                var posText    = new Vector2(Config.Screen.X, Config.Screen.Y * 0.65f) - setPosText;

                var combo = Menu.ComboKeyItem;
                Text($"Combo { (combo ? "ON" : "OFF") }", posText, combo ? Color.Aqua : Color.Yellow);

                var startCombo = Menu.StartComboKeyItem;
                Text($"Start Mute { (startCombo ? "ON" : "OFF") }", posText + new Vector2(0, 30), startCombo ? Color.Aqua : Color.Yellow);

                var ownerHealth    = ((float)Owner.Health / Owner.MaximumHealth) * 100;
                var autoArcaneBolt = !combo && !Menu.SpamArcaneBoltKeyItem && Menu.AutoArcaneBoltKeyItem && Menu.AutoArcaneBoltOwnerMinHealthItem <= ownerHealth;
                Text($"Auto Q { (autoArcaneBolt ? "ON" : "OFF") }", posText + new Vector2(0, 60), autoArcaneBolt ? Color.Aqua : Color.Yellow);

                if (Menu.AutoComboItem)
                {
                    var autoCombo = !Menu.AutoComboWhenComboItem || !combo && Menu.AutoOwnerMinHealthItem <= ownerHealth;
                    Text($"Auto Combo { (autoCombo ? "ON" : "OFF") }", posText + new Vector2(0, 90), autoCombo ? Color.Aqua : Color.Yellow);
                }
            }

            var i = 0;

            foreach (var data in Config.DamageCalculation.DamageList)
            {
                var target      = data.GetTarget;
                var health      = data.GetHealth;
                var damage      = data.GetDamage;
                var readyDamage = data.GetReadyDamage;

                if (Menu.HPBarCalculationItem)
                {
                    var hpBarPosition = HUDInfo.GetHPbarPosition(target);
                    if (!hpBarPosition.IsZero)
                    {
                        var hpBarSizeX = HUDInfo.GetHPBarSizeX(target);
                        var hpBarSizeY = HUDInfo.GetHpBarSizeY(target) / 1.7f;
                        var hpBarPos   = hpBarPosition + new Vector2(0, hpBarSizeY * (Menu.HPBarCalculationPosItem / 70f));

                        var readyDamageBar = Math.Max(readyDamage, 0) / target.MaximumHealth;
                        if (readyDamageBar > 0)
                        {
                            var readyDamagePos      = Math.Max(health - readyDamage, 0) / target.MaximumHealth;
                            var readyDamagePosition = new Vector2(hpBarPos.X + ((hpBarSizeX + readyDamageBar) * readyDamagePos), hpBarPos.Y);
                            var readyDamageSize     = new Vector2(hpBarSizeX * (readyDamageBar + Math.Min(health - readyDamage, 0) / target.MaximumHealth), hpBarSizeY);
                            var readyDamageColor    = ((float)health / target.MaximumHealth) - readyDamageBar > 0 ? new Color(100, 0, 0, 200) : new Color(191, 255, 0, 200);

                            Drawing.DrawRect(readyDamagePosition, readyDamageSize, readyDamageColor);
                            Drawing.DrawRect(readyDamagePosition, readyDamageSize, Color.Black, true);
                        }

                        var damageBar = Math.Max(damage, 0) / target.MaximumHealth;
                        if (damageBar > 0)
                        {
                            var damagePos      = Math.Max(health - damage, 0) / target.MaximumHealth;
                            var damagePosition = new Vector2(hpBarPos.X + ((hpBarSizeX + damageBar) * damagePos), hpBarPos.Y);
                            var damageSize     = new Vector2(hpBarSizeX * (damageBar + Math.Min(health - damage, 0) / target.MaximumHealth), hpBarSizeY);
                            var damageColor    = ((float)health / target.MaximumHealth) - damageBar > 0 ? new Color(0, 255, 0) : Color.Aqua;

                            Drawing.DrawRect(damagePosition, damageSize, damageColor);
                            Drawing.DrawRect(damagePosition, damageSize, Color.Black, true);
                        }
                    }
                }

                if (Menu.CalculationItem)
                {
                    var setPosTexture = new Vector2(Config.Screen.X - Menu.CalculationXItem - 20, Menu.CalculationYItem - 110);
                    var posTexture    = new Vector2(Config.Screen.X, Config.Screen.Y * 0.65f + i) - setPosTexture;
                    var doNotKill     = DoNotKill(target);

                    Texture(posTexture + 5, new Vector2(55), $"heroes_round/{ target.Name.Substring("npc_dota_hero_".Length) }");
                    Texture(posTexture, new Vector2(65), "other/round_percentage/frame/white");

                    if (!target.IsVisible)
                    {
                        var hp = Math.Ceiling((float)health / target.MaximumHealth * 100);
                        Texture(posTexture, new Vector2(65), $"other/round_percentage/hp/{ Math.Min(hp, 100) }");

                        if (doNotKill != null)
                        {
                            Texture(posTexture + new Vector2(42, 45), new Vector2(20), $"modifier_textures/round/{ doNotKill }");
                        }

                        i += 80;
                        continue;
                    }

                    var totalDamage = data.GetTotalDamage;

                    var maxHealth          = target.MaximumHealth + (health - target.MaximumHealth);
                    var damagePercent      = Math.Ceiling(100 - (health - Math.Max(damage, 0)) / maxHealth * 100);
                    var readyDamagePercent = Math.Ceiling(100 - (health - Math.Max(readyDamage, 0)) / maxHealth * 100);
                    var totalDamagePercent = Math.Ceiling(100 - (health - Math.Max(totalDamage, 0)) / maxHealth * 100);

                    if (damagePercent >= 100)
                    {
                        Texture(posTexture - 10, new Vector2(85), $"other/round_percentage/alert/{ Alert() }");
                    }

                    Texture(posTexture, new Vector2(65), $"other/round_percentage/no_percent_gray/{ Math.Min(totalDamagePercent, 100) }");
                    Texture(posTexture, new Vector2(65), $"other/round_percentage/no_percent_yellow/{ Math.Min(readyDamagePercent, 100) }");

                    var color = damagePercent >= 100 ? "green" : "red";
                    Texture(posTexture, new Vector2(65), $"other/round_percentage/{ color }/{ Math.Min(damagePercent, 100) }");

                    if (damagePercent >= 100)
                    {
                        Texture(posTexture, new Vector2(65), $"other/round_percentage/no_percent_gray/{ Math.Min(damagePercent - 100, 100) }");
                    }

                    if (doNotKill != null)
                    {
                        Texture(posTexture + new Vector2(42, 45), new Vector2(20), $"modifier_textures/round/{ doNotKill }");
                    }

                    i += 80;
                }
            }
        }
Esempio n. 12
0
 public HUDInfo(HUDInfo a_Copy)
 {
     m_HUDType     = a_Copy.m_HUDType;
     m_PrefPath    = a_Copy.m_PrefPath;
     m_lElementLoc = new List <ObjLocation>(a_Copy.m_lElementLoc);
 }
Esempio n. 13
0
        private static void HeroOnOnModifierAdded(Unit sender, ModifierChangedEventArgs args)
        {
            //Invoker Sun Strike
            if (args.Modifier.Name.Contains("modifier_invoker_sun_strike") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("invoker_sun_strike").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("invoker_sun_strike_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("invoker", "invoker_sun_strike");
                }
                if (MenuManager.Menu.Item("invoker_sun_strike_sound").GetValue <bool>())
                {
                    Sound.PlaySound("invoker_sun_strike_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("invoker_sun_strike_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    HeroColor       = "npc_dota_hero_invoker";
                    Helper.Hero();
                }
            }

            //Kunkka Torrent
            if (args.Modifier.Name.Contains("modifier_kunkka_torrent_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("kunkka_torrent").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("kunkka_torrent_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("kunkka", "kunkka_torrent");
                }
                if (MenuManager.Menu.Item("kunkka_torrent_sound").GetValue <bool>())
                {
                    Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("kunkka_torrent_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    HeroColor       = "npc_dota_hero_kunkka";
                    Helper.Hero();
                }
            }

            //Monkey King Primal Spring
            if (args.Modifier.Name.Contains("modifier_monkey_king_spring_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("monkey_king_primal_spring").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("monkey_king_primal_spring_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("monkey_king", "monkey_king_primal_spring");
                }
                if (MenuManager.Menu.Item("monkey_king_primal_spring_sound").GetValue <bool>())
                {
                    Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("monkey_king_primal_spring_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    HeroColor       = "npc_dota_hero_monkey_king";
                    Helper.Hero();
                }
            }

            //Radar
            if (args.Modifier.Name.Contains("modifier_radar_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("radar_scan").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("radar_scan_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("radar", "radar_scan");
                }
                if (MenuManager.Menu.Item("radar_scan_sound").GetValue <bool>())
                {
                    Sound.PlaySound("radar_scan_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("radar_scan_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    Helper.Item();
                }
            }

            if (!(sender is Hero))
            {
                return;
            }
            if (sender.IsIllusion)
            {
                return;
            }
            string index;

            if (sender.Team == me.Team)
            {
                //Ignor Ally TP
                if (args.Modifier.Name.Contains("modifier_teleporting"))
                {
                    IgnorAllyTP = false;
                }

                //Spirit Breaker Charge of Darkness
                if (args.Modifier.Name.Contains("modifier_spirit_breaker_charge_of_darkness_vision") && MenuManager.Menu.Item("spirit_breaker_charge_of_darkness").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "spirit_breaker_charge_of_darkness");
                    }
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("spirit_breaker_charge_of_darkness_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_minimap_end").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        HeroColor       = "npc_dota_hero_spirit_breaker";
                        Helper.Hero();
                    }
                }

                //Shadow Fiend Dark Lord
                if (args.Modifier.Name.Contains("modifier_nevermore_presence") && HeroChecker.Nevermore_IsHere && Utils.SleepCheck("nevermore_dark_lord") && MenuManager.Menu.Item("nevermore_dark_lord").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("nevermore_dark_lord_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "nevermore_dark_lord");
                    }
                    if (MenuManager.Menu.Item("nevermore_dark_lord_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(5000, "nevermore_dark_lord");
                }

                //Sniper Assassinate
                if (args.Modifier.Name.Contains("modifier_sniper_assassinate") && MenuManager.Menu.Item("sniper_assassinate").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("sniper_assassinate_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "sniper_assassinate");
                    }
                    if (MenuManager.Menu.Item("sniper_assassinate_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("sniper_assassinate_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("sniper_assassinate_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        HeroColor       = "npc_dota_hero_sniper";
                        Helper.Hero();
                    }
                }

                //Bounty Hunter Track
                if (args.Modifier.Name.Contains("modifier_bounty_hunter_track") && HeroChecker.Bounty_Hunter_IsHere && MenuManager.Menu.Item("bounty_hunter_track").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("bounty_hunter_track_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "bounty_hunter_track");
                    }
                    if (MenuManager.Menu.Item("bounty_hunter_track_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("bounty_hunter_track_" + Addition[GetLangId] + ".wav");
                    }
                }

                //Invoker Ghost Walk
                if (args.Modifier.Name.Contains("modifier_invoker_ghost_walk_enemy") && Utils.SleepCheck("invoker_ghost_walk") && MenuManager.Menu.Item("invoker_ghost_walk").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("invoker_ghost_walk_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "invoker_ghost_walk");
                    }
                    if (MenuManager.Menu.Item("invoker_ghost_walk_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("invoker_ghost_walk_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(3000, "invoker_ghost_walk");
                }

                //Bloodseeker Thirst
                if (args.Modifier.Name.Contains("modifier_bloodseeker_thirst_vision") && Utils.SleepCheck("bloodseeker_thirst") && MenuManager.Menu.Item("bloodseeker_thirst").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("bloodseeker_thirst_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "bloodseeker_thirst");
                    }
                    if (MenuManager.Menu.Item("bloodseeker_thirst_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("bloodseeker_thirst_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("bloodseeker_thirst_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        HeroColor       = "npc_dota_hero_bloodseeker";
                        Helper.Hero();
                    }
                    Utils.Sleep(10000, "bloodseeker_thirst");
                }
            }
            else
            {
                //Rune Haste
                if (args.Modifier.Name.Contains("modifier_rune_haste") && Utils.SleepCheck("rune_haste") && MenuManager.Menu.Item("rune_haste").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_haste_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_haste");
                    }
                    if (MenuManager.Menu.Item("rune_haste_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_haste_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_haste");
                }

                //Rune Regen
                if (args.Modifier.Name.Contains("modifier_rune_regen") && Utils.SleepCheck("rune_regen") && MenuManager.Menu.Item("rune_regen").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_regen_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_regen");
                    }
                    if (MenuManager.Menu.Item("rune_regen_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_regen_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_regen");
                }

                //Rune Arcane
                if (args.Modifier.Name.Contains("modifier_rune_arcane") && Utils.SleepCheck("rune_arcane") && MenuManager.Menu.Item("rune_arcane").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_arcane_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_arcane");
                    }
                    if (MenuManager.Menu.Item("rune_arcane_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_arcane");
                }

                //Rune Doubledamage
                if (args.Modifier.Name.Contains("modifier_rune_doubledamage") && Utils.SleepCheck("rune_doubledamage") && MenuManager.Menu.Item("rune_doubledamage").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_doubledamage_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_doubledamage");
                    }
                    if (MenuManager.Menu.Item("rune_doubledamage_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_doubledamage_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_doubledamage");
                }

                //Rune Invis
                if (args.Modifier.Name.Contains("modifier_rune_invis") && Utils.SleepCheck("rune_invis") && MenuManager.Menu.Item("rune_invis").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_invis_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_invis");
                    }
                    if (MenuManager.Menu.Item("rune_invis_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_invis_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(3000, "rune_invis");
                }

                //Shadow Blade
                if (args.Modifier.Name.Contains("modifier_item_invisibility_edge_windwalk") && Utils.SleepCheck("invis_sword") && MenuManager.Menu.Item("invis_sword").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("invis_sword_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "invis_sword");
                    }
                    if (MenuManager.Menu.Item("invis_sword_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("invis_sword_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("invis_sword_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "invis_sword");
                }

                //Shadow Amulet
                if (args.Modifier.Name.Contains("modifier_item_shadow_amulet_fade") && Utils.SleepCheck("shadow_amulet") && MenuManager.Menu.Item("shadow_amulet").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("shadow_amulet_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "shadow_amulet");
                    }
                    if (MenuManager.Menu.Item("shadow_amulet_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("shadow_amulet_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("shadow_amulet_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "shadow_amulet");
                }

                //Glimmer Cape
                if (args.Modifier.Name.Contains("modifier_item_glimmer_cape_fade") && Utils.SleepCheck("glimmer_cape") && MenuManager.Menu.Item("glimmer_cape").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("glimmer_cape_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "glimmer_cape");
                    }
                    if (MenuManager.Menu.Item("glimmer_cape_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("glimmer_cape_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("glimmer_cape_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "glimmer_cape");
                }

                //Silver Edge
                if (args.Modifier.Name.Contains("modifier_item_silver_edge_windwalk") && Utils.SleepCheck("silver_edge") && MenuManager.Menu.Item("silver_edge").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("silver_edge_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "silver_edge");
                    }
                    if (MenuManager.Menu.Item("silver_edge_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("silver_edge_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("silver_edge_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "silver_edge");
                }

                //Gem of True Sight
                if (args.Modifier.Name.Contains("modifier_item_gem_of_true_sight") && Utils.SleepCheck("gem") && MenuManager.Menu.Item("gem").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("gem_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "gem");
                    }
                    if (MenuManager.Menu.Item("gem_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(15000, "gem");
                }

                //Divine Rapier
                if (args.Modifier.Name.Contains("modifier_item_divine_rapier") && Utils.SleepCheck("rapier") && MenuManager.Menu.Item("rapier").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rapier_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "rapier");
                    }
                    if (MenuManager.Menu.Item("rapier_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(15000, "rapier");
                }
            }
        }
Esempio n. 14
0
        public static void OnParticleEvent(Entity hero, ParticleEffectAddedEventArgs args)
        {
            //Smoke of Deceit
            if (args.Name.Contains("smoke_of_deceit") && Utils.SleepCheck("smoke_of_deceit") && MenuManager.Menu.Item("smoke_of_deceit").GetValue <bool>())
            {
                DelayAction.Add(50, () =>
                {
                    var anyAllyWithSmokeEffect =
                        Heroes.GetByTeam(me.Team).Any(x => x.HasModifier("modifier_smoke_of_deceit"));
                    if (!anyAllyWithSmokeEffect)
                    {
                        if (MenuManager.Menu.Item("smoke_of_deceit_msg").GetValue <bool>())
                        {
                            MessageCreator.MessageItemCreator("default2", "smoke_of_deceit");
                        }
                        if (MenuManager.Menu.Item("smoke_of_deceit_sound").GetValue <bool>())
                        {
                            Sound.PlaySound("item_smoke_of_deceit_" + Addition[GetLangId] + ".wav");
                        }
                        if (MenuManager.Menu.Item("smoke_of_deceit_minimap").GetValue <bool>())
                        {
                            MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                            Helper.Item();
                        }
                        Utils.Sleep(5000, "smoke_of_deceit");
                    }
                });
            }

            //Ancient Apparition Ice Blast
            if (args.Name.Contains("ancient_apparition_ice_blast_final") && HeroChecker.Ancient_Apparition_IsHere && MenuManager.Menu.Item("ancient_apparition_ice_blast").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("ancient_apparition_ice_blast_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("ancient_apparition", "ancient_apparition_ice_blast");
                }
                if (MenuManager.Menu.Item("ancient_apparition_ice_blast_sound").GetValue <bool>())
                {
                    Sound.PlaySound("ancient_apparition_ice_blast_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("ancient_apparition_ice_blast_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_ancient_apparation";
                        Helper.Hero();
                    }
                });
            }

            //Mirana Moonlight Shadow
            if (args.Name.Contains("mirana_moonlight_cast") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("mirana_invis").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("mirana_invis_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("mirana", "mirana_invis");
                }
                if (MenuManager.Menu.Item("mirana_invis_sound").GetValue <bool>())
                {
                    Sound.PlaySound("moonlight_shadow_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("mirana_invis_minimap_mirana").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_mirana";
                        Helper.Hero();
                    }
                });
            }

            //Mirana Moonlight Shadow All Mini Map Heroes
            if (args.Name.Contains("mirana_moonlight_recipient") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("mirana_invis").GetValue <bool>())
            {
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("mirana_invis_minimap_all_heroes").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_mirana";
                        Helper.Hero();
                    }
                });
            }

            //Sandking Epicenter
            if (args.Name.Contains("sandking_epicenter") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("sandking_epicenter").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("sandking_epicenter_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("sand_king", "sandking_epicenter");
                }
                if (MenuManager.Menu.Item("sandking_epicenter_sound").GetValue <bool>())
                {
                    Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("sandking_epicenter_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_sand_king";
                        Helper.Hero();
                    }
                });
            }

            //Nature's Prophet Teleportation Start
            if (args.Name.Contains("furion_teleport") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("furion_teleportation").GetValue <bool>())
            {
                FurionFix = true;
                if (MenuManager.Menu.Item("furion_teleportation_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("furion", "furion_teleportation");
                }
                if (MenuManager.Menu.Item("furion_teleportation_sound").GetValue <bool>())
                {
                    Sound.PlaySound("furion_teleportation_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("furion_teleportation_minimap_start").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = ("npc_dota_hero_furion");
                        Helper.Hero();
                        FurionFix = false;
                    }
                });
            }

            //Nature's Prophet Teleportation End
            if (args.Name.Contains("furion_teleport_end") && HeroChecker.Furion_IsHere && MenuManager.Menu.Item("furion_teleportation").GetValue <bool>())
            {
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("furion_teleportation_minimap_end").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(1));
                        HeroColor       = "npc_dota_hero_furion";
                        DrawingMiniMap.NamePositionSpell.Add(MiniMapPosition);
                        DrawingMiniMap.HeroNameSpell      = ("Nature's Prophet");
                        DrawingMiniMap.HeroNamePosSpell   = (int)(("Nature's Prophet").Length * 3.84f);
                        DrawingMiniMap.HeroNameColorSpell = Color.Red;
                        DrawingMiniMap.Remover2(MiniMapPosition);
                        Helper.Hero();
                    }
                });
            }

            //Nature's Prophet Wrath of Nature
            if (args.Name.Contains("furion_wrath_of_nature") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("furion_wrath_of_nature").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("furion_wrath_of_nature_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("furion", "furion_wrath_of_nature");
                }
                if (MenuManager.Menu.Item("furion_wrath_of_nature_sound").GetValue <bool>())
                {
                    Sound.PlaySound("furion_wrath_of_nature_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("furion_wrath_of_nature_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_furion";
                        Helper.Hero();
                    }
                });
            }

            //Alchemist Unstable Concoction
            if (args.Name.Contains("alchemist_unstableconc") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("alchemist_unstable_concoction").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("alchemist_unstable_concoction_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("alchemist", "alchemist_unstable_concoction");
                }
                if (MenuManager.Menu.Item("alchemist_unstable_concoction_sound").GetValue <bool>())
                {
                    Sound.PlaySound("unstable_concoction_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("alchemist_unstable_concoction_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_alchemist";
                        Helper.Hero();
                    }
                });
            }

            //Bounty Hunter Shadow Walk
            if (args.Name.Contains("bounty_hunter_windwalk") && HeroChecker.Bounty_Hunter_IsHere && MenuManager.Menu.Item("bounty_hunter_wind_walk").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("bounty_hunter_wind_walk_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("bounty_hunter", "bounty_hunter_wind_walk");
                }
                if (MenuManager.Menu.Item("bounty_hunter_wind_walk_sound").GetValue <bool>())
                {
                    Sound.PlaySound("bounty_hunter_wind_walk_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("bounty_hunter_wind_walk_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_bounty_hunter";
                        Helper.Hero();
                    }
                });
            }

            //Clinkz Skeleton Walk
            if (args.Name.Contains("clinkz_windwalk") && HeroChecker.Clinkz_IsHere && MenuManager.Menu.Item("clinkz_wind_walk").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("clinkz_wind_walk_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("clinkz", "clinkz_wind_walk");
                }
                if (MenuManager.Menu.Item("clinkz_wind_walk_sound").GetValue <bool>())
                {
                    Sound.PlaySound("clinkz_wind_walk_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("clinkz_wind_walk_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_clinkz";
                        Helper.Hero();
                    }
                });
            }

            //Nyx Assassin Vendetta
            if (args.Name.Contains("nyx_assassin_vendetta_start") && HeroChecker.Nyx_Assassin_IsHere && MenuManager.Menu.Item("nyx_assassin_vendetta").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("nyx_assassin_vendetta_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("nyx_assassin", "nyx_assassin_vendetta");
                }
                if (MenuManager.Menu.Item("nyx_assassin_vendetta_sound").GetValue <bool>())
                {
                    Sound.PlaySound("nyx_assassin_vendetta_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("nyx_assassin_vendetta_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_nyx_assassin";
                        Helper.Hero();
                    }
                });
            }

            //Wisp Relocate Start
            if (args.Name.Contains("wisp_relocate_channel") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("wisp_relocate").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("wisp_relocate_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("wisp", "wisp_relocate");
                }
                if (MenuManager.Menu.Item("wisp_relocate_sound").GetValue <bool>())
                {
                    Sound.PlaySound("wisp_relocate_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("wisp_relocate_minimap_start").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_wisp";
                        Helper.Hero();
                    }
                });
            }

            //Wisp Relocate End
            if (args.Name.Contains("wisp_relocate_marker_endpoint") && HeroChecker.Wisp_IsHere && MenuManager.Menu.Item("wisp_relocate").GetValue <bool>())
            {
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("wisp_relocate_minimap_end").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_wisp";
                        Helper.Hero();
                    }
                });
            }

            //Morphling Replicate
            if (args.Name.Contains("morphling_replicate") && HeroChecker.Morphling_IsHere && MenuManager.Menu.Item("morphling_replicate").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("morphling_replicate_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("morphling", "morphling_replicate");
                }
                if (MenuManager.Menu.Item("morphling_replicate_sound").GetValue <bool>())
                {
                    Sound.PlaySound("morphling_replicate_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("morphling_replicate_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_wisp";
                        Helper.Hero();
                    }
                });
            }

            //Troll Warlord Battle Trance
            if (args.Name.Contains("troll_warlord_battletrance_cast") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("troll_warlord_battle_trance").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("troll_warlord_battle_trance_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("troll_warlord", "troll_warlord_battle_trance");
                }
                if (MenuManager.Menu.Item("troll_warlord_battle_trance_sound").GetValue <bool>())
                {
                    Sound.PlaySound("troll_warlord_battle_trance_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("troll_warlord_battle_trance_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_troll_warlord";
                        Helper.Hero();
                    }
                });
            }

            //Ursa Enrage
            if (args.Name.Contains("ursa_enrage_buff") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("ursa_enrage").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("ursa_enrage_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("ursa", "ursa_enrage");
                }
                if (MenuManager.Menu.Item("ursa_enrage_sound").GetValue <bool>())
                {
                    Sound.PlaySound("ursa_enrage_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("ursa_enrage_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_ursa";
                        Helper.Hero();
                    }
                });
            }

            //Spirit Breaker Charge Start
            if (args.Name.Contains("spirit_breaker_charge_start") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("spirit_breaker_charge_of_darkness").GetValue <bool>())
            {
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_minimap_start").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(0));
                        HeroColor       = "npc_dota_hero_spirit_breaker";
                        Helper.Hero();
                    }
                });
            }

            //Monkey King Tree Dance
            if (args.Name.Contains("monkey_king_jump_trail") && args.ParticleEffect.Owner.Team != me.Team && MenuManager.Menu.Item("monkey_king_tree_dance").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("monkey_king_tree_dance_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("monkey_king", "monkey_king_tree_dance");
                }
                if (MenuManager.Menu.Item("monkey_king_tree_dance_sound").GetValue <bool>())
                {
                    Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                }
                DelayAction.Add(50, () =>
                {
                    if (MenuManager.Menu.Item("monkey_king_tree_dance_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.ParticleEffect.GetControlPoint(1));
                        HeroColor       = "npc_dota_hero_monkey_king";
                        Helper.Hero();
                    }
                });
            }
        }
Esempio n. 15
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Checker.IsActive())
            {
                return;
            }
            if (!IsEnable)
            {
                return;
            }
            List <Hero> selectedHeroes = null;

            switch (SelectedIndex)
            {
            case 0:
                selectedHeroes = Manager.HeroManager.GetViableHeroes();
                break;

            case 1:
                selectedHeroes = Manager.HeroManager.GetAllyViableHeroes();
                break;

            case 2:
                selectedHeroes = Manager.HeroManager.GetEnemyViableHeroes();
                break;
            }
            if (selectedHeroes == null)
            {
                return;
            }
            foreach (var v in selectedHeroes)
            {
                try
                {
                    var pos = HUDInfo.GetHPbarPosition(v);
                    if (pos.IsZero)
                    {
                        continue;
                    }
                    var spells = Manager.HeroManager.GetAbilityList(v);
                    pos += new Vector2(0, HUDInfo.GetHPBarSizeX());
                    pos += new Vector2(ExtraX, ExtraY);
                    var counter = 0;
                    var size    = new Vector2(IconSize, IconSize);
                    foreach (var ability in spells)
                    {
                        var itemPos = pos + new Vector2(-2 + size.X * counter, 2);
                        Drawing.DrawRect(itemPos, size,
                                         Textures.GetSpellTexture(ability.StoredName()));
                        Drawing.DrawRect(itemPos, size,
                                         Color.Black, true);
                        var abilityState = ability.AbilityState;
                        if (abilityState == AbilityState.NotEnoughMana)
                        {
                            Drawing.DrawRect(itemPos, size,
                                             new Color(0, 0, 155, 155));
                            var neededMana = ((int)Math.Min(Math.Abs(v.Mana - ability.ManaCost), 99)).ToString(
                                CultureInfo.InvariantCulture);
                            var textSize = Drawing.MeasureText(neededMana, "Arial",
                                                               new Vector2(
                                                                   (float)(size.Y * TextSize),
                                                                   size.Y / 2), FontFlags.AntiAlias);
                            var textPos = itemPos + new Vector2(/*size.X-textSize.X*/ 1, 0);
                            Drawing.DrawRect(textPos - new Vector2(0, 0),
                                             new Vector2(textSize.X, textSize.Y),
                                             new Color(0, 0, 0, 200));
                            Drawing.DrawText(
                                neededMana,
                                textPos,
                                new Vector2(textSize.Y, 0),
                                Color.White,
                                FontFlags.AntiAlias | FontFlags.StrikeOut);
                        }
                        if (abilityState != AbilityState.NotLearned)
                        {
                            var level       = ability.Level;
                            var levelString = level.ToString();
                            var textSize    = Drawing.MeasureText(levelString, "Arial",
                                                                  new Vector2(
                                                                      (float)(size.Y * TextSizeLevel),
                                                                      size.Y / 2), FontFlags.AntiAlias);
                            var textPos = itemPos + new Vector2(1, size.Y - textSize.Y);
                            Drawing.DrawRect(textPos - new Vector2(0, 0),
                                             new Vector2(textSize.X, textSize.Y),
                                             new Color(0, 0, 0, 240));
                            Drawing.DrawText(
                                levelString,
                                textPos,
                                new Vector2(textSize.Y, 0),
                                Color.White,
                                FontFlags.AntiAlias | FontFlags.StrikeOut);
                        }
                        else
                        {
                            Drawing.DrawRect(itemPos, size,
                                             new Color(0, 0, 0, 150));
                        }
                        if (abilityState == AbilityState.OnCooldown)
                        {
                            var remTime  = ability.Cooldown;
                            var cooldown = Math.Min(remTime + 0.1, 99).ToString("0.0");
                            var textSize = Drawing.MeasureText(cooldown, "Arial",
                                                               new Vector2(
                                                                   (float)(size.Y * TextSize),
                                                                   size.Y / 2), FontFlags.AntiAlias);
                            var textPos = itemPos + new Vector2(0, 0);
                            Drawing.DrawRect(textPos - new Vector2(1, 0),
                                             new Vector2(textSize.X, textSize.Y),
                                             new Color(0, 0, 0, 200));
                            Drawing.DrawText(
                                cooldown,
                                textPos,
                                new Vector2(textSize.Y, 0),
                                Color.White,
                                FontFlags.AntiAlias | FontFlags.StrikeOut);
                        }


                        counter++;
                    }
                }
                catch (Exception e)
                {
                    Printer.Print($"[AbilityOverlay]: {v.StoredName()} : {e.HelpLink}");
                }
            }
        }
Esempio n. 16
0
        private void DrawingDamagePanel(EventArgs args)
        {
            me = Context.Owner as Hero;
            var enemies = ObjectManager.GetEntities <Hero>()
                          .Where(x => x.IsVisible && x.IsAlive && x.Team != me.Team && !ExUnit.IsMagicImmune(x) && !x.IsIllusion).ToList();

            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || enemies.Count == 0 || !Config.DrawingDamageEnabled.Value)
            {
                return;
            }


            foreach (var v in enemies)
            {
                damage[v.Handle] = (float)CalculateDamage(v);
                var useMana = CalculateMana(v);
                //Console.WriteLine("useMana" + useMana);
                var screenPos = HUDInfo.GetHPbarPosition(v);

                if (!OnScreen(v.Position))
                {
                    continue;
                }
                var travelSpeed = R.GetAbilityData("ball_lightning_move_speed", R.Level);
                //var travelTime = me.Distance2D(v) / travelSpeed;
                var distance = me.Distance2D(v);

                var startManaCost = R.GetAbilityData("ball_lightning_initial_mana_base") +
                                    me.MaximumMana / 100 * R.GetAbilityData("ball_lightning_initial_mana_percentage");

                var costPerUnit     = (12 + me.MaximumMana * 0.007) / 100.0;
                var calcEnemyHealth = v.Health <= 0 ? 0 : v.Health - damage[v.Handle];
                var calcMyMana      = useMana >= me.Mana ? 0 : me.Mana - useMana;
                var rManacost       = startManaCost + costPerUnit * Math.Floor(distance / 100) * 100;
                var text1           = v.Health <= damage[v.Handle] ? "✔ Damage:" + Math.Floor(damage[v.Handle]) + "(Easy Kill)"
                    : "✘ Damage:" + (int)Math.Floor(damage[v.Handle]) + "(" + (int)calcEnemyHealth + ")";
                var text2     = me.Mana >= useMana ? "✔ Mana:" + (int)Math.Floor(useMana) + "(" + (int)calcMyMana + ")" : "✘ Mana:" + (int)Math.Floor(useMana) + "(" + (int)calcMyMana + ")";
                var text3     = me.Mana >= rManacost ? "✔ Distance:" + (int)me.Distance2D(v) : "✘ Distance:" + (int)me.Distance2D(v);
                var size      = new Vector2(16, 16);
                var position1 = new Vector2(screenPos.X + 65, screenPos.Y + 12);
                var position2 = new Vector2(screenPos.X + 65, screenPos.Y + 24);
                var position3 = new Vector2(screenPos.X + 65, screenPos.Y + 36);

                if (Drawing.Direct3DDevice9 == null)
                {
                    return;
                }
                Drawing.DrawText(
                    text1,
                    new Vector2(screenPos.X + 64, screenPos.Y + 13),
                    size,
                    Color.Black,
                    FontFlags.DropShadow);
                Drawing.DrawText(
                    text1,
                    position1,
                    size,
                    v.Health <= damage[v.Handle] ? Color.LawnGreen : Color.OrangeRed,
                    FontFlags.GaussianBlur);

                Drawing.DrawText(
                    text2,
                    new Vector2(screenPos.X + 64, screenPos.Y + 25),
                    size,
                    Color.Black,
                    FontFlags.DropShadow);
                Drawing.DrawText(
                    text2,
                    position2,
                    size,
                    me.Mana >= useMana ? Color.LawnGreen : Color.OrangeRed,
                    FontFlags.GaussianBlur);

                Drawing.DrawText(
                    text3,
                    new Vector2(screenPos.X + 64, screenPos.Y + 37),
                    size,
                    Color.Black,
                    FontFlags.DropShadow);
                Drawing.DrawText(
                    text3,
                    position3,
                    size,
                    me.Mana >= rManacost ? Color.LawnGreen : Color.OrangeRed,
                    FontFlags.GaussianBlur);
            }
        }
Esempio n. 17
0
        private void DrawUltiDamage(EventArgs args)
        {
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
            {
                return;
            }


            R = me.Spellbook.SpellR;
            var ultLvl = R.Level;
            var enemy  =
                ObjectManager.GetEntities <Hero>()
                .Where(y => y.Team != me.Team && y.IsAlive && y.IsVisible && !y.IsIllusion)
                .ToList();

            if (enemy.Count == 0)
            {
                return;
            }
            foreach (var v in enemy)
            {
                if (!v.IsVisible || !v.IsAlive)
                {
                    continue;
                }
                var manna  = (v.MaximumMana - v.Mana);
                var damage = Math.Floor((manna * ult[ultLvl]) * (1 - v.MagicDamageResist));

                var lens = me.HasModifier("modifier_item_aether_lens");

                if (v.NetworkName == "CDOTA_Unit_Hero_Spectre" && v.Spellbook.Spell3.Level > 0)
                {
                    damage =
                        Math.Floor((manna * ult[ultLvl]) *
                                   (1 - (0.10 + v.Spellbook.Spell3.Level * 0.04)) * (1 - v.MagicDamageResist));
                }
                if (v.NetworkName == "CDOTA_Unit_Hero_SkeletonKing" &&
                    v.Spellbook.SpellR.CanBeCasted())
                {
                    damage = 0;
                }
                if (lens)
                {
                    damage = damage * 1.08;
                }
                var rum = v.Modifiers.Any(x => x.Name == "modifier_kunkka_ghost_ship_damage_absorb");
                if (rum)
                {
                    damage = damage * 0.5;
                }
                var mom = v.Modifiers.Any(x => x.Name == "modifier_item_mask_of_madness_berserk");
                if (mom)
                {
                    damage = damage * 1.3;
                }
                var dmg       = v.Health - damage;
                var canKill   = dmg <= 0;
                var screenPos = HUDInfo.GetHPbarPosition(v);
                if (!OnScreen(v.Position))
                {
                    continue;
                }

                var text     = canKill ? "Yes" : "No, damage:" + Math.Floor(damage);
                var size     = new Vector2(15, 15);
                var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
                var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3);
                Drawing.DrawText(
                    text,
                    position,
                    size,
                    (canKill ? Color.LawnGreen : Color.Red),
                    FontFlags.AntiAlias);
                if (menu.Item("autoUlt").GetValue <bool>() && me.IsAlive)
                {
                    if (R != null && R.CanBeCasted() &&
                        !v.HasModifier("modifier_tusk_snowball_movement") &&
                        !v.HasModifier("modifier_snowball_movement_friendly") &&
                        !v.HasModifier("modifier_templar_assassin_refraction_absorb") &&
                        !v.HasModifier("modifier_ember_spirit_flame_guard") &&
                        !v.HasModifier("modifier_ember_spirit_sleight_of_fist_caster_invulnerability") &&
                        !v.HasModifier("modifier_obsidian_destroyer_astral_imprisonment_prison") &&
                        !v.HasModifier("modifier_puck_phase_shift") &&
                        !v.HasModifier("modifier_eul_cyclone") &&
                        !v.HasModifier("modifier_dazzle_shallow_grave") &&
                        !v.HasModifier("modifier_shadow_demon_disruption") &&
                        !v.HasModifier("modifier_necrolyte_reapers_scythe") &&
                        !v.HasModifier("modifier_necrolyte_reapers_scythe") &&
                        !v.HasModifier("modifier_storm_spirit_ball_lightning") &&
                        !v.HasModifier("modifier_ember_spirit_fire_remnant") &&
                        !v.HasModifier("modifier_nyx_assassin_spiked_carapace") &&
                        !v.HasModifier("modifier_phantom_lancer_doppelwalk_phase") &&
                        !v.FindSpell("abaddon_borrowed_time").CanBeCasted() &&
                        !v.HasModifier("modifier_abaddon_borrowed_time_damage_redirect") &&
                        me.Distance2D(v) <= R.GetCastRange() + 50 &&
                        !v.IsMagicImmune() &&
                        enemy.Count(x => (x.Health - damage) <= 0 && x.Distance2D(v) <= 500)
                        >= (menu.Item("ulti").GetValue <Slider>().Value) &&
                        enemy.Count(x => x.Distance2D(v) <= 500)
                        >= (menu.Item("ulti").GetValue <Slider>().Value) &&
                        Utils.SleepCheck(v.Handle.ToString()))
                    {
                        R.UseAbility(v);
                        Utils.Sleep(150, v.Handle.ToString());
                        return;
                    }
                }
            }
        }
Esempio n. 18
0
        private static void DrawSpellPanel(int type)
        {
            List <Hero> selectedHeroes = null;

            switch (type)
            {
            case 0:
                selectedHeroes = Manager.HeroManager.GetViableHeroes();
                break;

            case 1:
                selectedHeroes = Manager.HeroManager.GetAllyViableHeroes();
                break;

            case 2:
                selectedHeroes = Manager.HeroManager.GetEnemyViableHeroes();
                break;
            }
            if (selectedHeroes == null)
            {
                return;
            }
            foreach (var v in selectedHeroes)
            {
                try
                {
                    Vector2 mypos;
                    if (!Drawing.WorldToScreen(v.Position, out mypos))
                    {
                        continue;
                    }
                    if (mypos.X <= -5000 || mypos.X >= 5000)
                    {
                        continue;
                    }
                    if (mypos.Y <= -5000 || mypos.Y >= 5000)
                    {
                        continue;
                    }
                    var start = HUDInfo.GetHPbarPosition(v) +
                                new Vector2(-Members.Menu.Item("spellPanel.ExtraPosX").GetValue <Slider>().Value,
                                            Members.Menu.Item("spellPanel.ExtraPosY").GetValue <Slider>().Value);
                    var       distBetweenSpells = Members.Menu.Item("spellPanel.distBetweenSpells").GetValue <Slider>().Value;
                    var       distBwtweenLvls   = Members.Menu.Item("spellPanel.DistBwtweenLvls").GetValue <Slider>().Value;
                    var       sizeSpell         = Members.Menu.Item("spellPanel.SizeSpell").GetValue <Slider>().Value;
                    const int sizey             = 9;
                    var       spells            = Manager.HeroManager.GetAbilityList(v); //Members.AbilityDictionary[v.StoredName()];
                    if (spells == null || spells.Count == 0)
                    {
                        continue;
                    }
                    foreach (var spell in spells /*.Where(x => x.AbilitySlot.ToString() != "-1")*/)
                    {
                        var size2      = distBetweenSpells;
                        var extrarange = spell.Level > 4 ? spell.Level - 4 : 0;
                        size2 = (int)(size2 + extrarange * 7);
                        var cd = spell.Cooldown;
                        Drawing.DrawRect(start,
                                         new Vector2(size2, spell.AbilityState != AbilityState.OnCooldown ? sizey : 22),
                                         new ColorBGRA(0, 0, 0, 100));
                        Drawing.DrawRect(start,
                                         new Vector2(size2, spell.AbilityState != AbilityState.OnCooldown ? sizey : 22),
                                         new ColorBGRA(255, 255, 255, 100), true);
                        if (spell.AbilityState == AbilityState.NotEnoughMana)
                        {
                            Drawing.DrawRect(start,
                                             new Vector2(size2, spell.AbilityState != AbilityState.OnCooldown ? sizey : 22),
                                             new ColorBGRA(0, 0, 150, 150));
                        }
                        if (spell.AbilityState == AbilityState.OnCooldown)
                        {
                            var text     = string.Format("{0:0.#}", cd);
                            var textSize = Drawing.MeasureText(text, "Arial", new Vector2(10, 200),
                                                               FontFlags.None);
                            var textPos = start +
                                          new Vector2(10 - textSize.X / 2, -textSize.Y / 2 + 12);
                            Drawing.DrawText(text, textPos, /*new Vector2(10, 150),*/ Color.White,
                                             FontFlags.AntiAlias | FontFlags.DropShadow);
                        }
                        if (spell.Level > 0)
                        {
                            for (var lvl = 1; lvl <= spell.Level; lvl++)
                            {
                                Drawing.DrawRect(start + new Vector2(distBwtweenLvls * lvl, sizey - 6),
                                                 new Vector2(sizeSpell, sizey - 6),
                                                 new ColorBGRA(255, 255, 0, 255));
                            }
                        }
                        start += new Vector2(size2, 0);
                    }
                }
                catch
                {
                    Printer.Print("[SpellPanel]: " + v.StoredName());
                }
            }
        }
Esempio n. 19
0
        private void DrawUltiDamage(EventArgs args)
        {
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
            {
                return;
            }

            double[] penitence = { 0, 1.15, 1.2, 1.25, 1.3 };
            double[] soul      = { 0, 1.2, 1.3, 1.4, 1.5 };

            R = me.Spellbook.SpellR;
            var ultLvl = R.Level;
            var enemy  =
                ObjectManager.GetEntities <Hero>()
                .Where(x => x.Team != me.Team && x.IsAlive && x.IsVisible && !x.IsIllusion)
                .ToList();

            if (enemy.Count == 0)
            {
                return;
            }
            foreach (var v in enemy)
            {
                if (!v.IsVisible || !v.IsAlive)
                {
                    continue;
                }
                var manna  = (v.MaximumMana - v.Mana);
                var damage = Math.Floor((manna * ult[ultLvl]) * (1 - v.MagicDamageResist));

                var lens = me.HasModifier("modifier_item_aether_lens");

                if (v.NetworkName == "CDOTA_Unit_Hero_Spectre" && v.Spellbook.Spell3.Level > 0)
                {
                    damage =
                        Math.Floor((manna * ult[ultLvl]) *
                                   (1 - (0.10 + v.Spellbook.Spell3.Level * 0.04)) * (1 - v.MagicDamageResist));
                }
                if (v.NetworkName == "CDOTA_Unit_Hero_SkeletonKing" &&
                    v.Spellbook.SpellR.CanBeCasted())
                {
                    damage = 0;
                }
                if (lens)
                {
                    damage = damage * 1.08;
                }
                if (v.HasModifier("modifier_kunkka_ghost_ship_damage_absorb"))
                {
                    damage = damage * 0.5;
                }
                if (v.HasModifier("modifier_item_mask_of_madness_berserk"))
                {
                    damage = damage * 1.3;
                }

                if (v.HasModifier("modifier_chen_penitence"))
                {
                    damage = damage * penitence[ObjectManager.GetEntities <Hero>().FirstOrDefault(x => x.Team == me.Team && x.ClassID == ClassID.CDOTA_Unit_Hero_Chen).Spellbook.Spell1.Level];
                }

                if (v.HasModifier("modifier_shadow_demon_soul_catcher"))
                {
                    damage = damage * soul[ObjectManager.GetEntities <Hero>().FirstOrDefault(x => x.Team == me.Team && x.ClassID == ClassID.CDOTA_Unit_Hero_Shadow_Demon).Spellbook.Spell2.Level];
                }

                var dmg       = v.Health - damage;
                var canKill   = dmg <= 0;
                var screenPos = HUDInfo.GetHPbarPosition(v);
                if (!OnScreen(v.Position))
                {
                    continue;
                }

                var text     = canKill ? "Yes:" + Math.Floor(damage) : "No:" + Math.Floor(damage);
                var size     = new Vector2(15, 15);
                var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
                var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3);
                Drawing.DrawText(
                    text,
                    position,
                    size,
                    (canKill ? Color.LawnGreen : Color.Red),
                    FontFlags.AntiAlias);
            }
        }
Esempio n. 20
0
        private static void DrawTopPanel(int type)
        {
            List <Hero> selectedHeroes = null;

            switch (type)
            {
            case 0:
                selectedHeroes = Manager.HeroManager.GetHeroes();
                break;

            case 1:
                selectedHeroes = Members.AllyHeroes;
                break;

            case 2:
                selectedHeroes = Members.EnemyHeroes;
                break;
            }
            if (selectedHeroes == null)
            {
                return;
            }
            if (Members.Menu.Item("toppanel.Status.Enable").GetValue <bool>() ||
                Members.Menu.Item("toppanel.Health.Enable").GetValue <bool>() ||
                Members.Menu.Item("toppanel.Mana.Enable").GetValue <bool>())
            {
                foreach (var v in selectedHeroes)
                {
                    var pos = Helper.GetTopPanelPosition(v) +
                              new Vector2(Members.Menu.Item("extraPos.X").GetValue <Slider>().Value,
                                          Members.Menu.Item("extraPos.Y").GetValue <Slider>().Value);
                    var temp        = HUDInfo.GetTopPanelSize(v);
                    var size        = new Vector2((float)temp[0], (float)temp[1]);
                    var healthDelta = new Vector2(v.Health * size.X / v.MaximumHealth, 0);
                    var manaDelta   = new Vector2(v.Mana * size.X / v.MaximumMana, 0);
                    DrawHealthPanel(pos, size, healthDelta);
                    DrawManaPanel(pos, size, manaDelta);
                    DrawStatus(pos, v, size);
                }
            }
            if (!Members.Menu.Item("ultimate.Enable").GetValue <bool>())
            {
                return;
            }
            if (!Members.Menu.Item("ultimate.Icon.Enable").GetValue <bool>() &&
                !Members.Menu.Item("ultimate.Info").GetValue <bool>() &&
                !Members.Menu.Item("ultimate.InfoAlways").GetValue <bool>())
            {
                return;
            }
            foreach (var v in Members.EnemyHeroes)
            {
                var ablist = Manager.HeroManager.GetAbilityList(v);
                if (ablist == null)
                {
                    continue;
                }
                try
                {
                    Ability ultimate;
                    if (!Ultimate.TryGetValue(v.StoredName(), out ultimate))
                    {
                        var spell = ablist.FirstOrDefault(x => x.IsAbilityType(AbilityType.Ultimate));
                        if (spell != null)
                        {
                            Ultimate.Remove(v.StoredName());
                            Ultimate.Add(v.StoredName(), spell);
                        }
                        continue;
                    }
                    if (ultimate == null || !ultimate.IsValid || ultimate.Level <= 0)
                    {
                        continue;
                    }
                    var pos = Helper.GetTopPanelPosition(v) +
                              new Vector2(Members.Menu.Item("extraPos.X").GetValue <Slider>().Value,
                                          Members.Menu.Item("extraPos.Y").GetValue <Slider>().Value);
                    var    tempS  = HUDInfo.GetTopPanelSize(v);
                    var    size   = new Vector2((float)tempS[0], (float)tempS[1]);
                    var    ultPos = pos + new Vector2(size[0] / 2 - 5, size[1] + 1);
                    string path;

                    switch (ultimate.AbilityState)
                    {
                    case AbilityState.NotEnoughMana:
                        path = "materials/ensage_ui/other/ulti_nomana.vmat";
                        break;

                    case AbilityState.OnCooldown:
                        path = "materials/ensage_ui/other/ulti_cooldown.vmat";
                        break;

                    default:
                        path = "materials/ensage_ui/other/ulti_ready.vmat";
                        break;
                    }
                    if (Members.Menu.Item("ultimate.Icon.Enable").GetValue <bool>())
                    {
                        Drawing.DrawRect(ultPos, new Vector2(14, 14), Drawing.GetTexture(path));
                    }
                    if (Members.Menu.Item("ultimate.Info").GetValue <bool>() &&
                        (Members.Menu.Item("ultimate.InfoAlways").GetValue <bool>() && (
                             ultimate.AbilityState == AbilityState.OnCooldown ||
                             ultimate.AbilityState == AbilityState.NotEnoughMana) ||
                         Utils.IsUnderRectangle(Game.MouseScreenPosition, ultPos.X, ultPos.Y, 15, 15)))
                    {
                        var texturename = string.Format("materials/ensage_ui/spellicons/{0}.vmat",
                                                        ultimate.StoredName());
                        pos = Helper.GetTopPanelPosition(v);
                        var startPos = pos + new Vector2(0, 7 * 4 + size.Y);
                        size = new Vector2(size.X, size.Y + 15);
                        Drawing.DrawRect(startPos,
                                         size,
                                         Textures.GetTexture(texturename));
                        string  ultimateCd;
                        Vector2 textSize;
                        Vector2 textPos;
                        switch (ultimate.AbilityState)
                        {
                        case AbilityState.OnCooldown:
                            ultimateCd =
                                ((int)Math.Min(ultimate.Cooldown, 999)).ToString(CultureInfo.InvariantCulture);
                            textSize = Drawing.MeasureText(ultimateCd, "Arial",
                                                           new Vector2((float)(size.Y * .50), size.Y / 2), FontFlags.AntiAlias);
                            //Print(v.Name + " cd: " + ultimateCd);
                            textPos = startPos + new Vector2(0, size.Y - textSize.Y);
                            Drawing.DrawRect(textPos - new Vector2(0, 0),
                                             new Vector2(textSize.X, textSize.Y),
                                             new Color(0, 0, 0, 200));
                            Drawing.DrawText(
                                ultimateCd,
                                textPos,
                                new Vector2(textSize.Y, 0),
                                Color.White,
                                FontFlags.AntiAlias | FontFlags.StrikeOut);
                            break;

                        case AbilityState.NotEnoughMana:
                            ultimateCd =
                                ((int)Math.Min(Math.Abs(v.Mana - ultimate.ManaCost), 999)).ToString(
                                    CultureInfo.InvariantCulture);
                            textSize = Drawing.MeasureText(ultimateCd, "Arial",
                                                           new Vector2((float)(size.Y * .50), size.Y / 2), FontFlags.AntiAlias);
                            textPos = startPos + new Vector2(0, size.Y - textSize.Y);
                            Drawing.DrawRect(textPos - new Vector2(0, 0),
                                             new Vector2(textSize.X, textSize.Y),
                                             new Color(0, 0, 0, 200));
                            Drawing.DrawText(
                                ultimateCd,
                                textPos,
                                new Vector2(textSize.Y, 0),
                                Color.White,
                                FontFlags.AntiAlias | FontFlags.StrikeOut);
                            Drawing.DrawRect(startPos,
                                             new Vector2(size.X, size.Y),
                                             new Color(0, 50, 155, 100));
                            break;
                        }
                    }
                }
                catch (Exception)
                {
                    Printer.Print("[DrawTopPanel:ultimate] " + v.StoredName() + " Type: " + type);
                }
            }
        }
Esempio n. 21
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Checker.IsActive())
            {
                return;
            }
            if (!IsEnable)
            {
                return;
            }
            if (InSys == null || InSys.Count == 0)
            {
                return;
            }
            var haveEb = InSys.Any(x => x.StoredName() == "item_ethereal_blade" && x.CanBeCasted());

            foreach (var v in Manager.HeroManager.GetEnemyViableHeroes())
            {
                try
                {
                    var pos = HUDInfo.GetHPbarPosition(v);
                    if (pos.IsZero)
                    {
                        continue;
                    }
                    var myDmg = InSys.Where(x => x.CanBeCasted())
                                .Sum(
                        x =>
                        AbilityDamage.CalculateDamage(x, Members.MyHero, v,
                                                      minusMagicResistancePerc: haveEb ? 40 : 0));
                    var health    = v.Health;
                    var extraLife =
                        (uint)(Manager.HeroManager.GetItemList(v)
                               .Any(x => x.StoredName() == "item_infused_raindrop" && x.Cooldown <= 0)
                            ? 120
                            : 0);
                    if (extraLife > 100)
                    {
                        var needToCalcExtraLife =
                            InSys.Any(
                                x =>
                                x.DamageType == DamageType.Magical &&
                                AbilityDamage.CalculateDamage(x, Members.MyHero, v,
                                                              minusMagicResistancePerc: haveEb ? 40 : 0) > 120);
                        health += needToCalcExtraLife ? extraLife : 0;
                    }

                    var healthAfterShit = (int)(health - myDmg);
                    var size            = HUDInfo.GetHpBarSizeY();
                    var text            = $"{healthAfterShit} ({myDmg})";
                    var textSize        = Drawing.MeasureText(text, "Arial",
                                                              new Vector2((float)(size * 1.5), 500), FontFlags.AntiAlias);
                    var textPos = pos + new Vector2(HUDInfo.GetHPBarSizeX() + 4, 0);
                    Drawing.DrawText(
                        text,
                        textPos,
                        new Vector2(textSize.Y, 0),
                        new Color(R, G, B, 255),
                        FontFlags.AntiAlias | FontFlags.StrikeOut);
                }
                catch (Exception)
                {
                    Printer.Print($"[DamageCalculation]: {v.StoredName()}");
                }
            }
        }
Esempio n. 22
0
 public static void DrawCouAbuse()
 {
     Draw.RoundedRectangle((int)HUDInfo.ScreenSizeX() / 2 - 95, 100, 190, 28, 5, Color.DarkSlateGray);
     Drawing.DrawText("BOTTLE ABUSE", new Vector2((int)HUDInfo.ScreenSizeX() / 2 - 85, 100), new Vector2(26, 26), Color.Cyan, FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Outline);
 }
Esempio n. 23
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Game.IsInGame)
            {
                return;
            }

            var player = ObjectManager.LocalPlayer;

            List <Unit> creeps;

            try
            {
                creeps = ObjectManager.GetEntitiesParallel <Unit>().Where(creep => (creep.ClassId == ClassId.CDOTA_BaseNPC_Creep_Lane || creep.ClassId == ClassId.CDOTA_BaseNPC_Creep_Siege) && creep.IsAlive &&
                                                                          creep.IsVisible &&
                                                                          creep.IsSpawned).ToList();
            }
            catch
            {
                return;
            }

            var enemyTowers = ObjectManager.GetEntitiesParallel <Building>().Where(tower =>
                                                                                   tower.ClassId == ClassId.CDOTA_BaseNPC_Tower &&
                                                                                   tower.Team != player.Team).ToList();

            foreach (var tower in enemyTowers)
            {
                var    enemyTowerPos = tower.Position + new Vector3(0, 0, tower.HealthBarOffset);
                var    start         = HUDInfo.GetHPbarPosition(tower) + new Vector2(HUDInfo.GetHPBarSizeX(tower) / 2 - 5, HUDInfo.GetHpBarSizeY(tower) - 50);
                var    size          = new Vector2(25, 25);
                var    greenText     = Drawing.GetTexture("materials/vgui/hud/hud_timer_full.vmat");
                var    greyText2     = Drawing.GetTexture("materials/vgui/hud/minimap_creep.vmat");
                string towerType;

                if (!TowersDictionary.TryGetValue(tower, out towerType))
                {
                    continue;
                }
                switch (towerType)
                {
                case "active": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greenText); break;

                case "passive": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greyText2); break;
                }
            }

            foreach (var creep in creeps)
            {
                //Vector2 screenPos;
                var    enemyPos  = creep.Position + new Vector3(0, 0, creep.HealthBarOffset);
                var    start     = HUDInfo.GetHPbarPosition(creep) + new Vector2(HUDInfo.GetHPBarSizeX(creep) / 2 - 5, HUDInfo.GetHpBarSizeY(creep) - 10);
                var    size      = new Vector2(15, 15);
                var    greenText = Drawing.GetTexture("materials/vgui/hud/hud_timer_full.vmat");
                var    coinText  = Drawing.GetTexture("materials/ensage_ui/other/active_coin.vmat");
                var    greyText2 = Drawing.GetTexture("materials/vgui/hud/minimap_creep.vmat");
                var    coinsText = Drawing.GetTexture("materials/vgui/hud/gold.vmat");
                string creepType;

                if (!CreepsDictionary.TryGetValue(creep, out creepType))
                {
                    continue;                                                          //If not creep continue.
                }
                switch (creepType)
                {
                case "active": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greenText); break;

                case "prime": Drawing.DrawRect(start, new Vector2(size.Y, size.X), greyText2); break;
                }
            }
        }
Esempio n. 24
0
 public static void DrawCouForce()
 {
     Draw.RoundedRectangle((int)HUDInfo.ScreenSizeX() / 2 - 120, 130, 250, 28, 5, Color.DarkSlateGray);
     Drawing.DrawText("ANTIREUSE DELIVER", new Vector2((int)HUDInfo.ScreenSizeX() / 2 - 110, 130), new Vector2(26, 26), Color.Red, FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Outline);
 }
Esempio n. 25
0
        public OverlayMenu()
        {
            this.Menu = new Menu("Overlay", Constants.AssemblyName + nameof(IUnitOverlay));

            this.EnableOverlay = new ObservableMenuItem <bool>(this.Menu.Name + "enableOverlay", "Enable Overlay");
            this.EnableOverlay.SetValue(true);
            this.EnableOverlay.SetFontColor(Color.GreenYellow);
            this.EnableOverlay.Provider.Subscribe(
                new DataObserver <bool>(
                    (enable) =>
            {
                if (this.AbilityManager == null)
                {
                    if (!enable)
                    {
                        DelayAction.Add(
                            100,
                            () =>
                        {
                            foreach (var keyValuePair in this.AbilityManager.Value.Units)
                            {
                                var overlay = keyValuePair.Value.GetPart <IUnitOverlay>();
                                if (overlay == null)
                                {
                                    return;
                                }

                                keyValuePair.Value.GetPart <IUnitOverlay>().Dispose();
                                keyValuePair.Value.RemovePart <IUnitOverlay>();
                                keyValuePair.Value.Overlay = null;
                            }
                        });
                    }

                    return;
                }

                if (!enable)
                {
                    foreach (var keyValuePair in this.AbilityManager.Value.Units)
                    {
                        var overlay = keyValuePair.Value.GetPart <IUnitOverlay>();
                        if (overlay == null)
                        {
                            return;
                        }

                        keyValuePair.Value.GetPart <IUnitOverlay>().Dispose();
                        keyValuePair.Value.RemovePart <IUnitOverlay>();
                        keyValuePair.Value.Overlay = null;
                    }
                }
                else
                {
                    foreach (var keyValuePair in this.AbilityManager.Value.Units)
                    {
                        var overlay = keyValuePair.Value.GetPart <IUnitOverlay>();
                        if (overlay != null)
                        {
                            return;
                        }

                        keyValuePair.Value.UnitComposer.Assignments[typeof(IUnitOverlay)].Invoke(
                            keyValuePair.Value);
                        this.SetValues(keyValuePair.Value);
                        keyValuePair.Value.GetPart <IUnitOverlay>().Initialize();
                        this.ConnectPanels(keyValuePair.Value);
                    }
                }
            }));

            this.Menu.AddItem(this.EnableOverlay);

            this.DistanceFromLocalHero = new ObservableMenuItem <Slider>(
                this.Menu.Name + "maxDistanceFromLocalHero",
                "Max distance from local hero");
            this.DistanceFromLocalHero.SetValue(new Slider(2000, 500, 5000));
            this.DistanceFromLocalHero.SetTooltip(
                "If unit distance from your hero is less then specified value, overlay will stick to screen edge");

            // var added = false;
            this.DrawOutOfDisplay = new ObservableMenuItem <bool>(
                this.Menu.Name + "drawWhenOutOfDisplay",
                "Stick to screen edges");
            this.DrawOutOfDisplay.SetValue(true).SetTooltip("Stick the overlay to screen edges when its out of view");
            this.Menu.AddItem(this.DrawOutOfDisplay);
            this.Menu.AddItem(this.DistanceFromLocalHero);

            this.DistanceFromScreenEdge = new ObservableMenuItem <Slider>(
                this.Menu.Name + "maxDistanceFromEdge",
                "Max distance from camera position");
            this.DistanceFromScreenEdge.SetValue(new Slider((int)(HUDInfo.ScreenSizeY() * 2), 0, 5000));
            this.DistanceFromScreenEdge.SetTooltip(
                "If unit distance from camera position is less then specified value, overlay will stick to screen edge");
            this.Menu.AddItem(this.DistanceFromScreenEdge);

            // this.DrawOutOfDisplay.Provider.Subscribe(
            // new DataObserver<bool>(
            // b =>
            // {
            // if (b & !added)
            // {
            // this.Menu.AddItem(this.DistanceFromLocalHero);
            // added = true;
            // }
            // else if (!b & added)
            // {
            // this.Menu.Items.Remove(this.DistanceFromLocalHero);
            // added = false;
            // }
            // }));
        }
Esempio n. 26
0
 public static void DrawCouLock()
 {
     Draw.RoundedRectangle((int)HUDInfo.ScreenSizeX() / 2 - 90, 70, 180, 28, 5, Color.DarkSlateGray);
     Drawing.DrawText("LOCK AT BASE", new Vector2((int)HUDInfo.ScreenSizeX() / 2 - 80, 70), new Vector2(26, 26), Color.White, FontFlags.AntiAlias | FontFlags.DropShadow | FontFlags.Outline);
 }
Esempio n. 27
0
        public static void Draw(EventArgs args)
        {
            if (!Checker.IsActive())
            {
                return;
            }
            if (!Members.Menu.Item("showmemore.Enable").GetValue <bool>())
            {
                return;
            }
            if (Members.Menu.Item("Cour.Enable").GetValue <bool>())
            {
                foreach (var courier in Manager.BaseManager.GetViableCouriersList())
                {
                    var pos = Helper.WorldToMinimap(courier.Position);
                    if (pos.IsZero)
                    {
                        continue;
                    }
                    var    courType = courier.IsFlying ? "courier_flying" : "courier";
                    string name     = $"materials/ensage_ui/other/{courType}.vmat";
                    Drawing.DrawRect(pos - new Vector2(7, 7), new Vector2(15, 15), Drawing.GetTexture(name));
                }
            }
            if (Members.Menu.Item("apparition.Enable").GetValue <bool>() && AAunit != null && AAunit.IsValid)
            {
                try
                {
                    var aapos = Drawing.WorldToScreen(AAunit.Position);
                    if (!aapos.IsZero)
                    {
                        var myHeroPos = Drawing.WorldToScreen(Members.MyHero.Position);
                        if (!myHeroPos.IsZero)
                        {
                            Drawing.DrawLine(Drawing.WorldToScreen(Members.MyHero.Position), aapos, Color.AliceBlue);
                            const string name = "materials/ensage_ui/spellicons/ancient_apparition_ice_blast.vmat";
                            Drawing.DrawRect(aapos, new Vector2(50, 50), Drawing.GetTexture(name));
                        }
                    }
                }
                catch (Exception)
                {
                    Printer.Print("[Draw]: Apparation");
                }
            }
            if (Members.Menu.Item("tinker.Enable").GetValue <bool>())
            {
                try
                {
                    if (Members.Tinker != null && Members.Tinker.IsValid)
                    {
                        var baseList =
                            Manager.BaseManager.GetBaseList()
                            .Where(x => x.IsAlive && x.HasModifier("modifier_tinker_march_thinker"));
                        foreach (var unit in baseList)
                        {
                            var realPos = unit.Position;
                            var pos     = Drawing.WorldToScreen(realPos);
                            var texture = Textures.GetSpellTexture("tinker_march_of_the_machines");
                            if (pos.X > 0 && pos.Y > 0)
                            {
                                Drawing.DrawRect(pos, new Vector2(50, 50), texture);
                            }
                            var pos2 = Helper.WorldToMinimap(realPos);
                            Drawing.DrawRect(pos2 - new Vector2(10, 10), new Vector2(10, 10), texture);
                        }
                    }
                }
                catch (Exception)
                {
                    Printer.Print("[Draw]: Tinker");
                }
            }
            if (Members.Menu.Item("tech.Enable").GetValue <bool>())
            {
                try
                {
                    if (Members.Techies != null && Members.Techies.IsValid)
                    {
                        var baseList =
                            ObjectManager.GetEntities <Unit>()
                            .Where(x => x.IsAlive && x.ClassID == ClassID.CDOTA_NPC_TechiesMines && x.Team != Members.MyHero.Team && !Bombs.Contains(x));
                        foreach (var unit in baseList)
                        {
                            Bombs.Add(unit);
                        }
                        foreach (var bomb in Bombs)
                        {
                            if (!bomb.IsValid)
                            {
                                continue;
                            }
                            if (bomb.IsVisible)
                            {
                                continue;
                            }
                            var realPos = bomb.Position;
                            var pos     = Drawing.WorldToScreen(realPos);
                            var texture = bomb.Spellbook.Spell1 != null
                                ? Textures.GetTexture("materials/ensage_ui/other/npc_dota_techies_remote_mine.vmat")
                                : Textures.GetTexture("materials/ensage_ui/other/npc_dota_techies_land_mine.vmat");

                            if (pos.X > 0 && pos.Y > 0)
                            {
                                Drawing.DrawRect(pos, new Vector2(50, 50), texture);
                            }
                            var pos2 = Helper.WorldToMinimap(realPos);
                            Drawing.DrawRect(pos2 - new Vector2(15, 15), new Vector2(15, 15), texture);
                        }
                    }
                }
                catch (Exception)
                {
                    Printer.Print("[Draw]: Techies");
                }
            }
            if (Members.Menu.Item("scan.Enable").GetValue <bool>())
            {
                if (Members.ScanEnemy != null && Members.ScanEnemy.IsValid)
                {
                    try
                    {
                        var position = Members.ScanEnemy.Position;
                        var w2S      = Drawing.WorldToScreen(position);
                        if (!w2S.IsZero)
                        {
                            Drawing.DrawText(
                                "Scan Ability " +
                                Members.ScanEnemy.FindModifier("modifier_radar_thinker").RemainingTime.ToString("F1"),
                                w2S,
                                new Vector2(15, 15),
                                Color.White,
                                FontFlags.AntiAlias | FontFlags.StrikeOut);
                        }
                    }
                    catch (Exception)
                    {
                        Printer.Print("[Draw]: scan");
                    }
                }
            }
            if (Members.Menu.Item("charge.Enable").GetValue <bool>() && Members.BaraIsHere)
            {
                try
                {
                    foreach (var v in Manager.HeroManager.GetAllyViableHeroes())
                    {
                        var mod = v.HasModifier("modifier_spirit_breaker_charge_of_darkness_vision");
                        if (mod)
                        {
                            if (Equals(Members.MyHero, v))
                            {
                                Drawing.DrawRect(new Vector2(0, 0), new Vector2(Drawing.Width, Drawing.Height),
                                                 new Color(Members.Menu.Item("charge" + ".Red").GetValue <Slider>().Value,
                                                           Members.Menu.Item("charge" + ".Green").GetValue <Slider>().Value,
                                                           Members.Menu.Item("charge" + ".Blue").GetValue <Slider>().Value,
                                                           Members.Menu.Item("charge" + ".Alpha").GetValue <Slider>().Value));
                            }
                            if (!InSys.Contains(v))
                            {
                                Helper.GenerateSideMessage(v.Name.Replace("npc_dota_hero_", ""),
                                                           "spirit_breaker_charge_of_darkness");
                                InSys.Add(v);
                                //effect322 = new ParticleEffect("particles/units/heroes/hero_spirit_breaker/spirit_breaker_charge_target.vpcf", v, ParticleAttachment.OverheadFollow);
                                //v.AddParticleEffect("particles/units/heroes/hero_spirit_breaker/spirit_breaker_charge_target.vpcf");
                            }
                            else
                            {
                                var pos = HUDInfo.GetHPbarPosition(v);
                                if (!pos.IsZero && BaraDrawRect)
                                {
                                    Drawing.DrawRect(pos - new Vector2(50, 0), new Vector2(30, 30),
                                                     Textures.GetSpellTexture("spirit_breaker_charge_of_darkness"));
                                    Drawing.DrawRect(pos - new Vector2(50, 0), new Vector2(30, 30),
                                                     Color.Red, true);
                                }
                            }
                        }
                        else
                        {
                            if (InSys.Contains(v))
                            {
                                InSys.Remove(v);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Printer.Print("[Draw]: charge " + e.Message);
                }
            }
            if (Members.Menu.Item("lifestealer.Enable").GetValue <bool>() && Members.LifeStealer != null && Members.LifeStealer.IsValid && !Members.LifeStealer.IsVisible)
            {
                try
                {
                    const string modname = "modifier_life_stealer_infest_effect";
                    if (LifeStealerBox)
                    {
                        foreach (var t in Manager.HeroManager.GetEnemyViableHeroes().Where(x => x.HasModifier(modname)))
                        {
                            var size3  = new Vector2(10, 20) + new Vector2(13, -6);
                            var w2SPos = HUDInfo.GetHPbarPosition(t);
                            if (w2SPos.IsZero)
                            {
                                continue;
                            }
                            var name = "materials/ensage_ui/miniheroes/" +
                                       Members.LifeStealer.StoredName().Replace("npc_dota_hero_", "") + ".vmat";
                            Drawing.DrawRect(w2SPos - new Vector2(size3.X / 2, size3.Y / 2), size3,
                                             Drawing.GetTexture(name));
                        }
                    }
                    if (Members.Menu.Item("lifestealer.creeps.Enable").GetValue <bool>())
                    {
                        foreach (var t in Creeps.All.Where(x => x != null && x.IsAlive && x.HasModifier(modname)))
                        {
                            var size3  = new Vector2(10, 20) + new Vector2(13, -6);
                            var w2SPos = HUDInfo.GetHPbarPosition(t);
                            if (w2SPos.IsZero)
                            {
                                continue;
                            }
                            var name = "materials/ensage_ui/miniheroes/" +
                                       Members.LifeStealer.StoredName().Replace("npc_dota_hero_", "") + ".vmat";
                            Drawing.DrawRect(w2SPos - new Vector2(size3.X / 2, size3.Y / 2), size3,
                                             Drawing.GetTexture(name));
                        }
                    }
                }
                catch (Exception)
                {
                    Printer.Print("[Draw]: lifestealer");
                }
            }
            if (Members.Menu.Item("blur.Enable").GetValue <bool>() && Members.PAisHere != null && Members.PAisHere.IsValid)
            {
                try
                {
                    var mod = Members.PAisHere.HasModifier("modifier_phantom_assassin_blur_active");
                    if (mod && Members.PAisHere.StoredName() == "npc_dota_hero_phantom_assassin")
                    {
                        var size3 = new Vector2(10, 20) + new Vector2(13, -6);
                        var w2M   = Helper.WorldToMinimap(Members.PAisHere.NetworkPosition);
                        var name  = "materials/ensage_ui/miniheroes/" +
                                    Members.PAisHere.StoredName().Replace("npc_dota_hero_", "") + ".vmat";
                        Drawing.DrawRect(w2M - new Vector2(size3.X / 2, size3.Y / 2), size3,
                                         Drawing.GetTexture(name));
                    }
                }
                catch (Exception)
                {
                    Printer.Print("[Draw]: phantom assasin");
                }
            }
        }
Esempio n. 28
0
 private static Vector2 GetTopPanelSize(Hero hero)
 {
     return(new Vector2((float)HUDInfo.GetTopPanelSizeX(hero) - 2, (float)HUDInfo.GetTopPanelSizeY(hero)));
 }
Esempio n. 29
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="CommonMenu" /> class.
        /// </summary>
        public CommonMenu()
            : base("GeneralSettings", "Ensage.Common", true, null, false)
        {
            var menuSettings = new Menu("MenuSettings", "Common.menuSettings");

            menuSettings.AddItem(new MenuItem("pressKey", "Menu hold key").SetValue(new KeyBind(16, KeyBindType.Press)));
            menuSettings.AddItem(
                new MenuItem("toggleKey", "Menu toggle key").SetValue(new KeyBind(118, KeyBindType.Toggle)));
            menuSettings.AddItem(new MenuItem("showMessage", "Show OnLoad message: ").SetValue(true)).SetTooltip("Show message with menu hotkeys on game load");
            var message =
                menuSettings.AddItem(
                    new MenuItem("messageType", "Show the message in: ").SetValue(
                        new StringList(new[] { "SideLog", "Chat", "Console" })));

            menuSettings.AddItem(
                new MenuItem("EnsageSharp.Common.IncreaseSize", "Size increase: ").SetValue(new Slider(0, 0, 250)))
            .SetTooltip(
                "Increases size of the menu, it can take up to 20 sec before the menu gets fully resized")
            .ValueChanged += (sender, args) =>
            {
                DelayAction.Add(250, () => IncreaseMenuSize = args.GetNewValue <Slider>().Value);
            };
            IncreaseMenuSize = menuSettings.Item("EnsageSharp.Common.IncreaseSize").GetValue <Slider>().Value;
            menuSettings.AddItem(
                new MenuItem("positionX", "Position X").SetValue(
                    new Slider((int)MenuSettings.BasePosition.X, 10, Drawing.Height / 3)))
            .SetTooltip("Change position by dragging the 'EnsageSharp Menu' top panel").SetFontColor(Color.GreenYellow);
            menuSettings.AddItem(
                new MenuItem("positionY", "Position Y").SetValue(
                    new Slider((int)MenuSettings.BasePosition.Y, (int)(HUDInfo.ScreenSizeY() * 0.08), Drawing.Width / 4)))
            .SetTooltip("Change position by dragging the 'EnsageSharp Menu' top panel").SetFontColor(Color.GreenYellow);
            MenuSettings.BasePosition = new Vector2(
                menuSettings.Item("positionX").GetValue <Slider>().Value,
                menuSettings.Item("positionY").GetValue <Slider>().Value);
            this.AddSubMenu(menuSettings);
            var hacks = new Menu("Hacks", "Common.Hacks");

            hacks.AddItem(
                new MenuItem("showSpawnBoxes", "Show SpawnBoxes").SetValue(Config.ShowSpawnBoxes)
                .SetTooltip("Makes SpawnBoxes always visible")).ValueChanged += (sender, args) =>
            {
                Config.ShowSpawnBoxes = args.GetNewValue <bool>();
            };
            Config.ShowSpawnBoxes = hacks.Item("showSpawnBoxes").GetValue <bool>();
            hacks.AddItem(
                new MenuItem("showTowerRange", "Show TowerRange").SetValue(Config.ShowTowerRange)
                .SetTooltip("Makes TowerRange always visible")).ValueChanged += (sender, args) =>
            {
                Config.ShowTowerRange = args.GetNewValue <bool>();
            };
            Config.ShowTowerRange = hacks.Item("showTowerRange").GetValue <bool>();
            hacks.AddItem(
                new MenuItem("autoAccept", "AutoAccept").SetValue(Config.AutoAccept)
                .SetTooltip("Automatically clicks on accept after game was found")).ValueChanged +=
                (sender, args) =>
            {
                Config.AutoAccept = args.GetNewValue <bool>();
            };
            Config.AutoAccept = hacks.Item("autoAccept").GetValue <bool>();
            this.AddSubMenu(hacks);
            this.AddItem(
                new MenuItem("EnsageSharp.Common.BlockKeys", "Block player inputs for KeyBinds: ").SetValue(true))
            .SetTooltip("When a assembly uses a key, dota will ignore it");
            this.AddItem(
                new MenuItem("showConsole", "Show Console").SetValue(Config.DebugConsole)
                .SetTooltip("Enable if you wanna see console window")).ValueChanged += (sender, args) =>
            {
                Config.DebugConsole = args.GetNewValue <bool>();
            };
            Config.DebugConsole    = this.Item("showConsole").GetValue <bool>();
            Config.DisableDrawings = false;
            this.AddItem(
                new MenuItem("disableDrawings", "Disable Drawings").SetValue(Config.DisableDrawings)
                .DontSave()
                .SetTooltip(
                    "This option will HIDE menu and all other drawings and particles. This option will get disabled after you press F5",
                    Color.Red)).ValueChanged += (sender, args) =>
            {
                Config.DisableDrawings = args.GetNewValue <bool>();
            };
            this.Item("disableDrawings").SetValue(false);
            message.ValueChanged += this.MessageValueChanged;
            Events.OnLoad        += this.Events_OnLoad;
        }
Esempio n. 30
0
 public SoulAssumption(Ability ability)
 {
     this.ability = ability;
     //this.abilityIcon = Drawing.GetTexture("materials/ensage_ui/spellicons/storm_spirit_static_remnant");
     this.iconSize = new Vector2(HUDInfo.GetHpBarSizeY() * 2);
 }