UIDojoMatchView.lua 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. local UIDojoMatchView = require("UIDojo/UIDojoMatchView_Generate")
  2. function UIDojoMatchView:OnAwake(data)
  3. self.controller = require("UIDojo/UIDojoMatchCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIDojoMatchView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Loading_Progress, self, self.OnLoadingProgress)
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Loading_Complete, self, self.OnLoadingComplete)
  10. end
  11. function UIDojoMatchView:FillContent(data, uiBase)
  12. self.uiBase = uiBase
  13. local gameObject = self.uiBase:GetRoot()
  14. if gameObject ~= nil then
  15. self.gameObject = gameObject
  16. self.transform = gameObject.transform
  17. end
  18. self:InitGenerate(self.transform, data)
  19. self.emptyNode:SetActive(true)
  20. self:Init()
  21. end
  22. function UIDojoMatchView:Init()
  23. self.MatchingNode:SetActive(false)
  24. self.VSNode:SetActive(true)
  25. self:SetOurMembers()
  26. self:SetEnemyMembers()
  27. self.progress.image.fillAmount = 0
  28. self.progressTxt.text.text = "0%"
  29. ManagerContainer.LuaTimerMgr:AddTimer(1000, 1,self,self.NtfLoaded,nil)
  30. end
  31. function UIDojoMatchView:NtfLoaded()
  32. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loaded_Page_OK)
  33. end
  34. function UIDojoMatchView:SetOurMembers()
  35. local data = self.controller:GetData()
  36. if data then
  37. local ourMembers = data['ourActors']
  38. if ourMembers ~= nil then
  39. CommonUtil.LoopGridViewEleCreateNew(self,
  40. self.rightMemberScrollView.loopVerticalScrollRect,
  41. self.rightContent.gridLayoutGroup,ourMembers,0,self,self.OnUpdateOurMemberData)
  42. end
  43. end
  44. end
  45. function UIDojoMatchView:SetEnemyMembers()
  46. local data = self.controller:GetData()
  47. if data then
  48. local enemyMembers = data['enemyActors']
  49. if enemyMembers ~= nil then
  50. CommonUtil.LoopGridViewEleCreateNew(self,
  51. self.leftMemberScrollView.loopVerticalScrollRect,
  52. self.leftContent.gridLayoutGroup,enemyMembers,0,self,self.OnUpdateEnemyMemberData)
  53. self.emptyNode:SetActive(false)
  54. end
  55. end
  56. end
  57. function UIDojoMatchView:RemoveEventListener()
  58. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  59. end
  60. function UIDojoMatchView:AddUIEventListener()
  61. end
  62. function UIDojoMatchView:OnHide()
  63. end
  64. function UIDojoMatchView:OnShow(data)
  65. self.controller:SetData(data)
  66. self:Init()
  67. end
  68. function UIDojoMatchView:OnClose()
  69. end
  70. function UIDojoMatchView:OnDispose()
  71. self.rightMemberScrollView.loopVerticalScrollRect:ClearCells()
  72. self.leftMemberScrollView.loopVerticalScrollRect:ClearCells()
  73. end
  74. function UIDojoMatchView:OnUpdateOurMemberData(actorLua,idx,actorData)
  75. self:SetActorItemData(actorLua,actorData)
  76. end
  77. function UIDojoMatchView:OnUpdateEnemyMemberData(actorLua,idx,actorData)
  78. self:SetActorItemData(actorLua,actorData)
  79. end
  80. function UIDojoMatchView:SetActorItemData(actorLua,actorData)
  81. if actorLua == nil or actorData == nil then
  82. return
  83. end
  84. CommonUtil.SetPlayerHeadAndFrame(self, actorLua.headItem, actorData,false,actorData.HeadFrameId)
  85. actorLua.name.text.text = actorData.Name
  86. end
  87. function UIDojoMatchView:OnLoadingProgress(progress)
  88. if progress > 1 then
  89. progress = 1
  90. end
  91. self.progress.image.fillAmount = progress
  92. self.progressTxt.text.text = math.floor(progress*100).."%"
  93. end
  94. function UIDojoMatchView:OnLoadingComplete()
  95. self.progress.image.fillAmount = 1
  96. self.progressTxt.text.text = "100%"
  97. ManagerContainer.LuaTimerMgr:AddTimer(300, 1,self,self.OnDelayClose,nil)
  98. end
  99. function UIDojoMatchView:OnDelayClose()
  100. ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIDojoMatch)
  101. end
  102. return UIDojoMatchView