UISkillPreviewCtr.lua 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. local UISkillPreviewCtr = class("UISkillPreviewCtr", require("UICtrBase"))
  2. function UISkillPreviewCtr:Init(view)
  3. self.view = view
  4. end
  5. ---@param data table 数据结构为 {heroId = 1, id = 1} id:主角为JobId, 伙伴为ParterId
  6. function UISkillPreviewCtr:SetData(data)
  7. self.asyncIdx = 0
  8. if data == nil then return end
  9. self.data = data
  10. self:InitSkillList()
  11. end
  12. function UISkillPreviewCtr:GetAsyncIdx()
  13. self.asyncIdx = self.asyncIdx + 1
  14. return self.asyncIdx
  15. end
  16. function UISkillPreviewCtr:GetData()
  17. return self.data
  18. end
  19. function UISkillPreviewCtr:OnDispose()
  20. self.data = nil
  21. self.view = nil
  22. self.skillList = nil
  23. end
  24. function UISkillPreviewCtr:GetHeroId()
  25. return self.data.heroId
  26. end
  27. function UISkillPreviewCtr:GetJobId()
  28. return self.data.id
  29. end
  30. function UISkillPreviewCtr:IsLeaderHero()
  31. return ManagerContainer.DataMgr.UserData:IsLeaderHero(self:GetHeroId())
  32. end
  33. function UISkillPreviewCtr:InitSkillList()
  34. local skillList = nil
  35. if self:IsLeaderHero() then
  36. local job = ManagerContainer.CfgMgr:GetJobDataById(self:GetJobId())
  37. skillList = ManagerContainer.CfgMgr:GetSkillTreeByFeature(job.JobType, job.JobBranch, job.JobStage)
  38. else
  39. local job = ManagerContainer.CfgMgr:GetPartnerDataById(self:GetJobId())
  40. skillList = ManagerContainer.CfgMgr:GetParterSkillTreeByFeature(job.JobType, job.ParterId)
  41. end
  42. if skillList then
  43. table.sort(skillList, function(a, b)
  44. return a.Pos < b.Pos
  45. end)
  46. end
  47. self.skillList = skillList
  48. end
  49. function UISkillPreviewCtr:GetSkillList()
  50. return self.skillList
  51. end
  52. function UISkillPreviewCtr:GetSkillListCount()
  53. return self.skillList and #self.skillList or 0
  54. end
  55. function UISkillPreviewCtr:GetSkillItemInfoByIndex(itemIndex)
  56. return self.skillList and self.skillList[itemIndex + 1] or nil
  57. end
  58. return UISkillPreviewCtr