143 lines
3.5 KiB
Lua
143 lines
3.5 KiB
Lua
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.Wiki
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WikiCtrl = HL.Class('WikiCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WikiCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
}
|
|
|
|
|
|
|
|
local WIKI_CATEGORY_TO_Node_NAME = {
|
|
[WikiConst.EWikiCategoryType.Weapon] = "btnWeapon",
|
|
[WikiConst.EWikiCategoryType.Equip] = "btnEquip",
|
|
[WikiConst.EWikiCategoryType.Item] = "btnItem",
|
|
[WikiConst.EWikiCategoryType.Monster] = "btnMonster",
|
|
[WikiConst.EWikiCategoryType.Building] = "btnBuilding",
|
|
[WikiConst.EWikiCategoryType.Tutorial] = "btnTutorial",
|
|
}
|
|
|
|
|
|
|
|
|
|
WikiCtrl.m_selectedNodeAnim = HL.Field(HL.Userdata)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WikiCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
local spriteNumberTable = {}
|
|
for i = 1, 6 do
|
|
spriteNumberTable[i] = self.view["imgNumber0" .. i].sprite
|
|
end
|
|
|
|
for categoryId, categoryData in pairs(Tables.wikiCategoryTable) do
|
|
local nodeName = WIKI_CATEGORY_TO_Node_NAME[categoryId]
|
|
if nodeName ~= nil then
|
|
local node = self.view[nodeName]
|
|
if node then
|
|
node.btn.transform:SetSiblingIndex(categoryData.categoryPriority - 1)
|
|
node.imgNumber.sprite = spriteNumberTable[categoryData.categoryPriority]
|
|
node.btn.onClick:AddListener(function()
|
|
if WikiUtils.isWikiCategoryUnlocked(categoryId) then
|
|
self.m_phase:OpenCategory(categoryId)
|
|
else
|
|
Notify(MessageConst.SHOW_TOAST, Language.LUA_WIKI_CATEGORY_LOCKED)
|
|
end
|
|
end)
|
|
node.btn.onHoverChange:AddListener(function(isHover)
|
|
if self.m_selectedNodeAnim then
|
|
UIUtils.PlayAnimationAndToggleActive(self.m_selectedNodeAnim, false)
|
|
end
|
|
if isHover then
|
|
self.m_selectedNodeAnim = node.selectNodeAnim
|
|
if self.m_selectedNodeAnim then
|
|
UIUtils.PlayAnimationAndToggleActive(self.m_selectedNodeAnim, true)
|
|
end
|
|
end
|
|
end)
|
|
node.redDot:InitRedDot("WikiCategory", categoryId)
|
|
|
|
if categoryData.categoryPriority == 1 then
|
|
self.m_firstCategoryBtn = node.btn
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
self:_InitController()
|
|
|
|
AudioManager.PostEvent("au_ui_menu_wiki_open")
|
|
end
|
|
|
|
|
|
|
|
WikiCtrl.OnClose = HL.Override() << function(self)
|
|
AudioManager.PostEvent("au_ui_menu_wiki_close")
|
|
end
|
|
|
|
|
|
|
|
WikiCtrl.OnShow = HL.Override() << function(self)
|
|
if self.m_phase then
|
|
self.m_phase:ActiveMainSceneItem(true)
|
|
end
|
|
|
|
|
|
self:_StartCoroutine(function()
|
|
coroutine.step()
|
|
if self:IsShow() then
|
|
AudioAdapter.PostEvent("Au_UI_Menu_WikiPanel_Open")
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
WikiCtrl._OnPhaseItemBind = HL.Override() << function(self)
|
|
self.view.topNode:InitWikiTop({
|
|
phase = self.m_phase,
|
|
panelId = PANEL_ID,
|
|
forceShowCloseBtn = true,
|
|
})
|
|
self.m_phase:ActiveMainSceneItem(true)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WikiCtrl.m_firstCategoryBtn = HL.Field(HL.Userdata)
|
|
|
|
|
|
|
|
WikiCtrl._InitController = HL.Method() << function(self)
|
|
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({self.view.inputGroup.groupId})
|
|
if self.m_firstCategoryBtn then
|
|
InputManagerInst.controllerNaviManager:SetTarget(self.m_firstCategoryBtn)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
HL.Commit(WikiCtrl)
|