TitleListItemCtr.lua 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. local TitleListItemCtr = {}
  2. function TitleListItemCtr:SetData(wnd, item, logicData)
  3. local titleId = logicData.titleId
  4. local state = logicData.state
  5. local titleCfgData = ManagerContainer.CfgMgr:GetDesignationCfgById(titleId)
  6. if not titleCfgData then
  7. LogError("titleCfgData is not exist by TitleListItemCtr")
  8. return
  9. end
  10. item.taskDsc.text.text = I18N.T(titleCfgData.TaskConditionDesc)
  11. item.target:SetActive(state == 1 and titleCfgData.IfShowTaskNum == 1)
  12. item.target.text.text = logicData.currCount.."/"..logicData.totalCount
  13. if state > 2 and titleCfgData.Time > 0 then --称号卸下状态(即已激活)并为时限称号 则显示剩余时间
  14. local servertime = ManagerContainer.LuaTimerMgr:CurLuaServerTime()
  15. local time = (logicData.endTime - (servertime/1000))/60/60
  16. time = type(time) == "number" and time or #time
  17. if time <= 0 then
  18. item.timeLimit.text.text = I18N.SetLanguageValue("LessOneHour")
  19. else
  20. local h = math.floor(time % 24)
  21. local d = math.floor(time / 24)
  22. item.timeLimit.text.text = I18N.SetLanguageValue("DesignationTime",d,h)
  23. end
  24. else
  25. item.timeLimit.text.text = I18N.T(titleCfgData.TimeDesc)
  26. end
  27. item.btnEquip:SetActive(state == 4)
  28. item.btnActive:SetActive(state == 2)
  29. local parent = item.btnActive.transform
  30. local redPoint = parent:Find("redPoint")
  31. if redPoint then
  32. redPoint.gameObject:SetActive(state == 2)
  33. else
  34. if state == 2 then
  35. self:CreateRP(parent, redPoint, "redPoint", "Common/UIRedPointRP")
  36. end
  37. end
  38. item.btnRemove:SetActive(state == 3)
  39. item.equipLight:SetActive(state == 3)
  40. item.mask:SetActive(state == 1)
  41. CommonUtil.LoadIcon(wnd, titleCfgData.ChatSource, function (sprite)
  42. item.titleImg.image.sprite = sprite
  43. end)
  44. item.property1:SetActive(false)
  45. item.property2:SetActive(false)
  46. local attrs = titleCfgData.Attribute
  47. if attrs and #attrs > 0 then
  48. for i = 1, #attrs do
  49. if item["property"..i] and item["PropertyText"..i] then
  50. item["property"..i]:SetActive(true)
  51. item["property"..i].text.text = I18N.SetLanguageValue("Attr_"..attrs[i][1])
  52. item["PropertyText"..i].text.text = CommonUtil.HeroAttrFormatValue(attrs[i][1], attrs[i][2])
  53. end
  54. end
  55. end
  56. wnd.uiBase:AddButtonUniqueEventListener(item.btnEquip.button, wnd, wnd.OnBtnEquipClick, logicData)
  57. wnd.uiBase:AddButtonUniqueEventListener(item.btnActive.button, wnd, wnd.OnBtnActiveClick, logicData)
  58. wnd.uiBase:AddButtonUniqueEventListener(item.btnRemove.button, wnd, wnd.OnBtnRemoveClick, logicData)
  59. end
  60. function TitleListItemCtr:CreateRP(parent, redPoint, name, path)
  61. local go = ManagerContainer.ResMgr:GetGoFromPool(Constants.UIPath, path)
  62. if go then
  63. redPoint = go.transform
  64. redPoint:SetParent(parent)
  65. redPoint.localRotation = Quaternion.identity
  66. redPoint.localScale = Vector3.one
  67. local rectTransform = redPoint:GetComponent(Enum.TypeInfo.RectTransform)
  68. rectTransform.anchoredPosition3D = Vector3(90, 35, 0)
  69. go.name = name
  70. end
  71. end
  72. return TitleListItemCtr