ESO Lua File v100010

ingame/raid/raidtrialreminder.lua

[◄ back to folders ]
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
ZO_RaidTrialTimeReminder = ZO_Object:Subclass()
local REMIND_WAIT_MILLISECONDS = 5 * 60 * 1000
function ZO_RaidTrialTimeReminder:New()
    local object = ZO_Object.New(self)
    object:Initialize()
    return object
end
function ZO_RaidTrialTimeReminder:Initialize()
    local function OnUpdate()
        if IsRaidInProgress() then
            local now = GetFrameTimeMilliseconds()
            if self.nextUpdate then
                if self:IsTimeUp() then
                    self:Remind()
                    self:ResetTime()
                end
            else
                self:ResetTime()
            end
        else
            self:ClearTimer()
        end
    end
    EVENT_MANAGER:RegisterForUpdate("ZO_RaidTrialTimeReminder", 5000, OnUpdate)
end
function ZO_RaidTrialTimeReminder:Remind()
    local announceObject = CENTER_SCREEN_ANNOUNCE
    announceObject:AddMessage(0, CSA_EVENT_COMBINED_TEXT, SOUNDS.RAID_TRIAL_CURRENT_TIME, GetString(SI_TRIAL_CURRENT_TIME_LARGE), ZO_Announce_GetCurrentRaidTrialTimeString)
end
function ZO_RaidTrialTimeReminder:ClearTimer()
    self.nextUpdate = nil
end
function ZO_RaidTrialTimeReminder:ResetTime()
    self.nextUpdate = GetFrameTimeMilliseconds() + REMIND_WAIT_MILLISECONDS
end
function ZO_RaidTrialTimeReminder:IsTimeUp()
    return self.nextUpdate <= GetFrameTimeMilliseconds()
end
RAID_TRIAL_TIME_REMINDER = ZO_RaidTrialTimeReminder:New()