Back to Home

ESO Lua File v100034

ingame/trialaccount/trialaccount.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
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
--Splash Dialog
---------------
local TrialAccountSplashDialog = ZO_Object:Subclass()
function TrialAccountSplashDialog:New(...)
    local trialDialog = ZO_Object.New(self)
    trialDialog:Initialize(...)
    return trialDialog
end
function TrialAccountSplashDialog:Initialize(control)
    self.control = control
    self.dialogPane = control:GetNamedChild("Pane")
    self.dialogScrollChild = self.dialogPane:GetNamedChild("ScrollChild")
    self.dialogDescription = self.dialogPane:GetNamedChild("Description")
    local function CloseDialog()
        self:RemoveSplash()
    end
    self.dialogInfo = 
    {
        customControl = control,
        title = {},
        noChoiceCallback = CloseDialog,
        buttons =
        {
            [1] =
            {
                control = control:GetNamedChild("Cancel"),
                text = SI_DIALOG_EXIT,
                keybind = "DIALOG_NEGATIVE",
                clickSound = SOUNDS.DIALOG_ACCEPT,
                callback =  CloseDialog,
            },
        }
    }
    ZO_Dialogs_RegisterCustomDialog("TRIAL_ACCOUNT_SPLASH_KEYBOARD", self.dialogInfo)
    ZO_Dialogs_RegisterCustomDialog("TRIAL_ACCOUNT_SPLASH_GAMEPAD", 
        {
            setup = function(dialog)
                dialog:setupFunc()
            end,
            gamepadInfo =
            {
                dialogType = GAMEPAD_DIALOGS.CENTERED,
            },
            canQueue = true,
            title =
            {
                text = function()
                           return self.title
                       end,
            },
            mainText = 
            {
                text = function()
                           return self.description
                       end,
            },
            buttons =
            {
                [1] =
                {
                    --Ethereal binds show no text, the name field is used to help identify the keybind when debugging. This text does not have to be localized.
                    name = "Free Trial Close Dialog 1",
                    ethereal = true,
                    keybind = "DIALOG_PRIMARY",
                    clickSound = SOUNDS.DIALOG_ACCEPT,
                    callback =  CloseDialog,
                },
                [2] =
                {
                    --Ethereal binds show no text, the name field is used to help identify the keybind when debugging. This text does not have to be localized.
                    name = "Free Trial Close Dialog 2",
                    ethereal = true,
                    keybind = "DIALOG_NEGATIVE",
                    clickSound = SOUNDS.DIALOG_ACCEPT,
                    callback =  CloseDialog,
                },
            },
            noChoiceCallback = CloseDialog,
            finishedCallback = CloseDialog,
            removedFromQueueCallback = CloseDialog,
        }
    )
    local function OnAddOnLoaded()
        self.accountTypeId, self.title, self.description, self.version, self.seenVersion = ZO_TrialAccount_GetInfo()
        self.control:UnregisterForEvent(EVENT_ADD_ON_LOADED)
    end
    local function OnPlayerActivated()
        if self.seenVersion < self.version then
            if IsInGamepadPreferredMode() then
                ZO_Dialogs_ShowGamepadDialog("TRIAL_ACCOUNT_SPLASH_GAMEPAD")
            else
                self.dialogInfo.title.text = self.title
                self.dialogDescription:SetText(self.description)
                local descriptionWidth, descriptionHeight = self.dialogDescription:GetTextDimensions()
                local contentHeight = descriptionHeight + 6
                self.dialogPane:SetHeight(contentHeight)
                self.dialogScrollChild:SetHeight(contentHeight)
                ZO_Dialogs_ShowDialog("TRIAL_ACCOUNT_SPLASH_KEYBOARD")
            end
        end
    end
    control:RegisterForEvent(EVENT_ADD_ON_LOADED, OnAddOnLoaded)
    control:RegisterForEvent(EVENT_PLAYER_ACTIVATED, OnPlayerActivated)
end
function TrialAccountSplashDialog:RemoveSplash()
    self.seenVersion = self.version
    ZO_TrialAccount_SetSeenVersion(self.accountTypeId, self.seenVersion)
end
    TRIAL_ACCOUNT_SPLASH_DIALOG = TrialAccountSplashDialog:New(control)
end