UIDojo2DCtr.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. local UIDojo2DCtr = class("UIDojo2DCtr", require("UICtrBase"))
  2. function UIDojo2DCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIDojo2DCtr:SetData(data)
  6. self:InitTeamData()
  7. self.asyncIdx = 0
  8. if data == nil then return end
  9. self.data = data
  10. end
  11. function UIDojo2DCtr:GetAsyncIdx()
  12. self.asyncIdx = self.asyncIdx + 1
  13. return self.asyncIdx
  14. end
  15. function UIDojo2DCtr:GetData()
  16. return self.data
  17. end
  18. function UIDojo2DCtr:OnDispose()
  19. self.data = nil
  20. self.view = nil
  21. end
  22. function UIDojo2DCtr: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. local _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 UIDojo2DCtr: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 UIDojo2DCtr:GetTeams()
  77. return self.teamMembers
  78. end
  79. function UIDojo2DCtr:SendMatch()
  80. ManagerContainer.DataMgr.ArenaData:SendMatchReq(ManagerContainer.DataMgr.ArenaData:GetTeamActorIds())
  81. end
  82. function UIDojo2DCtr:GetHeroData(uid)
  83. if self.teamMembers == nil then
  84. return nil
  85. end
  86. for i=1, #self.teamMembers do
  87. if self.teamMembers[i].uid == uid then
  88. return self.teamMembers[i]
  89. end
  90. end
  91. return nil
  92. end
  93. function UIDojo2DCtr:GetHeroIdx(uid)
  94. if self.teamMembers == nil then
  95. return -1
  96. end
  97. for i=1, #self.teamMembers do
  98. if self.teamMembers[i].uid == uid then
  99. return i
  100. end
  101. end
  102. return -1
  103. end
  104. return UIDojo2DCtr