UIBattleWinView.lua 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. local UIBattleWinView = require("UIBattle/UIBattleWinView_Generate")
  2. --local UIMainCtr = require("UIMain/UIMainCtr")
  3. local UIMainCtr = ManagerContainer.LuaUIMgr:GetViewCtrById(Enum.UIPageName.UIMain)
  4. local BigMapView = require("UIBigMap/BigMapView")
  5. function UIBattleWinView:OnAwake(data)
  6. self.controller = require("UIBattle/UIBattleWinCtr"):new()
  7. self.controller:Init(self)
  8. self.controller:SetData(data)
  9. end
  10. function UIBattleWinView:AddEventListener()
  11. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BIGMAP_SELF_RANK_CHANGED, self, self.OnSelfRankChanged)
  12. end
  13. function UIBattleWinView:FillContent(data, uiBase)
  14. self.itemList = {}
  15. self.uiBase = uiBase
  16. local gameObject = self.uiBase:GetRoot()
  17. if gameObject ~= nil then
  18. self.gameObject = gameObject
  19. self.transform = gameObject.transform
  20. end
  21. self:InitGenerate(self.transform, data)
  22. self:Init()
  23. end
  24. function UIBattleWinView:Init()
  25. if not self.bigMapView then
  26. self.bigMapView = BigMapView:new(self)
  27. end
  28. local curMapId, curLevelId = self.controller:GetCurMapAndLevel()
  29. self.bigMapView:InitData(curMapId, curLevelId, curMapId, Enum.BigMapEnterType.NextLevel)
  30. self:ShowRewardData()
  31. end
  32. function UIBattleWinView:RemoveEventListener()
  33. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  34. end
  35. function UIBattleWinView:AddUIEventListener()
  36. -- self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickClose)
  37. end
  38. function UIBattleWinView:OnHide()
  39. end
  40. function UIBattleWinView:OnShow(data)
  41. self.controller:SetData(data)
  42. self:Init()
  43. end
  44. function UIBattleWinView:OnClose()
  45. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BATTLE_WIN_CLOSE)
  46. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.NEW_LEVEL_INCREASE_NTF)
  47. end
  48. function UIBattleWinView:OnDispose()
  49. if self.bigMapView then
  50. self.bigMapView:Dispose()
  51. self.bigMapView = nil
  52. end
  53. self.controller:OnDispose()
  54. end
  55. function UIBattleWinView:OnPageInEnd()
  56. if self.bigMapView then
  57. self.bigMapView:OnPageInEnd()
  58. end
  59. self.super.OnPageInEnd(self)
  60. end
  61. function UIBattleWinView:OnSelfRankChanged()
  62. if self.bigMapView then
  63. self.bigMapView:RefreshSelfRank()
  64. end
  65. end
  66. function UIBattleWinView:BigMapViewComplete(hasFollow)
  67. self:DropToBox(not hasFollow)
  68. self:DropItems(not hasFollow)
  69. self:UIClose()
  70. if not hasFollow then
  71. local curLevel = ManagerContainer.LuaBattleMgr:GetCurLevelUniqueId()
  72. local levelData = ManagerContainer.CfgMgr:GetLevelDataById(curLevel)
  73. if levelData == nil then
  74. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UI_FORCE_GUIDE_OVER, true)
  75. ManagerContainer.LuaBattleMgr:StartAutoChallenge()
  76. return
  77. end
  78. if levelData.ForceGuideGroup > 0 then
  79. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.GOT_ANIM_TYPE_END_NOTIFY, Enum.ItemIEnterType.BattleWin)
  80. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UI_FORCE_GUIDE_TRIGGER, Enum.ForceGuideTriggerEnum.BattleWin)
  81. else
  82. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UI_FORCE_GUIDE_OVER, true)
  83. ManagerContainer.LuaBattleMgr:StartAutoChallenge()
  84. return
  85. end
  86. end
  87. ManagerContainer.LuaBattleMgr:StopAutoChallenge(true)
  88. end
  89. function UIBattleWinView:ShowRewardData()
  90. local levelCfgData = self.controller:GetLevelCfgData()
  91. if not levelCfgData then
  92. self.expBase.text.text.text = '0'
  93. self.zeny.text.text.text = '0'
  94. self.expParter.text.text.text = '0'
  95. self.expJob.text.text.text = '0'
  96. self.coin.text.text.text = '0'
  97. self.drop.text.text.text = '0'
  98. return
  99. end
  100. self.expBase.text.text.text = tostring(levelCfgData.BaseExp)
  101. self.zeny.text.text.text = tostring(levelCfgData.Zeny)
  102. self.expParter.text.text.text = tostring(levelCfgData.Parter)
  103. self.expJob.text.text.text = tostring(levelCfgData.JobExp)
  104. self.coin.text.text.text = tostring(levelCfgData.Gold)
  105. -- local num = 0
  106. -- local rewardList = ManagerContainer.LuaBattleMgr.rewardItemList
  107. -- for i = 1,#rewardList do
  108. -- if rewardList[i].key >= 100 and rewardList[i].value > 0 then
  109. -- num = num + 1
  110. -- end
  111. -- end
  112. self.drop.text.text.text = tostring(levelCfgData.FreeInvest)
  113. end
  114. -- function UIBattleWinView:OnClickClose()
  115. -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BATTLE_WIN_CLOSE)
  116. -- self:DropItems(true)
  117. -- if not ManagerContainer.LuaBattleMgr:IsNewMap() then
  118. -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.NEW_LEVEL_INCREASE_NTF)
  119. -- if ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(29) then
  120. -- self:DropToBox(false)
  121. -- end
  122. -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UI_FORCE_GUIDE_TRIGGER, Enum.ForceGuideTriggerEnum.BattleWin)
  123. -- end
  124. -- end
  125. function UIBattleWinView:DropItems(isDrop)
  126. if not isDrop then return end
  127. if not ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(35) then
  128. return
  129. end
  130. --local zeny = ManagerContainer.LuaBattleMgr:GetRewardCnt(Enum.ItemType.Coin)
  131. -- local jobExp = ManagerContainer.LuaBattleMgr:GetRewardCnt(Enum.ItemType.RoleJobExp)
  132. -- local exp = ManagerContainer.LuaBattleMgr:GetRewardCnt(Enum.ItemType.RoleBaseExp)
  133. local levelCfgData = self.controller:GetLevelCfgData()
  134. if not levelCfgData then
  135. return
  136. end
  137. local zeny = levelCfgData.Zeny
  138. local jobExp = levelCfgData.JobExp
  139. local exp = levelCfgData.BaseExp
  140. local createZeny = false;
  141. local createExp=false;
  142. local createJobExp = false;
  143. local startPos = Vector3.New(0, 0, 0)
  144. local zenyPos = UIMainCtr:GeAnchoredPosition3DByType(Enum.ItemType.Coin)
  145. local expPos = UIMainCtr:GeAnchoredPosition3DByType(Enum.ItemType.RoleBaseExp)
  146. local jobExpPos = UIMainCtr:GeAnchoredPosition3DByType(Enum.ItemType.RoleJobExp)
  147. if zeny ~= nil and zeny > 0 then
  148. createZeny = true
  149. end
  150. if jobExp~= nil and jobExp > 0 then
  151. createJobExp = true
  152. end
  153. if exp ~= nil and exp > 0 then
  154. createExp = true
  155. end
  156. local itemIcons = {};
  157. --for i =1, #ManagerContainer.LuaBattleMgr.rewardItemList do
  158. -- local item = ManagerContainer.LuaBattleMgr.rewardItemList[i];
  159. -- if item.key >= 100 then
  160. -- local itemCfg = ManagerContainer.CfgMgr:GetItemById(item.key)
  161. -- if itemCfg~= nil then
  162. -- itemIcons[#itemIcons+1] = itemCfg.Icon
  163. -- end
  164. -- end
  165. --end
  166. if zenyPos == nil or expPos == nil or jobExpPos == nil then
  167. LogError("Bhy: zenyPos = " .. tostring(zenyPos) .. " expPos = " .. tostring(expPos) .. " jobExpPos = " .. tostring(jobExpPos))
  168. return
  169. end
  170. LuaBattleBridge.GenerateDropItems(startPos,createZeny,zenyPos,createExp,expPos,false,Vector3.zero,createJobExp,jobExpPos,0.30,0.25,unpack(itemIcons));
  171. end
  172. function UIBattleWinView:DropToBox(isDrop)
  173. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.GOT_ANIM_TYPE_END_NOTIFY, Enum.ItemIEnterType.BattleWin)
  174. if not isDrop then
  175. return
  176. end
  177. if not ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(35) then
  178. return
  179. end
  180. local startPos = Vector3.New(0, 0, 0)
  181. local boxPos = UIMainCtr:GetGotAnimEndPosByType(Enum.ItemType.Item)
  182. local coinboxPos = UIMainCtr:GetGotAnimEndPosByType(Enum.ItemType.WalletNum)
  183. local data = {}
  184. local startPoses = {}
  185. local endPoses = {}
  186. local rewardList = ManagerContainer.LuaBattleMgr.rewardItemList
  187. for i = 1,#rewardList do
  188. if rewardList[i].key >= 100
  189. and rewardList[i].value > 0 then
  190. data[#data + 1] = {cfgId = rewardList[i].key, num = rewardList[i].value}
  191. startPoses[#startPoses + 1] = startPos
  192. endPoses[#endPoses + 1] = boxPos
  193. end
  194. end
  195. local len = GlobalConfig.Instance:GetConfigIntValue(359) or 7
  196. for i = 1, len do
  197. data[#data + 1] = {cfgId = Enum.ItemType.WalletNum, num = 1}
  198. startPoses[#startPoses + 1] = startPos
  199. endPoses[#endPoses + 1] = coinboxPos
  200. end
  201. local data1 = {list = data, startPoses = startPoses, endPoses = endPoses, needOffset = true, enterType = Enum.ItemIEnterType.BattleWin}
  202. ManagerContainer.LuaUIMgr:POPGotAnimNotice(data1)
  203. end
  204. return UIBattleWinView