KLTalentTipPanel.lua 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. ---@class KLTalentTipPanel:UIKmlLuaPanelBase
  2. ---@field view KLTalentTipPanelView
  3. ---@field curlvInfo cfg_equip_angelTalentLv_column
  4. ---@field nextlvInfo cfg_equip_angelTalentLv_column
  5. ---@field angelTalent cfg_equip_angelTalent_column
  6. local KLTalentTipPanel = class(UIKmlLuaPanelBase)
  7. local this = KLTalentTipPanel
  8. function this:AsyncLoadUI()
  9. end
  10. ---创建时调用一次
  11. function this:Init()
  12. self.angelTalent = self.args.tbl
  13. end
  14. ---注册UI事件和服务器消息
  15. function this:RegistEvents()
  16. GUI:AddOnClickEvent(self.view.mask, self, self.ClosePanel)
  17. GUI:AddOnClickEvent(self.view.UpButton, self, self.UPTalent)
  18. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_ANGEL_TALENT_INFO, self.RES_ANGEL_TALENT_INFO, self)
  19. end
  20. ---界面显示时调用一次
  21. function this:Show()
  22. end
  23. ---创建或者刷新界面数据时调用
  24. function this:Refresh()
  25. self.curlvPoint = nil
  26. if self.args.currentLv > 0 then
  27. self.curlvInfo = SL:GetConfigTwoKeys("cfg_equip_angelTalentLv", self.angelTalent.id, self.args.currentLv, "talentId", "level")
  28. else
  29. self.curlvInfo = nil
  30. local tbl = SL:GetConfigTwoKeys("cfg_equip_angelTalentLv", self.angelTalent.id, self.args.currentLv + 1, "talentId", "level")
  31. self.curlvPoint = tostring(tbl.consumPoint)
  32. end
  33. if self.args.currentLv < self.angelTalent.talentMaxLv then
  34. self.nextlvInfo = SL:GetConfigTwoKeys("cfg_equip_angelTalentLv", self.angelTalent.id, self.args.currentLv + 1, "talentId", "level")
  35. GUI:setVisible(self.view.UpButton, true)
  36. self.curlvPoint = tostring(self.nextlvInfo.consumPoint)
  37. else
  38. self.nextlvInfo = nil
  39. GUI:setVisible(self.view.UpButton, false)
  40. self.curlvPoint = "Max"
  41. end
  42. GUI:Image_loadTexture(self.view.icon, self.angelTalent.talentIcon, "Atlas/UIOutSkillIcon.spriteatlas")
  43. GUI:Text_setString(self.view.name, self.angelTalent.talentName)
  44. GUI:Text_setString(self.view.level, tostring(self.args.currentLv) .. "/" .. tostring(self.angelTalent.talentMaxLv))
  45. GUI:Text_setString(self.view.dian, tostring(self.angelTalent.talentRequest))
  46. GUI:Text_setString(self.view.talentpoint, self.curlvPoint)
  47. local curtext = "天赋未激活"
  48. if self.curlvInfo then
  49. curtext = self.curlvInfo.description
  50. end
  51. GUI:Text_setString(self.view.currenttext, curtext)
  52. local nexttext = "当前已满级"
  53. if self.nextlvInfo then
  54. nexttext = self.nextlvInfo.description
  55. end
  56. GUI:Text_setString(self.view.nexttext, nexttext)
  57. end
  58. function this:UPTalent()
  59. if InfoManager.archangeEquipInfo.talentPoint > 0 then
  60. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ADD_ANGEL_TALENT_POINT, { talentGroup = self.angelTalent.talentGroup, talentId = self.angelTalent.id })
  61. else
  62. SL:MessageTip({ id = 242 })
  63. end
  64. end
  65. function this:ClosePanel()
  66. GUI:UIPanel_Close("dev/outui/Archangel/Panel/KLTalentTip/KLTalentTipPanel")
  67. end
  68. function this:RES_ANGEL_TALENT_INFO(_, message)
  69. if message.talentInfo and message.talentInfo[tostring(self.angelTalent.talentGroup)] and message.talentInfo[tostring(self.angelTalent.talentGroup)][tostring(self.angelTalent.id)] then
  70. self.args.currentLv = message.talentInfo[tostring(self.angelTalent.talentGroup)][tostring(self.angelTalent.id)]
  71. self:Refresh()
  72. end
  73. end
  74. function this:Close()
  75. end
  76. return this