UIRoleChangeJobTipsCtr.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. local UIRoleChangeJobTipsCtr = class("UIRoleChangeJobTipsCtr", require("UICtrBase"))
  2. local isLeader = true
  3. local freeLv
  4. local changeCost
  5. function UIRoleChangeJobTipsCtr:Init(view)
  6. self.view = view
  7. end
  8. function UIRoleChangeJobTipsCtr:SetData(data)
  9. self.asyncIdx = 0
  10. if data == nil then return end
  11. self.data = data
  12. isLeader = data == 1
  13. local val = GlobalConfig.Instance:GetConfigStrValue(272)
  14. if val ~= "" and val ~= nil then
  15. freeLv = CommonUtil.DeserializeGlobalStrToTable(val)
  16. end
  17. local val = GlobalConfig.Instance:GetConfigStrValue(273)
  18. if val ~= "" and val ~= nil then
  19. changeCost = CommonUtil.DeserializeGlobalStrToTable(val)
  20. end
  21. end
  22. function UIRoleChangeJobTipsCtr:GetAsyncIdx()
  23. self.asyncIdx = self.asyncIdx + 1
  24. return self.asyncIdx
  25. end
  26. function UIRoleChangeJobTipsCtr:GetData()
  27. return self.data
  28. end
  29. function UIRoleChangeJobTipsCtr:SetIdx(idx)
  30. self.curIdx = idx
  31. end
  32. function UIRoleChangeJobTipsCtr:SendChangeJobReq(jobId)
  33. local heroId = self.data
  34. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_HERO_REPLACE_JOB_REQ, {hero_id = heroId, job_id = jobId})
  35. end
  36. function UIRoleChangeJobTipsCtr:GetHeroCurJobId()
  37. local logicData
  38. if isLeader then
  39. logicData = ManagerContainer.DataMgr.UserData:GetHeroData()
  40. else
  41. logicData = ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(self.data)
  42. end
  43. return logicData.configId
  44. end
  45. function UIRoleChangeJobTipsCtr:GetSameStageJobDatas(jobId)
  46. local jobDatas
  47. if isLeader then
  48. jobDatas = ManagerContainer.CfgMgr:GetSameStageJobs(jobId)
  49. else
  50. jobDatas = ManagerContainer.CfgMgr:GetPartnerSameStageJobs(jobId)
  51. end
  52. self.jobDatas = jobDatas
  53. return jobDatas
  54. end
  55. function UIRoleChangeJobTipsCtr:IsLeader()
  56. return isLeader
  57. end
  58. function UIRoleChangeJobTipsCtr:GetSkillList()
  59. local skillList = nil
  60. local job = self.jobDatas[self.curIdx]
  61. if isLeader then
  62. skillList = ManagerContainer.CfgMgr:GetSkillTreeByFeature(job.JobType, job.JobBranch, job.JobStage)
  63. else
  64. skillList = ManagerContainer.CfgMgr:GetParterSkillTreeByFeature(job.JobType, job.ParterId)
  65. end
  66. if skillList then
  67. table.sort(skillList, function(a, b)
  68. return a.Pos < b.Pos
  69. end)
  70. end
  71. self.skillList = skillList
  72. return skillList
  73. end
  74. function UIRoleChangeJobTipsCtr:GetSkillItemInfoByIndex(itemIndex)
  75. return self.skillList and self.skillList[itemIndex + 1] or nil
  76. end
  77. function UIRoleChangeJobTipsCtr:GetCurChangeCost()
  78. local logicData
  79. local curStage = 1
  80. if isLeader then
  81. logicData = ManagerContainer.DataMgr.UserData:GetHeroData()
  82. local jobData = ManagerContainer.CfgMgr:GetJobDataById(logicData.configId)
  83. curStage = jobData.JobStage
  84. else
  85. logicData = ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(self.data)
  86. local jobData = ManagerContainer.CfgMgr:GetPartnerDataById(logicData.configId)
  87. curStage = jobData.JobStage
  88. end
  89. local curLv = logicData.baseLevel
  90. if not freeLv and not changeCost then
  91. return true
  92. end
  93. if curStage <= 1 and curLv <= tonumber(freeLv[curStage]) then
  94. return true
  95. end
  96. return changeCost[curStage]
  97. end
  98. function UIRoleChangeJobTipsCtr:OnDispose()
  99. self.data = nil
  100. self.view = nil
  101. self.skillList = nil
  102. self.jobDatas = nil
  103. end
  104. return UIRoleChangeJobTipsCtr