|
Tercio@0
|
1 local floor = floor
|
|
Tercio@0
|
2 local min = min
|
|
Tercio@0
|
3 local UnitExists = UnitExists
|
|
Tercio@0
|
4 local GetPlayerMapPosition = GetPlayerMapPosition
|
|
Tercio@0
|
5 local UnitHealth = UnitHealth
|
|
Tercio@0
|
6
|
|
Tercio@0
|
7 local f = CreateFrame ("frame", "Hansgar_And_Franzok_Assist", UIParent)
|
|
Tercio@0
|
8 f:SetFrameStrata ("DIALOG")
|
|
Tercio@0
|
9
|
|
Tercio@0
|
10 f:SetSize (155, 156)
|
|
Tercio@0
|
11 f:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, insets = {left = -1, right = -1, top = -1, bottom = -1},
|
|
Tercio@0
|
12 edgeFile = "Interface\\AddOns\\Hansgar_And_Franzok_Assist\\border_2", edgeSize = 8})
|
|
Tercio@0
|
13 f:SetPoint ("center", UIParent, "center")
|
|
Tercio@0
|
14 f:SetBackdropColor (0, 0, 0, 0)
|
|
Tercio@0
|
15 f:SetBackdropBorderColor (0, 0, 0, 1)
|
|
Tercio@0
|
16 f:SetMovable (true)
|
|
Tercio@0
|
17 f:EnableMouse (true)
|
|
Tercio@0
|
18 f:Hide()
|
|
Tercio@0
|
19
|
|
Tercio@0
|
20 local title = f:CreateFontString (nil, "overlay", "GameFontNormal")
|
|
Tercio@0
|
21 title:SetText ("Hansgar & Franzok Assist")
|
|
Tercio@0
|
22 title:SetPoint ("center", f, "center")
|
|
Tercio@0
|
23 title:SetPoint ("bottom", f, "top", 0, 2)
|
|
Tercio@0
|
24
|
|
Tercio@0
|
25 --
|
|
Tercio@0
|
26 local frame_event = CreateFrame ("frame", "Hansgar_And_Franzok_AssistEvents", f)
|
|
Tercio@0
|
27 frame_event:RegisterEvent ("ENCOUNTER_START")
|
|
Tercio@0
|
28 frame_event:RegisterEvent ("ENCOUNTER_END")
|
|
Tercio@0
|
29 frame_event:RegisterEvent ("ADDON_LOADED")
|
|
Tercio@0
|
30
|
|
Tercio@0
|
31 --
|
|
Tercio@0
|
32 local player_bar = CreateFrame ("statusbar", "Hansgar_And_Franzok_AssistPlayerBar", f)
|
|
Tercio@0
|
33 player_bar:SetPoint ("topleft", f, "bottomleft", 0, -3)
|
|
Tercio@0
|
34 player_bar:SetPoint ("topright", f, "bottomright", 0, -3)
|
|
Tercio@0
|
35 player_bar:SetHeight (14)
|
|
Tercio@0
|
36 player_bar:SetStatusBarColor (0, 0, 0, 0)
|
|
Tercio@0
|
37 player_bar:SetMinMaxValues (0, 100)
|
|
Tercio@0
|
38 player_bar:SetValue (0)
|
|
Tercio@0
|
39 f.player_bar = player_bar
|
|
Tercio@0
|
40
|
|
Tercio@0
|
41 player_bar.texture = player_bar:CreateTexture (nil, "overlay")
|
|
Tercio@0
|
42 player_bar.texture:SetTexture ("Interface\\AddOns\\Hansgar_And_Franzok_Assist\\bar_skyline")
|
|
Tercio@0
|
43 player_bar:SetStatusBarTexture (player_bar.texture)
|
|
Tercio@0
|
44
|
|
Tercio@0
|
45 --
|
|
Tercio@0
|
46
|
|
Tercio@0
|
47 local db
|
|
Tercio@0
|
48
|
|
Tercio@0
|
49 frame_event:SetFrameStrata ("FULLSCREEN")
|
|
Tercio@0
|
50
|
|
Tercio@0
|
51 frame_event:SetScript ("OnEvent", function (self, event, ...)
|
|
Tercio@0
|
52
|
|
Tercio@0
|
53 if (event == "ADDON_LOADED" and select (1, ...) == "Hansgar_And_Franzok_Assist") then
|
|
Tercio@0
|
54
|
|
Tercio@0
|
55 db = Hansgar_And_Franzok_DB
|
|
Tercio@0
|
56 if (not db) then
|
|
Tercio@0
|
57 db = {}
|
|
Tercio@0
|
58 Hansgar_And_Franzok_DB = db
|
|
Tercio@0
|
59 end
|
|
Tercio@0
|
60 db.STAMPERS_DELAY = db.STAMPERS_DELAY or 5
|
|
Tercio@0
|
61
|
|
Tercio@0
|
62 SLASH_Hansgar_And_Franzok_Assist1, SLASH_Hansgar_And_Franzok_Assist2 = "/hansgar", "/franzok"
|
|
Tercio@0
|
63 function SlashCmdList.Hansgar_And_Franzok_Assist (msg, editbox)
|
|
Tercio@0
|
64
|
|
Tercio@0
|
65 local command, rest = msg:match ("^(%S*)%s*(.-)$")
|
|
Tercio@0
|
66
|
|
Tercio@0
|
67 if (command == "delay") then
|
|
Tercio@0
|
68 local t = tonumber (rest)
|
|
Tercio@0
|
69 if (t) then
|
|
Tercio@0
|
70 db.STAMPERS_DELAY = t
|
|
Tercio@0
|
71 print ("|cFFFFAA00Hansgar and Franzok Assist|r delay set to: ", t)
|
|
Tercio@0
|
72 else
|
|
Tercio@0
|
73 print ("|cFFFFAA00Hansgar and Franzok Assist|r invalid time.", t)
|
|
Tercio@0
|
74 end
|
|
Tercio@0
|
75
|
|
Tercio@0
|
76 elseif (command == "test" or command == "show") then
|
|
Tercio@0
|
77 if (f.StampersPhase) then
|
|
Tercio@0
|
78 return f:StopTracking()
|
|
Tercio@0
|
79 end
|
|
Tercio@0
|
80 f:StartTracking()
|
|
Tercio@0
|
81
|
|
Tercio@0
|
82 elseif (command == "hide") then
|
|
Tercio@0
|
83 if (f.StampersPhase) then
|
|
Tercio@0
|
84 return f:StopTracking()
|
|
Tercio@0
|
85 end
|
|
Tercio@0
|
86
|
|
Tercio@0
|
87 else
|
|
Tercio@2
|
88 print ("|cFFFFAA00Hansgar and Franzok Assist|r |cFF00FF00v0.4|r Commands:")
|
|
Tercio@0
|
89 print ("|cFFFFFF00/hansgar delay <time>|r: time in seconds until the percentage goes from 0 to 100.")
|
|
Tercio@0
|
90 print ("|cFFFFFF00/hansgar test|r: active the addon on test mode.")
|
|
Tercio@0
|
91 print ("|cFFFFFF00/hansgar show|r: show the window and start test mode.")
|
|
Tercio@0
|
92 print ("|cFFFFFF00/hansgar hide|r: hide the window.")
|
|
Tercio@0
|
93 end
|
|
Tercio@0
|
94 end
|
|
Tercio@0
|
95
|
|
Tercio@0
|
96 elseif (event == "ENCOUNTER_START" or event == "ENCOUNTER_END") then
|
|
Tercio@0
|
97
|
|
Tercio@0
|
98 local encounterID, encounterName, difficultyID, raidSize = select (1, ...)
|
|
Tercio@0
|
99 if (encounterID == 1693 and difficultyID == 16) then
|
|
Tercio@0
|
100
|
|
Tercio@0
|
101 if (event == "ENCOUNTER_START") then
|
|
Tercio@0
|
102
|
|
Tercio@0
|
103 print ("|cFFFFAA00Hansgar and Franzok Assist|r: addon enabled, good look!")
|
|
Tercio@0
|
104
|
|
Tercio@0
|
105 if (f.StampersPhase) then
|
|
Tercio@0
|
106 f:StopTracking()
|
|
Tercio@0
|
107 end
|
|
Tercio@0
|
108 f:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
|
Tercio@0
|
109
|
|
Tercio@0
|
110 elseif (event == "ENCOUNTER_END") then
|
|
Tercio@0
|
111 f:UnregisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
|
Tercio@0
|
112
|
|
Tercio@0
|
113 if (f.StampersPhase) then
|
|
Tercio@0
|
114 f:StopTracking()
|
|
Tercio@0
|
115 end
|
|
Tercio@0
|
116 end
|
|
Tercio@0
|
117 end
|
|
Tercio@0
|
118 end
|
|
Tercio@0
|
119
|
|
Tercio@0
|
120 end)
|
|
Tercio@0
|
121
|
|
Tercio@0
|
122 --
|
|
Tercio@2
|
123 --f:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED")
|
|
Tercio@0
|
124
|
|
Tercio@0
|
125 f:SetScript ("OnEvent", function (self, event, time, token, _, who_serial, who_name, who_flags, _, target_serial, target_name, target_flags, _, spellid, spellname, spellschool, buff_type, ...)
|
|
Tercio@0
|
126
|
|
Tercio@2
|
127 if (token == "SPELL_AURA_APPLIED" and spellid == 162124 and not f.StampersPhase) then
|
|
Tercio@0
|
128 f:StartTracking()
|
|
Tercio@0
|
129
|
|
Tercio@2
|
130 elseif (token == "SPELL_AURA_REMOVED" and spellid == 162124 and f.StampersPhase) then
|
|
Tercio@0
|
131 f:StopTracking()
|
|
Tercio@0
|
132
|
|
Tercio@0
|
133 end
|
|
Tercio@0
|
134
|
|
Tercio@0
|
135 end)
|
|
Tercio@0
|
136
|
|
Tercio@0
|
137 local frame_tracker = CreateFrame ("frame", "Hansgar_And_Franzok_AssistTracker", UIParent)
|
|
Tercio@0
|
138 local on_update_tracker = function (self, elapsed)
|
|
Tercio@0
|
139
|
|
Tercio@0
|
140 for i = 1, GetNumGroupMembers() do
|
|
Tercio@0
|
141 local x, y = GetPlayerMapPosition ("raid"..i)
|
|
Tercio@0
|
142 if (UnitExists ("raid"..i) and UnitHealth ("raid"..i) > 1 and x and y) then
|
|
Tercio@0
|
143 local block = f:WhichBlock (x, y)
|
|
Tercio@0
|
144 if (block) then
|
|
Tercio@0
|
145 if (not f.block_tracker [block]) then --> was a clear block
|
|
Tercio@0
|
146 f.block_tracker [block] = GetTime()
|
|
Tercio@0
|
147 f:Paint (f.all_blocks [block])
|
|
Tercio@0
|
148 end
|
|
Tercio@0
|
149 end
|
|
Tercio@0
|
150 end
|
|
Tercio@0
|
151 end
|
|
Tercio@0
|
152
|
|
Tercio@0
|
153 local px, py = GetPlayerMapPosition ("player")
|
|
Tercio@0
|
154 local player_block = f:WhichBlock (px, py)
|
|
Tercio@0
|
155 if (player_block) then
|
|
Tercio@0
|
156
|
|
Tercio@0
|
157 local time_limit_at = f.block_tracker [player_block] + db.STAMPERS_DELAY
|
|
Tercio@0
|
158 local time_now = GetTime()
|
|
Tercio@0
|
159
|
|
Tercio@0
|
160 f.player_bar:SetValue ((time_limit_at - time_now) / db.STAMPERS_DELAY * 100)
|
|
Tercio@0
|
161 f.player_bar:Show()
|
|
Tercio@0
|
162
|
|
Tercio@0
|
163 local block_frame = f.all_blocks [player_block]
|
|
Tercio@0
|
164 f.player_loc_box:SetPoint ("center", block_frame, "center")
|
|
Tercio@0
|
165 f.player_loc_box:Show()
|
|
Tercio@0
|
166 player_bar:Show()
|
|
Tercio@0
|
167 else
|
|
Tercio@0
|
168 f.player_loc_box:Hide()
|
|
Tercio@0
|
169 f.player_bar:Hide()
|
|
Tercio@0
|
170 end
|
|
Tercio@0
|
171 end
|
|
Tercio@0
|
172
|
|
Tercio@0
|
173 function f:StartTracking()
|
|
Tercio@0
|
174
|
|
Tercio@0
|
175 print ("|cFFFFAA00Hansgar and Franzok Assist|r: Smart Stampers phase started.")
|
|
Tercio@0
|
176
|
|
Tercio@0
|
177 f.StampersPhase = true
|
|
Tercio@0
|
178
|
|
Tercio@0
|
179 if (not f.frames_built) then
|
|
Tercio@0
|
180 f:CreateWindow()
|
|
Tercio@0
|
181 end
|
|
Tercio@0
|
182
|
|
Tercio@0
|
183 f:ResetBlocks()
|
|
Tercio@0
|
184 f.player_loc_box:Hide()
|
|
Tercio@0
|
185
|
|
Tercio@0
|
186 f.block_tracker = f.block_tracker or {}
|
|
Tercio@0
|
187 table.wipe (f.block_tracker)
|
|
Tercio@0
|
188
|
|
Tercio@0
|
189 SetMapToCurrentZone()
|
|
Tercio@0
|
190
|
|
Tercio@0
|
191 frame_tracker:SetScript ("OnUpdate", on_update_tracker)
|
|
Tercio@0
|
192 f:Show()
|
|
Tercio@0
|
193 end
|
|
Tercio@0
|
194
|
|
Tercio@0
|
195 function f:StopTracking()
|
|
Tercio@0
|
196
|
|
Tercio@0
|
197 print ("|cFFFFAA00Hansgar and Franzok Assist|r: Smart Stampers phase ended.")
|
|
Tercio@0
|
198
|
|
Tercio@0
|
199 f.StampersPhase = false
|
|
Tercio@0
|
200 frame_tracker:SetScript ("OnUpdate", nil)
|
|
Tercio@0
|
201 table.wipe (f.block_tracker)
|
|
Tercio@0
|
202 f.player_loc_box:Hide()
|
|
Tercio@0
|
203 f:Hide()
|
|
Tercio@0
|
204 end
|
|
Tercio@0
|
205
|
|
Tercio@0
|
206 local on_mouse_down = function (self)
|
|
Tercio@0
|
207 if (not self.isMoving) then
|
|
Tercio@0
|
208 self.isMoving = true
|
|
Tercio@0
|
209 f:StartMoving()
|
|
Tercio@0
|
210 end
|
|
Tercio@0
|
211 end
|
|
Tercio@0
|
212 local on_mouse_up = function (self)
|
|
Tercio@0
|
213 if (self.isMoving) then
|
|
Tercio@0
|
214 self.isMoving = nil
|
|
Tercio@0
|
215 f:StopMovingOrSizing()
|
|
Tercio@0
|
216 end
|
|
Tercio@0
|
217 end
|
|
Tercio@0
|
218
|
|
Tercio@0
|
219 local painting = function (self, elapsed)
|
|
Tercio@0
|
220 self.step = self.step + elapsed
|
|
Tercio@0
|
221 self.total_time = self.total_time + elapsed
|
|
Tercio@0
|
222
|
|
Tercio@0
|
223 if (self.step > 0.2) then
|
|
Tercio@0
|
224 self.step = 0
|
|
Tercio@0
|
225 local percent = self.total_time / db.STAMPERS_DELAY * 100
|
|
Tercio@0
|
226
|
|
Tercio@0
|
227 percent = min (percent, 100)
|
|
Tercio@0
|
228
|
|
Tercio@0
|
229 local r, g, b = f:percent_color (percent, true)
|
|
Tercio@0
|
230 self:SetBackdropColor (r, g, b, 0.5)
|
|
Tercio@0
|
231
|
|
Tercio@0
|
232 self.number:SetText (floor (percent) .. "%")
|
|
Tercio@0
|
233 self.number:SetTextColor (1, 1, 1, 1)
|
|
Tercio@0
|
234
|
|
Tercio@0
|
235 if (percent == 100) then
|
|
Tercio@0
|
236 self:SetScript ("OnUpdate", nil)
|
|
Tercio@0
|
237 self.stamper_icon:Show()
|
|
Tercio@0
|
238 self.number:Hide()
|
|
Tercio@0
|
239 end
|
|
Tercio@0
|
240 end
|
|
Tercio@0
|
241 end
|
|
Tercio@0
|
242 function f:Paint (block)
|
|
Tercio@0
|
243 block.step = 0
|
|
Tercio@0
|
244 block.total_time = 0
|
|
Tercio@0
|
245 block:SetScript ("OnUpdate", painting)
|
|
Tercio@0
|
246 end
|
|
Tercio@0
|
247
|
|
Tercio@0
|
248 function f:ResetBlocks()
|
|
Tercio@0
|
249 for _, block in ipairs (f.all_blocks) do
|
|
Tercio@0
|
250 block:SetScript ("OnUpdate", nil)
|
|
Tercio@0
|
251 block:SetBackdropColor (.8, .8, .8, 0.5)
|
|
Tercio@0
|
252 block.number:SetText (block.id)
|
|
Tercio@0
|
253 block.number:SetTextColor (1, 1, 1, 0.5)
|
|
Tercio@0
|
254 block.number:Show()
|
|
Tercio@0
|
255 block.stamper_icon:Hide()
|
|
Tercio@0
|
256 end
|
|
Tercio@0
|
257 end
|
|
Tercio@0
|
258
|
|
Tercio@0
|
259 function f:CreateWindow()
|
|
Tercio@0
|
260 local x = 0
|
|
Tercio@0
|
261 local y = 0
|
|
Tercio@0
|
262
|
|
Tercio@0
|
263 f.player_loc_box = frame_event:CreateTexture (nil, "overlay")
|
|
Tercio@0
|
264 f.player_loc_box:SetSize (32, 40)
|
|
Tercio@0
|
265 f.player_loc_box:SetTexture ([[Interface\ContainerFrame\UI-Icon-QuestBorder]])
|
|
Tercio@0
|
266 f.player_loc_box:Hide()
|
|
Tercio@0
|
267
|
|
Tercio@0
|
268 f.all_blocks = {}
|
|
Tercio@0
|
269
|
|
Tercio@0
|
270 for i = 1, 20 do
|
|
Tercio@0
|
271
|
|
Tercio@0
|
272 local block = CreateFrame ("frame", "Hansgar_And_Franzok_Assist_Block" .. i, f)
|
|
Tercio@0
|
273 block:SetSize (30, 38)
|
|
Tercio@0
|
274 block:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0},
|
|
Tercio@0
|
275 })
|
|
Tercio@0
|
276 block:SetBackdropBorderColor (0, 0, 0, 1)
|
|
Tercio@0
|
277 block:SetBackdropColor (.8, .8, .8, 0.5)
|
|
Tercio@0
|
278 block:SetPoint ("TopLeft", f, "TopLeft", x, y)
|
|
Tercio@0
|
279
|
|
Tercio@0
|
280 block:SetScript ("OnMouseDown", on_mouse_down)
|
|
Tercio@0
|
281 block:SetScript ("OnMouseUp", on_mouse_up)
|
|
Tercio@0
|
282
|
|
Tercio@0
|
283 block.id = i
|
|
Tercio@0
|
284
|
|
Tercio@0
|
285 local number = block:CreateFontString (nil, "artwork", "GameFontHighlight")
|
|
Tercio@0
|
286 number:SetPoint ("center", block, "center")
|
|
Tercio@0
|
287 number:SetText (i)
|
|
Tercio@0
|
288 number:SetTextColor (1, 1, 1, 0.5)
|
|
Tercio@0
|
289 block.number = number
|
|
Tercio@0
|
290
|
|
Tercio@0
|
291 local stamper_icon = block:CreateTexture (nil, "overlay")
|
|
Tercio@0
|
292 stamper_icon:SetTexture ([[Interface\ICONS\Warrior_talent_icon_LambsToTheSlaughter]])
|
|
Tercio@0
|
293 stamper_icon:SetTexCoord (4/64, 60/64, 4/64, 60/64)
|
|
Tercio@0
|
294 stamper_icon:SetSize (24, 24)
|
|
Tercio@0
|
295 stamper_icon:SetPoint ("center", block, "center")
|
|
Tercio@0
|
296 stamper_icon:Hide()
|
|
Tercio@0
|
297 block.stamper_icon = stamper_icon
|
|
Tercio@0
|
298
|
|
Tercio@0
|
299 x = x + 31
|
|
Tercio@0
|
300 if (x >= 155) then
|
|
Tercio@0
|
301 x = 0
|
|
Tercio@0
|
302 y = y - 40
|
|
Tercio@0
|
303 end
|
|
Tercio@0
|
304
|
|
Tercio@0
|
305 tinsert (f.all_blocks, block)
|
|
Tercio@0
|
306
|
|
Tercio@0
|
307 end
|
|
Tercio@0
|
308
|
|
Tercio@0
|
309 f.frames_built = true
|
|
Tercio@0
|
310
|
|
Tercio@0
|
311 end
|
|
Tercio@0
|
312
|
|
Tercio@0
|
313 local locs = {
|
|
Tercio@0
|
314 --block 1:
|
|
Tercio@1
|
315 {x1 = 0.51103663444519, y1 = 0.79726493358612, x2 = 0.50061076879501, y2 = 0.8241291642189},
|
|
Tercio@0
|
316 --block 2:
|
|
Tercio@1
|
317 {x1 = 0.49670505523682, y1 = 0.79692482948303, x2 = 0.48469054698944, y2 = 0.82489335536957},
|
|
Tercio@0
|
318 --block 3:
|
|
Tercio@1
|
319 {x1 = 0.48130965232849, y1 = 0.79742962121964, x2 = 0.46962946653366, y2 = 0.82453238964081},
|
|
Tercio@0
|
320 --block 4:
|
|
Tercio@1
|
321 {x1 = 0.46575212478638, y1 = 0.79766929149628, x2 = 0.45400339365005, y2 = 0.82176661491394},
|
|
Tercio@0
|
322 --block 5:
|
|
Tercio@1
|
323 {x1 = 0.45073217153549, y1 = 0.79751670360565, x2 = 0.43945103883743, y2 = 0.82504689693451},
|
|
Tercio@0
|
324
|
|
Tercio@0
|
325 --block 6
|
|
Tercio@1
|
326 {x1 = 0.51104211807251, y1 = 0.76532691717148, x2 = 0.50021582841873, y2 = 0.79546189308167},
|
|
Tercio@1
|
327 --block 7
|
|
Tercio@1
|
328 {x1 = 0.4964514374733, y1 = 0.76603573560715, x2 = 0.48449218273163, y2 = 0.79527854919434},
|
|
Tercio@1
|
329 --block 8
|
|
Tercio@1
|
330 {x1 = 0.48101079463959, y1 = 0.76503103971481, x2 = 0.46944016218185, y2 = 0.79543298482895},
|
|
Tercio@1
|
331 --block 9
|
|
Tercio@1
|
332 {x1 = 0.46541726589203, y1 = 0.7654857635498, x2 = 0.45369201898575, y2 = 0.79529416561127},
|
|
Tercio@1
|
333 --block 10
|
|
Tercio@1
|
334 {x1 = 0.45051556825638, y1 = 0.76583826541901, x2 = 0.43931984901428, y2 = 0.79570162296295},
|
|
Tercio@1
|
335
|
|
Tercio@1
|
336
|
|
Tercio@1
|
337 --block 11
|
|
Tercio@0
|
338 {x1 = 0.51104187965393, y1 = 0.73422884941101, x2 = 0.49990028142929, y2 = 0.76343530416489},
|
|
Tercio@1
|
339 --block 12
|
|
Tercio@0
|
340 {x1 = 0.49673527479172, y1 = 0.73338270187378, x2 = 0.48483556509018, y2 = 0.76356953382492},
|
|
Tercio@1
|
341 --block 13
|
|
Tercio@0
|
342 {x1 = 0.48133307695389, y1 = 0.73373115062714, x2 = 0.46920585632324, y2 = 0.76366758346558},
|
|
Tercio@1
|
343 --block 14
|
|
Tercio@0
|
344 {x1 = 0.46568286418915, y1 = 0.73440700769424, x2 = 0.45381307601929, y2 = 0.76358675956726},
|
|
Tercio@1
|
345 --block 15
|
|
Tercio@0
|
346 {x1 = 0.45046973228455, y1 = 0.73361301422119, x2 = 0.43929302692413, y2 = 0.76388084888458},
|
|
Tercio@0
|
347
|
|
Tercio@0
|
348 --block 16
|
|
Tercio@1
|
349 {x1 = 0.51104891300201, y1 = 0.70877063274384, x2 = 0.50024521350861, y2 = 0.73220580816269},
|
|
Tercio@0
|
350 --block 17
|
|
Tercio@1
|
351 {x1 = 0.49676024913788, y1 = 0.70914703607559, x2 = 0.48485481739044, y2 = 0.73210543394089},
|
|
Tercio@0
|
352 --block 18
|
|
Tercio@1
|
353 {x1 = 0.48142266273499, y1 = 0.70876735448837, x2 = 0.46925610303879, y2 = 0.73205661773682},
|
|
Tercio@0
|
354 --block 19
|
|
Tercio@1
|
355 {x1 = 0.46603119373322, y1 = 0.70929777622223, x2 = 0.45397216081619, y2 = 0.73167610168457},
|
|
Tercio@0
|
356 --block 20
|
|
Tercio@1
|
357 {x1 = 0.45079308748245, y1 = 0.70926278829575, x2 = 0.43927478790283, y2 = 0.73225915431976},
|
|
Tercio@0
|
358 }
|
|
Tercio@0
|
359
|
|
Tercio@0
|
360 function f:WhichBlock (x, y)
|
|
Tercio@0
|
361 for i = 1, #locs do
|
|
Tercio@0
|
362 local loc = locs [i]
|
|
Tercio@0
|
363 if (x >= loc.x2 and x <= loc.x1 and y >= loc.y1 and y <= loc.y2) then
|
|
Tercio@0
|
364 return i
|
|
Tercio@0
|
365 end
|
|
Tercio@0
|
366 end
|
|
Tercio@0
|
367 end
|
|
Tercio@0
|
368
|
|
Tercio@0
|
369 function f:percent_color (value, inverted)
|
|
Tercio@0
|
370 local r, g
|
|
Tercio@0
|
371 if (value < 50) then
|
|
Tercio@0
|
372 r = 255
|
|
Tercio@0
|
373 else
|
|
Tercio@0
|
374 r = floor ( 255 - (value * 2 - 100) * 255 / 100)
|
|
Tercio@0
|
375 end
|
|
Tercio@0
|
376
|
|
Tercio@0
|
377 if (value > 50) then
|
|
Tercio@0
|
378 g = 255
|
|
Tercio@0
|
379 else
|
|
Tercio@0
|
380 g = floor ( (value * 2) * 255 / 100)
|
|
Tercio@0
|
381 end
|
|
Tercio@0
|
382
|
|
Tercio@0
|
383 if (inverted) then
|
|
Tercio@0
|
384 return g/255, r/255, 0
|
|
Tercio@0
|
385 else
|
|
Tercio@0
|
386 return r/255, g/255, 0
|
|
Tercio@0
|
387 end
|
|
Tercio@0
|
388 end
|