ESOUI SVN TaosGroupUltimate

[/] [trunk/] [TaosGroupUltimate/] [logic/] [MapPingHandler.lua] - Blame information for rev 57

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