Advertisement
Guest User

ShardsOnKadala

a guest
Feb 21st, 2019
720
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.70 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Turbo.Plugins.Default;
  5.  
  6. namespace Turbo.Plugins.One
  7. {
  8.     public class ShardsOnKadala : BasePlugin, IInGameWorldPainter
  9.     {
  10.         public TopLabelDecorator KadalaDecorator { get; set; }
  11.         private bool showOk { get; set; }
  12.         private bool showWarning { get; set; }
  13.         private bool usePercent { get; set; }
  14.         private int limitBad { get; set; }
  15.         private int limitWarning { get; set; }
  16.         private int limitBadPercent { get; set; }
  17.         private int limitWarningPercent { get; set; }
  18.         private string kadalaText { get; set; }
  19.        
  20.         public ShardsOnKadala()
  21.         {
  22.             Enabled = true;
  23.         }
  24.              
  25.         public override void Load(IController hud)
  26.         {
  27.             base.Load(hud);
  28.  
  29.             showOk = true;
  30.             showWarning = true;
  31.             usePercent = false;
  32.             limitBad = 300; // last {value limitBad} space shards show as Bad
  33.             limitWarning = 500; // show Warning between last {value limitWarning} and {value limitBad} space shards
  34.             limitBadPercent = 20; // last {value limitBadPercent} percent space shards show as Bad
  35.             limitWarningPercent = 40; // show Warning between last {value limitWarningPercent} percent and {value limitBadPercent} percent space shards
  36.  
  37.             KadalaDecorator = new TopLabelDecorator(Hud)
  38.             {
  39.                 TextFont = Hud.Render.CreateFont("tahoma", 8, 200, 255, 255, 255, true, false, false),
  40.                 TextFunc = () => kadalaText,
  41.             };
  42.         }
  43.        
  44.         public void PaintWorld(WorldLayer layer)
  45.         {
  46.             if (!Hud.Game.IsInTown) return;
  47.             var kadalaPos = Hud.Game.Actors.Where(x => x.SnoActor.Sno == ActorSnoEnum._x1_randomitemnpc && x.IsOnScreen);
  48.             var maxShards = 500 + (Hud.Game.Me.HighestSoloRiftLevel * 10);
  49.             var actualShards = Hud.Game.Me.Materials.BloodShard;
  50.             var actualPercent = 100 - (((double)actualShards / maxShards) * 100);
  51.             kadalaText = "" + actualShards + "/" + maxShards;
  52.             var KadalaTextureBad = Hud.Texture.GetTexture("Tooltip_Equipped_Frame_Title_Primal");
  53.             var KadalaTextureWarning = Hud.Texture.GetTexture("Tooltip_Equipped_Frame_Title_Ancient");
  54.             var KadalaTextureOk = Hud.Texture.GetTexture("Tooltip_Equipped_Frame_Title");
  55.             var Warning = Hud.Texture.GetTexture("MarkerExclamation");
  56.             var ScreenWidth = Hud.Window.Size.Width;
  57.             var ScreenHeight = Hud.Window.Size.Height;
  58.             foreach (var actor in kadalaPos)
  59.             {
  60.                 if (((maxShards - actualShards <= limitBad) && !usePercent) || (actualPercent <= limitBadPercent && usePercent))
  61.                 {
  62.                     Warning.Draw(actor.ScreenCoordinate.X - (ScreenWidth / 75), actor.ScreenCoordinate.Y - (ScreenWidth / 15), (float)(ScreenWidth / 30), (float)(ScreenWidth / 30), 1f);
  63.                     KadalaTextureBad.Draw(actor.ScreenCoordinate.X - (ScreenWidth / 25), actor.ScreenCoordinate.Y + (ScreenWidth / 45), (float)(ScreenWidth / 12), (float)(ScreenHeight / 28), 1f);
  64.                     KadalaDecorator.Paint(actor.ScreenCoordinate.X - (ScreenWidth / 25), actor.ScreenCoordinate.Y + (ScreenWidth / 41), (float)(ScreenWidth / 12), (float)(ScreenHeight / 28), HorizontalAlign.Center);
  65.                 }
  66.                 else if (((maxShards - actualShards > limitBad && maxShards - actualShards <= limitWarning) && !usePercent) || (actualPercent > limitBadPercent && actualPercent <= limitWarningPercent && usePercent))
  67.                 {
  68.                     KadalaTextureWarning.Draw(actor.ScreenCoordinate.X - (ScreenWidth / 25), actor.ScreenCoordinate.Y + (ScreenWidth / 45), (float)(ScreenWidth / 12), (float)(ScreenHeight / 28), 1f);
  69.                     KadalaDecorator.Paint(actor.ScreenCoordinate.X - (ScreenWidth / 25), actor.ScreenCoordinate.Y + (ScreenWidth / 41), (float)(ScreenWidth / 12), (float)(ScreenHeight / 28), HorizontalAlign.Center);
  70.                 }
  71.                 else if (((maxShards - actualShards > limitWarning) && !usePercent) || (actualPercent > limitWarningPercent && usePercent))
  72.                 {
  73.                     KadalaTextureOk.Draw(actor.ScreenCoordinate.X - (ScreenWidth / 25), actor.ScreenCoordinate.Y + (ScreenWidth / 45), (float)(ScreenWidth / 12), (float)(ScreenHeight / 28), 1f);
  74.                     KadalaDecorator.Paint(actor.ScreenCoordinate.X - (ScreenWidth / 25), actor.ScreenCoordinate.Y + (ScreenWidth / 46), (float)(ScreenWidth / 12), (float)(ScreenHeight / 28), HorizontalAlign.Center);
  75.                 }
  76.                 else return;
  77.             }
  78.         }
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement