| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143 |
- local UIMainView = require("UIMain/UIMainView_Generate")
- local MainTopView = require("UIMain/MainTopView")
- local MainBottomView = require("UIMain/MainBottomView")
- -- local GotAnimCtr = require("UIPOPGot/UIPOPGotAnimsCtr")
- local DOTween = DG.Tweening.DOTween
- local LoopType = DG.Tweening.LoopType
- local curTopResType = Enum.ItemType.Diamond
- local _curMainButtonType = Enum.MainViewPageType.Adventure
- local mainTopView
- local mainBottomView
- --- 慧勇需求 经验条,最小不能小于这个值,哪怕为真实值为0
- local BarMinValue = 0.02
- local AddEffectBarSpeed = 0.5
- local bossBattleStatus = false
- function UIMainView:OnAwake(data)
- self.controller = require("UIMain/UIMainCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIMainView:AddEventListener()
- -- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_COIN_AND_DIAMOND, function()
- -- self:RefreshCoins()
- -- self:RefreshLv()
- -- end)
- -- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_ROLE_LV, function()
- -- self:RefreshLv()
- -- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ROLE_EXP_CHANGED, self, self.ShowAddRoleExpEffect)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.JOB_EXP_CHANGED, self, self.ShowAddJobExpEffect)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.COIN_CHANGED, self, self.ShowAddCoinEffect)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DIAMOND_CHANGED, self, self.ShowAddDiamondEffect)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ROLE_LV_CHANGED, self, self.OnRefreshRoleLv)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.JOB_LV_CHANGED, self, self.OnRefreshJobLv)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_VIEW_SET_ATTR_BTN, self, self.CloseBtnBase)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_VIEW_UP_SKILL_BTN, self, self.CloseBtnJob)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_HANG_TIME, self, self.RefreshRestTime)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.NICK_NAME_CREATED, self, self.RefreshUserNickName)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.USER_HEADPROTRAIT_CHANGED, self, self.RefreshHead)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_CHANGE_BUTTONS_STATE,self,self.SetActiveButtonsState)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.MAIN_UI_ROLE_REDPOINT_NOTICE, self, self.RoleRedPointNotice)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.RED_POINT_NOTICE, self, self.RoleRedPointNotice)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UI_FORCE_GUIDE_OVER, self, self.LoggedinForceGuideOver)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UIMAINVIEW_CHANGE_NOTICE, function(pageType, data)
- self:ChangePageMsg(pageType, data)
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DISPLAY_MAIN_TOP, function(state, order)
- if mainTopView then
- mainTopView:Change(state, order)
- end
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.DISPLAY_MAIN_BOTTOM, function(state, order)
- if mainBottomView then
- mainBottomView:Change(state, order)
- end
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.LIMIT_RECHARGE_OPEN_NTF, function(state, order)
- if mainTopView then
- mainTopView:OpenLimitRecharge()
- end
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_COIN_AND_JOBEXP, function()
- self:RefreshDiamond()
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_CRUISE_CHANGED, function()
- if curTopResType ~= Enum.ItemType.SkillExp then return end
- self:RefreshDiamond()
- end)
- -- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GOT_ITEM_ANIM_END_NOTIFY, function(type)
- -- LogError("got anim end "..type)
- -- local GotAnimCtr = require("UIPOPGot/UIPOPGotAnimsCtr")
- -- local result = GotAnimCtr:IsInSameTypeAnim(type)
- -- LogError(result)
- -- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GOT_ITEM_ANIM_END_NOTIFY, function(type, num)
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UI_MAIN_TOP_RES_TYPE, function(resType)
- --if Enum.TopResMap[id] == nil then
- -- id = Enum.UIPageName.UIMain
- --end
- --if id == Enum.UIPageName.UIRoleMain1 then
- -- if not param then
- -- id = Enum.UIPageName.UIRoleMain1
- -- else
- -- id = Enum.UIPageName.UIMain
- -- end
- --end
- curTopResType = resType
- self:RefreshDiamond()
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.FIGHTPOWER_REFRESH, function()
- self:RefreshFightPower()
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BTN_BASE_DISPLAY, function(result)
- if result and bossBattleStatus then return end
- self:DisplayBtnBase(result)
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BTN_JOB_DISPLAY, function(result)
- if result and bossBattleStatus then return end
- self:DisplayBtnJob(result)
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BOSS_BATTLE_STATUS, function(result)
- bossBattleStatus = result
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.DISPLAY_MAIN_TOP,not result)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.STAGEGOAL_DISPLAY,not result)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BTN_BASE_DISPLAY,not result)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BTN_JOB_DISPLAY,not result)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.DISPLAY_MAIN_BOTTOM, not result)
- --if result then
- -- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.DISPLAY_MAIN_BOTTOM, result)
- --end
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_OPEN_NTF, function(competitionId, _isRefresh)
- self:RefreshSeasonInfo()
- if not ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UISeason) and not _isRefresh then
- local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISeason, competitionId, curUIId)
- end
- end)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GM_SCROLL_NOTICE, self, self.InsertGMNotice)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ROLE_JOB_CHANGE_SUCCESS, self, self.RefreshJobIcon)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Used_New_HeadFrame, self, self.ChangeHeadFrame)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_NOTICE_CLOSE_NTF, self, self.RefreshSeasonNoticeState)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_RANK_CHANGED_NTF, self, self.OnSeasonRankChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Activity_FirstRecharge_Change, self, self.RefreshFirstRechargeBtn)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.RANK_ACTIVITY_DISPLAY_NTF, self, self.RefreshRankActivityEnter)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SEASON_MINUTE_UPDATE, self, self.RefreshSeasonInfo)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.QUESTION_REWARD_SUCCESS, self, self.RefreshQuestionRewardBtn)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.AIRSHIP_ACTIVITY_DISPLAY_NTF, self, self.RefreshAirShipActivityEnter)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_WAR_OPEN_STATE_CHANGED, self, self.RefreshGuildWarBtn)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.COMBINE_SERVER_TIME_CHANGED, self, self.OnCombineServerTimeChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.COMBINE_SERVER_CONTENT_CHANGED, self, self.OnCombineServerContentChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.VIP_LV_CHANGED, self, self.OnVipLvChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.PAY_TOTAL_RECHARGE_CHANGED, self, self.RefreshBoliShopState)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BT_FIRST_RECHARGE_REWARD_CHANGED, self, self.RefreshFirstRechargeBtn)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BT_HUNDRED_RECHARGE_REWARD_CHANGED, self, self.RefreshFirstRechargeBtn)
- end
- function UIMainView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- self:DailySignTrigger()
- self.btnGM:SetActive(false)
- end
- function UIMainView:Init()
- curTopResType = self.uiData.top_res_id
- ManagerContainer.DataMgr.TaskDataNew:SetMainButton(Enum.MainViewPageType.Adventure);
- if mainTopView == nil then
- mainTopView = MainTopView.new()
- mainTopView:Init(self.topView, self.topView.canvas, self.topView.topRoot.animator, self.uiBase.SortingOrder)
- end
- if mainBottomView == nil then
- mainBottomView = MainBottomView.new()
- mainBottomView:Init(self.bottomView, self.bottomView.canvas, self.bottomView.mainRoot.animator, self.uiBase.SortingOrder)
- end
- --ManagerContainer.ResMgr:InitCommonMats()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPrivateChatBtn)
- self:Refresh()
- self:RedPointRefresh()
- if mainTopView then
- mainTopView:RefreshTopBtns(true)
- end
- self:RefreshFirstRechargeBtn()
- self:RefreshGuildWarBtn()
- --统一刷新数据
- self:RefreshData()
- self:RefreshBoliShopState()
- if ManagerContainer.SDKEventReportMgr ~= nil and ManagerContainer.LuaBattleMgr:GetCurSimpleLvID() > 20001 then
- ManagerContainer.SDKEventReportMgr:GetSDKNtfAndShow()
- end
-
- end
- function UIMainView:RefreshBoliShopState()
- -- if Constant.OpenPay then
- -- local curVal = ManagerContainer.PayMgr:GetTotalRecharge()
- -- local openCon = GlobalConfig.Instance:GetConfigIntValue(360) or 50
- -- self.topView.topRoot.BtnBoliShop:SetActive(curVal >= openCon)
- -- else
- -- self.topView.topRoot.BtnBoliShop:SetActive(false)
- -- end
- end
- function UIMainView:DailySignTrigger()
- local _canSignPlay = ManagerContainer.DataMgr.SignData:CanTodaySign()
- if _canSignPlay then
- --local isUnLock = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(55);
- --if isUnLock then
- -- ManagerContainer.LuaUIMgr:OpenInputMask(10000)
- --end
- self.canSignPlay = true
- self.delayTimer = FrameTimer.New(function()
- self.loggedinNeedForceGuide = ManagerContainer.ForceGuideMgr:LoggedinCheckForceGuide()
- if not self.loggedinNeedForceGuide and not ManagerContainer.StoryMgr:IsStorying() and not ManagerContainer.StoryMgr:HasPreStoryChapter() then
- self:LoggedinForceGuideOver()
- end
- local unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(10)
- self:RefreshSeasonNoticeState(unlockState)
- end, 1)
- self.delayTimer:Start()
- else
- self.loggedinNeedForceGuide = ManagerContainer.ForceGuideMgr:LoggedinCheckForceGuide()
- if not self.loggedinNeedForceGuide and not ManagerContainer.StoryMgr:IsStorying() and not ManagerContainer.StoryMgr:HasPreStoryChapter() then
- self:LoggedinForceGuideOver()
- end
- end
- end
- function UIMainView:RefreshSeasonNoticeState(state)
- self.seasonNotice:SetActive(state)
- end
- function UIMainView:RefreshData()
- self.dataDelayTimer = FrameTimer.New(function()
- --赛季最新数据查询
- ManagerContainer.DataMgr.CompetitionData:SetRefreshSeasonState(true)
- ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq(true)
- ManagerContainer.DataMgr.RankActivitiesMgr:CheckRancActivityOpenTime()
- ManagerContainer.DataMgr.RuneShopDataMgr:CheckAirShipActivityOpenTime()
- --刷新契约红点
- ManagerContainer.RedPointMgr.PetRPCtr:RefreshTotalQiyueRPState()
- end, 1)
- self.dataDelayTimer:Start()
- end
- function UIMainView:OnSeasonRankChanged(type)
- self.seasonUp:SetActive(type == 1)
- self.seasonDown:SetActive(type == 2)
- end
- function UIMainView:RedPointRefresh()
- --宠物红点刷新
- ManagerContainer.DataMgr.PetDataMgr:RefreshAllPetRPState()
- end
- function UIMainView:Refresh()
- if ManagerContainer.FSMMgr:IsBattleState() then
- self.mainPageId = Enum.UIPageName.UIBattle
- self.mainBtn.animator:Play("AdventureActived");
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattle)
- elseif ManagerContainer.FSMMgr:IsDojoState() then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojo2D)
- end
- self.btnBase:SetActive(ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false))
- self.btnJob:SetActive(ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false))
- self:RefreshUserNickName()
- --[[
- self:RefreshUserHeadProtrait()
- self:RefreshJobIcon()
- ]]--
- self:RefreshHead();
- self:RefreshFightPower()
- self:RefreshLv()
- self:RefreshRoleExp()
- self:RefreshJobLv()
- self:RefreshJobExp()
- self:RefreshCoins()
- self:RefreshDiamond()
- self:RefreshVipView()
- self:RefreshSeasonInfo()
- self:RoleRedPointNotice()
- self:InsertGMNotice()
- self:StartLimitTimeItem()
- end
- function UIMainView:StartLimitTimeItem()
- ManagerContainer.DataMgr.BagData:StartLimitTimeItemDelete()
- end
- function UIMainView:RefreshSeasonInfo()
- local seasonData = ManagerContainer.DataMgr.CompetitionData:GetCurCompetitionData()
- if seasonData == nil then return end
- local stage,nextStageTime = ManagerContainer.DataMgr.CompetitionData:GetCurStageAndNextTime()
- local curCompetitionId = ManagerContainer.DataMgr.CompetitionData:GetCurCompetitionId()
- local competitionCfgDatas = ManagerContainer.CfgMgr:GetCompetitionDatasByType(curCompetitionId)
- if not competitionCfgDatas or #competitionCfgDatas == 0 then
- return
- end
- local sname = I18N.T(competitionCfgDatas[1].CompetitionName)
- self.SeasonName.text.text = sname
- self.SeasonName1.text.text = sname
- if stage == 1 then
- self.remainDay.text.text = I18N.T("DscSeasonResult13")
- self.remainDay1.text.text = I18N.T("DscSeasonResult13")
- elseif stage == 2 then
- local endTime = nextStageTime
- if endTime == 0 then
- self.remainDay.text.text = I18N.T("DscSeasonResult6")
- self.remainDay1.text.text = I18N.T("DscSeasonResult6")
- else
- local remainS = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(endTime, false)
- if remainS > 0 then
- if remainS <= 60 then
- self.remainDay.text.text = I18N.T("LessOneMinu")
- self.remainDay1.text.text = I18N.T("LessOneMinu")
- else
- local time = DateTimeUtil.convertSeconds2TimeStr1(remainS, true, false)
- self.remainDay.text.text = time
- self.remainDay1.text.text = time
- end
- else
- self.remainDay.text.text = I18N.T("DscSeasonResult6")
- self.remainDay1.text.text = I18N.T("DscSeasonResult6")
- end
- end
- elseif stage == 3 then
- self.remainDay.text.text = I18N.T("DscSeasonResult6")
- self.remainDay1.text.text = I18N.T("DscSeasonResult6")
- end
- end
- function UIMainView:RefreshUserNickName()
- self.textName.text.text = ManagerContainer.DataMgr.UserData:GetUserNickname()
- end
- function UIMainView:InsertGMNotice()
- local notice = ManagerContainer.DataMgr.GMNoticeData:GetCurNotice()
- if mainTopView and notice then
- mainTopView:InsertGMNotice(notice)
- end
- end
- function UIMainView:ChangeHeadFrame(headFrameIcon)
- CommonUtil.LoadIcon(self, headFrameIcon, function (sprite)
- self.headItem.frame.image.sprite = sprite
- end)
- end
- function UIMainView:RefreshHead()
- local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
- local jobCfgId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
- local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
- local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
- local _fakerData = {Level = curRoleLv, ProfessionIcon = jobCfgData.JobIcon, HeadIcon = headIcon, IsHero = true};
- local _headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId()
- CommonUtil.SetPlayerHeadAndFrame(self, self.headItem, _fakerData,false, _headFrameId, self, self.OnClickHead);
- if not jobCfgData or jobCfgData.JobStage >= 3 then
- self.expBarJob:SetActive(false)
- else
- self.expBarJob:SetActive(true)
- end
- end
- function UIMainView:RefreshJobIcon()
- local jobCfgId = ManagerContainer.DataMgr.UserData:GetJobCfgId()
- local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
- CommonUtil.LoadIcon(self, jobCfgData.JobIcon, function (sprite)
- self.headItem.jobIcon.image.sprite = sprite
- end, self, 'jobIconIdx')
- end
- function UIMainView:RefreshFightPower()
- self.fightpower.text.text = ManagerContainer.DataMgr.UserData:GetTotalFightPower()
- end
- function UIMainView:RoleRedPointNotice()
- --local RPStatus = ManagerContainer.RedPointMgr.HeroRPCtr:GetUIMainRPStatus()
- --RedPointItemCtr:SetData(self, self.redPointItem, RPStatus, Enum.HeroRPSource.Main)
- end
- function UIMainView:RefreshLv()
- local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
- self.expBarBase.textLv.text.text = CommonUtil.StringConcat("Lv.", curRoleLv)
- self.curRoleLv = curRoleLv
- self.headItem.levelText.text.text = tostring(curRoleLv);
- end
- function UIMainView:RefreshRoleExp()
- local roleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
- local curBaseMaxExp = ManagerContainer.DataMgr.UserData:GetHeroCurBaseMaxExp()
- self.expBarBase.textTotal.text.text = CommonUtil.StringConcat(CommonUtil.FormatNumber(roleExp), "/", CommonUtil.FormatNumber(curBaseMaxExp))
- local barPercent = curBaseMaxExp == 0 and 0 or roleExp/curBaseMaxExp
- self.expBarBase.slider.slider.value = Mathf.Max(BarMinValue, barPercent)
- self.curRoleExp = roleExp
- self.expBarBase.slider.effect:SetActive(false)
- --self:RefreshRestTime()
- end
- function UIMainView:RefreshRestTime(awardTotalTime)
- self.controller:SetAwardTotalTime(awardTotalTime)
- local roleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
- local curBaseMaxExp = ManagerContainer.DataMgr.UserData:GetHeroCurBaseMaxExp()
- local lerp = curBaseMaxExp - roleExp
- if lerp > 0 then
- local curLevelExp = ManagerContainer.LuaBattleMgr:CurLevelExp() or 100
- local seconds = Mathf.Ceil(lerp * 60 / curLevelExp - self.controller:GetAwardTotalTime())
- self.restTime.text.uILocalizeScript:SetContent('RestTime')
- self.restTime.textTime.text.text = DateTimeUtil.convertSeconds2TimeStr(seconds, false)
- elseif lerp == 0 then
- self.restTime.text.uILocalizeScript:SetContent('RestTimeMax')
- self.restTime.textTime.text.text = '--'
- end
- end
- function UIMainView:RefreshJobLv()
- local curJobLv = ManagerContainer.DataMgr.UserData:GetJobLv()
- self.expBarJob.textLv.text.text = CommonUtil.StringConcat("Lv.", curJobLv)
- self.curJobLv = curJobLv
- end
- function UIMainView:RefreshJobExp()
- local curMaxJobExp = ManagerContainer.DataMgr.UserData:GetHeroCurJobMaxExp()
- local jobExp = ManagerContainer.DataMgr.UserData:GetJobExp()
- self.expBarJob.textTotal.text.text = CommonUtil.StringConcat(CommonUtil.FormatNumber(jobExp), "/", CommonUtil.FormatNumber(curMaxJobExp))
- local barPercent = curMaxJobExp == 0 and 0 or jobExp/curMaxJobExp
- self.expBarJob.slider.slider.value = Mathf.Max(BarMinValue, barPercent)
- self.curJobExp = jobExp
- self.expBarJob.slider.effect:SetActive(false)
- end
- function UIMainView:RefreshCoins()
- local coin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
- self.coinZ.text.text.text = CommonUtil.FormatNumber(coin)
- self.curCoin = coin
- end
- function UIMainView:RefreshDiamond()
- local count = CommonUtil.GetOwnResCountByItemId(curTopResType) --ManagerContainer.DataMgr.UserData:GetCurrency(curTopResType)
- self.gold.text.text.text = CommonUtil.FormatNumber(count)
- local itemCfgData = ManagerContainer.CfgMgr:GetItemById(curTopResType)
- CommonUtil.LoadIcon(self, itemCfgData.MiniIcon, function (sprite)
- self.gold.icon.image.sprite = sprite
- end)
- --只显示金币的跳转按钮
- if curTopResType == Enum.ItemType.Diamond then
- self.btnGold:SetActive(Constant.OpenPay)
- else
- self.btnGold:SetActive(false)
- end
- if curTopResType == Enum.ItemType.Diamond then
- self.curDiamond = count
- end
- end
- function UIMainView:RefreshVipView()
- self.vipBtn.image.sprite = nil
- self.vipBtn.image.enabled = false
- local curVipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
- local vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(curVipLv)
- if not vipCfg then
- return
- end
- CommonUtil.LoadIcon(self, vipCfg.SmallIcon, function(sprite)
- if sprite then
- self.vipBtn.image.sprite = sprite
- self.vipBtn.image.enabled = true
- end
- end)
- end
- function UIMainView:DisplayBtnBase(result)
- if result then
- if ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false) ~= result then
- return
- end
- end
- self.btnBase:SetActive(result)
- end
- function UIMainView:DisplayBtnJob(result)
- if result then
- if ManagerContainer.PlayerPrefsMgr:GetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false) ~= result then
- return
- end
- end
- self.btnJob:SetActive(result)
- end
- function UIMainView:OnRefreshRoleLv()
- -- 在属性界面打开的情况下,不再显示这个按钮
- if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UIRoleNaturePoint) then
- return
- end
- ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, true)
- self.btnBase:SetActive(true)
- end
- function UIMainView:CloseBtnBase()
- self.btnBase:SetActive(false)
- ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false)
- end
- function UIMainView:OnRefreshJobLv()
- -- 在技能树界面打开的情况下,不再显示这个按钮
- if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UISkillSettings) then
- return
- end
- ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, true)
- self.btnJob:SetActive(true)
- end
- function UIMainView:OnVipLvChanged()
- self:RefreshVipView()
- end
- function UIMainView:CloseBtnJob()
- self.btnJob:SetActive(false)
- ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false)
- end
- function UIMainView:RemoveEventListener()
- -- LogError("remove event "..self.uiData.name)
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIMainView:AddUIEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- self.uiBase:AddButtonEventListener(self.btnGold.button, function()
- if self.mainPageId then
- -- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGM)
- if curTopResType == Enum.ItemType.Diamond then
- local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, {Enum.RuneShopType.Gifts, Enum.RuneShopSubType.Gold}, curUIId)
- end
- end
- end)
- self.uiBase:AddButtonEventListener(self.town.icon.button, self, self.ChangePage, Enum.MainViewPageType.Town)
- self.uiBase:AddButtonEventListener(self.adventure.icon.button, self, self.ChangePage, Enum.MainViewPageType.Adventure)
- self.uiBase:AddButtonEventListener(self.shop.icon.button, self, self.ChangePage, Enum.MainViewPageType.Battle)
- self.uiBase:AddButtonEventListener(self.role.icon.button, self, self.ChangePage, Enum.MainViewPageType.Role, 1)
- self.uiBase:AddButtonEventListener(self.bag.icon.button, self, self.ChangePage, Enum.MainViewPageType.Pub)
- self.uiBase:AddButtonEventListener(self.btnBase.button,self,self.OnClickBaseBtn)
- self.uiBase:AddButtonEventListener(self.btnJob.button,self,self.OnClickJobBtn)
- --self.uiBase:AddButtonEventListener(self.head.button,self,self.OnClickHead)
- self.uiBase:AddButtonEventListener(self.topView.topRoot.btnNotifyActivity.button,self,self.OpenNoticeAndActivity)
- self.uiBase:AddButtonEventListener(self.topView.topRoot.btnTask.button,self,self.OpenTask)
- self.uiBase:AddButtonEventListener(self.topView.topRoot.BtnDiffTask.button,self,self.OpenDiffTask)
-
- self.uiBase:AddButtonEventListener(self.seasonInfo.button, self, self.OnSeasonClick)
- self.uiBase:AddButtonEventListener(self.coinZ.icon.button, self,self.OnClickCoinZ)
- self.uiBase:AddButtonEventListener(self.gold.icon.button, self,self.OnClickGoldIcon)
- self.uiBase:AddButtonUniqueEventListener(self.vipBtn.button, self, self.OnClickVipBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnClub.button, self, self.OnClickRuneShopBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnWallet.button, self, self.OnClickWalletShopBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.BtnBoliShop.button, self, self.OnClickBoliShopBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnFirstRecharge.button, self, self.OnClickFirstRechargeBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnHundredRecharge.button, self, self.OnClickHundredRechargeBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnLimitedGift.button, self, self.OnClickLimitGiftBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnQuestionnaire.button, self, self.OnQuestionClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityTower.button, self, self.OnTowerClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityDojo.button, self, self.OnArenaClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityMap.button, self, self.OnMapClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivityPet.button, self, self.OnPetClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnAirshipRewards.button, self, self.OnRewardsClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnActivitySkill.button, self, self.OnSkillClick)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnGuildWar.button, self, self.OnClickGuildWarBtn)
- self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnCombineService.button, self, self.OnClickCombineServerBtn)
- --
- --self.chatView.uIEventTriggerListener.onClick = function()
- -- self:OnChatClick()
- --end
- end
- function UIMainView:OnClickCombineServerBtn()
- ManagerContainer.DataMgr.CombineServerDataMgr:SendCombineServerInfoReq()
- end
- function UIMainView:OnClickGuildWarBtn()
- local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildWarMatchMap, nil, curUIId)
- end
- function UIMainView:OnClickFirstRechargeBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityFirstRechargeBT)
- end
- function UIMainView:OnClickHundredRechargeBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityHundredRechargeBT)
- end
- function UIMainView:OnClickLimitGiftBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityLimitedGift)
- end
- function UIMainView:OnQuestionClick()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIQuestionnaire)
- end
- function UIMainView:OnTowerClick()
- ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.ClimbingTower, true)
- end
- function UIMainView:OnArenaClick()
- ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Dojo, true)
- end
- function UIMainView:OnClickBoliShopBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBoliShop)
- end
- function UIMainView:OnMapClick()
- ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.MapProgress, true)
- end
- function UIMainView:OnPetClick()
- ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Pet, true)
- end
- function UIMainView:OnSkillClick()
- ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.Skill, true)
- end
- function UIMainView:OnRewardsClick()
- if ManagerContainer.DataMgr.RuneShopDataMgr:GetAirShipIsOpen() then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopExplore)
- else
- self:RefreshAirShipRewardsBtn(false)
- end
- end
- function UIMainView:OnClickRuneShopBtn()
- local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, {Enum.RuneShopType.LimitTime}, curUIId)
- end
- function UIMainView:OnClickWalletShopBtn()
- local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRechargeWalletShop, nil, curUIId)
- end
- function UIMainView:OnClickCoinZ()
- -- ManagerContainer.LuaUIMgr:ShowMinTips("ZenyTips")
- end
- function UIMainView:OnClickGoldIcon()
- -- ManagerContainer.LuaUIMgr:ShowMinTips("GoldTips")
- end
- function UIMainView:OnClickVipBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIVip)
- end
- function UIMainView:OnChatClick()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, nil, self.uiData.id)
- end
- function UIMainView:OnSeasonClick(button, params)
- ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq()
- end
- function UIMainView:OnHide()
- end
- function UIMainView:OnShow()
- end
- function UIMainView:OnClose()
- DOTween.Kill(self.gold.transform)
- end
- function UIMainView:OnDispose()
- if mainTopView then
- mainTopView:Dispose()
- mainTopView = nil
- end
- if mainBottomView then
- mainBottomView:Dispose()
- mainBottomView = nil
- end
- if self.delayTimer then
- self.delayTimer:Stop()
- end
- self.delayTimer = nil
- if self.dataDelayTimer then
- self.dataDelayTimer:Stop()
- end
- self.dataDelayTimer = nil
- self.canSignPlay = false
- end
- function UIMainView:OnClickHead()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMessage, {_targetTag = 0}) --打开头像交互界面,显示自己的信息
- end
- function UIMainView:OnClickBaseBtn()
- self.btnBase:SetActive(false)
- ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.ROLE_LV_STATUS_SAVE_KEY, false)
- ManagerContainer.UIJumpMgr:CreateJumpTaskById(5)
- end
- function UIMainView:OnClickJobBtn()
- self.btnJob:SetActive(false)
- ManagerContainer.PlayerPrefsMgr:SetBoolean(Constant.JOB_LV_STATUS_SAVE_KEY, false)
- ManagerContainer.UIJumpMgr:CreateJumpTaskById(6)
- end
- function UIMainView:OpenTask()
- ManagerContainer.DataMgr.TaskDataNew:OpenTaskPanel();
- end
- function UIMainView:OpenDiffTask()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDiffTask)
- end
- function UIMainView:OpenNoticeAndActivity()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyActivityTips)
- end
- function UIMainView:ChangePage(button, params)
- local data = params.Length > 1 and params[1] or nil
- self:ChangePageMsg(params[0], data)
- end
- function UIMainView:ChangePageMsg(pageType, data)
- --LogError("ChangePageMsg ")
- if _curMainButtonType == pageType then return end
- local UIBattleCtr = ManagerContainer.LuaUIMgr:GetViewCtrById(Enum.UIPageName.UIBattle)
- if UIBattleCtr then
- local newForce = UIBattleCtr:GetNewForceId()
- if newForce then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.CLOSE_NEW_FUNC_PAGE)
- return
- end
- end
- ManagerContainer.DataMgr.TaskDataNew:SetMainButton(pageType);
- if _curMainButtonType == Enum.MainViewPageType.Role or _curMainButtonType == Enum.MainViewPageType.Battle or _curMainButtonType == Enum.MainViewPageType.Town then
- ManagerContainer.LuaBattleMgr:SetTeamData(true,false)
- end
- _curMainButtonType = pageType;
- self:RefreshSeasonNoticeState(false)
- if pageType == Enum.MainViewPageType.Town then
- self.upgradeRoot:SetActive(false)
- local bta = self.town.icon.buttonTriggerAnimation
- bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
- --ManagerContainer.LuaGameMgr:EnterMainCity();
- --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIMainCity1)
- self.mainPageId = Enum.UIPageName.UIMainCity1
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMainCity1)
- --打开主城需要处理额外
- ManagerContainer.RedPointMgr.PetRPCtr:RefreshRelationRPState()
- elseif pageType == Enum.MainViewPageType.Adventure then
- curTopResType = self.uiData.top_res_id
- self:RefreshDiamond()
- self.upgradeRoot:SetActive(false)
- self.mainPageId = Enum.UIPageName.UIBattle
- ManagerContainer.LuaGameMgr:EnterBattle(false);
- if ManagerContainer.FSMMgr:IsBattleState() then
- local bta = self.adventure.icon.buttonTriggerAnimation
- bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
- end
- elseif pageType == Enum.MainViewPageType.Battle then
- self.mainPageId = Enum.UIPageName.UIPetRoot
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPetRoot)
- local bta = self.shop.icon.buttonTriggerAnimation
- bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
- elseif pageType == Enum.MainViewPageType.Role then
- self.upgradeRoot:SetActive(false)
- self.mainPageId = Enum.UIPageName.UIRoleMain1
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMain1, data)
- local bta = self.role.icon.buttonTriggerAnimation
- bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
- elseif pageType == Enum.MainViewPageType.Pub then
- self.upgradeRoot:SetActive(false)
- --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBag)
- self.mainPageId = Enum.UIPageName.UIBag
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag)
- local bta = self.bag.icon.buttonTriggerAnimation
- bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
- end
- end
- function UIMainView:GetGotAnimEndPosByType(type)
- if type == Enum.ItemType.Item
- or type == Enum.ItemType.Equip
- or type == Enum.ItemType.Card
- or type == Enum.ItemType.ParterChip
- or type == Enum.ItemType.FashionPaper
- or type == Enum.ItemType.ParterExp
- or type == Enum.ItemType.SkillBook
- or type == Enum.ItemType.Gift
- or type == Enum.ItemType.Income then
- --背包
- return self.bag.transform.position
- elseif type == Enum.ItemType.Coin then
- --银币
- return self.coinZ.icon.transform.position
- elseif type == Enum.ItemType.Diamond then
- --钻石
- return self.gold.icon.transform.position
- elseif type == Enum.ItemType.RoleBaseExp then
- --基础经验
- return self.expBarBase.slider.effect.transform.position
- elseif type == Enum.ItemType.RoleJobExp then
- --职业经验
- return self.expBarJob.slider.effect.transform.position
- elseif type == Enum.ItemType.WalletNum then
- return self.topView.topRoot.btnWallet.transform.position
- end
- return Vector3.zero
- end
- function UIMainView:GeAnchoredPosition3DByType(type)
- local pos = self:GetGotAnimEndPosByType(type)
- return CommonUtil.ConvertUIPos2ScreenPos(pos)
- end
- function UIMainView:GetTaskBtnPosition()
- return self.topView.topRoot.btnTask.transform.position
- end
- -- function UIMainView:ShowAddEffect(type, num)
- -- if type == Enum.ItemType.Coin then
- -- self:ShowAddCoinEffect(num)
- -- elseif type == Enum.ItemType.RoleBaseExp then
- -- self:ShowAddRoleExpEffect(num)
- -- elseif type == Enum.ItemType.RoleJobExp then
- -- self:ShowAddJobExpEffect(num)
- -- end
- -- end
- function UIMainView:ShowAddCoinEffect()
- DOTween.Kill(self.coinZ.transform)
- -- local newCoin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
- self.coinZ.transform.localScale = Vector3.one
- self.coinZ.transform:DOScale(Vector3.one * 1.1, 0.2):SetLoops(2, LoopType.Yoyo):OnComplete(function()
- self:RefreshCoins()
- end)
- end
- function UIMainView:ShowAddDiamondEffect()
- DOTween.Kill(self.gold.transform)
- -- local newCoin = ManagerContainer.DataMgr.UserData:GetOwnCoin()
- self.gold.transform.localScale = Vector3.one
- self.gold.transform:DOScale(Vector3.one * 1.1, 0.2):SetLoops(2, LoopType.Yoyo):OnComplete(function()
- self:RefreshDiamond()
- end)
- end
- function UIMainView:ShowAddRoleExpEffect()
- self.expBarBase.slider.effect:SetActive(true)
- local newRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
- local newRoleExp = ManagerContainer.DataMgr.UserData:GetRoleExp()
- -- 计算是否升级
- local curRoleLv = self.curRoleLv
- local baseExpData = ManagerContainer.CfgMgr:GetRoleExpData(curRoleLv)
- if not baseExpData then
- self:RefreshLv()
- self:RefreshRoleExp()
- return
- end
- local curRoleExp = newRoleExp
- local curMaxExp = baseExpData.Name
- while (curRoleExp >= curMaxExp) do
- baseExpData = ManagerContainer.CfgMgr:GetRoleExpData(curRoleLv + 1)
- if not baseExpData then
- curRoleExp = curMaxExp
- break
- end
- curRoleExp = curRoleExp - curMaxExp
- curMaxExp = baseExpData.Name
- curRoleLv = curRoleLv + 1
- end
- local targetPercent = Mathf.Max(BarMinValue, curRoleExp / curMaxExp)
- local curPercent = self.expBarBase.slider.slider.value
- DOTween.Kill(self.expBarBase.slider.slider)
- if targetPercent >= curPercent and self.curRoleLv == curRoleLv and curRoleLv == newRoleLv then
- self.expBarBase.slider.slider:DOValue(targetPercent, AddEffectBarSpeed):OnComplete(function()
- self:RefreshLv()
- self:RefreshRoleExp()
- end)
- else
- local lerpPercent = 1 - curPercent
- local allPercent = (lerpPercent + targetPercent)
- local tweener1 = self.expBarBase.slider.slider:DOValue(1, lerpPercent * AddEffectBarSpeed / allPercent)
- local tweener2 = self.expBarBase.slider.slider:DOValue(targetPercent, targetPercent * AddEffectBarSpeed / allPercent)
- local seq = DOTween.Sequence()
- seq:Append(tweener1)
- seq:AppendCallback(function()
- self.expBarBase.slider.slider.value = BarMinValue
- self.expBarBase.textLv.text.text = CommonUtil.StringConcat("Lv.", curRoleLv)
- end)
- seq:Append(tweener2)
- seq:AppendCallback(function()
- self:RefreshLv()
- self:RefreshRoleExp()
- end)
- end
- end
- function UIMainView:ShowAddJobExpEffect()
- self.expBarJob.slider.effect:SetActive(true)
- local newJobLv = ManagerContainer.DataMgr.UserData:GetJobLv()
- local newJobExp = ManagerContainer.DataMgr.UserData:GetJobExp()
- -- 计算是否升级
- local curJobLv = self.curJobLv
- local jobStage = ManagerContainer.DataMgr.UserData:GetJobStage()
- local curMaxExp = ManagerContainer.CfgMgr:GetCurMaxJobExpByLvAndStep(curJobLv, jobStage)
- if not curMaxExp or curMaxExp == 0 then
- self:RefreshJobLv()
- self:RefreshJobExp()
- return
- end
- local curJobExp = newJobExp
- while (curJobExp >= curMaxExp) do
- local nextJobExp = ManagerContainer.CfgMgr:GetCurMaxJobExpByLvAndStep(curJobLv + 1, jobStage)
- if not nextJobExp or nextJobExp == 0 then
- curJobExp = curMaxExp
- break
- end
- curJobExp = curJobExp - curMaxExp
- curMaxExp = nextJobExp
- curJobLv = curJobLv + 1
- end
- local targetPercent = Mathf.Max(BarMinValue, curJobExp / curMaxExp)
- local curPercent = self.expBarJob.slider.slider.value
- DOTween.Kill(self.expBarJob.slider.slider)
- if targetPercent >= curPercent and self.curJobLv == curJobLv and curJobLv == newJobLv then
- self.expBarJob.slider.slider:DOValue(targetPercent, AddEffectBarSpeed):OnComplete(function()
- self:RefreshJobLv()
- self:RefreshJobExp()
- end)
- else
- local lerpPercent = 1 - curPercent
- local allPercent = (lerpPercent + targetPercent)
- local tweener1 = self.expBarJob.slider.slider:DOValue(1, lerpPercent * AddEffectBarSpeed / allPercent)
- local tweener2 = self.expBarJob.slider.slider:DOValue(targetPercent, targetPercent * AddEffectBarSpeed / allPercent)
- local seq = DOTween.Sequence()
- seq:Append(tweener1)
- seq:AppendCallback(function()
- self.expBarJob.slider.slider.value = BarMinValue
- self.expBarJob.textLv.text.text = CommonUtil.StringConcat("Lv.", curJobLv)
- end)
- seq:Append(tweener2)
- seq:AppendCallback(function()
- self:RefreshJobLv()
- self:RefreshJobExp()
- end)
- end
- end
- function UIMainView:LoggedinForceGuideOver(ignore)
- if ManagerContainer.StoryMgr:IsStorying() then
- return
- end
- if ManagerContainer.StoryMgr:HasPreStoryChapter() then
- return
- end
- if not ignore and self.canSignPlay then
- self.canSignPlay = false
- ManagerContainer.DataMgr.SignData:QuerySignUpInfoReq(true)
- elseif ignore then
- local _canSignPlay = ManagerContainer.DataMgr.SignData:CanTodaySign()
- --LogHRWarning("_canSignPlay "..tostring(_canSignPlay))
- if _canSignPlay then
- self.canSignPlay = false
- ManagerContainer.DataMgr.SignData:QuerySignUpInfoReq(true)
- end
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.LIMIT_RECHARGE_OPEN_UI_NTF)
- end
- end
- function UIMainView:OpenFirstRechargeView()
- local activityData = ManagerContainer.DataMgr.ActsDataMgr:GetFirstRechargeItem()
- if not activityData then
- return
- end
- if not activityData:IsNeedOpen() then
- return
- end
- self:OnClickFirstRechargeBtn()
- end
- --这几个按钮在主城和战斗迅游界面会打开,其他界面是要关闭的(起码目前是这样)
- function UIMainView:SetActiveButtonsState(state)
- if mainTopView then
- mainTopView:RefreshTopBtns(state)
- end
- self:RefreshFirstRechargeBtn(state)
- self:RefreshGuildWarBtn(state)
- end
- function UIMainView:RefreshRankActivityEnter(type, state)
- if IShServer() then
- state = false
- end
- if mainTopView then
- mainTopView:RefreshRankActivityEnter(type, state)
- end
- end
- function UIMainView:RefreshAirShipActivityEnter(state)
- if IShServer() then
- state = false
- end
- if mainTopView then
- mainTopView:RefreshAirShipActivityEnter(state)
- end
- end
- function UIMainView:RefreshFirstRechargeBtn(state)
- self.topView.topRoot.btnFirstRecharge:SetActive(false)
- self.topView.topRoot.btnHundredRecharge:SetActive(false)
- if state == nil then
- state = mainTopView.state
- end
- if state == false then
- return
- end
- local unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(57)
- if not unlockState then
- return
- end
- if ManagerContainer.DataMgr.BTRechargeRewardDataMgr:IsShowHundred() then
- if not ManagerContainer.DataMgr.BTRechargeRewardDataMgr:IsGotHundredAllRewardCompleted() and not IShServer() then
- self.topView.topRoot.btnHundredRecharge:SetActive(true)
- end
- else
- self.topView.topRoot.btnFirstRecharge:SetActive(true)
- end
- end
- function UIMainView:RefreshQuestionRewardBtn()
- local rewardState = ManagerContainer.DataMgr.UserData:GetQuestionRewardState()
- self.topView.topRoot.btnQuestionnaire:SetActive(not rewardState)
- end
- function UIMainView:RefreshAirShipRewardsBtn(state)
- if not Constant.OpenPay then
- state = false
- end
- if IShServer() then
- state = false
- end
- self.topView.topRoot.btnAirshipRewards:SetActive(state)
- end
- function UIMainView:RefreshGuildWarBtn(state)
- if state == false then
- self.topView.topRoot.btnGuildWar:SetActive(false)
- return
- end
- local _unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(66)
- if not _unlockState then
- self.topView.topRoot.btnGuildWar:SetActive(false)
- return
- end
- local isOpen = ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState()
- if isOpen then
- self.topView.topRoot.btnGuildWar:SetActive(true)
- return
- end
- self.topView.topRoot.btnGuildWar:SetActive(false)
- end
- function UIMainView:OnCombineServerTimeChanged()
- mainTopView:ChangeRefreshCombineServerBtn()
- end
- function UIMainView:OnCombineServerContentChanged(content)
- if not content or content == '' then
- return
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINotifyTipsSimple, {'BtnCombineService', content})
- end
- return UIMainView
|