Esempio n. 1
0
        private void DrawPlayerSkills(IPlayer player)
        {
            var portraitRect = player.PortraitUiElement.Rectangle;
            var size         = portraitRect.Width * 0.3f;
            var passivesX    = portraitRect.Right;

            YOffset = portraitRect.Height * 0.095f;
            foreach (var skill in player.Powers.SkillSlots)
            {
                if (skill != null && (List.ContainsKey(skill.SnoPower.Sno.ToString()) || AllSkill))
                {
                    var y = portraitRect.Y + YOffset;

                    var rect = new RectangleF(passivesX + currentX, y, size, size);

                    SkillPainter.Paint(skill, rect);

                    if (Hud.Window.CursorInsideRect(rect.X, rect.Y, rect.Width, rect.Height))
                    {
                        Hud.Render.SetHint(skill.RuneNameLocalized);
                    }
                    currentX += size;
                }
            }
        }
Esempio n. 2
0
        private void DrawPlayerSkills(IPlayer player)
        {
            var size         = Hud.Window.Size.Width * SkillRatio;
            var portraitRect = player.PortraitUiElement.Rectangle;
            var index        = 0;
            var passivesX    = portraitRect.Right;

            foreach (var skill in player.Powers.SkillSlots)
            {
                if (skill != null)
                {
                    index = skill.Key <= ActionKey.RightSkill ? (int)skill.Key + 4 : (int)skill.Key - 2;

                    var y = portraitRect.Y + YOffset;

                    var rect = new RectangleF(currentX + passivesX, y, size, size);

                    SkillPainter.Paint(skill, rect);

                    if (Hud.Window.CursorInsideRect(rect.X, rect.Y, rect.Width, rect.Height))
                    {
                        Hud.Render.SetHint(skill.RuneNameLocalized);
                    }
                }
                currentX += size;
            }

            index = 0;
        }
Esempio n. 3
0
        private void DrawPlayerSkills(IPlayer player)
        {
            var size         = Hud.Window.Size.Width * SkillRatio;
            var portraitRect = player.PortraitUiElement.Rectangle;
            var index        = 0;
            var passivesX    = currentX;

            foreach (int i in new int[] { 2, 3, 4, 5, 0, 1 })
            {
                var skill = player.Powers.SkillSlots[i];
                if (skill != null)
                {
                    index = skill.Key <= ActionKey.RightSkill ? (int)skill.Key + 4 : (int)skill.Key - 2;

                    var y = portraitRect.Y + currY - portraitRect.Width * 0.1f;

                    var rect = new RectangleF(currentX, y, size, size);

                    SkillPainter.Paint(skill, rect);

                    if (Hud.Window.CursorInsideRect(rect.X, rect.Y, rect.Width, rect.Height))
                    {
                        Hud.Render.SetHint(skill.RuneNameLocalized);
                    }
                }
                currentX += size;
            }

            index = 0;
            foreach (var skill in player.Powers.UsedPassives)
            {
                if (skill != null)
                {
                    var y = portraitRect.Y + currY + size + portraitRect.Width * 0.1f;

                    var rect = new RectangleF(passivesX, y, size, size);

                    var texture = Hud.Texture.GetTexture(skill.NormalIconTextureId);
                    texture.Draw(rect.X, rect.Y, rect.Width, rect.Height);

                    if (Hud.Window.CursorInsideRect(rect.X, rect.Y, rect.Width, rect.Height))
                    {
                        Hud.Render.SetHint(skill.NameLocalized);
                    }
                }
                passivesX += size * 1.666666f;
                index++;
            }
            currentX += gap;
        }
