123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- ---@class KLPreviewEntrancePanel:UIKmlLuaPanelBase
- ---@field view KLPreviewEntrancePanelView
- local KLPreviewEntrancePanel = class(UIKmlLuaPanelBase)
- ---创建时调用一次
- function KLPreviewEntrancePanel:Init()
- end
- ---创建或者刷新界面数据时调用
- function KLPreviewEntrancePanel:Refresh()
- GUI:setVisible(self.view.effect, false)
- local info = self:GetPreviewInfo()
- --Scene.mapConfig.type
- local mapInfo = SL:GetConfig("cfg_map_info", SL:GetMetaValue("MAP_ID"), "id")
- if not info or mapInfo.nopositionmove == 1 then
- GUI:SetActive(self.view.PreviewUIclick, false)
- GUI:setVisible(self.view.effect, false)
- return
- end
- GUI:SetActive(self.view.PreviewUIclick, true)
- --GUI:setVisible(self.view.effect, true)
- local icon = info["icon"]
- local atlas = icon[1]
- local src = icon[2]
- GUI:Image_loadTexture(self.view.icon, src, atlas)
- local name = info["name"][1][1]
- GUI:Text_setString(self.view.name, name)
- end
- ---注册UI事件和服务器消息
- function KLPreviewEntrancePanel:RegistEvents()
- GUI:AddOnClickEvent(self.view.PreviewUIclick, self, self.OpenPreviewPanel)
- SL:RegisterLUAEvent(LUA_EVENT_LEVELCHANGE, self.PreviewRefresh, self)
- SL:RegisterLuaNetMsg(MessageDef.ResPreviewRewardInfoMessage, self.PreviewRefresh, self)
- end
- function KLPreviewEntrancePanel:Close()
- SL:UnRegisterLUAEvent(Event.RoleUpGrade, self.PreviewRefresh, self)
- SL:UnRegisterLuaNetMsg(MessageDef.ResPreviewRewardInfoMessage, self.PreviewRefresh, self)
- end
- function KLPreviewEntrancePanel:PreviewRefresh(_, message)
- self:Refresh()
- end
- --获取需要显示的预告
- function KLPreviewEntrancePanel:GetPreviewInfo()
- local cfgInfo = SL:GetConfigTable("cfg_preview")
- local info
- local isEffect = false
- --第一个大于等级的
- if cfgInfo then
- table.sort(cfgInfo, function(a, b)
- return a.completionLevel > b.completionLevel
- end)
- for k, v in pairs(cfgInfo) do
- if SL:MeData_GetLevel() >= v.completionLevel and not SL:TaskInfo_GetPreviewRewardInfo()[v.id] then
- SL:onLUAEvent(LUA_EVENT_PREVIEW_OPEN, v.id)
- end
- if SL:MeData_GetLevel() >= v.showLevel and (SL:MeData_GetLevel() < v.hideLevel or not SL:TaskInfo_GetPreviewRewardInfo()[v.id]) then
- info = v
- break
- end
- end
- for i, v in pairs(cfgInfo) do
- if SL:MeData_GetLevel() >= v.completionLevel and not SL:TaskInfo_GetPreviewRewardInfo()[v.id] then
- isEffect = true
- break
- end
- end
- end
- GUI:setVisible(self.view.effect, isEffect)
- return info
- end
- function KLPreviewEntrancePanel:OpenPreviewPanel()
- self.preview = GUI:UIPanel_Open("dev/ui/Preview/Panel/KLPreview/KLPreviewPanel")
- end
- return KLPreviewEntrancePanel
|