UIExpeditionArrangeCtr.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. local UIExpeditionArrangeCtr = class("UIExpeditionArrangeCtr", require("UICtrBase"))
  2. function UIExpeditionArrangeCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIExpeditionArrangeCtr:SetData(data)
  6. self:InitTeamData()
  7. self.asyncIdx = 0
  8. if data == nil then return end
  9. self.data = data
  10. end
  11. function UIExpeditionArrangeCtr:GetAsyncIdx()
  12. self.asyncIdx = self.asyncIdx + 1
  13. return self.asyncIdx
  14. end
  15. function UIExpeditionArrangeCtr:GetData()
  16. return self.data
  17. end
  18. function UIExpeditionArrangeCtr:OnDispose()
  19. self.data = nil
  20. self.view = nil
  21. end
  22. function UIExpeditionArrangeCtr:InitTeamData()
  23. local mainRoleData = ManagerContainer.DataMgr.UserData:GetMainRoleData()
  24. self.teamMembers = {}
  25. self.teamMembers[#self.teamMembers + 1] =
  26. {
  27. uid = mainRoleData.id,
  28. cfgId = ManagerContainer.DataMgr.UserData:GetUserRoleId(),
  29. mainRole = true,
  30. owned = true,
  31. logicData = mainRoleData,
  32. cfgData = ManagerContainer.CfgMgr:GetRoleDataById(ManagerContainer.DataMgr.UserData:GetUserRoleId())
  33. }
  34. _allPartners= {}
  35. local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
  36. for _,v in pairs(partnerDatas) do
  37. if v ~= nil then
  38. _allPartners[#_allPartners + 1] = v
  39. end
  40. end
  41. if _allPartners ~= nil then
  42. self:SortInterestLit(_allPartners)
  43. for i=1, #_allPartners do
  44. local partner = _allPartners[i]
  45. self.teamMembers[#self.teamMembers + 1] = {
  46. uid = partner.id,
  47. cfgId = partner.configId,
  48. mainRole = false,
  49. owned = partner.owned,
  50. logicData = ManagerContainer.DataMgr.UserData:GetHeroData(partner.id),
  51. cfgData = ManagerContainer.CfgMgr:GetPartnerDataById(partner.configId)
  52. }
  53. end
  54. end
  55. end
  56. function UIExpeditionArrangeCtr:SortInterestLit(allPartners)
  57. if allPartners == nil or #allPartners < 2 then
  58. return
  59. end
  60. table.sort(
  61. allPartners,
  62. function(a, b)
  63. if a.owned and b.owned == false then
  64. return true
  65. end
  66. if a.owned == false and b.owned then
  67. return false
  68. end
  69. if a.owned and b.owned then
  70. return a.jobType < b.jobType
  71. end
  72. return a.jobType < b.jobType
  73. end
  74. )
  75. end
  76. function UIExpeditionArrangeCtr:GetTeams()
  77. return self.teamMembers
  78. end
  79. function UIExpeditionArrangeCtr:GetHeroData(uid)
  80. if self.teamMembers == nil then
  81. return nil
  82. end
  83. for i=1, #self.teamMembers do
  84. if self.teamMembers[i].uid == uid then
  85. return self.teamMembers[i]
  86. end
  87. end
  88. return nil
  89. end
  90. function UIExpeditionArrangeCtr:GetHeroIdx(uid)
  91. if self.teamMembers == nil then
  92. return -1
  93. end
  94. for i=1, #self.teamMembers do
  95. if self.teamMembers[i].uid == uid then
  96. return i
  97. end
  98. end
  99. return -1
  100. end
  101. return UIExpeditionArrangeCtr