Esempio n. 4
0
        public void PaintTopInGame(ClipState clipState)
        {
            if (clipState != ClipState.BeforeClip || !ShowInTown && Hud.Game.Me.IsInTown || OnlyInGR && Hud.Game.SpecialArea != SpecialArea.GreaterRift)
            {
                return;
            }
            if (_size <= 0)
            {
                _size = HudWidth * SizeRatio;
            }

            var xPos = HudWidth * StartXPos;

            foreach (var player in Hud.Game.Players.OrderBy(p => p.HeroId))
            {
                if (player.IsMe && !ShowSelf || !player.IsMe && ShowOnlyMe)
                {
                    continue;
                }
                var found     = false;
                var firstIter = true;
                foreach (var i in _skillOrder)
                {
                    var skill = player.Powers.SkillSlots[i];
                    if (skill == null || !WatchedSnos.Contains(skill.SnoPower.Sno))
                    {
                        continue;
                    }
                    found = true;
                    if (firstIter)
                    {
                        var layout = ClassFont.GetTextLayout(player.BattleTagAbovePortrait + "\n(" + _classShorts[player.HeroClassDefinition.HeroClass] + ")");
                        ClassFont.DrawText(layout, xPos - (layout.Metrics.Width * 0.1f), HudHeight * StartYPos);
                        firstIter = false;
                    }

                    var rect = new RectangleF(xPos, HudHeight * (StartYPos + 0.03f), _size, _size);
                    SkillPainter.Paint(skill, rect);
                    xPos += _size * 1.1f;
                }
                if (found)
                {
                    xPos += _size * 1.1f;
                }
            }
        }
        public override void Load(IController hud)
        {
            base.Load(hud);

            if (Enabled)
            {
                Hud.GetPlugin <Turbo.Plugins.Default.OriginalHealthPotionSkillPlugin>().Enabled = false; // this file replaces it
            }

            IsOnFakeCooldown = false;

            Decorator = new SkillPainter(Hud, true)
            {
                TextureOpacity        = 0.0f,
                EnableSkillDpsBar     = false,
                EnableDetailedDpsHint = false,
            };
        }
Esempio n. 6
0
        public override void Load(IController hud)
        {
            ShowSelf   = true;
            ShowInTown = true;
            OnlyInGR   = false;
            ShowOnlyMe = false;
            base.Load(hud);
            SizeRatio = 0.02f;
            StartYPos = 0.002f;
            StartXPos = 0.555f;
            IconSize  = 0.05f;


            WatchedSnos = new List <uint>
            {
                //Add skills to the watch list below
                //--- Necromancer
                465350, //Simulacrum
                465839, //Land of the Dead

                //--- Barb
                79528, //Ignore Pain
                //79607, //Wrath of the Berserker
                //375483, //Warcry

                //--- Monk
                //317076, //Inner Sanctuary

                //--- Witch Doctor
                //106237, //Spirit Walk

                //--- Demon Hunter
                //365311, //Companion

                //--- Wizard
                //134872 //Archon - Needs testing, dont use for now
            };

            ClassFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, 255, 0, 0, 0, true);

            _classShorts = new Dictionary <HeroClass, string>
            {
                { HeroClass.Barbarian, "Barb" },
                { HeroClass.Monk, "Monk" },
                { HeroClass.Necromancer, "Necro" },
                { HeroClass.Wizard, "Wiz" },
                { HeroClass.WitchDoctor, "WD" },
                { HeroClass.Crusader, "Sader" },
                { HeroClass.DemonHunter, "DH" }
            };

            SkillPainter = new SkillPainter(Hud, true)
            {
                TextureOpacity        = 1.0f,
                EnableSkillDpsBar     = true,
                EnableDetailedDpsHint = true,
                CooldownFont          = Hud.Render.CreateFont("arial", 7, 255, 255, 255, 255, true, false, 255, 0, 0, 0, true),
                SkillDpsBackgroundBrushesByElementalType = new IBrush[]
                {
                    Hud.Render.CreateBrush(222, 255, 6, 0, 0),
                    Hud.Render.CreateBrush(222, 183, 57, 7, 0),
                    Hud.Render.CreateBrush(222, 0, 38, 119, 0),
                    Hud.Render.CreateBrush(222, 77, 102, 155, 0),
                    Hud.Render.CreateBrush(222, 50, 106, 21, 0),
                    Hud.Render.CreateBrush(222, 138, 0, 94, 0),
                    Hud.Render.CreateBrush(222, 190, 117, 0, 0),
                },
                SkillDpsFont = Hud.Render.CreateFont("tahoma", 7, 222, 255, 255, 255, false, false, 0, 0, 0, 0, false),
            };
        }
