Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 5 | Taonnor-14572 | --[[ |
2 | Taonnor-14572 | Addon: Taos Group Ultimate |
|
3 | Taonnor-14572 | Author: TProg Taonnor |
|
4 | Taonnor-14572 | Created by @Taonnor |
|
5 | Taonnor-14572 | ]]-- |
|
6 | Taonnor-14572 | ||
7 | Taonnor-14572 | --[[ |
|
8 | 37 | Taonnor-14572 | Local variables |
9 | 5 | Taonnor-14572 | ]]-- |
10 | 7 | Taonnor-14572 | local LOG_ACTIVE = false |
11 | 36 | Taonnor-14572 | local _logger = nil |
12 | 5 | Taonnor-14572 | |
13 | 56 | Taonnor-14572 | local REFRESHRATE = 2000 -- ms; RegisterForUpdate is in miliseconds |
14 | 5 | Taonnor-14572 | |
15 | Taonnor-14572 | --[[ |
|
16 | 37 | Taonnor-14572 | Table TGU_MapPingHandler |
17 | 5 | Taonnor-14572 | ]]-- |
18 | 36 | Taonnor-14572 | TGU_MapPingHandler = {} |
19 | Taonnor-14572 | TGU_MapPingHandler.__index = TGU_MapPingHandler |
|
20 | 5 | Taonnor-14572 | |
21 | Taonnor-14572 | --[[ |
|
22 | 37 | Taonnor-14572 | Table Members |
23 | 5 | Taonnor-14572 | ]]-- |
24 | 36 | Taonnor-14572 | TGU_MapPingHandler.Name = "TGU-MapPingHandler" |
25 | Taonnor-14572 | TGU_MapPingHandler.IsMocked = false |
|
26 | 5 | Taonnor-14572 | |
27 | Taonnor-14572 | --[[ |
|
28 | 31 | Taonnor-14572 | Called on new data from LibGroupSocket |
29 | 5 | Taonnor-14572 | ]]-- |
30 | 38 | Taonnor-14572 | function TGU_MapPingHandler.OnData(pingTag, abilityPing, relativeUltimate) |
31 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logTrace("TGU_MapPingHandler.OnData") end |
|
32 | 5 | Taonnor-14572 | |
33 | 37 | Taonnor-14572 | local ultimateGroup = TGU_UltimateGroupHandler.GetUltimateGroupByAbilityPing(abilityPing) |
34 | 10 | Taonnor-14572 | |
35 | 31 | Taonnor-14572 | if (ultimateGroup ~= nil and relativeUltimate ~= -1) then |
36 | Taonnor-14572 | local player = {} |
|
37 | Taonnor-14572 | local playerName = "" |
|
38 | Taonnor-14572 | local isPlayerDead = false |
|
39 | 10 | Taonnor-14572 | |
40 | 36 | Taonnor-14572 | if (TGU_MapPingHandler.IsMocked == false) then |
41 | 39 | Taonnor-14572 | playerName = GetUnitName(pingTag) |
42 | 31 | Taonnor-14572 | isPlayerDead = IsUnitDead(pingTag) |
43 | 16 | Taonnor-14572 | else |
44 | 31 | Taonnor-14572 | playerName = pingTag |
45 | Taonnor-14572 | isPlayerDead = math.random() > 0.8 |
|
46 | 7 | Taonnor-14572 | end |
47 | 31 | Taonnor-14572 | |
48 | Taonnor-14572 | player.PingTag = pingTag |
|
49 | Taonnor-14572 | player.PlayerName = playerName |
|
50 | Taonnor-14572 | player.IsPlayerDead = isPlayerDead |
|
51 | Taonnor-14572 | player.UltimateGroup = ultimateGroup |
|
52 | Taonnor-14572 | player.UltimateName = GetAbilityName(ultimateGroup.GroupAbilityId) |
|
53 | Taonnor-14572 | player.UltimateIcon = GetAbilityIcon(ultimateGroup.GroupAbilityId) |
|
54 | Taonnor-14572 | player.RelativeUltimate = relativeUltimate |
|
55 | Taonnor-14572 | ||
56 | Taonnor-14572 | if (LOG_ACTIVE) then |
|
57 | 36 | Taonnor-14572 | _logger:logDebug("player.PingTag", player.PingTag) |
58 | Taonnor-14572 | _logger:logDebug("player.PlayerName", player.PlayerName) |
|
59 | Taonnor-14572 | _logger:logDebug("player.IsPlayerDead", player.IsPlayerDead) |
|
60 | Taonnor-14572 | _logger:logDebug("player.UltimateGroup.GroupName", player.UltimateGroup.GroupName) |
|
61 | Taonnor-14572 | _logger:logDebug("player.RelativeUltimate", player.RelativeUltimate) |
|
62 | 31 | Taonnor-14572 | end |
63 | Taonnor-14572 | ||
64 | 38 | Taonnor-14572 | CALLBACK_MANAGER:FireCallbacks(TGU_PLAYER_DATA_CHANGED, player) |
65 | 31 | Taonnor-14572 | else |
66 | 36 | Taonnor-14572 | _logger:logError("TGU_MapPingHandler.OnMapPing, Ping invalid ultimateGroup: " .. tostring(ultimateGroup) .. "; relativeUltimate: " .. tostring(relativeUltimate)) |
67 | 5 | Taonnor-14572 | end |
68 | Taonnor-14572 | end |
|
69 | Taonnor-14572 | ||
70 | Taonnor-14572 | --[[ |
|
71 | Taonnor-14572 | Called on refresh of timer |
|
72 | Taonnor-14572 | ]]-- |
|
73 | 36 | Taonnor-14572 | function TGU_MapPingHandler.OnTimedUpdate(eventCode) |
74 | Taonnor-14572 | if (LOG_ACTIVE) then _logger:logTrace("TGU_MapPingHandler.OnTimedUpdate") end |
|
75 | 7 | Taonnor-14572 | |
76 | 36 | Taonnor-14572 | if (IsUnitGrouped("player") == false and TGU_MapPingHandler.IsMocked == false) then return end -- only if player is in group and system is not mocked |
77 | 5 | Taonnor-14572 | |
78 | 37 | Taonnor-14572 | local abilityGroup = TGU_UltimateGroupHandler.GetUltimateGroupByAbilityId(TGU_SettingsHandler.SavedVariables.StaticUltimateID) |
79 | 5 | Taonnor-14572 | |
80 | 27 | Taonnor-14572 | if (abilityGroup ~= nil) then |
81 | 38 | Taonnor-14572 | TGU_Communicator.SendData(abilityGroup) |
82 | 14 | Taonnor-14572 | else |
83 | 37 | Taonnor-14572 | _logger:logError("TGU_MapPingHandler.OnTimedUpdate, abilityGroup is nil, change ultimate. StaticID: " .. tostring(TGU_SettingsHandler.SavedVariables.StaticUltimateID)) |
84 | 14 | Taonnor-14572 | end |
85 | 5 | Taonnor-14572 | end |
86 | Taonnor-14572 | ||
87 | Taonnor-14572 | --[[ |
|
88 | 36 | Taonnor-14572 | Initialize initializes TGU_MapPingHandler |
89 | 5 | Taonnor-14572 | ]]-- |
90 | 36 | Taonnor-14572 | function TGU_MapPingHandler.Initialize(logger, isMocked) |
91 | 10 | Taonnor-14572 | if (LOG_ACTIVE) then |
92 | 36 | Taonnor-14572 | logger:logTrace("TGU_MapPingHandler.Initialize") |
93 | Taonnor-14572 | logger:logDebug("isMocked", isMocked) |
|
94 | 10 | Taonnor-14572 | end |
95 | 7 | Taonnor-14572 | |
96 | 36 | Taonnor-14572 | _logger = logger |
97 | Taonnor-14572 | ||
98 | Taonnor-14572 | TGU_MapPingHandler.IsMocked = isMocked |
|
99 | 10 | Taonnor-14572 | |
100 | 38 | Taonnor-14572 | -- Register callbacks |
101 | Taonnor-14572 | CALLBACK_MANAGER:RegisterCallback(TGU_MAP_PING_CHANGED, TGU_MapPingHandler.OnData) |
|
102 | 31 | Taonnor-14572 | |
103 | 5 | Taonnor-14572 | -- Start timer |
104 | 36 | Taonnor-14572 | EVENT_MANAGER:RegisterForUpdate(TGU_MapPingHandler.Name, REFRESHRATE, TGU_MapPingHandler.OnTimedUpdate) |
105 | 5 | Taonnor-14572 | end |