UIMainView.lua 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143
  1. local UIMainView = require("UIMain/UIMainView_Generate")
  2. local MainTopView = require("UIMain/MainTopView")
  3. local MainBottomView = require("UIMain/MainBottomView")
  4. -- local GotAnimCtr = require("UIPOPGot/UIPOPGotAnimsCtr")
  5. local DOTween = DG.Tweening.DOTween
  6. local LoopType = DG.Tweening.LoopType
  7. local curTopResType = Enum.ItemType.Diamond
  8. local _curMainButtonType = Enum.MainViewPageType.Adventure
  9. local mainTopView
  10. local mainBottomView
  11. --- 慧勇需求 经验条,最小不能小于这个值,哪怕为真实值为0
  12. local BarMinValue = 0.02
  13. local AddEffectBarSpeed = 0.5
  14. local bossBattleStatus = false
  15. function UIMainView:OnAwake(data)
  16. self.controller = require("UIMain/UIMainCtr"):new()
  17. self.controller:Init(self)
  18. self.controller:SetData(data)
  19. end
  20. function UIMainView:AddEventListener()
  21. -- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_COIN_AND_DIAMOND, function()
  22. -- self:RefreshCoins()
  23. -- self:RefreshLv()
  24. -- end)
  25. -- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_ROLE_LV, function()
  26. -- self:RefreshLv()
  27. -- end)
  28. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ROLE_EXP_CHANGED, self, self.ShowAddRoleExpEffect)
  29. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.JOB_EXP_CHANGED, self, self.ShowAddJobExpEffect)
  30. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.COIN_CHANGED, self, self.ShowAddCoinEffect)
  31. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DIAMOND_CHANGED, self, self.ShowAddDiamondEffect)
  32. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ROLE_LV_CHANGED, self, self.OnRefreshRoleLv)
  33. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.JOB_LV_CHANGED, self, self.OnRefreshJobLv)
  34. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_VIEW_SET_ATTR_BTN, self, self.CloseBtnBase)
  35. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_VIEW_UP_SKILL_BTN, self, self.CloseBtnJob)
  36. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_HANG_TIME, self, self.RefreshRestTime)
  37. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.NICK_NAME_CREATED, self, self.RefreshUserNickName)
  38. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.USER_HEADPROTRAIT_CHANGED, self, self.RefreshHead)
  39. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_CHANGE_BUTTONS_STATE,self,self.SetActiveButtonsState)
  40. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_UI_ROLE_REDPOINT_NOTICE, self, self.RoleRedPointNotice)
  41. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.RED_POINT_NOTICE, self, self.RoleRedPointNotice)
  42. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UI_FORCE_GUIDE_OVER, self, self.LoggedinForceGuideOver)
  43. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UIMAINVIEW_CHANGE_NOTICE, function(pageType, data)
  44. self:ChangePageMsg(pageType, data)
  45. end)
  46. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DISPLAY_MAIN_TOP, function(state, order)
  47. if mainTopView then
  48. mainTopView:Change(state, order)
  49. end
  50. end)
  51. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DISPLAY_MAIN_BOTTOM, function(state, order)
  52. if mainBottomView then
  53. mainBottomView:Change(state, order)
  54. end
  55. end)
  56. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.LIMIT_RECHARGE_OPEN_NTF, function(state, order)
  57. if mainTopView then
  58. mainTopView:OpenLimitRecharge()
  59. end
  60. end)
  61. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_COIN_AND_JOBEXP, function()
  62. self:RefreshDiamond()
  63. end)
  64. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_CRUISE_CHANGED, function()
  65. if curTopResType ~= Enum.ItemType.SkillExp then return end
  66. self:RefreshDiamond()
  67. end)
  68. -- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GOT_ITEM_ANIM_END_NOTIFY, function(type)
  69. -- LogError("got anim end "..type)
  70. -- local GotAnimCtr = require("UIPOPGot/UIPOPGotAnimsCtr")
  71. -- local result = GotAnimCtr:IsInSameTypeAnim(type)
  72. -- LogError(result)
  73. -- end)
  74. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GOT_ITEM_ANIM_END_NOTIFY, function(type, num)
  75. end)
  76. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UI_MAIN_TOP_RES_TYPE, function(resType)
  77. --if Enum.TopResMap[id] == nil then
  78. -- id = Enum.UIPageName.UIMain
  79. --end
  80. --if id == Enum.UIPageName.UIRoleMain1 then
  81. -- if not param then
  82. -- id = Enum.UIPageName.UIRoleMain1
  83. -- else
  84. -- id = Enum.UIPageName.UIMain
  85. -- end
  86. --end
  87. curTopResType = resType
  88. self:RefreshDiamond()
  89. end)
  90. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.FIGHTPOWER_REFRESH, function()
  91. self:RefreshFightPower()
  92. end)
  93. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BTN_BASE_DISPLAY, function(result)
  94. if result and bossBattleStatus then return end
  95. self:DisplayBtnBase(result)
  96. end)
  97. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BTN_JOB_DISPLAY, function(result)
  98. if result and bossBattleStatus then return end
  99. self:DisplayBtnJob(result)
  100. end)
  101. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BOSS_BATTLE_STATUS, function(result)
  102. bossBattleStatus = result
  103. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.DISPLAY_MAIN_TOP,not result)
  104. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.STAGEGOAL_DISPLAY,not result)
  105. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BTN_BASE_DISPLAY,not result)
  106. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BTN_JOB_DISPLAY,not result)
  107. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.DISPLAY_MAIN_BOTTOM, not result)
  108. --if result then
  109. -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.DISPLAY_MAIN_BOTTOM, result)
  110. --end
  111. end)
  112. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_OPEN_NTF, function(competitionId, _isRefresh)
  113. self:RefreshSeasonInfo()
  114. if not ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UISeason) and not _isRefresh then
  115. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  116. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISeason, competitionId, curUIId)
  117. end
  118. end)
  119. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GM_SCROLL_NOTICE, self, self.InsertGMNotice)
  120. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ROLE_JOB_CHANGE_SUCCESS, self, self.RefreshJobIcon)
  121. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Used_New_HeadFrame, self, self.ChangeHeadFrame)
  122. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_NOTICE_CLOSE_NTF, self, self.RefreshSeasonNoticeState)
  123. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_RANK_CHANGED_NTF, self, self.OnSeasonRankChanged)
  124. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Activity_FirstRecharge_Change, self, self.RefreshFirstRechargeBtn)
  125. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.RANK_ACTIVITY_DISPLAY_NTF, self, self.RefreshRankActivityEnter)
  126. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_MINUTE_UPDATE, self, self.RefreshSeasonInfo)
  127. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.QUESTION_REWARD_SUCCESS, self, self.RefreshQuestionRewardBtn)
  128. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.AIRSHIP_ACTIVITY_DISPLAY_NTF, self, self.RefreshAirShipActivityEnter)
  129. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_WAR_OPEN_STATE_CHANGED, self, self.RefreshGuildWarBtn)
  130. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.COMBINE_SERVER_TIME_CHANGED, self, self.OnCombineServerTimeChanged)
  131. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.COMBINE_SERVER_CONTENT_CHANGED, self, self.OnCombineServerContentChanged)
  132. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.VIP_LV_CHANGED, self, self.OnVipLvChanged)
  133. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.PAY_TOTAL_RECHARGE_CHANGED, self, self.RefreshBoliShopState)
  134. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BT_FIRST_RECHARGE_REWARD_CHANGED, self, self.RefreshFirstRechargeBtn)
  135. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BT_HUNDRED_RECHARGE_REWARD_CHANGED, self, self.RefreshFirstRechargeBtn)
  136. end
  137. function UIMainView:FillContent(data, uiBase)
  138. self.uiBase = uiBase
  139. local gameObject = self.uiBase:GetRoot()
  140. if gameObject ~= nil then
  141. self.gameObject = gameObject
  142. self.transform = gameObject.transform
  143. end
  144. self:InitGenerate(self.transform, data)
  145. self:Init()
  146. self:DailySignTrigger()
  147. self.btnGM:SetActive(false)
  148. end
  149. function UIMainView:Init()
  150. curTopResType = self.uiData.top_res_id
  151. ManagerContainer.DataMgr.TaskDataNew:SetMainButton(Enum.MainViewPageType.Adventure);
  152. if mainTopView == nil then
  153. mainTopView = MainTopView.new()
  154. mainTopView:Init(self.topView, self.topView.canvas, self.topView.topRoot.animator, self.uiBase.SortingOrder)
  155. end
  156. if mainBottomView == nil then
  157. mainBottomView = MainBottomView.new()
  158. mainBottomView:Init(self.bottomView, self.bottomView.canvas, self.bottomView.mainRoot.animator, self.uiBase.SortingOrder)
  159. end
  160. --ManagerContainer.ResMgr:InitCommonMats()
  161. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPrivateChatBtn)
  162. self:Refresh()
  163. self:RedPointRefresh()
  164. if mainTopView then
  165. mainTopView:RefreshTopBtns(true)
  166. end
  167. self:RefreshFirstRechargeBtn()
  168. self:RefreshGuildWarBtn()
  169. --统一刷新数据
  170. self:RefreshData()
  171. self:RefreshBoliShopState()
  172. if ManagerContainer.SDKEventReportMgr ~= nil and ManagerContainer.LuaBattleMgr:GetCurSimpleLvID() >= 20001 then
  173. ManagerContainer.SDKEventReportMgr:GetSDKNtfAndShow()
  174. end
  175. end
  176. function UIMainView:RefreshBoliShopState()
  177. -- if Constant.OpenPay then
  178. -- local curVal = ManagerContainer.PayMgr:GetTotalRecharge()
  179. -- local openCon = GlobalConfig.Instance:GetConfigIntValue(360) or 50
  180. -- self.topView.topRoot.BtnBoliShop:SetActive(curVal >= openCon)
  181. -- else
  182. -- self.topView.topRoot.BtnBoliShop:SetActive(false)
  183. -- end
  184. end
  185. function UIMainView:DailySignTrigger()
  186. local _canSignPlay = ManagerContainer.DataMgr.SignData:CanTodaySign()
  187. if _canSignPlay then
  188. --local isUnLock = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(55);
  189. --if isUnLock then
  190. -- ManagerContainer.LuaUIMgr:OpenInputMask(10000)
  191. --end
  192. self.canSignPlay = true
  193. self.delayTimer = FrameTimer.New(function()
  194. self.loggedinNeedForceGuide = ManagerContainer.ForceGuideMgr:LoggedinCheckForceGuide()
  195. if not self.loggedinNeedForceGuide and not ManagerContainer.StoryMgr:IsStorying() and not ManagerContainer.StoryMgr:HasPreStoryChapter() then
  196. self:LoggedinForceGuideOver()
  197. end
  198. local unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(10)
  199. self:RefreshSeasonNoticeState(unlockState)
  200. end, 1)
  201. self.delayTimer:Start()
  202. else
  203. self.loggedinNeedForceGuide = ManagerContainer.ForceGuideMgr:LoggedinCheckForceGuide()
  204. if not self.loggedinNeedForceGuide and not ManagerContainer.StoryMgr:IsStorying() and not ManagerContainer.StoryMgr:HasPreStoryChapter() then
  205. self:LoggedinForceGuideOver()
  206. end
  207. end
  208. end
  209. function UIMainView:RefreshSeasonNoticeState(state)
  210. self.seasonNotice:SetActive(state)
  211. end
  212. function UIMainView:RefreshData()
  213. self.dataDelayTimer = FrameTimer.New(function()
  214. --赛季最新数据查询
  215. ManagerContainer.DataMgr.CompetitionData:SetRefreshSeasonState(true)
  216. ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq(true)
  217. ManagerContainer.DataMgr.RankActivitiesMgr:CheckRancActivityOpenTime()
  218. ManagerContainer.DataMgr.RuneShopDataMgr:CheckAirShipActivityOpenTime()
  219. --刷新契约红点
  220. ManagerContainer.RedPointMgr.PetRPCtr:RefreshTotalQiyueRPState()
  221. end, 1)
  222. self.dataDelayTimer:Start()
  223. end
  224. function UIMainView:OnSeasonRankChanged(type)
  225. self.seasonUp:SetActive(type == 1)
  226. self.seasonDown:SetActive(type == 2)
  227. end
  228. function UIMainView:RedPointRefresh()
  229. --宠物红点刷新
  230. ManagerContainer.DataMgr.PetDataMgr:RefreshAllPetRPState()
  231. end
  232. function UIMainView:Refresh()
  233. if ManagerContainer.FSMMgr:IsBattleState() then
  234. self.mainPageId = Enum.UIPageName.UIBattle
  235. self.mainBtn.animator:Play("AdventureActived");
  236. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattle)
  237. elseif ManagerContainer.FSMMgr:IsDojoState() then
  238. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojo2D)
  239. end
  240. self.btnBase:SetActive(ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false))
  241. self.btnJob:SetActive(ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false))
  242. self:RefreshUserNickName()
  243. --[[
  244. self:RefreshUserHeadProtrait()
  245. self:RefreshJobIcon()
  246. ]]--
  247. self:RefreshHead();
  248. self:RefreshFightPower()
  249. self:RefreshLv()
  250. self:RefreshRoleExp()
  251. self:RefreshJobLv()
  252. self:RefreshJobExp()
  253. self:RefreshCoins()
  254. self:RefreshDiamond()
  255. self:RefreshVipView()
  256. self:RefreshSeasonInfo()
  257. self:RoleRedPointNotice()
  258. self:InsertGMNotice()
  259. self:StartLimitTimeItem()
  260. end
  261. function UIMainView:StartLimitTimeItem()
  262. ManagerContainer.DataMgr.BagData:StartLimitTimeItemDelete()
  263. end
  264. function UIMainView:RefreshSeasonInfo()
  265. local seasonData = ManagerContainer.DataMgr.CompetitionData:GetCurCompetitionData()
  266. if seasonData == nil then return end
  267. local stage,nextStageTime = ManagerContainer.DataMgr.CompetitionData:GetCurStageAndNextTime()
  268. local curCompetitionId = ManagerContainer.DataMgr.CompetitionData:GetCurCompetitionId()
  269. local competitionCfgDatas = ManagerContainer.CfgMgr:GetCompetitionDatasByType(curCompetitionId)
  270. if not competitionCfgDatas or #competitionCfgDatas == 0 then
  271. return
  272. end
  273. self.SeasonName.text.text = I18N.T(competitionCfgDatas[1].CompetitionName)
  274. if stage == 1 then
  275. self.remainDay.text.text = I18N.T("DscSeasonResult13")
  276. self.remainDay1.text.text = I18N.T("DscSeasonResult13")
  277. elseif stage == 2 then
  278. local endTime = nextStageTime
  279. if endTime == 0 then
  280. self.remainDay.text.text = I18N.T("DscSeasonResult6")
  281. self.remainDay1.text.text = I18N.T("DscSeasonResult6")
  282. else
  283. local remainS = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(endTime, false)
  284. if remainS > 0 then
  285. if remainS <= 60 then
  286. self.remainDay.text.text = I18N.T("LessOneMinu")
  287. self.remainDay1.text.text = I18N.T("LessOneMinu")
  288. else
  289. local time = DateTimeUtil.convertSeconds2TimeStr1(remainS, true, false)
  290. self.remainDay.text.text = time
  291. self.remainDay1.text.text = time
  292. end
  293. else
  294. self.remainDay.text.text = I18N.T("DscSeasonResult6")
  295. self.remainDay1.text.text = I18N.T("DscSeasonResult6")
  296. end
  297. end
  298. elseif stage == 3 then
  299. self.remainDay.text.text = I18N.T("DscSeasonResult6")
  300. self.remainDay1.text.text = I18N.T("DscSeasonResult6")
  301. end
  302. end
  303. function UIMainView:RefreshUserNickName()
  304. self.textName.text.text = ManagerContainer.DataMgr.UserData:GetUserNickname()
  305. end
  306. function UIMainView:InsertGMNotice()
  307. local notice = ManagerContainer.DataMgr.GMNoticeData:GetCurNotice()
  308. if mainTopView and notice then
  309. mainTopView:InsertGMNotice(notice)
  310. end
  311. end
  312. function UIMainView:ChangeHeadFrame(headFrameIcon)
  313. CommonUtil.LoadIcon(self, headFrameIcon, function (sprite)
  314. self.headItem.frame.image.sprite = sprite
  315. end)
  316. end
  317. function UIMainView:RefreshHead()
  318. local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  319. local jobCfgId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
  320. local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
  321. local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
  322. local _fakerData = {Level = curRoleLv, ProfessionIcon = jobCfgData.JobIcon, HeadIcon = headIcon, IsHero = true};
  323. local _headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId()
  324. CommonUtil.SetPlayerHeadAndFrame(self, self.headItem, _fakerData,false, _headFrameId, self, self.OnClickHead);
  325. if not jobCfgData or jobCfgData.JobStage >= 3 then
  326. self.expBarJob:SetActive(false)
  327. else
  328. self.expBarJob:SetActive(true)
  329. end
  330. end
  331. function UIMainView:RefreshJobIcon()
  332. local jobCfgId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
  333. local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
  334. CommonUtil.LoadIcon(self, jobCfgData.JobIcon, function (sprite)
  335. self.headItem.jobIcon.image.sprite = sprite
  336. end, self, 'jobIconIdx')
  337. end
  338. function UIMainView:RefreshFightPower()
  339. self.fightpower.text.text = ManagerContainer.DataMgr.UserData:GetTotalFightPower()
  340. end
  341. function UIMainView:RoleRedPointNotice()
  342. --local RPStatus = ManagerContainer.RedPointMgr.HeroRPCtr:GetUIMainRPStatus()
  343. --RedPointItemCtr:SetData(self, self.redPointItem, RPStatus, Enum.HeroRPSource.Main)
  344. end
  345. function UIMainView:RefreshLv()
  346. local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  347. self.expBarBase.textLv.text.text = CommonUtil.StringConcat("Lv.", curRoleLv)
  348. self.curRoleLv = curRoleLv
  349. self.headItem.levelText.text.text = tostring(curRoleLv);
  350. end
  351. function UIMainView:RefreshRoleExp()
  352. local roleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
  353. local curBaseMaxExp = ManagerContainer.DataMgr.UserData:GetHeroCurBaseMaxExp()
  354. self.expBarBase.textTotal.text.text = CommonUtil.StringConcat(CommonUtil.FormatNumber(roleExp), "/", CommonUtil.FormatNumber(curBaseMaxExp))
  355. local barPercent = curBaseMaxExp == 0 and 0 or roleExp/curBaseMaxExp
  356. self.expBarBase.slider.slider.value = Mathf.Max(BarMinValue, barPercent)
  357. self.curRoleExp = roleExp
  358. self.expBarBase.slider.effect:SetActive(false)
  359. --self:RefreshRestTime()
  360. end
  361. function UIMainView:RefreshRestTime(awardTotalTime)
  362. self.controller:SetAwardTotalTime(awardTotalTime)
  363. local roleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
  364. local curBaseMaxExp = ManagerContainer.DataMgr.UserData:GetHeroCurBaseMaxExp()
  365. local lerp = curBaseMaxExp - roleExp
  366. if lerp > 0 then
  367. local curLevelExp = ManagerContainer.LuaBattleMgr:CurLevelExp() or 100
  368. local seconds = Mathf.Ceil(lerp * 60 / curLevelExp - self.controller:GetAwardTotalTime())
  369. self.restTime.text.uILocalizeScript:SetContent('RestTime')
  370. self.restTime.textTime.text.text = DateTimeUtil.convertSeconds2TimeStr(seconds, false)
  371. elseif lerp == 0 then
  372. self.restTime.text.uILocalizeScript:SetContent('RestTimeMax')
  373. self.restTime.textTime.text.text = '--'
  374. end
  375. end
  376. function UIMainView:RefreshJobLv()
  377. local curJobLv = ManagerContainer.DataMgr.UserData:GetJobLv()
  378. self.expBarJob.textLv.text.text = CommonUtil.StringConcat("Lv.", curJobLv)
  379. self.curJobLv = curJobLv
  380. end
  381. function UIMainView:RefreshJobExp()
  382. local curMaxJobExp = ManagerContainer.DataMgr.UserData:GetHeroCurJobMaxExp()
  383. local jobExp = ManagerContainer.DataMgr.UserData:GetJobExp()
  384. self.expBarJob.textTotal.text.text = CommonUtil.StringConcat(CommonUtil.FormatNumber(jobExp), "/", CommonUtil.FormatNumber(curMaxJobExp))
  385. local barPercent = curMaxJobExp == 0 and 0 or jobExp/curMaxJobExp
  386. self.expBarJob.slider.slider.value = Mathf.Max(BarMinValue, barPercent)
  387. self.curJobExp = jobExp
  388. self.expBarJob.slider.effect:SetActive(false)
  389. end
  390. function UIMainView:RefreshCoins()
  391. local coin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
  392. self.coinZ.text.text.text = CommonUtil.FormatNumber(coin)
  393. self.curCoin = coin
  394. end
  395. function UIMainView:RefreshDiamond()
  396. local count = CommonUtil.GetOwnResCountByItemId(curTopResType) --ManagerContainer.DataMgr.UserData:GetCurrency(curTopResType)
  397. self.gold.text.text.text = CommonUtil.FormatNumber(count)
  398. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(curTopResType)
  399. CommonUtil.LoadIcon(self, itemCfgData.MiniIcon, function (sprite)
  400. self.gold.icon.image.sprite = sprite
  401. end)
  402. --只显示金币的跳转按钮
  403. if curTopResType == Enum.ItemType.Diamond then
  404. self.btnGold:SetActive(Constant.OpenPay)
  405. else
  406. self.btnGold:SetActive(false)
  407. end
  408. if curTopResType == Enum.ItemType.Diamond then
  409. self.curDiamond = count
  410. end
  411. end
  412. function UIMainView:RefreshVipView()
  413. self.vipBtn.image.sprite = nil
  414. self.vipBtn.image.enabled = false
  415. local curVipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  416. local vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(curVipLv)
  417. if not vipCfg then
  418. return
  419. end
  420. CommonUtil.LoadIcon(self, vipCfg.SmallIcon, function(sprite)
  421. if sprite then
  422. self.vipBtn.image.sprite = sprite
  423. self.vipBtn.image.enabled = true
  424. end
  425. end)
  426. end
  427. function UIMainView:DisplayBtnBase(result)
  428. if result then
  429. if ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false) ~= result then
  430. return
  431. end
  432. end
  433. self.btnBase:SetActive(result)
  434. end
  435. function UIMainView:DisplayBtnJob(result)
  436. if result then
  437. if ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false) ~= result then
  438. return
  439. end
  440. end
  441. self.btnJob:SetActive(result)
  442. end
  443. function UIMainView:OnRefreshRoleLv()
  444. -- 在属性界面打开的情况下,不再显示这个按钮
  445. if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UIRoleNaturePoint) then
  446. return
  447. end
  448. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, true)
  449. self.btnBase:SetActive(true)
  450. end
  451. function UIMainView:CloseBtnBase()
  452. self.btnBase:SetActive(false)
  453. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false)
  454. end
  455. function UIMainView:OnRefreshJobLv()
  456. -- 在技能树界面打开的情况下,不再显示这个按钮
  457. if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UISkillSettings) then
  458. return
  459. end
  460. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, true)
  461. self.btnJob:SetActive(true)
  462. end
  463. function UIMainView:OnVipLvChanged()
  464. self:RefreshVipView()
  465. end
  466. function UIMainView:CloseBtnJob()
  467. self.btnJob:SetActive(false)
  468. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false)
  469. end
  470. function UIMainView:RemoveEventListener()
  471. -- LogError("remove event "..self.uiData.name)
  472. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  473. end
  474. function UIMainView:AddUIEventListener()
  475. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  476. self.uiBase:AddButtonEventListener(self.btnGold.button, function()
  477. if self.mainPageId then
  478. -- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGM)
  479. if curTopResType == Enum.ItemType.Diamond then
  480. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  481. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, {Enum.RuneShopType.Gifts, Enum.RuneShopSubType.Gold}, curUIId)
  482. end
  483. end
  484. end)
  485. self.uiBase:AddButtonEventListener(self.town.icon.button, self, self.ChangePage, Enum.MainViewPageType.Town)
  486. self.uiBase:AddButtonEventListener(self.adventure.icon.button, self, self.ChangePage, Enum.MainViewPageType.Adventure)
  487. self.uiBase:AddButtonEventListener(self.shop.icon.button, self, self.ChangePage, Enum.MainViewPageType.Battle)
  488. self.uiBase:AddButtonEventListener(self.role.icon.button, self, self.ChangePage, Enum.MainViewPageType.Role, 1)
  489. self.uiBase:AddButtonEventListener(self.bag.icon.button, self, self.ChangePage, Enum.MainViewPageType.Pub)
  490. self.uiBase:AddButtonEventListener(self.btnBase.button,self,self.OnClickBaseBtn)
  491. self.uiBase:AddButtonEventListener(self.btnJob.button,self,self.OnClickJobBtn)
  492. --self.uiBase:AddButtonEventListener(self.head.button,self,self.OnClickHead)
  493. self.uiBase:AddButtonEventListener(self.topView.topRoot.btnNotifyActivity.button,self,self.OpenNoticeAndActivity)
  494. self.uiBase:AddButtonEventListener(self.topView.topRoot.btnTask.button,self,self.OpenTask)
  495. self.uiBase:AddButtonEventListener(self.topView.topRoot.BtnDiffTask.button,self,self.OpenDiffTask)
  496. self.uiBase:AddButtonEventListener(self.seasonInfo.button, self, self.OnSeasonClick)
  497. self.uiBase:AddButtonEventListener(self.coinZ.icon.button, self,self.OnClickCoinZ)
  498. self.uiBase:AddButtonEventListener(self.gold.icon.button, self,self.OnClickGoldIcon)
  499. self.uiBase:AddButtonUniqueEventListener(self.vipBtn.button, self, self.OnClickVipBtn)
  500. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnClub.button, self, self.OnClickRuneShopBtn)
  501. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnWallet.button, self, self.OnClickWalletShopBtn)
  502. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.BtnBoliShop.button, self, self.OnClickBoliShopBtn)
  503. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnFirstRecharge.button, self, self.OnClickFirstRechargeBtn)
  504. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnHundredRecharge.button, self, self.OnClickHundredRechargeBtn)
  505. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnLimitedGift.button, self, self.OnClickLimitGiftBtn)
  506. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnQuestionnaire.button, self, self.OnQuestionClick)
  507. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityTower.button, self, self.OnTowerClick)
  508. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityDojo.button, self, self.OnArenaClick)
  509. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityMap.button, self, self.OnMapClick)
  510. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityPet.button, self, self.OnPetClick)
  511. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnAirshipRewards.button, self, self.OnRewardsClick)
  512. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivitySkill.button, self, self.OnSkillClick)
  513. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnGuildWar.button, self, self.OnClickGuildWarBtn)
  514. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnCombineService.button, self, self.OnClickCombineServerBtn)
  515. --
  516. --self.chatView.uIEventTriggerListener.onClick = function()
  517. -- self:OnChatClick()
  518. --end
  519. end
  520. function UIMainView:OnClickCombineServerBtn()
  521. ManagerContainer.DataMgr.CombineServerDataMgr:SendCombineServerInfoReq()
  522. end
  523. function UIMainView:OnClickGuildWarBtn()
  524. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  525. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildWarMatchMap, nil, curUIId)
  526. end
  527. function UIMainView:OnClickFirstRechargeBtn()
  528. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityFirstRechargeBT)
  529. end
  530. function UIMainView:OnClickHundredRechargeBtn()
  531. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityHundredRechargeBT)
  532. end
  533. function UIMainView:OnClickLimitGiftBtn()
  534. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityLimitedGift)
  535. end
  536. function UIMainView:OnQuestionClick()
  537. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIQuestionnaire)
  538. end
  539. function UIMainView:OnTowerClick()
  540. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.ClimbingTower, true)
  541. end
  542. function UIMainView:OnArenaClick()
  543. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Dojo, true)
  544. end
  545. function UIMainView:OnClickBoliShopBtn()
  546. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBoliShop)
  547. end
  548. function UIMainView:OnMapClick()
  549. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.MapProgress, true)
  550. end
  551. function UIMainView:OnPetClick()
  552. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Pet, true)
  553. end
  554. function UIMainView:OnSkillClick()
  555. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Skill, true)
  556. end
  557. function UIMainView:OnRewardsClick()
  558. if ManagerContainer.DataMgr.RuneShopDataMgr:GetAirShipIsOpen() then
  559. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopExplore)
  560. else
  561. self:RefreshAirShipRewardsBtn(false)
  562. end
  563. end
  564. function UIMainView:OnClickRuneShopBtn()
  565. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  566. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, nil, curUIId)
  567. end
  568. function UIMainView:OnClickWalletShopBtn()
  569. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  570. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRechargeWalletShop, nil, curUIId)
  571. end
  572. function UIMainView:OnClickCoinZ()
  573. -- ManagerContainer.LuaUIMgr:ShowMinTips("ZenyTips")
  574. end
  575. function UIMainView:OnClickGoldIcon()
  576. -- ManagerContainer.LuaUIMgr:ShowMinTips("GoldTips")
  577. end
  578. function UIMainView:OnClickVipBtn()
  579. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIVip)
  580. end
  581. function UIMainView:OnChatClick()
  582. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, nil, self.uiData.id)
  583. end
  584. function UIMainView:OnSeasonClick(button, params)
  585. ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq()
  586. end
  587. function UIMainView:OnHide()
  588. end
  589. function UIMainView:OnShow()
  590. end
  591. function UIMainView:OnClose()
  592. DOTween.Kill(self.gold.transform)
  593. end
  594. function UIMainView:OnDispose()
  595. if mainTopView then
  596. mainTopView:Dispose()
  597. mainTopView = nil
  598. end
  599. if mainBottomView then
  600. mainBottomView:Dispose()
  601. mainBottomView = nil
  602. end
  603. if self.delayTimer then
  604. self.delayTimer:Stop()
  605. end
  606. self.delayTimer = nil
  607. if self.dataDelayTimer then
  608. self.dataDelayTimer:Stop()
  609. end
  610. self.dataDelayTimer = nil
  611. self.canSignPlay = false
  612. end
  613. function UIMainView:OnClickHead()
  614. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMessage, {_targetTag = 0}) --打开头像交互界面,显示自己的信息
  615. end
  616. function UIMainView:OnClickBaseBtn()
  617. self.btnBase:SetActive(false)
  618. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false)
  619. ManagerContainer.UIJumpMgr:CreateJumpTaskById(5)
  620. end
  621. function UIMainView:OnClickJobBtn()
  622. self.btnJob:SetActive(false)
  623. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false)
  624. ManagerContainer.UIJumpMgr:CreateJumpTaskById(6)
  625. end
  626. function UIMainView:OpenTask()
  627. ManagerContainer.DataMgr.TaskDataNew:OpenTaskPanel();
  628. end
  629. function UIMainView:OpenDiffTask()
  630. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDiffTask)
  631. end
  632. function UIMainView:OpenNoticeAndActivity()
  633. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyActivityTips)
  634. end
  635. function UIMainView:ChangePage(button, params)
  636. local data = params.Length > 1 and params[1] or nil
  637. self:ChangePageMsg(params[0], data)
  638. end
  639. function UIMainView:ChangePageMsg(pageType, data)
  640. --LogError("ChangePageMsg ")
  641. if _curMainButtonType == pageType then return end
  642. local UIBattleCtr = ManagerContainer.LuaUIMgr:GetViewCtrById(Enum.UIPageName.UIBattle)
  643. if UIBattleCtr then
  644. local newForce = UIBattleCtr:GetNewForceId()
  645. if newForce then
  646. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.CLOSE_NEW_FUNC_PAGE)
  647. return
  648. end
  649. end
  650. ManagerContainer.DataMgr.TaskDataNew:SetMainButton(pageType);
  651. if _curMainButtonType == Enum.MainViewPageType.Role or _curMainButtonType == Enum.MainViewPageType.Battle or _curMainButtonType == Enum.MainViewPageType.Town then
  652. ManagerContainer.LuaBattleMgr:SetTeamData(true,false)
  653. end
  654. _curMainButtonType = pageType;
  655. self:RefreshSeasonNoticeState(false)
  656. if pageType == Enum.MainViewPageType.Town then
  657. self.upgradeRoot:SetActive(false)
  658. local bta = self.town.icon.buttonTriggerAnimation
  659. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  660. --ManagerContainer.LuaGameMgr:EnterMainCity();
  661. --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIMainCity1)
  662. self.mainPageId = Enum.UIPageName.UIMainCity1
  663. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMainCity1)
  664. --打开主城需要处理额外
  665. ManagerContainer.RedPointMgr.PetRPCtr:RefreshRelationRPState()
  666. elseif pageType == Enum.MainViewPageType.Adventure then
  667. curTopResType = self.uiData.top_res_id
  668. self:RefreshDiamond()
  669. self.upgradeRoot:SetActive(false)
  670. self.mainPageId = Enum.UIPageName.UIBattle
  671. ManagerContainer.LuaGameMgr:EnterBattle(false);
  672. if ManagerContainer.FSMMgr:IsBattleState() then
  673. local bta = self.adventure.icon.buttonTriggerAnimation
  674. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  675. end
  676. elseif pageType == Enum.MainViewPageType.Battle then
  677. self.mainPageId = Enum.UIPageName.UIPetRoot
  678. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPetRoot)
  679. local bta = self.shop.icon.buttonTriggerAnimation
  680. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  681. elseif pageType == Enum.MainViewPageType.Role then
  682. self.upgradeRoot:SetActive(false)
  683. self.mainPageId = Enum.UIPageName.UIRoleMain1
  684. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMain1, data)
  685. local bta = self.role.icon.buttonTriggerAnimation
  686. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  687. elseif pageType == Enum.MainViewPageType.Pub then
  688. self.upgradeRoot:SetActive(false)
  689. --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBag)
  690. self.mainPageId = Enum.UIPageName.UIBag
  691. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag)
  692. local bta = self.bag.icon.buttonTriggerAnimation
  693. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  694. end
  695. end
  696. function UIMainView:GetGotAnimEndPosByType(type)
  697. if type == Enum.ItemType.Item
  698. or type == Enum.ItemType.Equip
  699. or type == Enum.ItemType.Card
  700. or type == Enum.ItemType.ParterChip
  701. or type == Enum.ItemType.FashionPaper
  702. or type == Enum.ItemType.ParterExp
  703. or type == Enum.ItemType.SkillBook
  704. or type == Enum.ItemType.Gift
  705. or type == Enum.ItemType.Income then
  706. --背包
  707. return self.bag.transform.position
  708. elseif type == Enum.ItemType.Coin then
  709. --银币
  710. return self.coinZ.icon.transform.position
  711. elseif type == Enum.ItemType.Diamond then
  712. --钻石
  713. return self.gold.icon.transform.position
  714. elseif type == Enum.ItemType.RoleBaseExp then
  715. --基础经验
  716. return self.expBarBase.slider.effect.transform.position
  717. elseif type == Enum.ItemType.RoleJobExp then
  718. --职业经验
  719. return self.expBarJob.slider.effect.transform.position
  720. elseif type == Enum.ItemType.WalletNum then
  721. return self.topView.topRoot.btnWallet.transform.position
  722. end
  723. return Vector3.zero
  724. end
  725. function UIMainView:GeAnchoredPosition3DByType(type)
  726. local pos = self:GetGotAnimEndPosByType(type)
  727. return CommonUtil.ConvertUIPos2ScreenPos(pos)
  728. end
  729. function UIMainView:GetTaskBtnPosition()
  730. return self.topView.topRoot.btnTask.transform.position
  731. end
  732. -- function UIMainView:ShowAddEffect(type, num)
  733. -- if type == Enum.ItemType.Coin then
  734. -- self:ShowAddCoinEffect(num)
  735. -- elseif type == Enum.ItemType.RoleBaseExp then
  736. -- self:ShowAddRoleExpEffect(num)
  737. -- elseif type == Enum.ItemType.RoleJobExp then
  738. -- self:ShowAddJobExpEffect(num)
  739. -- end
  740. -- end
  741. function UIMainView:ShowAddCoinEffect()
  742. DOTween.Kill(self.coinZ.transform)
  743. -- local newCoin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
  744. self.coinZ.transform.localScale = Vector3.one
  745. self.coinZ.transform:DOScale(Vector3.one * 1.1, 0.2):SetLoops(2, LoopType.Yoyo):OnComplete(function()
  746. self:RefreshCoins()
  747. end)
  748. end
  749. function UIMainView:ShowAddDiamondEffect()
  750. DOTween.Kill(self.gold.transform)
  751. -- local newCoin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
  752. self.gold.transform.localScale = Vector3.one
  753. self.gold.transform:DOScale(Vector3.one * 1.1, 0.2):SetLoops(2, LoopType.Yoyo):OnComplete(function()
  754. self:RefreshDiamond()
  755. end)
  756. end
  757. function UIMainView:ShowAddRoleExpEffect()
  758. self.expBarBase.slider.effect:SetActive(true)
  759. local newRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  760. local newRoleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
  761. -- 计算是否升级
  762. local curRoleLv = self.curRoleLv
  763. local baseExpData = ManagerContainer.CfgMgr:GetRoleExpData(curRoleLv)
  764. if not baseExpData then
  765. self:RefreshLv()
  766. self:RefreshRoleExp()
  767. return
  768. end
  769. local curRoleExp = newRoleExp
  770. local curMaxExp = baseExpData.Name
  771. while (curRoleExp >= curMaxExp) do
  772. baseExpData = ManagerContainer.CfgMgr:GetRoleExpData(curRoleLv + 1)
  773. if not baseExpData then
  774. curRoleExp = curMaxExp
  775. break
  776. end
  777. curRoleExp = curRoleExp - curMaxExp
  778. curMaxExp = baseExpData.Name
  779. curRoleLv = curRoleLv + 1
  780. end
  781. local targetPercent = Mathf.Max(BarMinValue, curRoleExp / curMaxExp)
  782. local curPercent = self.expBarBase.slider.slider.value
  783. DOTween.Kill(self.expBarBase.slider.slider)
  784. if targetPercent >= curPercent and self.curRoleLv == curRoleLv and curRoleLv == newRoleLv then
  785. self.expBarBase.slider.slider:DOValue(targetPercent, AddEffectBarSpeed):OnComplete(function()
  786. self:RefreshLv()
  787. self:RefreshRoleExp()
  788. end)
  789. else
  790. local lerpPercent = 1 - curPercent
  791. local allPercent = (lerpPercent + targetPercent)
  792. local tweener1 = self.expBarBase.slider.slider:DOValue(1, lerpPercent * AddEffectBarSpeed / allPercent)
  793. local tweener2 = self.expBarBase.slider.slider:DOValue(targetPercent, targetPercent * AddEffectBarSpeed / allPercent)
  794. local seq = DOTween.Sequence()
  795. seq:Append(tweener1)
  796. seq:AppendCallback(function()
  797. self.expBarBase.slider.slider.value = BarMinValue
  798. self.expBarBase.textLv.text.text = CommonUtil.StringConcat("Lv.", curRoleLv)
  799. end)
  800. seq:Append(tweener2)
  801. seq:AppendCallback(function()
  802. self:RefreshLv()
  803. self:RefreshRoleExp()
  804. end)
  805. end
  806. end
  807. function UIMainView:ShowAddJobExpEffect()
  808. self.expBarJob.slider.effect:SetActive(true)
  809. local newJobLv = ManagerContainer.DataMgr.UserData:GetJobLv()
  810. local newJobExp = ManagerContainer.DataMgr.UserData:GetJobExp()
  811. -- 计算是否升级
  812. local curJobLv = self.curJobLv
  813. local jobStage = ManagerContainer.DataMgr.UserData:GetJobStage()
  814. local curMaxExp = ManagerContainer.CfgMgr:GetCurMaxJobExpByLvAndStep(curJobLv, jobStage)
  815. if not curMaxExp or curMaxExp == 0 then
  816. self:RefreshJobLv()
  817. self:RefreshJobExp()
  818. return
  819. end
  820. local curJobExp = newJobExp
  821. while (curJobExp >= curMaxExp) do
  822. local nextJobExp = ManagerContainer.CfgMgr:GetCurMaxJobExpByLvAndStep(curJobLv + 1, jobStage)
  823. if not nextJobExp or nextJobExp == 0 then
  824. curJobExp = curMaxExp
  825. break
  826. end
  827. curJobExp = curJobExp - curMaxExp
  828. curMaxExp = nextJobExp
  829. curJobLv = curJobLv + 1
  830. end
  831. local targetPercent = Mathf.Max(BarMinValue, curJobExp / curMaxExp)
  832. local curPercent = self.expBarJob.slider.slider.value
  833. DOTween.Kill(self.expBarJob.slider.slider)
  834. if targetPercent >= curPercent and self.curJobLv == curJobLv and curJobLv == newJobLv then
  835. self.expBarJob.slider.slider:DOValue(targetPercent, AddEffectBarSpeed):OnComplete(function()
  836. self:RefreshJobLv()
  837. self:RefreshJobExp()
  838. end)
  839. else
  840. local lerpPercent = 1 - curPercent
  841. local allPercent = (lerpPercent + targetPercent)
  842. local tweener1 = self.expBarJob.slider.slider:DOValue(1, lerpPercent * AddEffectBarSpeed / allPercent)
  843. local tweener2 = self.expBarJob.slider.slider:DOValue(targetPercent, targetPercent * AddEffectBarSpeed / allPercent)
  844. local seq = DOTween.Sequence()
  845. seq:Append(tweener1)
  846. seq:AppendCallback(function()
  847. self.expBarJob.slider.slider.value = BarMinValue
  848. self.expBarJob.textLv.text.text = CommonUtil.StringConcat("Lv.", curJobLv)
  849. end)
  850. seq:Append(tweener2)
  851. seq:AppendCallback(function()
  852. self:RefreshJobLv()
  853. self:RefreshJobExp()
  854. end)
  855. end
  856. end
  857. function UIMainView:LoggedinForceGuideOver(ignore)
  858. if ManagerContainer.StoryMgr:IsStorying() then
  859. return
  860. end
  861. if ManagerContainer.StoryMgr:HasPreStoryChapter() then
  862. return
  863. end
  864. if not ignore and self.canSignPlay then
  865. self.canSignPlay = false
  866. ManagerContainer.DataMgr.SignData:QuerySignUpInfoReq(true)
  867. elseif ignore then
  868. local _canSignPlay = ManagerContainer.DataMgr.SignData:CanTodaySign()
  869. --LogHRWarning("_canSignPlay "..tostring(_canSignPlay))
  870. if _canSignPlay then
  871. self.canSignPlay = false
  872. ManagerContainer.DataMgr.SignData:QuerySignUpInfoReq(true)
  873. end
  874. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.LIMIT_RECHARGE_OPEN_UI_NTF)
  875. end
  876. end
  877. function UIMainView:OpenFirstRechargeView()
  878. local activityData = ManagerContainer.DataMgr.ActsDataMgr:GetFirstRechargeItem()
  879. if not activityData then
  880. return
  881. end
  882. if not activityData:IsNeedOpen() then
  883. return
  884. end
  885. self:OnClickFirstRechargeBtn()
  886. end
  887. --这几个按钮在主城和战斗迅游界面会打开,其他界面是要关闭的(起码目前是这样)
  888. function UIMainView:SetActiveButtonsState(state)
  889. if mainTopView then
  890. mainTopView:RefreshTopBtns(state)
  891. end
  892. self:RefreshFirstRechargeBtn(state)
  893. self:RefreshGuildWarBtn(state)
  894. end
  895. function UIMainView:RefreshRankActivityEnter(type, state)
  896. if IShServer() then
  897. state = false
  898. end
  899. if mainTopView then
  900. mainTopView:RefreshRankActivityEnter(type, state)
  901. end
  902. end
  903. function UIMainView:RefreshAirShipActivityEnter(state)
  904. if IShServer() then
  905. state = false
  906. end
  907. if mainTopView then
  908. mainTopView:RefreshAirShipActivityEnter(state)
  909. end
  910. end
  911. function UIMainView:RefreshFirstRechargeBtn(state)
  912. self.topView.topRoot.btnFirstRecharge:SetActive(false)
  913. self.topView.topRoot.btnHundredRecharge:SetActive(false)
  914. if state == nil then
  915. state = mainTopView.state
  916. end
  917. if state == false then
  918. return
  919. end
  920. local unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(57)
  921. if not unlockState then
  922. return
  923. end
  924. if ManagerContainer.DataMgr.BTRechargeRewardDataMgr:IsShowHundred() then
  925. if not ManagerContainer.DataMgr.BTRechargeRewardDataMgr:IsGotHundredAllRewardCompleted() and not IShServer() then
  926. self.topView.topRoot.btnHundredRecharge:SetActive(true)
  927. end
  928. else
  929. self.topView.topRoot.btnFirstRecharge:SetActive(true)
  930. end
  931. end
  932. function UIMainView:RefreshQuestionRewardBtn()
  933. local rewardState = ManagerContainer.DataMgr.UserData:GetQuestionRewardState()
  934. self.topView.topRoot.btnQuestionnaire:SetActive(not rewardState)
  935. end
  936. function UIMainView:RefreshAirShipRewardsBtn(state)
  937. if not Constant.OpenPay then
  938. state = false
  939. end
  940. if IShServer() then
  941. state = false
  942. end
  943. self.topView.topRoot.btnAirshipRewards:SetActive(state)
  944. end
  945. function UIMainView:RefreshGuildWarBtn(state)
  946. if state == false then
  947. self.topView.topRoot.btnGuildWar:SetActive(false)
  948. return
  949. end
  950. local _unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(66)
  951. if not _unlockState then
  952. self.topView.topRoot.btnGuildWar:SetActive(false)
  953. return
  954. end
  955. local isOpen = ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState()
  956. if isOpen then
  957. self.topView.topRoot.btnGuildWar:SetActive(true)
  958. return
  959. end
  960. self.topView.topRoot.btnGuildWar:SetActive(false)
  961. end
  962. function UIMainView:OnCombineServerTimeChanged()
  963. mainTopView:ChangeRefreshCombineServerBtn()
  964. end
  965. function UIMainView:OnCombineServerContentChanged(content)
  966. if not content or content == '' then
  967. return
  968. end
  969. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyTipsSimple, {'BtnCombineService', content})
  970. end
  971. return UIMainView