12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- ---@class KLTransferRingItem:UIKmlLuaPanelBase
- ---@field view KLTransferRingItemView
- ---@field baseUI KLTransferRingPanel
- ---@field ringId number
- local KLTransferRingItem = class(UIKmlLuaPanelBase)
- local this = KLTransferRingItem
- ---创建时调用一次
- function this:Init()
- self.lastClick = 0
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- end
- ---@param dt RingData
- function this:UpdateUI(dt, isSelect)
- self.ringId = dt.itemId
- GUI:Item_setItemId(self.view.Item, dt.itemId)
- ---@type cfg_item_column
- local itemTbl = SL:GetConfig("cfg_item", dt.itemId)
- GUI:Text_setString(self.view.TxtName, itemTbl.name)
- if dt.time == -1 then
- GUI:SetActive(self.view.TxtTime, true)
- GUI:SetActive(self.view.TimeDown, false)
- GUI:Text_setString(self.view.TxtTime, "永久生效")
- else
- GUI:SetActive(self.view.TimeDown, true)
- GUI:SetActive(self.view.TxtTime, false)
- local svTime = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)
- local countdown = dt.time - svTime / 1000
- countdown = math.floor(countdown)
- GUI:SetControl_time(self.view.TimeDown, countdown)
- end
- if isSelect then
- self:RingItemOnClick()
- else
- self:SetIsSelect(false)
- end
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.Bg, self, self.RingItemOnClick)
- GUI:AddOnClickEvent(self.view.Item, self, self.OnItemClick)
- SL:RegisterLUAEvent(TRANSFER_RING_SELECT_ITEM, self.OnCheckItemSelect, self)
- end
- function this:OnItemClick()
- return SL:OpenTips(nil, self.ringId)
- end
- ---@param cfgId number
- function this:OnCheckItemSelect(_, cfgId)
- if not cfgId or cfgId ~= self.ringId then return end
- self:RingItemOnClick()
- end
- function this:RingItemOnClick()
- if Time.frameCount - self.lastClick < 3 then
- return
- end
- self.lastClick = Time.frameCount
- return self.baseUI:RingItemOnClick(self, self.ringId)
- end
- function this:SetIsSelect(isSelect)
- local spName = isSelect and "tab_title_selected" or "tab_title_unselect"
- GUI:Image_loadTexture(self.view.SpState, spName, "Atlas/AppearGroup.spriteatlas")
- end
- function this:Close()
- end
- return this
|