KLBuffInfoItem.lua 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. ---@class KLBuffInfoItem:UIKmlLuaPanelBase
  2. ---@field view KLBuffInfoItemView
  3. ---@field args Buff
  4. local KLBuffInfoItem = class(UIKmlLuaPanelBase)
  5. ---创建时调用一次
  6. function KLBuffInfoItem:Init()
  7. end
  8. ---创建或者刷新界面数据时调用
  9. function KLBuffInfoItem:Refresh()
  10. ---@type cfg_buff_column
  11. local buffTbl = SL:GetConfig("cfg_buff",self.args.cfgId)
  12. local leftTime = self.args.endTime - Time.GetServerTime()
  13. local buffTotalTime = buffTbl.buffTotalTime > 0 and buffTbl.buffTotalTime or leftTime
  14. local startper = leftTime/buffTotalTime * 100
  15. leftTime = math.floor(leftTime / 1000)
  16. startper = math.floor(startper)
  17. if buffTbl then
  18. GUI:Image_loadTexture(self.view.control_circlebar,buffTbl.showIcon,"Atlas/Buff_icon.spriteatlas")
  19. end
  20. GUI:SetControl_time(self.view.control_circlebar,leftTime)
  21. GUI:SetCirclebar_startper(self.view.control_circlebar,startper)
  22. if self.args.bufferLayer and tonumber(self.args.bufferLayer) > 1 then
  23. GUI:Text_setString(self.view.text_layer,tostring(self.args.bufferLayer))
  24. else
  25. GUI:Text_setString(self.view.text_layer,"")
  26. end
  27. local panel = GUI:GetUI("dev/ui/MainUI/Panel/KLUIBuffInfo/KLUIBuffInfoPanel")
  28. if panel then
  29. panel.args = self.args
  30. panel:Refresh()
  31. end
  32. end
  33. ---注册UI事件和服务器消息
  34. function KLBuffInfoItem:RegistEvents()
  35. GUI:AddOnClickEvent(self.view.control_circlebar,self,self.OnClickBtn)
  36. end
  37. function KLBuffInfoItem:OnClickBtn()
  38. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLUIBuffInfo/KLUIBuffInfoPanel",nil,nil,self.args)
  39. end
  40. function KLBuffInfoItem:Close()
  41. GUI:UIPanel_Close("dev/ui/MainUI/Panel/KLUIBuffInfo/KLUIBuffInfoPanel")
  42. end
  43. return KLBuffInfoItem