UIDojoBattleFailView.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. local UIDojoBattleFailView = require("UIDojo/UIDojoBattleFailView_Generate")
  2. function UIDojoBattleFailView:OnAwake(data)
  3. self.controller = require("UIDojo/UIDojoBattleFailCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIDojoBattleFailView:AddEventListener()
  8. end
  9. function UIDojoBattleFailView: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 UIDojoBattleFailView:Init()
  20. self:SetData()
  21. end
  22. function UIDojoBattleFailView:RemoveEventListener()
  23. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  24. end
  25. function UIDojoBattleFailView:AddUIEventListener()
  26. self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickClose)
  27. end
  28. function UIDojoBattleFailView:OnHide()
  29. end
  30. function UIDojoBattleFailView:OnShow(data)
  31. self.controller:SetData(data)
  32. self:Init()
  33. end
  34. function UIDojoBattleFailView:OnClose()
  35. end
  36. function UIDojoBattleFailView: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 UIDojoBattleFailView:OnClickClose()
  47. self:DownSecondEnd();
  48. end
  49. function UIDojoBattleFailView: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:DownSecondStart();
  63. self:RefreshVipView(ManagerContainer.DataMgr.ArenaData.cruise)
  64. self:SetButtonState(false)
  65. local _delayTime = GlobalConfig.Instance:GetConfigIntValue(173) or 1000;
  66. self._delayOpenButton = ManagerContainer.LuaTimerMgr:AddTimer(_delayTime, 1, self, self.SetButtonCanClick, nil);
  67. end
  68. function UIDojoBattleFailView:DownSecondStart()
  69. local _second = GlobalConfig.Instance:GetConfigIntValue(150);
  70. self._timer = ManagerContainer.LuaTimerMgr:AddTimer(_second, 1, self, self.DownSecondEnd, nil)
  71. end
  72. function UIDojoBattleFailView:DownSecondEnd()
  73. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojoExit)
  74. end
  75. function UIDojoBattleFailView:SetButtonCanClick()
  76. self:SetButtonState(true)
  77. end
  78. --设置按钮的状态
  79. function UIDojoBattleFailView:SetButtonState(_state)
  80. self.AnyBtn.button.interactable = _state;
  81. end
  82. function UIDojoBattleFailView:RefreshVipView(cruise)
  83. if cruise and cruise > 0 then
  84. local vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  85. local boliLv = ManagerContainer.DataMgr.BoliShopData:GetCurLv()
  86. if vipLv and vipLv >= 1 and boliLv and boliLv >= 1 then
  87. local vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(vipLv)
  88. local boliCfg = ManagerContainer.CfgMgr:GetBoLiVipCfgById(boliLv)
  89. if vipCfg and boliCfg then
  90. if vipCfg.PvpReward and boliCfg.PvpReward and (boliCfg.PvpReward > 0 or vipCfg.PvpReward > 0) then
  91. local precent = CommonUtil.GetPreciseDecimal(((vipCfg.PvpReward + boliCfg.PvpReward) * 100) / (cruise - (vipCfg.PvpReward + boliCfg.PvpReward)), 1)
  92. if precent > 0 then
  93. self.CruiseVipTag.number.text.text = '+' .. tostring(precent) .. '%'
  94. self.CruiseVipTag:SetActive(true)
  95. self.CruiseVipTag.icon.image.sprite = nil
  96. self.CruiseVipTag.icon.image.enabled = false
  97. CommonUtil.LoadIcon(self, boliCfg.SmallIcon, function(sprite)
  98. if sprite then
  99. self.CruiseVipTag.icon.image.sprite = sprite
  100. self.CruiseVipTag.icon.image.enabled = true
  101. end
  102. end)
  103. return
  104. end
  105. end
  106. end
  107. end
  108. end
  109. self.CruiseVipTag:SetActive(false)
  110. self.CruiseVipTag.icon.image.sprite = nil
  111. self.CruiseVipTag.icon.image.enabled = false
  112. end
  113. return UIDojoBattleFailView