Esempio n. 7
0
        public override void Load(IController hud)
        {
            base.Load(hud);

            Show           = false;
            ToggleKeyEvent = Hud.Input.CreateKeyEvent(true, Key.F8, false, false, false);

            LegendaryGemItemIDs = new Dictionary <uint, uint>();

            SkillPainter = new SkillPainter(Hud, true)
            {
                TextureOpacity        = 1.0f,
                EnableSkillDpsBar     = true,
                EnableDetailedDpsHint = true,
                CooldownFont          = Hud.Render.CreateFont("arial", 8, 255, 255, 255, 255, true, false, 255, 0, 0, 0, true),
                SkillDpsBackgroundBrushesByElementalType = new IBrush[]
                {
                    Hud.Render.CreateBrush(222, 255, 6, 0, 0),
                    Hud.Render.CreateBrush(222, 183, 57, 7, 0),
                    Hud.Render.CreateBrush(222, 0, 38, 119, 0),
                    Hud.Render.CreateBrush(222, 77, 102, 155, 0),
                    Hud.Render.CreateBrush(222, 50, 106, 21, 0),
                    Hud.Render.CreateBrush(222, 138, 0, 94, 0),
                    Hud.Render.CreateBrush(222, 190, 117, 0, 0),
                },
                SkillDpsFont = Hud.Render.CreateFont("tahoma", 7, 222, 255, 255, 255, false, false, 0, 0, 0, 0, false),
            };
            SkillRatio = 0.025f;
            KanaiRatio = 0.025f;
            ItemRatio  = 0.025f;
            GemRatio   = 0.0166666666666667f;

            LabelDecorator = new TopLabelWithTitleDecorator(Hud)
            {
                BorderBrush     = Hud.Render.CreateBrush(255, 180, 147, 109, -1),
                BackgroundBrush = Hud.Render.CreateBrush(128, 0, 0, 0, 0),
                TextFont        = Hud.Render.CreateFont("tahoma", 6, 255, 255, 210, 150, false, false, false),
                TitleFont       = Hud.Render.CreateFont("tahoma", 6, 255, 180, 147, 109, false, false, false),
            };

            LegendaryGemItemIDs.Add(428348, 3249948847); //Stricken
            LegendaryGemItemIDs.Add(383014, 3248511367); //BotP
            LegendaryGemItemIDs.Add(403456, 3248547304); //BotT
            LegendaryGemItemIDs.Add(403470, 3249805099); //Hoarder
            LegendaryGemItemIDs.Add(428352, 3250847272); //Boyarskys
            LegendaryGemItemIDs.Add(403466, 3249661351); //Enforcer
            LegendaryGemItemIDs.Add(428029, 3249876973); //Esoteric
            LegendaryGemItemIDs.Add(403459, 3248583241); //Ease
            LegendaryGemItemIDs.Add(403461, 3248655115); //Toxin
            LegendaryGemItemIDs.Add(403464, 3248762926); //Gogok
            LegendaryGemItemIDs.Add(428354, 3250883209); //Iceblink
            LegendaryGemItemIDs.Add(403465, 3248798863); //Invigoration
            LegendaryGemItemIDs.Add(403463, 3248726989); //Mirinae
            LegendaryGemItemIDs.Add(428031, 3249912910); //Gizzard
            LegendaryGemItemIDs.Add(403467, 3249697288); //Moratorium
            LegendaryGemItemIDs.Add(428350, 3249984784); //Mutilation
            LegendaryGemItemIDs.Add(403462, 3248691052); //PE
            LegendaryGemItemIDs.Add(454736, 3250919146); //Soul Shard
            LegendaryGemItemIDs.Add(403469, 3249769162); //Simplicitys
            LegendaryGemItemIDs.Add(403471, 3249841036); //Taeguk
            LegendaryGemItemIDs.Add(403460, 3248619178); //WoL
            LegendaryGemItemIDs.Add(403468, 3249733225); //Zeis

            XOffset  = 0.14f;
            YOffset  = 0.012f;
            GapRatio = 0.012f;

            DrawGems             = true;
            DrawKanai            = true;
            DrawSkills           = true;
            DrawLegendaryItems   = true;
            DrawMetaInformations = true;

            ElementOrder = new List <int>(new int[] { 0, 1, 2, 4, 3 });

            UpperMeta.Add(new MetaElement(((p) => p.Offense.AttackSpeed.ToString("0.000")), "AS", "Attack Speed"));
            UpperMeta.Add(new MetaElement(((p) => p.Offense.AreaDamageBonus.ToString("F0", CultureInfo.InvariantCulture) + "%"), "AD", "Area Damage"));
            UpperMeta.Add(new MetaElement(((p) => (p.Stats.CooldownReduction * 100).ToString("F2", CultureInfo.InvariantCulture) + "%"), "CDR", "Cooldown reduction"));
            UpperMeta.Add(new MetaElement(((p) => (p.Stats.ResourceCostReduction * 100).ToString("F2", CultureInfo.InvariantCulture) + "%"), "RCR", "Resource cost reduction"));

            LowerMeta.Add(new MetaElement(((p) => ValueToString(p.Defense.EhpMax, ValueFormat.ShortNumber)), "EHP", "Effective health pool"));
            LowerMeta.Add(new MetaElement(((p) => ValueToString(p.Defense.LifeRegen, ValueFormat.ShortNumber)), "LPS", "Life per second"));
            LowerMeta.Add(new MetaElement(((p) => ValueToString(p.Stats.PickupRange, ValueFormat.ShortNumber)), "PR", "Pickup range"));
        }
