Пример #1
0
        private void DrawAction(List <CourContainer> cours)
        {
            foreach (var cour in cours)
            {
                var hero = cour.Cour;
                if (!hero.IsAlive)
                {
                    continue;
                }
                if (!hero.IsVisible)
                {
                    continue;
                }
                var pos = HudInfo.GetHPbarPosition(hero);
                if (pos.IsZero)
                {
                    continue;
                }
                var size         = new Vector2(HudInfo.GetHPBarSizeX(hero), HudInfo.GetHpBarSizeY(hero));
                var tempSize     = size.X * ItemSize / 30f;
                var abilitySize  = new Vector2(tempSize);
                var abilities    = cour.Items;
                var abilityCount = abilities.Count;
                pos += new Vector2(0, size.Y - 2);
                pos += new Vector2((size.X - tempSize * abilityCount) / 2f, -abilitySize.Y);

                foreach (var ability in abilities)
                {
                    if (ability == null || !ability.IsValid)
                    {
                        continue;
                    }
                    pos = DrawItemState(pos, ability, abilitySize, Color.White);
                }
            }
        }
Пример #2
0
        private void DrawingOnOnDraw(EventArgs args)
        {
            var heroes          = Config.Main.Updater.Heroes;
            var itemBorderWhite = ItemBorderClr.Value.SelectedIndex == 0;

            foreach (var heroCont in heroes)
            {
                if (!EnableForMainHero && heroCont.IsOwner)
                {
                    continue;
                }
                var hero = heroCont.Hero;
                if (!hero.IsAlive)
                {
                    continue;
                }
                if (!hero.IsVisible)
                {
                    continue;
                }
                var hpBarPos = HudInfo.GetHPbarPosition(hero);
                var pos      = hpBarPos + new Vector2(ExtraPositionX, ExtraPositionY);
                if (pos.IsZero)
                {
                    continue;
                }
                var copy = pos;
                var size = new Vector2(HudInfo.GetHPBarSizeX(hero) + ExtraSizeX,
                                       HudInfo.GetHpBarSizeY(hero) + ExtraSizeY);
                if (HealthBar)
                {
                    if (!heroCont.IsAlly)
                    {
                        var health = DrawMaxHealth ? $"{hero.Health}/{heroCont.MaxHealth}" : $"{hero.Health}";
                        DrawingHelper.DrawHealthBar(pos, size, health, HealthBarTextSize);
                    }
                }
                if (heroCont.IsOwner)
                {
                    pos  += new Vector2(-1, size.Y);
                    size -= new Vector2(1, 0);
                }
                else
                {
                    pos += new Vector2(0, size.Y - 2);
                }

                if (ManaBars)
                {
                    if (heroCont.IsAlly && ManaBarsForAlly || !heroCont.IsAlly && ManaBarsForEnemy)
                    {
                        var mana = heroCont.Mana;
                        pos = DrawingHelper.DrawManaBar(pos, mana * size.X / heroCont.MaxMana, size,
                                                        new Color(0, 155, 255, 255),
                                                        new Color(0, 0, 0, 255), ((int)mana).ToString(), ManaBarsNumbers,
                                                        ManaBarsSize.Value.Value);
                    }
                }

                if (AbilityOverlay)
                {
                    var tempSize    = size.X * AbilitySize / 30f;
                    var abilitySize = new Vector2(tempSize);

                    //IEnumerable<Ability> abilities = heroCont.Abilities;
                    //var enumerable = abilities as Ability[] ?? abilities.ToArray();
                    //var abilityCount = abilities.Count();
                    var abilities    = heroCont.Abilities2.Where(x => x.IsValid && !x.IsHidden).ToList();
                    var abilityCount = abilities.Count;
                    //var extraAbilitites = abilityCount - 4;
                    pos += new Vector2((size.X - tempSize * abilityCount) / 2f, 0);

                    /*if (extraAbilitites > 0)
                     * {
                     *  pos -= new Vector2(abilitySize.X * extraAbilitites / 2f, 0);
                     * }*/

                    /*foreach (var ability in abilities)
                     * {
                     *  if (ability == null || !ability.IsValid || ability.IsHidden)
                     *  {
                     *      heroCont.RefreshAbilities();
                     *      continue;
                     *  }
                     *  pos = DrawAbilityState(pos, ability, abilitySize);
                     * }*/

                    try
                    {
                        foreach (var ability in abilities.OrderBy(x => x.AbilitySlot))
                        {
                            pos = DrawAbilityState(pos, ability, abilitySize);
                        }
                    }
                    catch (Exception)
                    {
                        // ignored
                    }
                }

                if (ItemOverlay)
                {
                    var tempSize     = size.X * ItemSize / 30f;
                    var abilitySize  = new Vector2(tempSize);
                    var abilities    = ItemDangItems ? heroCont.DangItems : heroCont.Items;
                    var abilityCount = abilities.Count;
                    //var extraAbilitites = abilityCount - 4;
                    pos  = copy;
                    pos += new Vector2((size.X - tempSize * abilityCount) / 2f, -abilitySize.Y);

                    /*if (extraAbilitites > 0)
                     * {
                     *  //pos -= new Vector2(abilitySize.X * extraAbilitites / 2f, 0);
                     *
                     * }*/

                    foreach (var ability in abilities)
                    {
                        if (ability == null || !ability.IsValid)
                        {
                            continue;
                        }
                        pos = DrawItemState(pos, ability, abilitySize, itemBorderWhite ? Color.White : Color.Black);
                    }
                }
            }
        }