HeroHeadIcon.lua 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. local HeroHeadIcon = {}
  2. local RedPointItemCtr = require("Common/RedPointItemCtr")
  3. function HeroHeadIcon:SetActivationHeroIcon(uiOwner, isLeader, cfgData, logicData, head, needStatus, needRedP)
  4. if logicData == nil then
  5. if isLeader then
  6. LogError(cfgData.Id .." logicData is nil")
  7. else
  8. LogError(cfgData.ParterId .." logicData is nil")
  9. end
  10. end
  11. if head == nil then
  12. return
  13. end
  14. local quality
  15. if isLeader then
  16. quality = cfgData.Quality
  17. else
  18. quality = logicData.strengthLevel
  19. end
  20. local natureData = ManagerContainer.CfgMgr:GetNatureDataById(cfgData.NatureId)
  21. CommonUtil.LoadIcon(uiOwner, natureData.Icon, function (sprite)
  22. head.natureIcon.image.sprite = sprite
  23. end)
  24. CommonUtil.LoadIcon(uiOwner, quality == 0 and Constant.Quality_White_Head_Frame_Icon or Constant.Quality_NatureBg_Icons[quality], function (sprite)
  25. head.natureBg.image.sprite = sprite
  26. end)
  27. CommonUtil.LoadIcon(uiOwner, quality == 0 and Constant.Quality_White_Frame_Icon or Constant.Quality_Frame_Icons[quality], function (sprite)
  28. head.frame.image.sprite = sprite
  29. end)
  30. if isLeader then
  31. local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
  32. if headIcon then
  33. CommonUtil.LoadIcon(uiOwner, headIcon, function (sprite)
  34. head.head.image.sprite = sprite
  35. end)
  36. end
  37. else
  38. CommonUtil.LoadIcon(uiOwner, cfgData.HeadId, function (sprite)
  39. head.head.image.sprite = sprite
  40. end)
  41. end
  42. CommonUtil.LoadIcon(uiOwner, cfgData.JobIcon, function (sprite)
  43. head.jobIcon.image.sprite = sprite
  44. end)
  45. head.leader:SetActive(isLeader)
  46. head.battle:SetActive(not isLeader and logicData.isBattle and needStatus ~= false)
  47. RedPointItemCtr:SetData(uiOwner, head.redPointItem, needRedP, Enum.HeroRPSource.HeadIcon)
  48. local baseLv = 0
  49. if isLeader then
  50. baseLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  51. else
  52. baseLv = logicData.baseLevel
  53. end
  54. head.textLV.text.text = "LV."..baseLv
  55. end
  56. function HeroHeadIcon:SetInactivationHeroIcon(uiOwner, cfgData, head, logicData)
  57. local quality = 0
  58. if logicData ~= nil then
  59. if logicData.id == 1 then
  60. quality = cfgData.Quality
  61. local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
  62. if headIcon then
  63. CommonUtil.LoadIcon(uiOwner, headIcon, function (sprite)
  64. head.head.image.sprite = sprite
  65. end)
  66. end
  67. else
  68. quality = logicData.strengthLevel
  69. CommonUtil.LoadIcon(uiOwner, cfgData.HeadId, function (sprite)
  70. head.head.image.sprite = sprite
  71. end)
  72. end
  73. end
  74. CommonUtil.LoadIcon(uiOwner, quality == 0 and Constant.Quality_White_Head_Frame_Icon or Constant.Quality_NatureBg_Icons[quality], function (sprite)
  75. head.natureBg.image.sprite = sprite
  76. end)
  77. CommonUtil.LoadIcon(uiOwner, quality == 0 and Constant.Quality_White_Frame_Icon or Constant.Quality_Frame_Icons[quality], function (sprite)
  78. head.frame.image.sprite = sprite
  79. end)
  80. CommonUtil.LoadIcon(uiOwner, cfgData.HeadId, function (sprite)
  81. head.head.image.sprite = sprite
  82. end)
  83. CommonUtil.LoadIcon(uiOwner, cfgData.JobIcon, function (sprite)
  84. head.jobIcon.image.sprite = sprite
  85. end)
  86. head.textLV:SetActive(false)
  87. end
  88. function HeroHeadIcon:SetTreasurePartnerHeadIcon(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB)
  89. local id = logicData.id
  90. local cfgData
  91. if id == 1 then
  92. local jobId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
  93. cfgData = ManagerContainer.CfgMgr:GetJobDataById(jobId)
  94. else
  95. local heroData = ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(id)
  96. cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(heroData.configId)
  97. end
  98. self:SetInactivationHeroIcon(wnd, cfgData, itemlua, CommonUtil.GetHeroLogicDataByUid(id))
  99. itemlua.textLV:SetActive(true)
  100. local logicData1 = CommonUtil.GetHeroLogicDataByUid(id)
  101. itemlua.textLV.text.text = "LV."..logicData1.baseLevel
  102. itemlua.checkmark:SetActive(enterType == Enum.ItemIEnterType.Treasure and logicData.selected)
  103. itemlua.treasureState:SetActive(enterType == Enum.ItemIEnterType.Treasure and not logicData.treasureFree)
  104. --if enterType == Enum.ItemIEnterType.Treasure then
  105. -- itemlua.btnRemove.button.interactable = logicData.selected
  106. -- wnd.uiBase:AddButtonUniqueEventListener(itemlua.btnRemove.button, wnd, wnd.RemoveCurSelectedHero, logicData, itemlua)
  107. --end
  108. if onClickOwner and onClickCB then
  109. if logicData.treasureFree then
  110. itemlua.head.button.interactable = true
  111. onClickOwner.uiBase:AddButtonUniqueEventListener(itemlua.head.button, onClickOwner, onClickCB, logicData, itemlua)
  112. else
  113. itemlua.head.button.interactable = false
  114. end
  115. else
  116. itemlua.head.button.interactable = false
  117. end
  118. end
  119. return HeroHeadIcon