Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using Turbo.Plugins.Default;
- namespace Turbo.Plugins.Discordian
- {
- public class RiftTimer : BasePlugin, IInGameTopPainter, IMonsterKilledHandler
- {
- public bool NephalemRiftTimerEnabled { get; set; }
- public IFont NephalemRiftTimerFont { get; set; }
- private double NephalemRiftStartTime;
- private double NephalemRiftTotalTime;
- public RiftTimer()
- {
- Enabled = true;
- Order = 30000;
- }
- public override void Load(IController hud)
- {
- base.Load(hud);
- NephalemRiftTimerEnabled = true;
- NephalemRiftTimerFont = Hud.Render.CreateFont("tahoma", 7, 255, 180, 147, 109, true, false, 160, 0, 0, 0, true);
- }
- public void OnMonsterKilled(IMonster monster)
- {
- if (NephalemRiftStartTime > 0 && Hud.Game.RiftPercentage >= 100 && monster.SnoMonster.Priority == MonsterPriority.boss)
- {
- NephalemRiftTotalTime = Hud.Game.CurrentGameTick - NephalemRiftStartTime;
- NephalemRiftStartTime = 0;
- }
- }
- public void PaintTopInGame(ClipState clipState)
- {
- if (clipState != ClipState.BeforeClip) return;
- if ((Hud.Game.MapMode == MapMode.WaypointMap) || (Hud.Game.MapMode == MapMode.ActMap) || (Hud.Game.MapMode == MapMode.Map)) return;
- if (Hud.Game.SpecialArea == SpecialArea.Rift || NephalemRiftStartTime > 0 || NephalemRiftTotalTime > 0)
- {
- var ui = Hud.Render.NephalemRiftBarUiElement;
- if (NephalemRiftTimerEnabled)
- {
- var percent = Hud.Game.RiftPercentage;
- if (Hud.Game.SpecialArea != SpecialArea.Rift && percent < 1) {
- NephalemRiftTotalTime = 0;
- NephalemRiftStartTime = 0;
- }
- if (Hud.Game.SpecialArea == SpecialArea.Rift || NephalemRiftStartTime > 0 || NephalemRiftTotalTime > 0) {
- string text;
- if (ui.Visible && percent < 1 && NephalemRiftStartTime == 0) {
- NephalemRiftStartTime = Hud.Game.CurrentGameTick;
- NephalemRiftTotalTime = 0;
- }
- if (NephalemRiftStartTime > 0)
- {
- text = "Rift Time: " + ValueToString(((long)(Hud.Game.CurrentGameTick - NephalemRiftStartTime) * 1000 * TimeSpan.TicksPerMillisecond / 60), ValueFormat.LongTime);
- } else {
- text = "Rift Complete: " + ValueToString(((long)(NephalemRiftTotalTime) * 1000 * TimeSpan.TicksPerMillisecond / 60), ValueFormat.LongTime);
- }
- var textLayout = NephalemRiftTimerFont.GetTextLayout(text);
- NephalemRiftTimerFont.DrawText(textLayout, ui.Rectangle.Right - (float)(ui.Rectangle.Width / 900.0f) - textLayout.Metrics.Width, ui.Rectangle.Bottom + ui.Rectangle.Height * 0.7f);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement