UISummonShowCtr.lua 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. local UISummonShowCtr = class("UISummonShowCtr", require("UICtrBase"))
  2. function UISummonShowCtr:Init(view)
  3. self.view = view
  4. end
  5. function UISummonShowCtr:SetData(data)
  6. self.asyncIdx = 0
  7. self.data = data
  8. self:InitData()
  9. end
  10. function UISummonShowCtr:GetAsyncIdx()
  11. self.asyncIdx = self.asyncIdx + 1
  12. return self.asyncIdx
  13. end
  14. function UISummonShowCtr:GetData()
  15. return self.data
  16. end
  17. function UISummonShowCtr:OnDispose()
  18. self.data = nil
  19. self.view = nil
  20. self.curShowIdx = nil
  21. self.showDatas = nil
  22. end
  23. function UISummonShowCtr:InitData()
  24. self.curShowIdx = 1
  25. local summonData = ManagerContainer.DataMgr.SummonDataMgr:GetSummonData()
  26. local showDatas = {}
  27. local summonCfgData = ManagerContainer.CfgMgr:GetSummonCfgById(summonData.summonType)
  28. if summonCfgData and summonCfgData.ShowItemType and #summonCfgData.ShowItemType > 0 then
  29. if summonData then
  30. if summonData.rewards then
  31. for i = 1, #summonData.rewards do
  32. local reward = summonData.rewards[i]
  33. if reward then
  34. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(reward.cfgId)
  35. if CommonUtil.EleInTable(itemCfgData.ResType, summonCfgData.ShowItemType) then
  36. showDatas[#showDatas + 1] = reward
  37. end
  38. end
  39. end
  40. end
  41. end
  42. end
  43. if #showDatas <= 0 then
  44. self.showDatas = {{cfgId = 1, num = 0}}
  45. else
  46. self.showDatas = showDatas
  47. end
  48. end
  49. function UISummonShowCtr:GetShowData()
  50. return self.showDatas[self.curShowIdx]
  51. end
  52. function UISummonShowCtr:ChangeNextData()
  53. self.curShowIdx = self.curShowIdx + 1
  54. end
  55. function UISummonShowCtr:CheckMustShow()
  56. for i = self.curShowIdx + 1, #self.showDatas do
  57. local showData = self.showDatas[i]
  58. if showData then
  59. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(showData.cfgId)
  60. if itemCfgData and itemCfgData.Quality >= 4 then
  61. self.curShowIdx = i
  62. return true
  63. end
  64. end
  65. end
  66. return false
  67. end
  68. function UISummonShowCtr:GetCurMustShowComplete()
  69. local showData = self:GetShowData()
  70. if showData then
  71. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(showData.cfgId)
  72. if itemCfgData and itemCfgData.Quality >= 4 then
  73. return true
  74. end
  75. end
  76. return false
  77. end
  78. return UISummonShowCtr