forked from LeagueSharp/LeagueSharp.Common
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAlerter.cs
131 lines (109 loc) · 3 KB
/
Alerter.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
namespace LeagueSharp.Common
{
using System;
using SharpDX;
/// <summary>
/// Shows text for an amount of time.
/// </summary>
public class Alerter : Render.Text
{
#region Fields
private readonly float _duration;
private readonly float _endTime;
private readonly float _startTime;
#endregion
#region Constructors and Destructors
/// <summary>
/// Initializes a new instance of the <see cref="Alerter" /> class.
/// </summary>
/// <param name="x">The x.</param>
/// <param name="y">The y.</param>
/// <param name="text">The text.</param>
/// <param name="size">The size.</param>
/// <param name="color">The color.</param>
/// <param name="faceName">Name of the face.</param>
/// <param name="duration">The duration.</param>
public Alerter(
int x,
int y,
string text,
int size,
ColorBGRA color,
string faceName = "Calibri",
float duration = 1f)
: base(x, y, text, size, color, faceName)
{
this._duration = duration;
this._startTime = Utils.TickCount;
this._endTime = this._startTime + this._duration;
Game.OnUpdate += this.Game_OnGameUpdate;
}
#endregion
#region Public Properties
/// <summary>
/// Gets the duration.
/// </summary>
/// <value>
/// The duration.
/// </value>
public float Duration
{
get
{
return this._duration;
}
}
/// <summary>
/// Gets the end time.
/// </summary>
/// <value>
/// The end time.
/// </value>
public float EndTime
{
get
{
return this._endTime;
}
}
/// <summary>
/// Gets the start time.
/// </summary>
/// <value>
/// The start time.
/// </value>
public float StartTime
{
get
{
return this._startTime;
}
}
#endregion
#region Public Methods and Operators
/// <summary>
/// Removes this instance.
/// </summary>
public void Remove()
{
this.Visible = false;
this.Dispose();
}
#endregion
#region Methods
/// <summary>
/// Fired when the game updates.
/// </summary>
/// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
private void Game_OnGameUpdate(EventArgs args)
{
if (!(Utils.TickCount > this.EndTime))
{
return;
}
this.Visible = false;
this.Dispose();
}
#endregion
}
}