Esempio n. 8
0
        public override void Load(IController hud)
        {
            ShowSelf   = true;
            ShowInTown = false;
            OnlyInGR   = false;
            base.Load(hud);
            SizeRatio = 0.02f;
            StartYPos = 0.002f;
            StartXPos = 0.555f;
            IconSize  = 0.05f;


            WatchedSnos = new List <uint>();
            //Add skills to the watch list below
            //Necromancer
            WatchedSnos.Add(465350); //Simulacrum
            WatchedSnos.Add(465839); //Land of the Dead

            //Barb
            WatchedSnos.Add(79528); //Ignore Pain
            //WatchedSnos.Add(79607); //Wrath of the Berserker
            //WatchedSnos.Add(375483); //Warcry

            //Monk
            //WatchedSnos.Add(317076); //Inner Sanctuary

            //Witch Doctor
            //WatchedSnos.Add(106237); //Spirit Walk

            //Demon Hunter
            //WatchedSnos.Add(365311); //Companion

            //Wizard
            //WatchedSnos.Add(134872); //Archon - PROBABLY BUGGING IN GREATER RIFT GROUPS (looking in to it)
            //----------------------

            ClassFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, 255, 0, 0, 0, true);

            classShorts = new Dictionary <HeroClass, string>();
            classShorts.Add(HeroClass.Barbarian, "Barb");
            classShorts.Add(HeroClass.Monk, "Monk");
            classShorts.Add(HeroClass.Necromancer, "Necro");
            classShorts.Add(HeroClass.Wizard, "Wiz");
            classShorts.Add(HeroClass.WitchDoctor, "WD");
            classShorts.Add(HeroClass.Crusader, "Sader");
            classShorts.Add(HeroClass.DemonHunter, "DH");

            SkillPainter = new SkillPainter(Hud, true)
            {
                TextureOpacity        = 1.0f,
                EnableSkillDpsBar     = true,
                EnableDetailedDpsHint = true,
                CooldownFont          = Hud.Render.CreateFont("arial", 7, 255, 255, 255, 255, true, false, 255, 0, 0, 0, true),
                SkillDpsBackgroundBrushesByElementalType = new IBrush[]
                {
                    Hud.Render.CreateBrush(222, 255, 6, 0, 0),
                    Hud.Render.CreateBrush(222, 183, 57, 7, 0),
                    Hud.Render.CreateBrush(222, 0, 38, 119, 0),
                    Hud.Render.CreateBrush(222, 77, 102, 155, 0),
                    Hud.Render.CreateBrush(222, 50, 106, 21, 0),
                    Hud.Render.CreateBrush(222, 138, 0, 94, 0),
                    Hud.Render.CreateBrush(222, 190, 117, 0, 0),
                },
                SkillDpsFont = Hud.Render.CreateFont("tahoma", 7, 222, 255, 255, 255, false, false, 0, 0, 0, 0, false),
            };
        }
