Advertisement
Guest User

RiftTimer.cs

a guest
Feb 7th, 2019
950
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.71 KB | None | 0 0
  1. using System;
  2. using Turbo.Plugins.Default;
  3.  
  4. namespace Turbo.Plugins.Discordian
  5. {
  6.     public class RiftTimer : BasePlugin, IInGameTopPainter, IMonsterKilledHandler
  7.     {
  8.         public bool NephalemRiftTimerEnabled { get; set; }
  9.         public IFont NephalemRiftTimerFont { get; set; }
  10.        
  11.         private double NephalemRiftStartTime;
  12.         private double NephalemRiftTotalTime;
  13.  
  14.         public RiftTimer()
  15.         {
  16.             Enabled = true;
  17.             Order = 30000;
  18.         }
  19.  
  20.         public override void Load(IController hud)
  21.         {
  22.             base.Load(hud);
  23.  
  24.             NephalemRiftTimerEnabled = true;
  25.             NephalemRiftTimerFont = Hud.Render.CreateFont("tahoma", 7, 255, 180, 147, 109, true, false, 160, 0, 0, 0, true);
  26.         }
  27.  
  28.         public void OnMonsterKilled(IMonster monster)
  29.         {
  30.             if (NephalemRiftStartTime > 0 && Hud.Game.RiftPercentage >= 100 && monster.SnoMonster.Priority == MonsterPriority.boss)
  31.             {
  32.                 NephalemRiftTotalTime = Hud.Game.CurrentGameTick - NephalemRiftStartTime;
  33.                 NephalemRiftStartTime = 0;
  34.             }
  35.         }
  36.        
  37.         public void PaintTopInGame(ClipState clipState)
  38.         {
  39.             if (clipState != ClipState.BeforeClip) return;
  40.             if ((Hud.Game.MapMode == MapMode.WaypointMap) || (Hud.Game.MapMode == MapMode.ActMap) || (Hud.Game.MapMode == MapMode.Map)) return;
  41.            
  42.             if (Hud.Game.SpecialArea == SpecialArea.Rift || NephalemRiftStartTime > 0 || NephalemRiftTotalTime > 0)
  43.             {
  44.                 var ui = Hud.Render.NephalemRiftBarUiElement;
  45.                 if (NephalemRiftTimerEnabled)
  46.                 {
  47.                     var percent = Hud.Game.RiftPercentage;
  48.                     if (Hud.Game.SpecialArea != SpecialArea.Rift && percent < 1) {
  49.                         NephalemRiftTotalTime = 0;
  50.                         NephalemRiftStartTime = 0;
  51.                     }
  52.                     if (Hud.Game.SpecialArea == SpecialArea.Rift || NephalemRiftStartTime > 0 || NephalemRiftTotalTime > 0) {
  53.                         string text;
  54.                         if (ui.Visible && percent < 1 && NephalemRiftStartTime == 0) {
  55.                             NephalemRiftStartTime = Hud.Game.CurrentGameTick;
  56.                             NephalemRiftTotalTime = 0;
  57.                         }
  58.                         if (NephalemRiftStartTime > 0)
  59.                         {
  60.                             text = "Rift Time: " + ValueToString(((long)(Hud.Game.CurrentGameTick - NephalemRiftStartTime) * 1000 * TimeSpan.TicksPerMillisecond / 60), ValueFormat.LongTime);
  61.                         } else {
  62.                             text = "Rift Complete: " + ValueToString(((long)(NephalemRiftTotalTime) * 1000 * TimeSpan.TicksPerMillisecond / 60), ValueFormat.LongTime);
  63.                         }
  64.                         var textLayout = NephalemRiftTimerFont.GetTextLayout(text);
  65.                         NephalemRiftTimerFont.DrawText(textLayout, ui.Rectangle.Right - (float)(ui.Rectangle.Width / 900.0f) - textLayout.Metrics.Width, ui.Rectangle.Bottom + ui.Rectangle.Height * 0.7f);
  66.                     }
  67.                 }
  68.             }
  69.         }
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement