local UITownGuide = UIViewClass() local EventSystem = require('Event/EventSystem') local ToggleType = { Task = 0, Team = 1, Activity = 2, } local UIAnimationPath = ConstAssetPathConfig.UIAnimationPath function UITownGuide:OnOpened() self:RegistSystemEvent(EventID.FunctionUnlockUpdate, self.UpdateToggles) self:RegistSystemEvent(EventID.UI_TownGuide_UpdateActivity, self.UpdateActivityData) self:RegistSystemEvent(EventID.UI_CountryNightBoss_ActivityNotice, self.UpdateActivityData) self:HideTownGuideView() self:UpdateToggles() self.toggle_Task = self.toggles_TownGuide:GetToggle(0) self:RegistTriggerEvent(self.toggle_Task, UIEventTriggerType.PointerClick) self.toggle_Team = self.toggles_TownGuide:GetToggle(1) self:RegistTriggerEvent(self.toggle_Team, UIEventTriggerType.PointerClick) self.toggle_Activity = self.toggles_TownGuide:GetToggle(2) self:RegistTriggerEvent(self.toggle_Activity, UIEventTriggerType.PointerClick) if MDL.HomeMain.TownGuideToggle == ToggleType.Task then self:OnClickTask() self.toggles_TownGuide:SelectIndex(0) elseif MDL.HomeMain.TownGuideToggle == ToggleType.Team then self:OnClickTeam() self.toggles_TownGuide:SelectIndex(1) end --self.toggles[MDL.HomeMain.TownGuideToggle].isOn = true self:UpdateActivityData() end function UITownGuide:UpdateToggles() self.toggles_TownGuide:SetToggleActive(2, CTL.Team.IsTeamFunctionUnlock()) --UIUtils.SetActive(self.toggles[ToggleType.Team].gameObject, CTL.Team.IsTeamFunctionUnlock()) end function UITownGuide:RefreshInviteButtonRedPoint(isAdd) local length = #MDL.Team.GetInviteList() length = isAdd and length or length - 1 return length > 0 end function UITownGuide:RefreshApplyButtonRedPoint(isAdd) local length = #MDL.Team.GetApplyTeamList() length = isAdd and length or length - 1 return length > 0 end function UITownGuide:OnClosed() self.context = {self.selectToggle} self.taskGuide = nil self.teamGuide = nil end function UITownGuide:HideTownGuideView() UIUtils.SetActive(self.view_TaskGuide.gameObject, false) UIUtils.SetActive(self.view_TeamGuide.gameObject, false) self.view_ActivityGuide:CloseAll() EventSystem.Dispatch(EventID.UI_TownHome_HideLeftBtn, true) end function UITownGuide:OnClickTask() MDL.HomeMain.TownGuideToggle = ToggleType.Task if self.taskGuide and self.view_TaskGuide.gameObject.activeInHierarchy then CTL.Task.OpenTaskMainPanel() else self:HideTownGuideView() UIUtils.SetActive(self.view_TaskGuide.gameObject, true) if not self.taskGuide then self.taskGuide = self.view_TaskGuide:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UITownTaskGuide)) end end end function UITownGuide:OnClickTeam() MDL.HomeMain.TownGuideToggle = ToggleType.Team local isSpecialTeam = BattleDataGetter.CheckCurLevelType(LuaConst.LevelType.CrossHeroMatchTown3V3) or BattleDataGetter.CheckCurLevelType(LuaConst.LevelType.TeamFairChampionshipTown) if self.teamGuide and self.view_TeamGuide.gameObject.activeInHierarchy then if isSpecialTeam then CTL.SpecialTeam.OpenMain() else CTL.Team.OpenTeamPanel() end else self:HideTownGuideView() UIUtils.SetActive(self.view_TeamGuide.gameObject, true) if not self.teamGuide then if isSpecialTeam then self.teamGuide = self.view_TeamGuide:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UITownSpecialTeamGuide)) else self.teamGuide = self.view_TeamGuide:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UITownTeamGuide)) end end end end function UITownGuide:OnPointerClick(comp, eventData) if comp == self.toggle_Task then self:OnClickTask() EventSystem.Dispatch(EventID.UI_TownHome_HideLeftBtn, true) elseif comp == self.toggle_Team then self:OnClickTeam() EventSystem.Dispatch(EventID.UI_TownHome_HideLeftBtn, true) elseif comp == self.toggle_Activity then self:OnClickActivity() end end function UITownGuide:OnClickTeamBubble() if CTL.Team.IsSelfLeader() then UIManager.OpenView(Const_UI_Lua.UIEnum.UITeamApplyPanel) else UIManager.OpenView(Const_UI_Lua.UIEnum.UITeamInvitedPanel) end end function UITownGuide:OnClickActivity() self:HideTownGuideView() if LevelManager.IsGuildPartyLevel() then if CTL.Activities.IsOpeningTime(LuaConst.ActivityType.GuildParty) then self.view_ActivityGuide:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UITownActivityGuide), nil, "Town/UITownActivityGuide") return end end if BattleDataGetter.CheckCurLevelType(LuaConst.LevelType.DragonArteryRegistArea) then self.view_ActivityGuide:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIDragonArteryIntroduce)) return end if CTL.CountryNightBoss.IsChangAnLevel() then if CTL.CountryNightBoss.IsOpen(LuaConst.ActivityType.CountryNightBoss) then self.view_ActivityGuide:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UICountryNightBossBattleList)) return end end end function UITownGuide:ShowToggleActivity(isShow) self.toggles_TownGuide:SetToggleActive(3, isShow) if isShow then MDL.HomeMain.TownGuideToggle = ToggleType.Activity self.toggles_TownGuide:SelectIndex(2) self:OnClickActivity() elseif MDL.HomeMain.TownGuideToggle == ToggleType.Activity then self.toggles_TownGuide:SelectIndex(0) self:OnClickTask() end end function UITownGuide:UpdateActivityData() if LevelManager.IsGuildPartyLevel() then if CTL.Activities.IsOpeningTime(LuaConst.ActivityType.GuildParty) then self:ShowToggleActivity(true) return end end if BattleDataGetter.CheckCurLevelType(LuaConst.LevelType.DragonArteryRegistArea) then self:ShowToggleActivity(true) return end if CTL.CountryNightBoss.IsChangAnLevel() then if CTL.CountryNightBoss.IsOpen(LuaConst.ActivityType.CountryNightBoss) then self:ShowToggleActivity(true) return end end EventSystem.Dispatch(EventID.UI_TownHome_HideLeftBtn, true) self:ShowToggleActivity(false) end return UITownGuide