1478 lines
55 KiB
Lua
1478 lines
55 KiB
Lua
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
|
||
|
||
|
||
--region 生命周期
|
||
function UIMainView:OnAwake(data)
|
||
self.controller = require("UIMain/UIMainCtr"):new()
|
||
self.controller:Init(self)
|
||
self.controller:SetData(data)
|
||
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:RemoveEventListener()
|
||
-- LogError("remove event "..self.uiData.name)
|
||
ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
|
||
|
||
ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.RED_POINT_MGR_NOTICE, self, self.OnRedPointMgrNotice)
|
||
|
||
end
|
||
|
||
function UIMainView:AddUIEventListener()
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
|
||
self.uiBase:AddButtonEventListener(self.btnBack.button, function()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UILiveRoom)
|
||
end)
|
||
|
||
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.UIRuneShop, {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.Pet)
|
||
self.uiBase:AddButtonEventListener(self.role.icon.button, self, self.ChangePage, Enum.MainViewPageType.Role)
|
||
self.uiBase:AddButtonEventListener(self.bag.icon.button, self, self.ChangePage, Enum.MainViewPageType.Bag)
|
||
self.uiBase:AddButtonEventListener(self.xiuLian.icon.button, self, self.ChangePage, Enum.MainViewPageType.XiuLian)
|
||
self.uiBase:AddButtonEventListener(self.rank.icon.button, self, self.ChangePage, Enum.MainViewPageType.Rank)
|
||
|
||
self.uiBase:AddButtonEventListener(self.btnBase.button,self,self.OnClickBaseBtn)
|
||
self.uiBase:AddButtonEventListener(self.btnJob.button,self,self.OnClickJobBtn)
|
||
self.uiBase:AddButtonEventListener(self.headItem.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.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.fruitBtn.icon.button, self, self.OnFruitBtn)
|
||
self.uiBase:AddButtonUniqueEventListener(self.challengeBossBtn.icon.button, self, self.OnChallengeBossBtn)
|
||
self.uiBase:AddButtonUniqueEventListener(self.liaoYiLiaoBtn.icon.button, self, self.OnLiaoYiLiaoBtn)
|
||
self.uiBase:AddButtonUniqueEventListener(self.replyMessageBtn.icon.button, self, self.OnReplyMessageBtn)
|
||
self.uiBase:AddButtonUniqueEventListener(self.climbTowerBtn.icon.button, self, self.OnClimbTowerBtn)
|
||
self.uiBase:AddButtonUniqueEventListener(self.feiGeBtn.icon.button, self, self.OnFeiGeBtn)
|
||
|
||
self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnClub.button, self, self.OnClickRuneShopBtn)
|
||
self.uiBase:AddButtonUniqueEventListener(self.topView.topRoot.btnFirstRecharge.button, self, self.OnClickFirstRechargeBtn)
|
||
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.uiBase:AddButtonUniqueEventListener(self.topBtnsNew.btnDailySign.button, self, function()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISignDaily)
|
||
end)
|
||
self.uiBase:AddButtonUniqueEventListener(self.sendDanmuBtn.button, self, function()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDanmuInput, "UIMain")
|
||
end)
|
||
|
||
--
|
||
--self.chatView.uIEventTriggerListener.onClick = function()
|
||
-- self:OnChatClick()
|
||
--end
|
||
|
||
-- NEWUI
|
||
self.uiBase:AddButtonEventListener(self.homeCloseBtn.button, function()
|
||
if self.curr_newui_L1_uiData then
|
||
local uiData = self.curr_newui_L1_uiData
|
||
ManagerContainer.LuaUIMgr:ClosePage(uiData.id, true)
|
||
self.curr_newui_L1_uiData = nil
|
||
self.homeCloseBtn:SetActive(false)
|
||
self.homeReturnBtn:SetActive(false)
|
||
_curMainButtonType = Enum.MainViewPageType.Adventure
|
||
end
|
||
end)
|
||
self.uiBase:AddButtonEventListener(self.homeReturnBtn.button, function()
|
||
if self.curr_newui_L2_uiData then
|
||
local uiData = self.curr_newui_L2_uiData
|
||
ManagerContainer.LuaUIMgr:ClosePage(uiData.id, true)
|
||
self.curr_newui_L2_uiData = nil
|
||
self.homeCloseBtn:SetActive(false)
|
||
self.homeReturnBtn:SetActive(false)
|
||
if uiData.type >= Enum.UIType.Total and uiData.type <= Enum.UIType.Normal then
|
||
else
|
||
self.homeReturnBtn:SetActive(true)
|
||
end
|
||
end
|
||
end)
|
||
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.EID_RECORD_STORY, self, self.OnRecordStory)
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_LEVEL_CHANGED, self, self.OnLevelChanged)
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_CURR_STORY_TASK_NTF, self, self.OnCurrStoryTaskNtf)
|
||
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_RECORD_STORY_FINISH, self, self.OnRecordStoryFinish)
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_UI_RETURN_HOME, self, self.OnUIReturnHome)
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ITEM_CHANGE, self, self.OnRedPointMgrNotice)
|
||
-- NEWUI
|
||
--[[
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_NEWUI_OPEN, function(uiData)
|
||
--LogError("[UIMainView] EID_NEWUI_OPEN UI Type "..uiData.type)
|
||
self.homeCloseBtn:SetActive(false)
|
||
self.homeReturnBtn:SetActive(false)
|
||
if uiData.type >= Enum.UIType.Total and uiData.type <= Enum.UIType.Normal then
|
||
self.curr_newui_L1_uiData = uiData
|
||
self.homeCloseBtn:SetActive(true)
|
||
else
|
||
self.curr_newui_L2_uiData = uiData
|
||
self.homeReturnBtn:SetActive(true)
|
||
end
|
||
end)
|
||
]]
|
||
|
||
ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_NEWUI_CLOSE, function(uiData)
|
||
_curMainButtonType = Enum.MainViewPageType.Adventure
|
||
--self:ChangePageMsg(Enum.MainViewPageType.Adventure)
|
||
end)
|
||
|
||
ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.RED_POINT_MGR_NOTICE, self, self.OnRedPointMgrNotice)
|
||
|
||
ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_DANMU_INPUT_NTF, self, self.OnDanmuInputNtf)
|
||
end
|
||
|
||
function UIMainView:OnDanmuInputNtf(uiName, danmuStr)
|
||
LogError("uiName="..uiName..",danmuStr="..danmuStr)
|
||
if uiName == "UIMain" then
|
||
self.danmuPlayerComp:PlayMySelf(danmuStr)
|
||
end
|
||
end
|
||
|
||
function UIMainView:OnRedPointMgrNotice(rpType, result, param)
|
||
self:RefreshSystemPad()
|
||
end
|
||
|
||
-- TODO: 快速到达UI
|
||
function UIMainView:RefreshFastOpenUI()
|
||
local fastOpenUIData = {}
|
||
local heroEquipDressStatus = ManagerContainer.RedPointMgr.HeroRPCtr:GetHeroEquipDressRPStatus()
|
||
-- local heroEquipDressStatus = ManagerContainer.RedPointMgr.HeroRPCtr:GetPartnerEquipDressRPStatusById(logicData.id)
|
||
-- local oneKeyUpRP = ManagerContainer.RedPointMgr.HeroRPCtr:GetHeroEquipForgeRPStatus()
|
||
-- local oneKeyUpRP = ManagerContainer.RedPointMgr.HeroRPCtr:GetpartnerEquipForgeRPStatusById(logicData.id)
|
||
-- oneKeyRP == Enum.RedPointEnum.EquipDressRP
|
||
if heroEquipDressStatus == Enum.RedPointEnum.EquipDressRP then
|
||
table.insert({})
|
||
end
|
||
if oneKeyUpRP == Enum.RedPointEnum.EquipForgeRP then
|
||
end
|
||
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: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:RefreshSystemPad()
|
||
self:CheckPlayStoryAndForceGuide(true)
|
||
|
||
--统一刷新数据
|
||
self:RefreshData()
|
||
|
||
AW.async(function()
|
||
--local go = AW.await(ManagerContainer.ResMgr:LuaGetGoFromPoolAsync(Constants.UICommonPath, "LockbtnItem"))
|
||
--LogError("Test: "..go.name)
|
||
end)
|
||
self:InitDanmu()
|
||
end
|
||
|
||
|
||
function UIMainView:InitDanmu()
|
||
local danmuPlayerGo = self.danmu.transform:Find("MyDanmuPlayer")
|
||
self.danmuPlayerComp = danmuPlayerGo:GetComponent("MyDanmuPlayer")
|
||
local defaultDanmuList = {"<sprite=400><sprite=400><sprite=400>"}
|
||
local danmuChannel = "_uimain_"
|
||
|
||
self.danmuPlayerComp:ResetPlayer()
|
||
|
||
local function PlayDanmu(danmuList, time)
|
||
self.danmuPlayerComp:Play(
|
||
danmuList, time,
|
||
function()
|
||
--LogError("Danmu Play Ntf")
|
||
end,
|
||
function()
|
||
--LogError("Danmu Play Finished")
|
||
FrameTimer.New(function() PlayDanmu(danmuList, time) end, 1):Start()
|
||
end
|
||
)
|
||
end
|
||
|
||
local function MyGetDanmu()
|
||
ManagerContainer.DataMgr.DanmuData:GetDanmu(danmuChannel, 0, 200, function(newDanmuList)
|
||
PlayDanmu(newDanmuList, 10)
|
||
end)
|
||
end
|
||
|
||
MyGetDanmu()
|
||
end
|
||
|
||
--endregion 生命周期
|
||
|
||
function UIMainView:OnRecordStory(storyId)
|
||
end
|
||
|
||
-- 关卡变更时调用
|
||
function UIMainView:OnLevelChanged()
|
||
self:RefreshSystemPad()
|
||
end
|
||
|
||
function UIMainView:OnRecordStoryFinish()
|
||
self:RefreshSystemPad()
|
||
end
|
||
|
||
function UIMainView:OnUIReturnHome(result)
|
||
if result then
|
||
self:CheckPlayStoryAndForceGuide(false)
|
||
end
|
||
self:RefreshSystemPad()
|
||
end
|
||
|
||
function UIMainView:RefreshSystemPad()
|
||
local mapLevel = ManagerContainer.LuaBattleMgr:GetCurLevelUniqueId()
|
||
local mapLevelData = ManagerContainer.CfgMgr:GetLevelDataById(mapLevel)
|
||
local storyId = mapLevelData["DlgId"]
|
||
local forceGuideGroup = mapLevelData["ForceGuideGroup"]
|
||
if forceGuideGroup > 0 and ManagerContainer.ForceGuideMgr:CheckRecord(tonumber(forceGuideGroup)) then
|
||
self.figherTap:SetActive(false)
|
||
elseif mapLevel < 30001 then
|
||
self.figherTap:SetActive(true)
|
||
end
|
||
|
||
local storyCfgData = ManagerContainer.CfgMgr:GetStoryDataById(storyId)
|
||
if storyCfgData and storyCfgData.Type==1 and ManagerContainer.DataMgr.StoryData:IsStoryPlay(storyId) == false then
|
||
--self.systemPad.momoTip:SetActive(true)
|
||
local storyNpcId = storyCfgData["StoryNpcId"]
|
||
if storyCfgData then
|
||
local storyNpcCfg = ManagerContainer.CfgMgr:GetStoryNpcCfgByChatNpcId(tonumber(storyNpcId))
|
||
self.systemPad.momoTip.tip.text.text = string.format("女神【%s】发来新消息,快去撩她吧!", I18N.T(storyNpcCfg.NameKey))
|
||
end
|
||
else
|
||
self.systemPad.momoTip:SetActive(false)
|
||
end
|
||
|
||
for i=1, 4 do
|
||
self.systemPad.fastOpenUI["role"..i]:SetActive(false)
|
||
end
|
||
local teams = ManagerContainer.DataMgr.UserData:GetTeamData(true)
|
||
for i=1, #teams do
|
||
local roleData = teams[i]
|
||
self.systemPad.fastOpenUI["role"..i]:SetActive(true)
|
||
local headPos, headBgColor = CommonUtil.GetRoleHeadInfo(roleData.uid)
|
||
self.systemPad.fastOpenUI["role"..i].headBG.image.color = headBgColor
|
||
self.systemPad.fastOpenUI["role"..i].head.rectTransform.anchoredPosition = headPos
|
||
CommonUtil.LoadIcon(self, "HeroDraw/Role_"..roleData.uid, function(sprite)
|
||
self.systemPad.fastOpenUI["role"..i].head.image.sprite = sprite
|
||
end)
|
||
self.uiBase:AddButtonUniqueEventListener(self.systemPad.fastOpenUI["role"..i].button, self, function()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleInfo, i)
|
||
end)
|
||
local rpState = Enum.RedPointEnum.None
|
||
if roleData.uid == 1 then
|
||
rpState = ManagerContainer.RedPointMgr.HeroRPCtr:GetHeroRPStatus()
|
||
else
|
||
rpState = ManagerContainer.RedPointMgr.HeroRPCtr:GetPartnerRPStatus(roleData.uid)
|
||
end
|
||
if rpState ~= Enum.RedPointEnum.None then
|
||
local redPointParent = self.systemPad.fastOpenUI["role"..i].redPoint.transform
|
||
redPointParent.gameObject:SetActive(true)
|
||
if redPointParent then
|
||
if redPointParent.childCount == 0 then
|
||
self:CreateNormalRedPoint(redPointParent)
|
||
end
|
||
end
|
||
else
|
||
self.systemPad.fastOpenUI["role"..i].redPoint:SetActive(false)
|
||
end
|
||
end
|
||
end
|
||
|
||
function UIMainView:CreateNormalRedPoint(parent)
|
||
AW.async(function()
|
||
local UIRedPointRP = "UIRedPointRP"
|
||
local redPoint = AW.await(ManagerContainer.ResMgr:LuaGetGoFromPoolAsync(Constants.UICommonPath, UIRedPointRP))
|
||
if redPoint then
|
||
redPoint.transform:SetParent(parent)
|
||
redPoint.transform.localPosition = Vector3.zero
|
||
redPoint.transform.localRotation = Quaternion.identity
|
||
redPoint.transform.localScale = Vector3.one
|
||
redPoint:SetActive(true)
|
||
end
|
||
end)
|
||
end
|
||
|
||
function UIMainView:CheckPlayStoryAndForceGuide(checkRecord)
|
||
local delayTimer = FrameTimer.New(function()
|
||
-- 检测是否开启强制引导
|
||
local mapLevel = ManagerContainer.LuaBattleMgr:GetCurLevelUniqueId()
|
||
local mapLevelData = ManagerContainer.CfgMgr:GetLevelDataById(mapLevel)
|
||
local dlgId = mapLevelData["DlgId"]
|
||
local forceGuideGroup = mapLevelData["ForceGuideGroup"]
|
||
local storyId = dlgId
|
||
LogError("[CheckPlayStoryAndForceGuide] mapLevel="..storyId.." storyId="..storyId.." forceGuideGroup="..forceGuideGroup)
|
||
-- 1. 先检测当前关卡是否有剧情,有剧情就先播放剧情
|
||
local storyCfg = ManagerContainer.CfgMgr:GetStoryDataById(storyId)
|
||
if storyCfg and storyCfg.Type == 0 then
|
||
if checkRecord then
|
||
local record = ManagerContainer.DataMgr.StoryData:IsStoryPlay(storyCfg.StoryId)
|
||
if record == false then
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayStory, storyCfg)
|
||
return
|
||
end
|
||
else
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayStory, storyCfg)
|
||
return
|
||
end
|
||
end
|
||
|
||
-- if storyId > 0 then
|
||
-- if ManagerContainer.DataMgr.StoryData:IsStoryPlay(storyId) == false then
|
||
-- ManagerContainer.UIStoryMgr:StartStoryByStoryId(tonumber(storyId), true)
|
||
-- return
|
||
-- end
|
||
-- end
|
||
|
||
-- 2. 如果没有剧情或者剧情已经播放完了,就检测是否要强制引导
|
||
if forceGuideGroup > 0 then
|
||
checkRecord = true
|
||
if checkRecord then
|
||
ManagerContainer.ForceGuideMgr:AddForceGuideNeedCheck(tonumber(forceGuideGroup))
|
||
else
|
||
ManagerContainer.ForceGuideMgr:AddForceGuideDontCheck(tonumber(forceGuideGroup))
|
||
end
|
||
end
|
||
end, 10)
|
||
|
||
delayTimer:Start()
|
||
end
|
||
|
||
function UIMainView:RefreshLockInfo()
|
||
local isPlayKillSmallMonsterStoryId = self.controller:IsPlayKillSmallMonsterStoryId()
|
||
self.challengeBossBtn.transform:Find("Icon").gameObject:SetActive(isPlayKillSmallMonsterStoryId)
|
||
self.challengeBossBtn.transform:Find("Icon_lock").gameObject:SetActive(not isPlayKillSmallMonsterStoryId)
|
||
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
|
||
|
||
self.SeasonName.text.text = I18N.T(competitionCfgDatas[1].CompetitionName)
|
||
|
||
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()
|
||
LogError("###"..ManagerContainer.DataMgr.UserData:GetOriUserNickname())
|
||
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 headId = ManagerContainer.DataMgr.UserData:GetHeadPortraitId()
|
||
local headIconPath = "PlayerHeads/player_head_"..headId
|
||
--local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
|
||
local _fakerData = {Level = curRoleLv, ProfessionIcon = jobCfgData.JobIcon, HeadIcon = headIconPath, IsHero = true};
|
||
local _headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId()
|
||
LogError("--SetPlayerHeadAndFrame--")
|
||
CommonUtil.SetPlayerHeadAndFrame(self, self.headItem, _fakerData,false, _headFrameId, self, self.OnClickHead);
|
||
self.lvText.text.text = "Lv."..curRoleLv
|
||
|
||
-- TODO: New UI
|
||
-- 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.lvProgress.image.fillAmount = 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: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.UIActivityFirstRecharge)
|
||
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: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.UIRuneShop, {Enum.RuneShopType.Rewards,nil,nil,true})
|
||
else
|
||
self:RefreshAirShipRewardsBtn(false)
|
||
end
|
||
end
|
||
|
||
-- {
|
||
-- isFinish = false,
|
||
-- txt = "关卡1-1: 击败BOSS【蓝疯兔】",
|
||
-- type = 1
|
||
-- }
|
||
function UIMainView:OnCurrStoryTaskNtf(data)
|
||
LogError("[OnCurrStoryTaskNtf] data: "..Inspect(data))
|
||
self.challengeBossBtn:SetActive(false)
|
||
self.liaoYiLiaoBtn:SetActive(false)
|
||
self.replyMessageBtn:SetActive(false)
|
||
self.climbTowerBtn:SetActive(false)
|
||
if data.type == 1 then
|
||
self.challengeBossBtn:SetActive(true)
|
||
-- TODO:
|
||
local mapLevel = ManagerContainer.LuaBattleMgr:GetCurLevelUniqueId()
|
||
self.challengeBossBtn.text_slogan.text.text = string.format("挑战关卡: %d", mapLevel)
|
||
elseif data.type == 2 then
|
||
self.climbTowerBtn:SetActive(true)
|
||
elseif data.type == 3 then
|
||
self.liaoYiLiaoBtn:SetActive(true)
|
||
elseif data.type == 4 then
|
||
self.replyMessageBtn:SetActive(true)
|
||
end
|
||
end
|
||
|
||
function UIMainView:OnFruitBtn()
|
||
ManagerContainer.LuaGameMgr:EnterBattle(false)
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UILiveRoom)
|
||
end
|
||
|
||
function UIMainView:OnChallengeBossBtn()
|
||
ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_START_CHALLENGE_BOSS,nil)
|
||
end
|
||
|
||
function UIMainView:OnLiaoYiLiaoBtn()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, {openMode="chat", openTab=2})
|
||
end
|
||
|
||
function UIMainView:OnReplyMessageBtn()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, {openMode="chat", openTab=1})
|
||
end
|
||
|
||
function UIMainView:OnClimbTowerBtn()
|
||
ManagerContainer.DataMgr.RankActivitiesMgr:QueryCurRankActivityData(Enum.RankActivitiesType.ClimbingTower, true)
|
||
end
|
||
|
||
function UIMainView:OnFeiGeBtn()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, {openMode="chat"})
|
||
end
|
||
|
||
function UIMainView:OnClickRuneShopBtn()
|
||
local curUIId = ManagerContainer.LuaUIMgr:GetCurUIId()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShop, nil, curUIId)
|
||
end
|
||
|
||
function UIMainView:OnClickCoinZ()
|
||
-- ManagerContainer.LuaUIMgr:ShowMinTips("ZenyTips")
|
||
end
|
||
|
||
function UIMainView:OnClickGoldIcon()
|
||
-- ManagerContainer.LuaUIMgr:ShowMinTips("GoldTips")
|
||
end
|
||
|
||
function UIMainView:OnClickVipBtn()
|
||
local vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
|
||
if vipLv > 0 then
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIVipTips)
|
||
end
|
||
end
|
||
|
||
function UIMainView:OnChatClick()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, {openMode="chat"})
|
||
end
|
||
|
||
function UIMainView:OnSeasonClick(button, params)
|
||
ManagerContainer.DataMgr.CompetitionData:QueryCurCompetitionReq()
|
||
end
|
||
|
||
|
||
|
||
function UIMainView:OnClickHead()
|
||
--ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRoleMessage, {_targetTag = 0}) --打开头像交互界面,显示自己的信息
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISetting, { _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: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)
|
||
-- TODO: 屏蔽Tab
|
||
--[[
|
||
if _curMainButtonType == pageType then return end
|
||
self.systemPad:SetActive(false)
|
||
]]
|
||
|
||
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.Pet 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.UIMainMenu
|
||
--LogError("Open UIMainCity1")
|
||
--ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMainCity1)
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMainMenu)
|
||
|
||
--打开主城需要处理额外
|
||
ManagerContainer.RedPointMgr.PetRPCtr:RefreshRelationRPState()
|
||
elseif pageType == Enum.MainViewPageType.Adventure then
|
||
self.systemPad:SetActive(true)
|
||
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.Pet 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)
|
||
|
||
self.mainPageId = Enum.UIPageName.UITower
|
||
--ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag)
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UITower)
|
||
|
||
elseif pageType == Enum.MainViewPageType.Role then
|
||
self.upgradeRoot:SetActive(false)
|
||
self.mainPageId = Enum.UIPageName.UITeam
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UITeam, data)
|
||
|
||
local bta = self.role.icon.buttonTriggerAnimation
|
||
bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
|
||
elseif pageType == Enum.MainViewPageType.Bag then
|
||
self.upgradeRoot:SetActive(false)
|
||
|
||
self.mainPageId = Enum.UIPageName.UIBag
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag, data)
|
||
|
||
local bta = self.bag.icon.buttonTriggerAnimation
|
||
bta.tagetAnimator:CrossFade(bta.animationName, 0.2)
|
||
elseif pageType == Enum.MainViewPageType.Feixin then
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChat, {openMode="chat"})
|
||
elseif pageType == Enum.MainViewPageType.Fruit then
|
||
ManagerContainer.LuaGameMgr:EnterBattle(false);
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UILiveRoom, data)
|
||
elseif pageType == Enum.MainViewPageType.XiuLian then
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGoddess, nil, self.uiData.id)
|
||
elseif pageType == Enum.MainViewPageType.Rank then
|
||
--ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRank)
|
||
ManagerContainer.DataMgr.ArenaData:SendArenaDataReq(Enum.UIPageName.UIPvP)
|
||
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
|
||
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
|
||
self:OpenFirstRechargeView()
|
||
|
||
self:RefreshSystemPad()
|
||
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 mainTopView then
|
||
mainTopView:RefreshRankActivityEnter(type, state)
|
||
end
|
||
end
|
||
|
||
function UIMainView:RefreshAirShipActivityEnter(state)
|
||
if mainTopView then
|
||
mainTopView:RefreshAirShipActivityEnter(state)
|
||
end
|
||
end
|
||
|
||
function UIMainView:RefreshFirstRechargeBtn(state)
|
||
if state == false then
|
||
self.topView.topRoot.btnFirstRecharge:SetActive(false)
|
||
return
|
||
end
|
||
-- 首充全部领完,则不再显示该按钮
|
||
local activityData = ManagerContainer.DataMgr.ActsDataMgr:GetFirstRechargeItem()
|
||
if not activityData then
|
||
self.topView.topRoot.btnFirstRecharge:SetActive(false)
|
||
return
|
||
end
|
||
if activityData:IsAllRewardGotAndHas() then
|
||
self.topView.topRoot.btnFirstRecharge:SetActive(false)
|
||
return
|
||
end
|
||
local unlockState = ManagerContainer.UIFuncUnlockMgr:GetFuncLockStatusById(57)
|
||
if not unlockState then
|
||
return
|
||
end
|
||
self.topView.topRoot.btnFirstRecharge:SetActive(true)
|
||
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
|
||
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
|
||
|