UIBattleReplayView.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. local UIBattleReplayView = require("UIBattle/UIBattleReplayView_Generate")
  2. function UIBattleReplayView:OnAwake(data)
  3. self.controller = require("UIBattle/UIBattleReplayCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIBattleReplayView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Fetch_BattleRecord_Success,self,self.OnFetchBattleRecordOk);
  9. end
  10. function UIBattleReplayView:FillContent(data, uiBase)
  11. self.uiBase = uiBase
  12. local gameObject = self.uiBase:GetRoot()
  13. if gameObject ~= nil then
  14. self.gameObject = gameObject
  15. self.transform = gameObject.transform
  16. end
  17. self:InitGenerate(self.transform, data)
  18. self:Init()
  19. end
  20. function UIBattleReplayView:Init()
  21. self:InitPassedPlayerNode(self.LatestNode,self.controller:LatestData())
  22. self:InitPassedPlayerNode(self.LowestNode,self.controller:LowestData())
  23. end
  24. function UIBattleReplayView:InitPassedPlayerNode(node,playerData)
  25. if playerData == nil then
  26. node:SetActive(false)
  27. return
  28. end
  29. node.costTime.text.text = "通关用时:" .. playerData.battle_time .. "s"
  30. if playerData.record_time~= nil then
  31. node.passedDateTime.text.text = DateTimeUtil.convertTime2Str(playerData.record_time,"yyyy-MM-dd")
  32. else
  33. node.passedDateTime.text.text = ""
  34. end
  35. node.playerName.text.text = CommonUtil.GetVaildNickName(playerData.nick_name)
  36. node.fightPower.text.text = tostring(playerData.fight_power)
  37. node.headItem.levelText.text.text = tostring(playerData.level)
  38. node.headItem.headFrame.gameObject:SetActive(false);
  39. local _headFrameData = CommonUtil.GetHeadFrameDataById(playerData.head_frame_id);
  40. local _headFrame = GlobalConfig.Instance:GetConfigStrValue(211);
  41. if _headFrameData then _headFrame = _headFrameData.HeadFrameIcon; end
  42. CommonUtil.LoadIcon(self, _headFrame, function (sprite)
  43. node.headItem.frame.image.sprite = sprite
  44. end)
  45. local jobCfg = ManagerContainer.CfgMgr:GetJobDataById(playerData.config_id)
  46. if jobCfg ~= nil then
  47. CommonUtil.LoadIcon(self, jobCfg.JobIcon, function (sprite)
  48. node.headItem.jobIcon.image.sprite = sprite
  49. end)
  50. end
  51. local head = CommonUtil.GetPlayerHeadIcon(playerData)
  52. if head ~= nil and head ~= "" then
  53. CommonUtil.LoadIcon(self, head, function (sprite)
  54. node.headItem.head.image.sprite = sprite
  55. end)
  56. else
  57. node.headItem.head.image.sprite = nil
  58. end
  59. local frameUrl = GlobalConfig.Instance:GetConfigStrValue(179)
  60. CommonUtil.LoadIcon(self, frameUrl, function (sprite)
  61. node.headItem.headFrame.image.sprite = sprite
  62. end)
  63. self.uiBase:AddButtonUniqueEventListener(node.replayBtn.button,self, self.OnClickReplay,playerData.battle_record_id,playerData.battle_time,playerData.fight_power,playerData.nick_name)
  64. self.uiBase:AddButtonUniqueEventListener(node.headItem.head.button,self, self.OnClickViewPlayer,playerData.uid)
  65. node:SetActive(true)
  66. end
  67. function UIBattleReplayView:RemoveEventListener()
  68. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  69. end
  70. function UIBattleReplayView:AddUIEventListener()
  71. self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickClose)
  72. self.uiBase:AddButtonEventListener(self.btnClose.button,self, self.OnClickClose)
  73. end
  74. function UIBattleReplayView:OnHide()
  75. end
  76. function UIBattleReplayView:OnShow(data)
  77. self.controller:SetData(data)
  78. end
  79. function UIBattleReplayView:OnClose()
  80. end
  81. function UIBattleReplayView:OnDispose()
  82. self.controller:OnDispose()
  83. end
  84. function UIBattleReplayView:OnClickClose()
  85. ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleReplay)
  86. end
  87. function UIBattleReplayView:OnClickReplay(btn,params)
  88. local battleRecordUid = params[0]
  89. local battleTime = params[1]
  90. local fightPower = params[2]
  91. local nickName = params[3]
  92. self.curReqBattleRecordId = battleRecordUid
  93. self.curnickName = nickName
  94. ManagerContainer.LuaBattleMgr:SendBattleDetailReq(battleRecordUid,battleTime,fightPower)
  95. end
  96. function UIBattleReplayView:OnClickViewPlayer(btn,params)
  97. local uid = params[0]
  98. if uid ~= nil and uid > 0 then
  99. ManagerContainer.LuaUIMgr:OpenRoleMessagePanel(uid)
  100. end
  101. end
  102. function UIBattleReplayView:OnFetchBattleRecordOk(battleRecordUid,battleRecordStr)
  103. ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleReplay)
  104. if battleRecordUid == self.curReqBattleRecordId then
  105. function LoadRecord()
  106. local strHeroName = CommonUtil.GetVaildNickName(self.curnickName)
  107. LuaBattleBridge.ClickReplayBattle(battleRecordStr)
  108. LuaBattleBridge.SetReplayHeroActorName(strHeroName)
  109. end
  110. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UILoading,{loadingId = 3, FucOpenFinishedcb = LoadRecord })
  111. end
  112. end
  113. return UIBattleReplayView