UITipsSkillView.lua 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. local UITipsSkillView = require("UITips/UITipsSkillView_Generate")
  2. local ColorExtension = require("ColorExtension")
  3. local targetData
  4. function UITipsSkillView:OnAwake(data)
  5. self.controller = require("UITips/UITipsSkillCtr"):new()
  6. self.controller:Init(self)
  7. self.controller:SetData(data)
  8. end
  9. function UITipsSkillView:AddEventListener()
  10. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  11. end
  12. function UITipsSkillView:FillContent(data, uiBase)
  13. self.uiBase = uiBase
  14. local gameObject = self.uiBase:GetRoot()
  15. if gameObject ~= nil then
  16. self.gameObject = gameObject
  17. self.transform = gameObject.transform
  18. end
  19. self:InitGenerate(self.transform, data)
  20. self:Init()
  21. end
  22. function UITipsSkillView:Init()
  23. targetData = self.controller:GetData()
  24. self:InitSkill()
  25. end
  26. function UITipsSkillView:InitSkill()
  27. local skillId = targetData.cfgId
  28. local skillLevel = targetData.num or 0
  29. local skillCfgData = ManagerContainer.CfgMgr:GetSkillCfgByType(Enum.SkillType.Active, skillId, skillLevel)
  30. local skillLevelCfgId = CommonUtil.GetSkillCfgIdByIdAndLv(skillId, skillLevel)
  31. local skillLevelCfgData = ManagerContainer.CfgMgr:GetSkillLevelCfgById(skillLevelCfgId)
  32. local skillNextLevelCfgId = CommonUtil.GetSkillCfgIdByIdAndLv(skillId, skillLevel + 1)
  33. local skillNextLevelCfgData = ManagerContainer.CfgMgr:GetSkillLevelCfgById(skillNextLevelCfgId)
  34. local skillShowData = ManagerContainer.CfgMgr:GetSkillShowCfgById(skillId)
  35. CommonUtil.SetCommonSkillItem(self, self.skillItem, skillId, skillLevel)
  36. if skillCfgData then
  37. self.textName.text.text = string.formatbykey(skillCfgData.Name)
  38. if skillCfgData.SpcSkillDec then
  39. self.dscGai.txt.text.text = self:GetSpcSkillDesc(skillCfgData.SpcSkillDec, skillLevel)
  40. self.dscGai:SetActive(true)
  41. else
  42. self.dscGai:SetActive(false)
  43. end
  44. else
  45. self.textName.text.text = ''
  46. self.dscGai:SetActive(false)
  47. end
  48. if skillLevelCfgData then
  49. self.dscCurrent.level.text.text = skillLevel
  50. self.type1.text2.text.text = tostring(skillLevelCfgData.CD) .. string.formatbykey('S')
  51. self.type2.text2.text.text = tostring(skillLevelCfgData.Cost) .. string.formatbykey('sp')
  52. local descParam = skillLevelCfgData.DescParam
  53. if descParam then
  54. if type(descParam) == 'table' then
  55. self.dscCurrent.txt.text.text = string.formatbykey(skillLevelCfgData.Desc, unpack(descParam))
  56. else
  57. self.dscCurrent.txt.text.text = string.formatbykey(skillLevelCfgData.Desc, descParam)
  58. end
  59. else
  60. self.dscCurrent.txt.text.text = string.formatbykey(skillLevelCfgData.Desc)
  61. end
  62. else
  63. self.type1.text2.text.text = '-'
  64. self.type2.text2.text.text = '-'
  65. self.dscCurrent.txt.text.text = ''
  66. end
  67. self.dscNext:SetActive(not targetData.isMax)
  68. self.maxLevel:SetActive(targetData.isMax)
  69. if not targetData.isMax and skillNextLevelCfgData then
  70. self.dscNext.level.text.text = skillLevel + 1
  71. local descParam = skillNextLevelCfgData.DescParam
  72. if descParam then
  73. if type(descParam) == 'table' then
  74. self.dscNext.txt.text.text = string.formatbykey(skillNextLevelCfgData.Desc, unpack(descParam))
  75. else
  76. self.dscNext.txt.text.text = string.formatbykey(skillNextLevelCfgData.Desc, descParam)
  77. end
  78. else
  79. self.dscNext.txt.text.text = string.formatbykey(skillNextLevelCfgData.Desc)
  80. end
  81. end
  82. local tags = nil
  83. local num = 0
  84. if skillShowData then
  85. tags = skillShowData.Label
  86. if tags then
  87. if type(tags[1]) == 'number' then
  88. tags = {tags}
  89. end
  90. num = #tags
  91. end
  92. end
  93. for i = 1, 4 do
  94. local skillTagItem = self['skillTagItem' .. i]
  95. if skillTagItem then
  96. if i <= num then
  97. local tagId = tags[i][1]
  98. local colorId = tags[i][2]
  99. skillTagItem:SetActive(true)
  100. skillTagItem.bgColorID.image.color = ColorExtension.HexStringToColor(I18N.SetLanguageValue('ColorID' .. tostring(colorId)))
  101. skillTagItem.textSkillID.uILocalizeScript:SetContent('SkillTagID' .. tostring(tagId))
  102. else
  103. skillTagItem:SetActive(false)
  104. end
  105. end
  106. end
  107. self.type1:SetActive(true)
  108. self.type2:SetActive(true)
  109. self.type1.text1.uILocalizeScript:SetContent('SkillCD1')
  110. self.type2.text1.uILocalizeScript:SetContent('SkillCost')
  111. self.skillTag:SetActive(true)
  112. end
  113. function UITipsSkillView:GetSpcSkillDesc(spcSkillDecs, skillLevel)
  114. if not spcSkillDecs then
  115. return ''
  116. end
  117. local content1 = nil
  118. local content2 = nil
  119. local spcSkillDec
  120. for i = 1, #spcSkillDecs do
  121. spcSkillDec = spcSkillDecs[i]
  122. if spcSkillDec then
  123. if spcSkillDec[1] then
  124. if spcSkillDec[1] <= skillLevel then
  125. if content1 then
  126. content1 = content1 .. '\n' .. string.formatbykey(spcSkillDec[2])
  127. else
  128. content1 = string.formatbykey(spcSkillDec[2])
  129. end
  130. else
  131. if content2 then
  132. content2 = content2 .. '\n' .. string.formatbykey(spcSkillDec[2])
  133. else
  134. content2 = string.formatbykey(spcSkillDec[2])
  135. end
  136. end
  137. end
  138. end
  139. end
  140. if content1 then
  141. content1 = string.format(Constant.GreenColorText, content1)
  142. end
  143. if content2 then
  144. if content1 then
  145. content1 = content1 .. '\n' .. content2
  146. else
  147. content1 = content2
  148. end
  149. end
  150. return tostring(content1)
  151. end
  152. function UITipsSkillView:RemoveEventListener()
  153. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  154. end
  155. function UITipsSkillView:AddUIEventListener()
  156. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickClose)
  157. end
  158. function UITipsSkillView:OnClickClose(button, params)
  159. self:UIClose()
  160. end
  161. function UITipsSkillView:OnHide()
  162. end
  163. function UITipsSkillView:OnShow(data)
  164. self.controller:SetData(data)
  165. end
  166. function UITipsSkillView:OnClose()
  167. end
  168. function UITipsSkillView:OnDispose()
  169. self.controller:OnDispose()
  170. end
  171. return UITipsSkillView