ESO Lua File v100010

ingame/campaign/gamepad/campaignoverview_gamepad.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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
local ZO_CampaignOverview_Gamepad = ZO_Object:Subclass()
local CAMPAIGN_OVERVIEW_TYPE_OVERVIEW = 0
local CAMPAIGN_OVERVIEW_TYPE_SCORING = 1
local CAMPAIGN_OVERVIEW_TYPE_BONUSES = 2
local CAMPAIGN_OVERVIEW_TYPE_EMPEROR = 3
function ZO_CampaignOverview_Gamepad:New(...)
    local campaignBrowser = ZO_Object.New(self)
    campaignBrowser:Initialize(...)
    return campaignBrowser
end
function ZO_CampaignOverview_Gamepad:Initialize(control)
    local overviewListControl = control:GetNamedChild("List")
    self.overviewList = ZO_GamepadVerticalItemParametricScrollList:New(overviewListControl)
    self.overviewList:SetOnSelectedDataChangedCallback(function(list, selectedData)
            KEYBIND_STRIP:UpdateKeybindButtonGroup(self.keybindOverviewStripDescriptor)
            SCENE_MANAGER:RemoveFragment(CAMPAIGN_EMPEROR_GAMEPAD_FRAGMENT)
            SCENE_MANAGER:RemoveFragment(CAMPAIGN_SCORING_GAMEPAD_FRAGMENT)
            SCENE_MANAGER:RemoveFragment(GAMEPAD_CAMPAIGN_AVA_CAMPAIGN_INFO_FRAGMENT)
            self:SetupSidePanel(selectedData)
        end)
    control.OnShow = function()
        self:BuildInfoLists()
        self.overviewList:Activate() 
        self:SetupSidePanel(self.overviewList:GetSelectedData())
    end
    control.OnHide = function()
        SCENE_MANAGER:RemoveFragment(CAMPAIGN_EMPEROR_GAMEPAD_FRAGMENT)
        SCENE_MANAGER:RemoveFragment(CAMPAIGN_SCORING_GAMEPAD_FRAGMENT)
        self.overviewList:Deactivate() 
    end
end
function ZO_CampaignOverview_Gamepad:SetupSidePanel(selectedData)
    if selectedData then
        if selectedData.type == CAMPAIGN_OVERVIEW_TYPE_OVERVIEW then
            if GAMEPAD_AVA_BROWSER then
                GAMEPAD_AVA_SERVER_INFO:SetupAvaServerPopulation(selectedData.home and GAMEPAD_AVA_BROWSER.campaignBrowser:GetMasterHomeData() or GAMEPAD_AVA_BROWSER.campaignBrowser:GetMasterGuestData())
            end
            SCENE_MANAGER:AddFragment(GAMEPAD_CAMPAIGN_AVA_CAMPAIGN_INFO_FRAGMENT)
        elseif selectedData.type == CAMPAIGN_OVERVIEW_TYPE_SCORING then
            CAMPAIGN_SCORING_GAMEPAD:SetCampaignAndQueryType(selectedData.home and GetAssignedCampaignId() or GetGuestCampaignId(), selectedData.type)
            SCENE_MANAGER:AddFragment(CAMPAIGN_SCORING_GAMEPAD_FRAGMENT)
        elseif selectedData.type == CAMPAIGN_OVERVIEW_TYPE_EMPEROR then
            CAMPAIGN_EMPEROR_GAMEPAD:SetCampaignAndQueryType(selectedData.home and GetAssignedCampaignId() or GetGuestCampaignId(), BGQUERY_ASSIGNED_CAMPAIGN)
            SCENE_MANAGER:AddFragment(CAMPAIGN_EMPEROR_GAMEPAD_FRAGMENT)
        end
    end
