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; } } }
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; }
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; }
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, }; }
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), }; }
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")); }
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), }; }
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++; } }