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. local sname = I18N.T(competitionCfgDatas[1].CompetitionName)
  274. self.SeasonName.text.text = sname
  275. self.SeasonName1.text.text = sname
  276. if stage == 1 then
  277. self.remainDay.text.text = I18N.T("DscSeasonResult13")
  278. self.remainDay1.text.text = I18N.T("DscSeasonResult13")
  279. elseif stage == 2 then
  280. local endTime = nextStageTime
  281. if endTime == 0 then
  282. self.remainDay.text.text = I18N.T("DscSeasonResult6")
  283. self.remainDay1.text.text = I18N.T("DscSeasonResult6")
  284. else
  285. local remainS = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(endTime, false)
  286. if remainS > 0 then
  287. if remainS <= 60 then
  288. self.remainDay.text.text = I18N.T("LessOneMinu")
  289. self.remainDay1.text.text = I18N.T("LessOneMinu")
  290. else
  291. local time = DateTimeUtil.convertSeconds2TimeStr1(remainS, true, false)
  292. self.remainDay.text.text = time
  293. self.remainDay1.text.text = time
  294. end
  295. else
  296. self.remainDay.text.text = I18N.T("DscSeasonResult6")
  297. self.remainDay1.text.text = I18N.T("DscSeasonResult6")
  298. end
  299. end
  300. elseif stage == 3 then
  301. self.remainDay.text.text = I18N.T("DscSeasonResult6")
  302. self.remainDay1.text.text = I18N.T("DscSeasonResult6")
  303. end
  304. end
  305. function UIMainView:RefreshUserNickName()
  306. self.textName.text.text = ManagerContainer.DataMgr.UserData:GetUserNickname()
  307. end
  308. function UIMainView:InsertGMNotice()
  309. local notice = ManagerContainer.DataMgr.GMNoticeData:GetCurNotice()
  310. if mainTopView and notice then
  311. mainTopView:InsertGMNotice(notice)
  312. end
  313. end
  314. function UIMainView:ChangeHeadFrame(headFrameIcon)
  315. CommonUtil.LoadIcon(self, headFrameIcon, function (sprite)
  316. self.headItem.frame.image.sprite = sprite
  317. end)
  318. end
  319. function UIMainView:RefreshHead()
  320. local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  321. local jobCfgId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
  322. local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
  323. local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
  324. local _fakerData = {Level = curRoleLv, ProfessionIcon = jobCfgData.JobIcon, HeadIcon = headIcon, IsHero = true};
  325. local _headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId()
  326. CommonUtil.SetPlayerHeadAndFrame(self, self.headItem, _fakerData,false, _headFrameId, self, self.OnClickHead);
  327. if not jobCfgData or jobCfgData.JobStage >= 3 then
  328. self.expBarJob:SetActive(false)
  329. else
  330. self.expBarJob:SetActive(true)
  331. end
  332. end
  333. function UIMainView:RefreshJobIcon()
  334. local jobCfgId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
  335. local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
  336. CommonUtil.LoadIcon(self, jobCfgData.JobIcon, function (sprite)
  337. self.headItem.jobIcon.image.sprite = sprite
  338. end, self, 'jobIconIdx')
  339. end
  340. function UIMainView:RefreshFightPower()
  341. self.fightpower.text.text = ManagerContainer.DataMgr.UserData:GetTotalFightPower()
  342. end
  343. function UIMainView:RoleRedPointNotice()
  344. --local RPStatus = ManagerContainer.RedPointMgr.HeroRPCtr:GetUIMainRPStatus()
  345. --RedPointItemCtr:SetData(self, self.redPointItem, RPStatus, Enum.HeroRPSource.Main)
  346. end
  347. function UIMainView:RefreshLv()
  348. local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  349. self.expBarBase.textLv.text.text = CommonUtil.StringConcat("Lv.", curRoleLv)
  350. self.curRoleLv = curRoleLv
  351. self.headItem.levelText.text.text = tostring(curRoleLv);
  352. end
  353. function UIMainView:RefreshRoleExp()
  354. local roleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
  355. local curBaseMaxExp = ManagerContainer.DataMgr.UserData:GetHeroCurBaseMaxExp()
  356. self.expBarBase.textTotal.text.text = CommonUtil.StringConcat(CommonUtil.FormatNumber(roleExp), "/", CommonUtil.FormatNumber(curBaseMaxExp))
  357. local barPercent = curBaseMaxExp == 0 and 0 or roleExp/curBaseMaxExp
  358. self.expBarBase.slider.slider.value = Mathf.Max(BarMinValue, barPercent)
  359. self.curRoleExp = roleExp
  360. self.expBarBase.slider.effect:SetActive(false)
  361. --self:RefreshRestTime()
  362. end
  363. function UIMainView:RefreshRestTime(awardTotalTime)
  364. self.controller:SetAwardTotalTime(awardTotalTime)
  365. local roleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
  366. local curBaseMaxExp = ManagerContainer.DataMgr.UserData:GetHeroCurBaseMaxExp()
  367. local lerp = curBaseMaxExp - roleExp
  368. if lerp > 0 then
  369. local curLevelExp = ManagerContainer.LuaBattleMgr:CurLevelExp() or 100
  370. local seconds = Mathf.Ceil(lerp * 60 / curLevelExp - self.controller:GetAwardTotalTime())
  371. self.restTime.text.uILocalizeScript:SetContent('RestTime')
  372. self.restTime.textTime.text.text = DateTimeUtil.convertSeconds2TimeStr(seconds, false)
  373. elseif lerp == 0 then
  374. self.restTime.text.uILocalizeScript:SetContent('RestTimeMax')
  375. self.restTime.textTime.text.text = '--'
  376. end
  377. end
  378. function UIMainView:RefreshJobLv()
  379. local curJobLv = ManagerContainer.DataMgr.UserData:GetJobLv()
  380. self.expBarJob.textLv.text.text = CommonUtil.StringConcat("Lv.", curJobLv)
  381. self.curJobLv = curJobLv
  382. end
  383. function UIMainView:RefreshJobExp()
  384. local curMaxJobExp = ManagerContainer.DataMgr.UserData:GetHeroCurJobMaxExp()
  385. local jobExp = ManagerContainer.DataMgr.UserData:GetJobExp()
  386. self.expBarJob.textTotal.text.text = CommonUtil.StringConcat(CommonUtil.FormatNumber(jobExp), "/", CommonUtil.FormatNumber(curMaxJobExp))
  387. local barPercent = curMaxJobExp == 0 and 0 or jobExp/curMaxJobExp
  388. self.expBarJob.slider.slider.value = Mathf.Max(BarMinValue, barPercent)
  389. self.curJobExp = jobExp
  390. self.expBarJob.slider.effect:SetActive(false)
  391. end
  392. function UIMainView:RefreshCoins()
  393. local coin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
  394. self.coinZ.text.text.text = CommonUtil.FormatNumber(coin)
  395. self.curCoin = coin
  396. end
  397. function UIMainView:RefreshDiamond()
  398. local count = CommonUtil.GetOwnResCountByItemId(curTopResType) --ManagerContainer.DataMgr.UserData:GetCurrency(curTopResType)
  399. self.gold.text.text.text = CommonUtil.FormatNumber(count)
  400. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(curTopResType)
  401. CommonUtil.LoadIcon(self, itemCfgData.MiniIcon, function (sprite)
  402. self.gold.icon.image.sprite = sprite
  403. end)
  404. --只显示金币的跳转按钮
  405. if curTopResType == Enum.ItemType.Diamond then
  406. self.btnGold:SetActive(Constant.OpenPay)
  407. else
  408. self.btnGold:SetActive(false)
  409. end
  410. if curTopResType == Enum.ItemType.Diamond then
  411. self.curDiamond = count
  412. end
  413. end
  414. function UIMainView:RefreshVipView()
  415. self.vipBtn.image.sprite = nil
  416. self.vipBtn.image.enabled = false
  417. local curVipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  418. local vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(curVipLv)
  419. if not vipCfg then
  420. return
  421. end
  422. CommonUtil.LoadIcon(self, vipCfg.SmallIcon, function(sprite)
  423. if sprite then
  424. self.vipBtn.image.sprite = sprite
  425. self.vipBtn.image.enabled = true
  426. end
  427. end)
  428. end
  429. function UIMainView:DisplayBtnBase(result)
  430. if result then
  431. if ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false) ~= result then
  432. return
  433. end
  434. end
  435. self.btnBase:SetActive(result)
  436. end
  437. function UIMainView:DisplayBtnJob(result)
  438. if result then
  439. if ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false) ~= result then
  440. return
  441. end
  442. end
  443. self.btnJob:SetActive(result)
  444. end
  445. function UIMainView:OnRefreshRoleLv()
  446. -- 在属性界面打开的情况下,不再显示这个按钮
  447. if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UIRoleNaturePoint) then
  448. return
  449. end
  450. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, true)
  451. self.btnBase:SetActive(true)
  452. end
  453. function UIMainView:CloseBtnBase()
  454. self.btnBase:SetActive(false)
  455. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false)
  456. end
  457. function UIMainView:OnRefreshJobLv()
  458. -- 在技能树界面打开的情况下,不再显示这个按钮
  459. if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UISkillSettings) then
  460. return
  461. end
  462. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, true)
  463. self.btnJob:SetActive(true)
  464. end
  465. function UIMainView:OnVipLvChanged()
  466. self:RefreshVipView()
  467. end
  468. function UIMainView:CloseBtnJob()
  469. self.btnJob:SetActive(false)
  470. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false)
  471. end
  472. function UIMainView:RemoveEventListener()
  473. -- LogError("remove event "..self.uiData.name)
  474. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  475. end
  476. function UIMainView:AddUIEventListener()
  477. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  478. self.uiBase:AddButtonEventListener(self.btnGold.button, function()
  479. if self.mainPageId then
  480. -- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGM)
  481. if curTopResType == Enum.ItemType.Diamond then
  482. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  483. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, {Enum.RuneShopType.Gifts, Enum.RuneShopSubType.Gold}, curUIId)
  484. end
  485. end
  486. end)
  487. self.uiBase:AddButtonEventListener(self.town.icon.button, self, self.ChangePage, Enum.MainViewPageType.Town)
  488. self.uiBase:AddButtonEventListener(self.adventure.icon.button, self, self.ChangePage, Enum.MainViewPageType.Adventure)
  489. self.uiBase:AddButtonEventListener(self.shop.icon.button, self, self.ChangePage, Enum.MainViewPageType.Battle)
  490. self.uiBase:AddButtonEventListener(self.role.icon.button, self, self.ChangePage, Enum.MainViewPageType.Role, 1)
  491. self.uiBase:AddButtonEventListener(self.bag.icon.button, self, self.ChangePage, Enum.MainViewPageType.Pub)
  492. self.uiBase:AddButtonEventListener(self.btnBase.button,self,self.OnClickBaseBtn)
  493. self.uiBase:AddButtonEventListener(self.btnJob.button,self,self.OnClickJobBtn)
  494. --self.uiBase:AddButtonEventListener(self.head.button,self,self.OnClickHead)
  495. self.uiBase:AddButtonEventListener(self.topView.topRoot.btnNotifyActivity.button,self,self.OpenNoticeAndActivity)
  496. self.uiBase:AddButtonEventListener(self.topView.topRoot.btnTask.button,self,self.OpenTask)
  497. self.uiBase:AddButtonEventListener(self.topView.topRoot.BtnDiffTask.button,self,self.OpenDiffTask)
  498. self.uiBase:AddButtonEventListener(self.seasonInfo.button, self, self.OnSeasonClick)
  499. self.uiBase:AddButtonEventListener(self.coinZ.icon.button, self,self.OnClickCoinZ)
  500. self.uiBase:AddButtonEventListener(self.gold.icon.button, self,self.OnClickGoldIcon)
  501. self.uiBase:AddButtonUniqueEventListener(self.vipBtn.button, self, self.OnClickVipBtn)
  502. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnClub.button, self, self.OnClickRuneShopBtn)
  503. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnWallet.button, self, self.OnClickWalletShopBtn)
  504. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.BtnBoliShop.button, self, self.OnClickBoliShopBtn)
  505. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnFirstRecharge.button, self, self.OnClickFirstRechargeBtn)
  506. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnHundredRecharge.button, self, self.OnClickHundredRechargeBtn)
  507. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnLimitedGift.button, self, self.OnClickLimitGiftBtn)
  508. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnQuestionnaire.button, self, self.OnQuestionClick)
  509. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityTower.button, self, self.OnTowerClick)
  510. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityDojo.button, self, self.OnArenaClick)
  511. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityMap.button, self, self.OnMapClick)
  512. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityPet.button, self, self.OnPetClick)
  513. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnAirshipRewards.button, self, self.OnRewardsClick)
  514. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivitySkill.button, self, self.OnSkillClick)
  515. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnGuildWar.button, self, self.OnClickGuildWarBtn)
  516. self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnCombineService.button, self, self.OnClickCombineServerBtn)
  517. --
  518. --self.chatView.uIEventTriggerListener.onClick = function()
  519. -- self:OnChatClick()
  520. --end
  521. end
  522. function UIMainView:OnClickCombineServerBtn()
  523. ManagerContainer.DataMgr.CombineServerDataMgr:SendCombineServerInfoReq()
  524. end
  525. function UIMainView:OnClickGuildWarBtn()
  526. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  527. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildWarMatchMap, nil, curUIId)
  528. end
  529. function UIMainView:OnClickFirstRechargeBtn()
  530. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityFirstRechargeBT)
  531. end
  532. function UIMainView:OnClickHundredRechargeBtn()
  533. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityHundredRechargeBT)
  534. end
  535. function UIMainView:OnClickLimitGiftBtn()
  536. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityLimitedGift)
  537. end
  538. function UIMainView:OnQuestionClick()
  539. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIQuestionnaire)
  540. end
  541. function UIMainView:OnTowerClick()
  542. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.ClimbingTower, true)
  543. end
  544. function UIMainView:OnArenaClick()
  545. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Dojo, true)
  546. end
  547. function UIMainView:OnClickBoliShopBtn()
  548. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBoliShop)
  549. end
  550. function UIMainView:OnMapClick()
  551. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.MapProgress, true)
  552. end
  553. function UIMainView:OnPetClick()
  554. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Pet, true)
  555. end
  556. function UIMainView:OnSkillClick()
  557. ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Skill, true)
  558. end
  559. function UIMainView:OnRewardsClick()
  560. if ManagerContainer.DataMgr.RuneShopDataMgr:GetAirShipIsOpen() then
  561. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopExplore)
  562. else
  563. self:RefreshAirShipRewardsBtn(false)
  564. end
  565. end
  566. function UIMainView:OnClickRuneShopBtn()
  567. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  568. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, nil, curUIId)
  569. end
  570. function UIMainView:OnClickWalletShopBtn()
  571. local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
  572. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRechargeWalletShop, nil, curUIId)
  573. end
  574. function UIMainView:OnClickCoinZ()
  575. -- ManagerContainer.LuaUIMgr:ShowMinTips("ZenyTips")
  576. end
  577. function UIMainView:OnClickGoldIcon()
  578. -- ManagerContainer.LuaUIMgr:ShowMinTips("GoldTips")
  579. end
  580. function UIMainView:OnClickVipBtn()
  581. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIVip)
  582. end
  583. function UIMainView:OnChatClick()
  584. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, nil, self.uiData.id)
  585. end
  586. function UIMainView:OnSeasonClick(button, params)
  587. ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq()
  588. end
  589. function UIMainView:OnHide()
  590. end
  591. function UIMainView:OnShow()
  592. end
  593. function UIMainView:OnClose()
  594. DOTween.Kill(self.gold.transform)
  595. end
  596. function UIMainView:OnDispose()
  597. if mainTopView then
  598. mainTopView:Dispose()
  599. mainTopView = nil
  600. end
  601. if mainBottomView then
  602. mainBottomView:Dispose()
  603. mainBottomView = nil
  604. end
  605. if self.delayTimer then
  606. self.delayTimer:Stop()
  607. end
  608. self.delayTimer = nil
  609. if self.dataDelayTimer then
  610. self.dataDelayTimer:Stop()
  611. end
  612. self.dataDelayTimer = nil
  613. self.canSignPlay = false
  614. end
  615. function UIMainView:OnClickHead()
  616. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMessage, {_targetTag = 0}) --打开头像交互界面,显示自己的信息
  617. end
  618. function UIMainView:OnClickBaseBtn()
  619. self.btnBase:SetActive(false)
  620. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false)
  621. ManagerContainer.UIJumpMgr:CreateJumpTaskById(5)
  622. end
  623. function UIMainView:OnClickJobBtn()
  624. self.btnJob:SetActive(false)
  625. ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false)
  626. ManagerContainer.UIJumpMgr:CreateJumpTaskById(6)
  627. end
  628. function UIMainView:OpenTask()
  629. ManagerContainer.DataMgr.TaskDataNew:OpenTaskPanel();
  630. end
  631. function UIMainView:OpenDiffTask()
  632. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDiffTask)
  633. end
  634. function UIMainView:OpenNoticeAndActivity()
  635. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyActivityTips)
  636. end
  637. function UIMainView:ChangePage(button, params)
  638. local data = params.Length > 1 and params[1] or nil
  639. self:ChangePageMsg(params[0], data)
  640. end
  641. function UIMainView:ChangePageMsg(pageType, data)
  642. --LogError("ChangePageMsg ")
  643. if _curMainButtonType == pageType then return end
  644. local UIBattleCtr = ManagerContainer.LuaUIMgr:GetViewCtrById(Enum.UIPageName.UIBattle)
  645. if UIBattleCtr then
  646. local newForce = UIBattleCtr:GetNewForceId()
  647. if newForce then
  648. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.CLOSE_NEW_FUNC_PAGE)
  649. return
  650. end
  651. end
  652. ManagerContainer.DataMgr.TaskDataNew:SetMainButton(pageType);
  653. if _curMainButtonType == Enum.MainViewPageType.Role or _curMainButtonType == Enum.MainViewPageType.Battle or _curMainButtonType == Enum.MainViewPageType.Town then
  654. ManagerContainer.LuaBattleMgr:SetTeamData(true,false)
  655. end
  656. _curMainButtonType = pageType;
  657. self:RefreshSeasonNoticeState(false)
  658. if pageType == Enum.MainViewPageType.Town then
  659. self.upgradeRoot:SetActive(false)
  660. local bta = self.town.icon.buttonTriggerAnimation
  661. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  662. --ManagerContainer.LuaGameMgr:EnterMainCity();
  663. --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIMainCity1)
  664. self.mainPageId = Enum.UIPageName.UIMainCity1
  665. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMainCity1)
  666. --打开主城需要处理额外
  667. ManagerContainer.RedPointMgr.PetRPCtr:RefreshRelationRPState()
  668. elseif pageType == Enum.MainViewPageType.Adventure then
  669. curTopResType = self.uiData.top_res_id
  670. self:RefreshDiamond()
  671. self.upgradeRoot:SetActive(false)
  672. self.mainPageId = Enum.UIPageName.UIBattle
  673. ManagerContainer.LuaGameMgr:EnterBattle(false);
  674. if ManagerContainer.FSMMgr:IsBattleState() then
  675. local bta = self.adventure.icon.buttonTriggerAnimation
  676. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  677. end
  678. elseif pageType == Enum.MainViewPageType.Battle then
  679. self.mainPageId = Enum.UIPageName.UIPetRoot
  680. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPetRoot)
  681. local bta = self.shop.icon.buttonTriggerAnimation
  682. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  683. elseif pageType == Enum.MainViewPageType.Role then
  684. self.upgradeRoot:SetActive(false)
  685. self.mainPageId = Enum.UIPageName.UIRoleMain1
  686. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMain1, data)
  687. local bta = self.role.icon.buttonTriggerAnimation
  688. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  689. elseif pageType == Enum.MainViewPageType.Pub then
  690. self.upgradeRoot:SetActive(false)
  691. --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBag)
  692. self.mainPageId = Enum.UIPageName.UIBag
  693. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag)
  694. local bta = self.bag.icon.buttonTriggerAnimation
  695. bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
  696. end
  697. end
  698. function UIMainView:GetGotAnimEndPosByType(type)
  699. if type == Enum.ItemType.Item
  700. or type == Enum.ItemType.Equip
  701. or type == Enum.ItemType.Card
  702. or type == Enum.ItemType.ParterChip
  703. or type == Enum.ItemType.FashionPaper
  704. or type == Enum.ItemType.ParterExp
  705. or type == Enum.ItemType.SkillBook
  706. or type == Enum.ItemType.Gift
  707. or type == Enum.ItemType.Income then
  708. --背包
  709. return self.bag.transform.position
  710. elseif type == Enum.ItemType.Coin then
  711. --银币
  712. return self.coinZ.icon.transform.position
  713. elseif type == Enum.ItemType.Diamond then
  714. --钻石
  715. return self.gold.icon.transform.position
  716. elseif type == Enum.ItemType.RoleBaseExp then
  717. --基础经验
  718. return self.expBarBase.slider.effect.transform.position
  719. elseif type == Enum.ItemType.RoleJobExp then
  720. --职业经验
  721. return self.expBarJob.slider.effect.transform.position
  722. elseif type == Enum.ItemType.WalletNum then
  723. return self.topView.topRoot.btnWallet.transform.position
  724. end
  725. return Vector3.zero
  726. end
  727. function UIMainView:GeAnchoredPosition3DByType(type)
  728. local pos = self:GetGotAnimEndPosByType(type)
  729. return CommonUtil.ConvertUIPos2ScreenPos(pos)
  730. end
  731. function UIMainView:GetTaskBtnPosition()
  732. return self.topView.topRoot.btnTask.transform.position
  733. end
  734. -- function UIMainView:ShowAddEffect(type, num)
  735. -- if type == Enum.ItemType.Coin then
  736. -- self:ShowAddCoinEffect(num)
  737. -- elseif type == Enum.ItemType.RoleBaseExp then
  738. -- self:ShowAddRoleExpEffect(num)
  739. -- elseif type == Enum.ItemType.RoleJobExp then
  740. -- self:ShowAddJobExpEffect(num)
  741. -- end
  742. -- end
  743. function UIMainView:ShowAddCoinEffect()
  744. DOTween.Kill(self.coinZ.transform)
  745. -- local newCoin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
  746. self.coinZ.transform.localScale = Vector3.one
  747. self.coinZ.transform:DOScale(Vector3.one * 1.1, 0.2):SetLoops(2, LoopType.Yoyo):OnComplete(function()
  748. self:RefreshCoins()
  749. end)
  750. end
  751. function UIMainView:ShowAddDiamondEffect()
  752. DOTween.Kill(self.gold.transform)
  753. -- local newCoin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
  754. self.gold.transform.localScale = Vector3.one
  755. self.gold.transform:DOScale(Vector3.one * 1.1, 0.2):SetLoops(2, LoopType.Yoyo):OnComplete(function()
  756. self:RefreshDiamond()
  757. end)
  758. end
  759. function UIMainView:ShowAddRoleExpEffect()
  760. self.expBarBase.slider.effect:SetActive(true)
  761. local newRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  762. local newRoleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
  763. -- 计算是否升级
  764. local curRoleLv = self.curRoleLv
  765. local baseExpData = ManagerContainer.CfgMgr:GetRoleExpData(curRoleLv)
  766. if not baseExpData then
  767. self:RefreshLv()
  768. self:RefreshRoleExp()
  769. return
  770. end
  771. local curRoleExp = newRoleExp
  772. local curMaxExp = baseExpData.Name
  773. while (curRoleExp >= curMaxExp) do
  774. baseExpData = ManagerContainer.CfgMgr:GetRoleExpData(curRoleLv + 1)
  775. if not baseExpData then
  776. curRoleExp = curMaxExp
  777. break
  778. end
  779. curRoleExp = curRoleExp - curMaxExp
  780. curMaxExp = baseExpData.Name
  781. curRoleLv = curRoleLv + 1
  782. end
  783. local targetPercent = Mathf.Max(BarMinValue, curRoleExp / curMaxExp)
  784. local curPercent = self.expBarBase.slider.slider.value
  785. DOTween.Kill(self.expBarBase.slider.slider)
  786. if targetPercent >= curPercent and self.curRoleLv == curRoleLv and curRoleLv == newRoleLv then
  787. self.expBarBase.slider.slider:DOValue(targetPercent, AddEffectBarSpeed):OnComplete(function()
  788. self:RefreshLv()
  789. self:RefreshRoleExp()
  790. end)
  791. else
  792. local lerpPercent = 1 - curPercent
  793. local allPercent = (lerpPercent + targetPercent)
  794. local tweener1 = self.expBarBase.slider.slider:DOValue(1, lerpPercent * AddEffectBarSpeed / allPercent)
  795. local tweener2 = self.expBarBase.slider.slider:DOValue(targetPercent, targetPercent * AddEffectBarSpeed / allPercent)
  796. local seq = DOTween.Sequence()
  797. seq:Append(tweener1)
  798. seq:AppendCallback(function()
  799. self.expBarBase.slider.slider.value = BarMinValue
  800. self.expBarBase.textLv.text.text = CommonUtil.StringConcat("Lv.", curRoleLv)
  801. end)
  802. seq:Append(tweener2)
  803. seq:AppendCallback(function()
  804. self:RefreshLv()
  805. self:RefreshRoleExp()
  806. end)
  807. end
  808. end
  809. function UIMainView:ShowAddJobExpEffect()
  810. self.expBarJob.slider.effect:SetActive(true)
  811. local newJobLv = ManagerContainer.DataMgr.UserData:GetJobLv()
  812. local newJobExp = ManagerContainer.DataMgr.UserData:GetJobExp()
  813. -- 计算是否升级
  814. local curJobLv = self.curJobLv
  815. local jobStage = ManagerContainer.DataMgr.UserData:GetJobStage()
  816. local curMaxExp = ManagerContainer.CfgMgr:GetCurMaxJobExpByLvAndStep(curJobLv, jobStage)
  817. if not curMaxExp or curMaxExp == 0 then
  818. self:RefreshJobLv()
  819. self:RefreshJobExp()
  820. return
  821. end
  822. local curJobExp = newJobExp
  823. while (curJobExp >= curMaxExp) do
  824. local nextJobExp = ManagerContainer.CfgMgr:GetCurMaxJobExpByLvAndStep(curJobLv + 1, jobStage)
  825. if not nextJobExp or nextJobExp == 0 then
  826. curJobExp = curMaxExp
  827. break
  828. end
  829. curJobExp = curJobExp - curMaxExp
  830. curMaxExp = nextJobExp
  831. curJobLv = curJobLv + 1
  832. end
  833. local targetPercent = Mathf.Max(BarMinValue, curJobExp / curMaxExp)
  834. local curPercent = self.expBarJob.slider.slider.value
  835. DOTween.Kill(self.expBarJob.slider.slider)
  836. if targetPercent >= curPercent and self.curJobLv == curJobLv and curJobLv == newJobLv then
  837. self.expBarJob.slider.slider:DOValue(targetPercent, AddEffectBarSpeed):OnComplete(function()
  838. self:RefreshJobLv()
  839. self:RefreshJobExp()
  840. end)
  841. else
  842. local lerpPercent = 1 - curPercent
  843. local allPercent = (lerpPercent + targetPercent)
  844. local tweener1 = self.expBarJob.slider.slider:DOValue(1, lerpPercent * AddEffectBarSpeed / allPercent)
  845. local tweener2 = self.expBarJob.slider.slider:DOValue(targetPercent, targetPercent * AddEffectBarSpeed / allPercent)
  846. local seq = DOTween.Sequence()
  847. seq:Append(tweener1)
  848. seq:AppendCallback(function()
  849. self.expBarJob.slider.slider.value = BarMinValue
  850. self.expBarJob.textLv.text.text = CommonUtil.StringConcat("Lv.", curJobLv)
  851. end)
  852. seq:Append(tweener2)
  853. seq:AppendCallback(function()
  854. self:RefreshJobLv()
  855. self:RefreshJobExp()
  856. end)
  857. end
  858. end
  859. function UIMainView:LoggedinForceGuideOver(ignore)
  860. if ManagerContainer.StoryMgr:IsStorying() then
  861. return
  862. end
  863. if ManagerContainer.StoryMgr:HasPreStoryChapter() then
  864. return
  865. end
  866. if not ignore and self.canSignPlay then
  867. self.canSignPlay = false
  868. ManagerContainer.DataMgr.SignData:QuerySignUpInfoReq(true)
  869. elseif ignore then
  870. local _canSignPlay = ManagerContainer.DataMgr.SignData:CanTodaySign()
  871. --LogHRWarning("_canSignPlay "..tostring(_canSignPlay))
  872. if _canSignPlay then
  873. self.canSignPlay = false
  874. ManagerContainer.DataMgr.SignData:QuerySignUpInfoReq(true)
  875. end
  876. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.LIMIT_RECHARGE_OPEN_UI_NTF)
  877. end
  878. end
  879. function UIMainView:OpenFirstRechargeView()
  880. local activityData = ManagerContainer.DataMgr.ActsDataMgr:GetFirstRechargeItem()
  881. if not activityData then
  882. return
  883. end
  884. if not activityData:IsNeedOpen() then
  885. return
  886. end
  887. self:OnClickFirstRechargeBtn()
  888. end
  889. --这几个按钮在主城和战斗迅游界面会打开,其他界面是要关闭的(起码目前是这样)
  890. function UIMainView:SetActiveButtonsState(state)
  891. if mainTopView then
  892. mainTopView:RefreshTopBtns(state)
  893. end
  894. self:RefreshFirstRechargeBtn(state)
  895. self:RefreshGuildWarBtn(state)
  896. end
  897. function UIMainView:RefreshRankActivityEnter(type, state)
  898. if IShServer() then
  899. state = false
  900. end
  901. if mainTopView then
  902. mainTopView:RefreshRankActivityEnter(type, state)
  903. end
  904. end
  905. function UIMainView:RefreshAirShipActivityEnter(state)
  906. if IShServer() then
  907. state = false
  908. end
  909. if mainTopView then
  910. mainTopView:RefreshAirShipActivityEnter(state)
  911. end
  912. end
  913. function UIMainView:RefreshFirstRechargeBtn(state)
  914. self.topView.topRoot.btnFirstRecharge:SetActive(false)
  915. self.topView.topRoot.btnHundredRecharge:SetActive(false)
  916. if state == nil then
  917. state = mainTopView.state
  918. end
  919. if state == false then
  920. return
  921. end
  922. local unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(57)
  923. if not unlockState then
  924. return
  925. end
  926. if ManagerContainer.DataMgr.BTRechargeRewardDataMgr:IsShowHundred() then
  927. if not ManagerContainer.DataMgr.BTRechargeRewardDataMgr:IsGotHundredAllRewardCompleted() and not IShServer() then
  928. self.topView.topRoot.btnHundredRecharge:SetActive(true)
  929. end
  930. else
  931. self.topView.topRoot.btnFirstRecharge:SetActive(true)
  932. end
  933. end
  934. function UIMainView:RefreshQuestionRewardBtn()
  935. local rewardState = ManagerContainer.DataMgr.UserData:GetQuestionRewardState()
  936. self.topView.topRoot.btnQuestionnaire:SetActive(not rewardState)
  937. end
  938. function UIMainView:RefreshAirShipRewardsBtn(state)
  939. if not Constant.OpenPay then
  940. state = false
  941. end
  942. if IShServer() then
  943. state = false
  944. end
  945. self.topView.topRoot.btnAirshipRewards:SetActive(state)
  946. end
  947. function UIMainView:RefreshGuildWarBtn(state)
  948. if state == false then
  949. self.topView.topRoot.btnGuildWar:SetActive(false)
  950. return
  951. end
  952. local _unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(66)
  953. if not _unlockState then
  954. self.topView.topRoot.btnGuildWar:SetActive(false)
  955. return
  956. end
  957. local isOpen = ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState()
  958. if isOpen then
  959. self.topView.topRoot.btnGuildWar:SetActive(true)
  960. return
  961. end
  962. self.topView.topRoot.btnGuildWar:SetActive(false)
  963. end
  964. function UIMainView:OnCombineServerTimeChanged()
  965. mainTopView:ChangeRefreshCombineServerBtn()
  966. end
  967. function UIMainView:OnCombineServerContentChanged(content)
  968. if not content or content == '' then
  969. return
  970. end
  971. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyTipsSimple, {'BtnCombineService', content})
  972. end
  973. return UIMainView