Esempio n. 9
0
        public void PaintTopInGame(ClipState clipState)
        {
            if (clipState != ClipState.BeforeClip)
            {
                return;
            }

            var xPos  = HudWidth * StartXPos;
            var index = 0;

            foreach (var player in Hud.Game.Players.OrderBy(p => p.HeroClassDefinition.HeroClass))
            {
                var foundCarrySkill     = false;
                var flagIsFirstIterator = true;
                var yPos = HudHeight * StartYPos;

                foreach (var skill in player.Powers.UsedSkills.OrderBy(p => p.SnoPower.Sno))
                {
                    if (skill == null || !WatchedSnos.Contains(skill.SnoPower.Sno))
                    {
                        continue;
                    }

                    foundCarrySkill = true;
                    if (flagIsFirstIterator)
                    {
                        var layout = ClassFont.GetTextLayout(player.BattleTagAbovePortrait + _classShortName[player.HeroClassDefinition.HeroClass]);
                        ClassFont.DrawText(layout, xPos, yPos);
                        flagIsFirstIterator = false;
                        yPos += 0.035f * HudHeight;
                    }

                    var rect = new SharpDX.RectangleF(xPos, yPos, _size, _size);
                    SkillPainter.Paint(skill, rect);
                    yPos += _size * 1.1f;
                }

                var CheatDeathBuff = player.Powers.GetBuff(Hud.Sno.SnoPowers.WitchDoctor_Passive_SpiritVessel.Sno);
                switch (player.HeroClassDefinition.HeroClass)
                {
                case HeroClass.Necromancer: CheatDeathBuff = player.Powers.GetBuff(Hud.Sno.SnoPowers.Necromancer_Passive_FinalService.Sno); break;

                case HeroClass.Wizard: CheatDeathBuff = player.Powers.GetBuff(Hud.Sno.SnoPowers.Wizard_Passive_UnstableAnomaly.Sno); break;
                }

                if (CheatDeathBuff != null && CheatDeathBuff.TimeLeftSeconds[1] > 0.0)
                {
                    if (flagIsFirstIterator)
                    {
                        var layout = ClassFont.GetTextLayout(player.BattleTagAbovePortrait + _classShortName[player.HeroClassDefinition.HeroClass]);
                        ClassFont.DrawText(layout, xPos, yPos);
                        foundCarrySkill = true;
                        yPos           += 0.03f * HudHeight;
                    }
                    var Texture = Hud.Texture.GetTexture(Hud.Sno.SnoPowers.WitchDoctor_Passive_SpiritVessel.Icons[1].TextureId);
                    switch (player.HeroClassDefinition.HeroClass)
                    {
                    case HeroClass.Necromancer: Texture = Hud.Texture.GetTexture(Hud.Sno.SnoPowers.Necromancer_Passive_FinalService.Icons[1].TextureId); break;

                    case HeroClass.Wizard: Texture = Hud.Texture.GetTexture(Hud.Sno.SnoPowers.Wizard_Passive_UnstableAnomaly.Icons[1].TextureId); break;
                    }
                    if (Texture != null)
                    {
                        Texture.Draw(xPos, yPos, _size, _size);
                    }
                    var layout2 = ClassFont.GetTextLayout(CheatDeathBuff.TimeLeftSeconds[1].ToString("0"));
                    ClassFont.DrawText(layout2, xPos + (_size - (float)Math.Ceiling(layout2.Metrics.Width)) / 2, yPos + (_size - layout2.Metrics.Height) / 2);
                }

                if (foundCarrySkill)
                {
                    xPos += _size * 2.5f;
                }
                index++;
            }
        }