end
function ZO_CampaignOverview_Gamepad:BuildInfoLists()
    local CAMPAIGN_OVERVIEW_TYPE_BONUSES_HOME = ZO_GamepadEntryData:New(GetString(SI_CAMPAIGN_OVERVIEW_CATEGORY_BONUSES), "EsoUI/Art/Campaign/overview_indexIcon_bonus_up.dds")
    CAMPAIGN_OVERVIEW_TYPE_BONUSES_HOME.bestItemCategoryName = GetString(SI_CAMPAIGN_BROWSER_TOOLTIP_HOME_CAMPAIGN)
    CAMPAIGN_OVERVIEW_TYPE_BONUSES_HOME.type = CAMPAIGN_OVERVIEW_TYPE_BONUSES
    CAMPAIGN_OVERVIEW_TYPE_BONUSES_HOME.home = true
    local CAMPAIGN_OVERVIEW_TYPE_BONUSES_GUEST = ZO_GamepadEntryData:New(GetString(SI_CAMPAIGN_OVERVIEW_CATEGORY_BONUSES), "EsoUI/Art/Campaign/overview_indexIcon_bonus_up.dds")
    CAMPAIGN_OVERVIEW_TYPE_BONUSES_GUEST.bestItemCategoryName = GetString(SI_CAMPAIGN_BROWSER_TOOLTIP_GUEST_CAMPAIGN)
    CAMPAIGN_OVERVIEW_TYPE_BONUSES_GUEST.type = CAMPAIGN_OVERVIEW_TYPE_BONUSES
    CAMPAIGN_OVERVIEW_TYPE_BONUSES_GUEST.home = false
    self.overviewList:Clear()
    if GetAssignedCampaignId() ~= 0 then
        local entry = ZO_GamepadEntryData:New(zo_strformat(SI_CAMPAIGN_NAME, GetCampaignName(GetAssignedCampaignId())))
        entry.type = CAMPAIGN_OVERVIEW_TYPE_OVERVIEW
        entry.home = true
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", entry)
        
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", CAMPAIGN_OVERVIEW_TYPE_BONUSES_HOME)
        entry = ZO_GamepadEntryData:New(GetString(SI_CAMPAIGN_OVERVIEW_CATEGORY_SCORING), "EsoUI/Art/Campaign/overview_indexIcon_scoring_up.dds")
        entry.type = CAMPAIGN_OVERVIEW_TYPE_SCORING
        entry.home = true
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", entry)
        entry = ZO_GamepadEntryData:New(GetString(SI_CAMPAIGN_OVERVIEW_CATEGORY_EMPERORSHIP), "EsoUI/Art/Campaign/overview_indexIcon_emperor_up.dds")
        entry.type = CAMPAIGN_OVERVIEW_TYPE_EMPEROR
        entry.home = true
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", entry)
    end
    if GetGuestCampaignId() ~= 0 then
        local entry = ZO_GamepadEntryData:New(zo_strformat(SI_CAMPAIGN_NAME, GetCampaignName(GetGuestCampaignId())))
        entry.type = CAMPAIGN_OVERVIEW_TYPE_OVERVIEW
        entry.home = false
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", entry)
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", CAMPAIGN_OVERVIEW_TYPE_BONUSES_GUEST)
        entry = ZO_GamepadEntryData:New(GetString(SI_CAMPAIGN_OVERVIEW_CATEGORY_SCORING), "EsoUI/Art/Campaign/overview_indexIcon_scoring_up.dds")
        entry.type = CAMPAIGN_OVERVIEW_TYPE_SCORING
        entry.home = false
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", entry)
        entry = ZO_GamepadEntryData:New(GetString(SI_CAMPAIGN_OVERVIEW_CATEGORY_EMPERORSHIP), "EsoUI/Art/Campaign/overview_indexIcon_emperor_up.dds")
        entry.type = CAMPAIGN_OVERVIEW_TYPE_EMPEROR
        entry.home = false
        self.overviewList:AddEntry("ZO_GamepadItemSubEntryTemplate", entry)
    end
    self.overviewList:Commit()
end
function ZO_CampaignOverview_Gamepad:InitializeKeybindStripDescriptors()
    self.keybindOverviewStripDescriptor =
    {
        alignment = KEYBIND_STRIP_ALIGN_LEFT,
        -- Queue, home, guest
        {
            name = function () 
                    if self.overviewList:GetSelectedData().type == CAMPAIGN_OVERVIEW_TYPE_BONUSES then
                        return "[dbg] View Bonuses"
                    end
                end,
            keybind = "UI_SHORTCUT_PRIMARY",
            visible = function() return self.overviewList:GetSelectedData() and self.overviewList:GetSelectedData().type == CAMPAIGN_OVERVIEW_TYPE_BONUSES end,
            callback = function() 
                    if self.overviewList:GetSelectedData().type == CAMPAIGN_OVERVIEW_TYPE_BONUSES then
                        CAMPAIGN_BONUSES_GAMEPAD:SetIsHomeCampaign(self.overviewList:GetSelectedData().home)
                        SCENE_MANAGER:Push("gamepad_campaign_bonuses")
                    end
                end,
        },
    }
    ZO_Gamepad_AddBackNavigationKeybindDescriptors(self.keybindOverviewStripDescriptor, GAME_NAVIGATION_TYPE_BUTTON)
    ZO_Gamepad_AddListTriggerKeybindDescriptors(self.keybindOverviewStripDescriptor, self.overviewList)
end
    GAMEPAD_AVA_OVERVIEW = ZO_CampaignOverview_Gamepad:New(control)
end