UIRoleChangeJobCtr.lua 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. local UIRoleChangeJobCtr = class("UIRoleChangeJobCtr", require("UICtrBase"))
  2. local isLeader = true
  3. function UIRoleChangeJobCtr:Init(view)
  4. self.view = view
  5. end
  6. function UIRoleChangeJobCtr:SetData(data)
  7. self.asyncIdx = 0
  8. if data == nil then return end
  9. self.data = data
  10. isLeader = data == 1
  11. end
  12. function UIRoleChangeJobCtr:GetAsyncIdx()
  13. self.asyncIdx = self.asyncIdx + 1
  14. return self.asyncIdx
  15. end
  16. function UIRoleChangeJobCtr:GetData()
  17. return self.data
  18. end
  19. function UIRoleChangeJobCtr:SetIdx(idx)
  20. self.curIdx = idx
  21. end
  22. function UIRoleChangeJobCtr:SendChangeJobReq(jobId)
  23. local heroId = self.data
  24. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_HERO_CHANGE_JOB_REQ, {hero_id = heroId, job_id = jobId})
  25. end
  26. function UIRoleChangeJobCtr:GetHeroCurJobId()
  27. local logicData
  28. if isLeader then
  29. logicData = ManagerContainer.DataMgr.UserData:GetHeroData()
  30. else
  31. logicData = ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(self.data)
  32. end
  33. return logicData.configId
  34. end
  35. function UIRoleChangeJobCtr:GetNextJobDatas(jobId)
  36. local nextJobDatas
  37. if isLeader then
  38. nextJobDatas = ManagerContainer.CfgMgr:GetNextJobs(jobId)
  39. else
  40. nextJobDatas = ManagerContainer.CfgMgr:GetPartnerNextJobs(jobId)
  41. end
  42. self.nextJobDatas = nextJobDatas
  43. return nextJobDatas
  44. end
  45. function UIRoleChangeJobCtr:IsLeader()
  46. return isLeader
  47. end
  48. function UIRoleChangeJobCtr:GetSkillList()
  49. local skillList = nil
  50. local job = self.nextJobDatas[self.curIdx]
  51. if isLeader then
  52. skillList = ManagerContainer.CfgMgr:GetSkillTreeByFeature(job.JobType, job.JobBranch, job.JobStage)
  53. else
  54. skillList = ManagerContainer.CfgMgr:GetParterSkillTreeByFeature(job.JobType, job.ParterId)
  55. end
  56. if skillList then
  57. table.sort(skillList, function(a, b)
  58. return a.Pos < b.Pos
  59. end)
  60. end
  61. self.skillList = skillList
  62. return skillList
  63. end
  64. function UIRoleChangeJobCtr:GetSkillItemInfoByIndex(itemIndex)
  65. return self.skillList and self.skillList[itemIndex + 1] or nil
  66. end
  67. function UIRoleChangeJobCtr:OnDispose()
  68. self.data = nil
  69. self.view = nil
  70. self.skillList = nil
  71. self.nextJobDatas = nil
  72. end
  73. return UIRoleChangeJobCtr