Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using Turbo.Plugins.Default;
- namespace Turbo.Plugins.DAV
- {
- public class DAV_MainStatPlugin : BasePlugin, IInGameTopPainter {
- public bool showPotion { get; set; } = false;
- public IFont PotionFont { get; set; }
- public string perfectMsg { get; set; }
- public bool showElementalType { get; set; } = true;
- public float sizeDivider_Elelment { get; set; }
- public float sizeDivider_MainStat { get; set; }
- public IBrush Brush_Ele { get; set; }
- private int stashTabAbs { get; set; }
- private ITexture Icon_Str { get; set; }
- private ITexture Icon_Dex { get; set; }
- private ITexture Icon_Int { get; set; }
- private ITexture Icon_Vit { get; set; }
- private ITexture Icon_Oth { get; set; }
- public DAV_MainStatPlugin() {
- Enabled = true;
- Order = 5000;
- }
- public override void Load(IController hud) {
- base.Load(hud);
- perfectMsg = "Max";
- PotionFont = Hud.Render.CreateFont("Arial", 7, 255, 255, 255, 255, true, false, true);
- sizeDivider_Elelment = 2;
- sizeDivider_MainStat = 2.5f;
- Brush_Ele = Hud.Render.CreateBrush(204, 255, 255, 255, 1f);
- Icon_Str = Hud.Texture.GetTexture(1489414124);
- Icon_Dex = Hud.Texture.GetTexture(1889981188);
- Icon_Int = Hud.Texture.GetTexture(633576440);
- Icon_Vit = Hud.Texture.GetTexture(1021260537);
- Icon_Oth = Hud.Texture.GetTexture(1797554470);
- }
- public void PaintTopInGame(ClipState clipState) {
- if (clipState != ClipState.Inventory) return;
- if (showPotion) {
- var EquippedPotion = Hud.Game.Items.FirstOrDefault(x => x.Location == ItemLocation.MerchantAvaibleItemsForPurchase);
- if (EquippedPotion != null)
- DrawPotionPerfection(EquippedPotion, Hud.Render.GetPlayerSkillUiElement(ActionKey.Heal).Rectangle);
- }
- stashTabAbs = Hud.Inventory.SelectedStashTabIndex + Hud.Inventory.SelectedStashPageIndex * Hud.Inventory.MaxStashTabCountPerPage;
- var items = Hud.Game.Items.Where(x => x.Location != ItemLocation.Merchant && x.Location != ItemLocation.Floor);
- foreach (var item in items) {
- if (item.Location == ItemLocation.Stash && item.InventoryY / 10 != stashTabAbs) continue;
- if (item.InventoryX < 0 || item.InventoryY < 0) continue;
- if (item.Unidentified || !item.IsLegendary) continue;
- if (item.SnoItem.HasGroupCode("gems")) continue;
- var rect = Hud.Inventory.GetItemRect(item);
- if (rect == System.Drawing.RectangleF.Empty) continue;
- if (item.SnoItem.Kind == ItemKind.potion || item.SnoItem.MainGroupCode == "healthpotions") {
- if (showPotion)
- DrawPotionPerfection(item, rect);
- continue;
- }
- DrawItemMainStat(item, rect);
- }
- }
- private void DrawItemMainStat(IItem item, System.Drawing.RectangleF rect) {
- if (item == null || item.Perfections == null || rect == null) return;
- if (item.AncientRank < 0) return;
- var allClass = true;
- var iconSize = Math.Min(rect.Width / sizeDivider_MainStat, rect.Height / 2f);
- foreach (var perfection in item.Perfections) {
- if (perfection.Attribute == Hud.Sno.Attributes.Strength_Item) {
- Icon_Str.Draw(rect.X, rect.Bottom - iconSize, iconSize, iconSize);
- allClass = false;
- }
- else if (perfection.Attribute == Hud.Sno.Attributes.Dexterity_Item) {
- Icon_Dex.Draw(rect.X, rect.Bottom - iconSize, iconSize, iconSize);
- allClass = false;
- }
- else if (perfection.Attribute == Hud.Sno.Attributes.Intelligence_Item) {
- Icon_Int.Draw(rect.X, rect.Bottom - iconSize, iconSize, iconSize);
- allClass = false;
- }
- if (showElementalType && perfection.Attribute == Hud.Sno.Attributes.Damage_Dealt_Percent_Bonus) {
- var iconSize2 = Math.Min(rect.Width / sizeDivider_Elelment, rect.Height / 2f);
- var index = (int) perfection.Modifier;
- if (index >= 0 && index < 7) {
- Hud.Texture.DrawElement(rect.Right - iconSize2, rect.Top, iconSize2, iconSize2, index);
- Brush_Ele?.DrawRectangle(rect.Right - iconSize2, rect.Top, iconSize2, iconSize2);
- }
- }
- }
- if (allClass)
- Icon_Oth.Draw(rect.X, rect.Bottom - iconSize, iconSize, iconSize);
- if (item.CaldesannRank == 0) return;
- foreach (var perfection in item.StatList) {
- if (perfection.Attribute == Hud.Sno.Attributes.Cube_Enchanted_Strength_Item) {
- Icon_Str.Draw(rect.X, rect.Bottom - 2 * iconSize, iconSize, iconSize);
- return;
- }
- else if (perfection.Attribute == Hud.Sno.Attributes.Cube_Enchanted_Dexterity_Item) {
- Icon_Dex.Draw(rect.X, rect.Bottom - 2 * iconSize, iconSize, iconSize);
- return;
- }
- else if (perfection.Attribute == Hud.Sno.Attributes.Cube_Enchanted_Intelligence_Item) {
- Icon_Int.Draw(rect.X, rect.Bottom - 2 * iconSize, iconSize, iconSize);
- return;
- }
- else if (perfection.Attribute == Hud.Sno.Attributes.Cube_Enchanted_Vitality_Item) {
- Icon_Vit.Draw(rect.X, rect.Bottom - 2 * iconSize, iconSize, iconSize);
- return;
- }
- }
- }
- private void DrawPotionPerfection(IItem item, System.Drawing.RectangleF rect) {
- if (rect == null) return;
- foreach (var perfection in item.Perfections) {
- if (perfection.Max == perfection.Min) continue;
- var Percentage = (perfection.Cur - perfection.Min) / (perfection.Max - perfection.Min);
- var layout = PotionFont.GetTextLayout(Percentage >= 1d ? perfectMsg : Percentage.ToString("0.#%"));
- PotionFont.DrawText(layout, rect.X, rect.Bottom - layout.Metrics.Height);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement