UIDojoBattleWinView.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. local UIDojoBattleWinView = require("UIDojo/UIDojoBattleWinView_Generate")
  2. function UIDojoBattleWinView:OnAwake(data)
  3. self.controller = require("UIDojo/UIDojoBattleWinCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIDojoBattleWinView:AddEventListener()
  8. end
  9. function UIDojoBattleWinView:FillContent(data, uiBase)
  10. self.uiBase = uiBase
  11. local gameObject = self.uiBase:GetRoot()
  12. if gameObject ~= nil then
  13. self.gameObject = gameObject
  14. self.transform = gameObject.transform
  15. end
  16. self:InitGenerate(self.transform, data)
  17. self:Init()
  18. end
  19. function UIDojoBattleWinView:Init()
  20. self:SetData()
  21. end
  22. function UIDojoBattleWinView:RemoveEventListener()
  23. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  24. end
  25. function UIDojoBattleWinView:AddUIEventListener()
  26. self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickClose)
  27. end
  28. function UIDojoBattleWinView:OnHide()
  29. end
  30. function UIDojoBattleWinView:OnShow(data)
  31. self.controller:SetData(data)
  32. self:Init()
  33. end
  34. function UIDojoBattleWinView:OnClose()
  35. end
  36. function UIDojoBattleWinView:OnDispose()
  37. if self._timer ~= nil then
  38. ManagerContainer.LuaTimerMgr:RemoveTimer(self._timer)
  39. self._timer = nil
  40. end
  41. if self._delayOpenButton ~= nil then
  42. ManagerContainer.LuaTimerMgr:RemoveTimer(self._delayOpenButton);
  43. self._delayOpenButton = nil
  44. end
  45. end
  46. function UIDojoBattleWinView:OnClickClose()
  47. self:DownSecondEnd();
  48. end
  49. function UIDojoBattleWinView:SetData()
  50. local data = self.controller:GetData()
  51. local oldScore = 0
  52. local curScore = 0
  53. if data ~= nil then
  54. oldScore = data[1]
  55. curScore = data[2]
  56. end
  57. self.ZenyLbl.text.text = tostring(ManagerContainer.DataMgr.ArenaData.zeny)
  58. self.CruiseLbl.text.text = tostring(ManagerContainer.DataMgr.ArenaData.cruise)
  59. self.oldScoreText.text.text = tostring(oldScore)
  60. self.newScoreText.text.text = tostring(curScore)
  61. self.deltaScoreText.text.text = "(+" .. tostring(curScore - oldScore) .. ")"
  62. self:RefreshVipView(ManagerContainer.DataMgr.ArenaData.cruise)
  63. local winCnt = ManagerContainer.DataMgr.ArenaData.winStreakCount
  64. self.winCount.text.text = tostring(winCnt)
  65. self.winNode:SetActive(winCnt > 1)
  66. if winCnt <= 4 then
  67. self.winBg1:SetActive(true)
  68. self.winBg2:SetActive(false)
  69. self.winBg3:SetActive(false)
  70. elseif winCnt <= 9 then
  71. self.winBg1:SetActive(false)
  72. self.winBg2:SetActive(true)
  73. self.winBg3:SetActive(false)
  74. else
  75. self.winBg1:SetActive(false)
  76. self.winBg2:SetActive(false)
  77. self.winBg3:SetActive(true)
  78. end
  79. self:DownSecondStart();
  80. self:SetButtonState(false)
  81. local _delayTime = GlobalConfig.Instance:GetConfigIntValue(173) or 1000;
  82. self._delayOpenButton = ManagerContainer.LuaTimerMgr:AddTimer(_delayTime, 1, self, self.SetButtonCanClick, nil);
  83. end
  84. function UIDojoBattleWinView:DownSecondStart()
  85. local _second = GlobalConfig.Instance:GetConfigIntValue(150);
  86. self._timer = ManagerContainer.LuaTimerMgr:AddTimer(_second, 1, self, self.DownSecondEnd, nil)
  87. end
  88. function UIDojoBattleWinView:DownSecondEnd()
  89. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojoExit)
  90. end
  91. function UIDojoBattleWinView:SetButtonCanClick()
  92. self:SetButtonState(true)
  93. end
  94. --设置按钮的状态
  95. function UIDojoBattleWinView:SetButtonState(_state)
  96. self.AnyBtn.button.interactable = _state;
  97. end
  98. function UIDojoBattleWinView:RefreshVipView(cruise)
  99. if cruise and cruise > 0 then
  100. local vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  101. local boliLv = ManagerContainer.DataMgr.BoliShopData:GetCurLv()
  102. if vipLv and vipLv >= 1 and boliLv and boliLv >= 1 then
  103. local vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(vipLv)
  104. local boliCfg = ManagerContainer.CfgMgr:GetBoLiVipCfgById(boliLv)
  105. if vipCfg and boliCfg then
  106. if vipCfg.PvpReward and boliCfg.PvpReward and (boliCfg.PvpReward > 0 or vipCfg.PvpReward > 0) then
  107. local precent = CommonUtil.GetPreciseDecimal(((vipCfg.PvpReward + boliCfg.PvpReward) * 100) / (cruise - (vipCfg.PvpReward + boliCfg.PvpReward)), 1)
  108. if precent > 0 then
  109. self.CruiseVipTag.number.text.text = '+' .. tostring(precent) .. '%'
  110. self.CruiseVipTag:SetActive(true)
  111. self.CruiseVipTag.icon.image.sprite = nil
  112. self.CruiseVipTag.icon.image.enabled = false
  113. CommonUtil.LoadIcon(self, boliCfg.SmallIcon, function(sprite)
  114. if sprite then
  115. self.CruiseVipTag.icon.image.sprite = sprite
  116. self.CruiseVipTag.icon.image.enabled = true
  117. end
  118. end)
  119. return
  120. end
  121. end
  122. end
  123. end
  124. end
  125. self.CruiseVipTag:SetActive(false)
  126. self.CruiseVipTag.icon.image.sprite = nil
  127. self.CruiseVipTag.icon.image.enabled = false
  128. end
  129. return UIDojoBattleWinView