UISkillPreviewView.lua 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. local UISkillPreviewView = require("UISkill/UISkillPreviewView_Generate")
  2. local ColorExtension = require("ColorExtension")
  3. function UISkillPreviewView:OnAwake(data)
  4. self.controller = require("UISkill/UISkillPreviewCtr"):new()
  5. self.controller:Init(self)
  6. self.controller:SetData(data)
  7. end
  8. function UISkillPreviewView:AddEventListener()
  9. end
  10. function UISkillPreviewView:FillContent(data, uiBase)
  11. self.uiBase = uiBase
  12. local gameObject = self.uiBase:GetRoot()
  13. if gameObject ~= nil then
  14. self.gameObject = gameObject
  15. self.transform = gameObject.transform
  16. end
  17. self:InitGenerate(self.transform, data)
  18. self:Init()
  19. end
  20. function UISkillPreviewView:Init()
  21. self.skillList.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
  22. return self:GetItemByRowColumn(gridView, itemIndex, row, column)
  23. end, nil)
  24. self:RefreshList()
  25. end
  26. function UISkillPreviewView:RemoveEventListener()
  27. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  28. end
  29. function UISkillPreviewView:AddUIEventListener()
  30. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  31. --self.uiBase:AddButtonUniqueEventListener(self.alpha.button, self, self.OnClickCloseBtn)
  32. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
  33. self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
  34. end
  35. function UISkillPreviewView:OnHide()
  36. end
  37. function UISkillPreviewView:OnShow(data)
  38. self.controller:SetData(data)
  39. self:RefreshList()
  40. end
  41. function UISkillPreviewView:OnClose()
  42. end
  43. function UISkillPreviewView:OnDispose()
  44. self.skillList.loopGridView:Dispose()
  45. end
  46. function UISkillPreviewView:RefreshList()
  47. local count = self.controller:GetSkillListCount()
  48. local loopGridView = self.skillList.loopGridView
  49. if loopGridView.ItemTotalCount == count then
  50. loopGridView:SetListItemCount(0, true)
  51. loopGridView:SetListItemCount(count, true)
  52. else
  53. loopGridView:SetListItemCount(count, true)
  54. end
  55. end
  56. function UISkillPreviewView:GetItemByRowColumn(gridView, itemIndex, row, column)
  57. local item = gridView:NewListViewItem('SkillPreviewItem')
  58. local itemlua = CommonUtil.BindGridViewItem2Lua(self, 'SkillPreviewItem', item.gameObject)
  59. if not itemlua then return nil end
  60. itemlua.skillItem.icon.image.sprite = nil
  61. local skillData = self.controller:GetSkillItemInfoByIndex(itemIndex)
  62. if skillData then
  63. local skillId = skillData.SkillId
  64. local skillType = skillData.SkillType
  65. local skillLv = 1
  66. local skillCfgData = ManagerContainer.CfgMgr:GetSkillCfgByType(skillType, skillId, skillLv)
  67. if skillCfgData then
  68. if skillCfgData.Icon then
  69. CommonUtil.LoadIcon(self, skillCfgData.Icon, function (sprite)
  70. itemlua.skillItem.icon.image.sprite = sprite
  71. end, itemlua, "SkillIconAsyncIdx")
  72. end
  73. itemlua.skillItem.num.text.text = (I18N.SetLanguageValue('Lv') .. tostring(skillLv))
  74. itemlua.skillName.text.text = I18N.SetLanguageValue(skillCfgData.Name)
  75. local skillCfgId = CommonUtil.GetSkillCfgIdByIdAndLv(skillId, skillLv)
  76. local skillLevelCfgData = ManagerContainer.CfgMgr:GetSkillLevelCfgById(skillCfgId)
  77. if skillLevelCfgData then
  78. if skillLevelCfgData.DescParam then
  79. if type(skillLevelCfgData.DescParam) == 'table' then
  80. itemlua.desText.text.text = string.formatbykey(skillLevelCfgData.Desc, unpack(skillLevelCfgData.DescParam))
  81. else
  82. itemlua.desText.text.text = string.formatbykey(skillLevelCfgData.Desc, skillLevelCfgData.DescParam)
  83. end
  84. else
  85. itemlua.desText.text.text = string.formatbykey(skillLevelCfgData.Desc)
  86. end
  87. else
  88. itemlua.desText.text.text = ''
  89. end
  90. local skillShowData = ManagerContainer.CfgMgr:GetSkillShowCfgById(skillId)
  91. local tags = nil
  92. local num = 0
  93. if skillShowData then
  94. tags = skillShowData.Label
  95. if tags then
  96. if type(tags[1]) == 'number' then
  97. tags = {tags}
  98. end
  99. num = #tags
  100. end
  101. end
  102. for i = 1, 4 do
  103. local skillTagItem = itemlua['skillTagItem' .. i]
  104. if skillTagItem then
  105. if i <= num then
  106. local tagId = tags[i][1]
  107. local colorId = tags[i][2]
  108. skillTagItem:SetActive(true)
  109. skillTagItem.bgColorID.image.color = ColorExtension.HexStringToColor(I18N.SetLanguageValue('ColorID' .. tostring(colorId)))
  110. skillTagItem.textSkillID.uILocalizeScript:SetContent('SkillTagID' .. tostring(tagId))
  111. else
  112. skillTagItem:SetActive(false)
  113. end
  114. end
  115. end
  116. return item
  117. end
  118. end
  119. itemlua.skillItem.num.text.text = ''
  120. itemlua.skillName.text.text = ''
  121. itemlua.desText.text.text = ''
  122. itemlua.skillTagItem1:SetActive(false)
  123. itemlua.skillTagItem2:SetActive(false)
  124. itemlua.skillTagItem3:SetActive(false)
  125. itemlua.skillTagItem4:SetActive(false)
  126. LogError('[Wboy] Skill Cfg Data is Error. itemIndex :' .. tostring(itemIndex))
  127. return item
  128. end
  129. function UISkillPreviewView:OnClickCloseBtn()
  130. self:UIClose()
  131. end
  132. return UISkillPreviewView