require("Base/BasePanel") FightLevelChapterPanel = Inherit(BasePanel) local this = FightLevelChapterPanel local chapterConfig = ConfigManager.GetConfig(ConfigName.HardStageChapter) local orginLayer local curChapterId = 0 local npc --初始化组件(用于子类重写) function FightLevelChapterPanel:InitComponent() this.spLoader = SpriteLoader.New() self.btnBack = Util.GetGameObject(self.gameObject, "btnBack") this.hintTxt = Util.GetGameObject(self.gameObject, "hintTxtBG/hintTxt"):GetComponent("Text") this.maxTxt = Util.GetGameObject(self.gameObject, "maxTxt2"):GetComponent("Text") this.maxTxt.gameObject:SetActive(true) self.sortBtn = Util.GetGameObject(self.gameObject, "sortBtn") self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn") self.helpPos = self.helpBtn:GetComponent("RectTransform").localPosition this.starNumText = Util.GetGameObject(self.gameObject, "rightUp/starNumText"):GetComponent("Text") this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft }) this.prb = Util.GetGameObject(self.gameObject, "middle/prb") this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(self.gameObject, "middle/rect").transform, this.prb, nil, Vector2.New(1080, 1865.8), 1, 1, Vector2.New(0, 0)) this.ScrollView.moveTween.MomentumAmount = 1 this.ScrollView.moveTween.Strength = 1 -- 奖励按钮 self.rewardBtn = Util.GetGameObject(self.gameObject, "rewardBtn") self.rewardRedPot = Util.GetGameObject(self.gameObject, "rewardBtn/red") self.rewardTai = Util.GetGameObject(self.gameObject, "rewardBtn/Tai"):GetComponent("Image") self.rewardTextBg = Util.GetGameObject(self.gameObject, "rewardBtn/TextBg"):GetComponent("Image") self.rewardTip = Util.GetGameObject(self.gameObject, "rewardBtn/Text"):GetComponent("Text") self.rewardKaiQi = Util.GetGameObject(self.gameObject, "rewardBtn/BoxBtn1/UI_Effect_BaoXiang_KaiQi") self.rewardKeKaiQi = Util.GetGameObject(self.gameObject, "rewardBtn/BoxBtn1/UI_Effect_BaoXiang_KeKaiQi") self.rewardOpen = Util.GetGameObject(self.gameObject, "rewardBtn/BoxBtn1/open") end --绑定事件(用于子类重写) function FightLevelChapterPanel:BindEvent() Util.AddClick(self.btnBack, function() FightLevelManager.curSelect = 0 self:ClosePanel() end) Util.AddClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.FightLevel, self.helpPos.x, self.helpPos.y) end) Util.AddClick(self.sortBtn, function() local aaa = { [1] = { [1] = { default = "UI_hz_gonghui_19", select = "UI_hz_gonghui_18", name = Language[10787], RankingSData = rankKingList[15] }, [2] = { default = "UI_hz_gonghui_19", select = "UI_hz_gonghui_18", name = Language[10788], RankingSData = rankKingList[16] }, } } UIManager.OpenPanel(UIName.RankingSingleListPanel, rankKingList[15], 1, aaa) end) Util.AddClick(self.rewardBtn, function() local data = FightLevelManager.GetDailyRewardData() if not data then PopupTipPanel.ShowTip(Language[10789]) return end UIManager.OpenPanel(UIName.GeneralPopup, GENERAL_POPUP_TYPE.BuyShanHeSheJiTuGetRewardTimes, function() -- 请求领取奖励 self.rewardKeKaiQi:SetActive(false) self.rewardOpen:SetActive(false) self.rewardKaiQi:SetActive(false) self.rewardKaiQi:SetActive(true) end) end) end --添加事件监听(用于子类重写) function FightLevelChapterPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.FightLevel.DailyRewardStateChange, self.SetDailyRewardShow, self) BindRedPointObject(RedPointType.FightLevelDailyReward, self.rewardRedPot) end --移除事件监听(用于子类重写) function FightLevelChapterPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.FightLevel.DailyRewardStateChange, self.SetDailyRewardShow, self) ClearRedPointObject(RedPointType.FightLevelDailyReward, self.rewardRedPot) end function FightLevelChapterPanel:OnSortingOrderChange() Util.SetParticleSortLayer(self.rewardKaiQi, self.sortingOrder + 1) Util.SetParticleSortLayer(self.rewardKeKaiQi, self.sortingOrder + 1) orginLayer = self.sortingOrder end --界面打开时调用(用于子类重写) function FightLevelChapterPanel:OnOpen() -- LogYellow(bit.band(1,3)) -- LogYellow(bit.band(2,3)) -- LogYellow(bit.band(4,3)) -- SoundManager.PlaySound(SoundConfig.Sound_WorldMap) PlayerPrefs.SetInt(PlayerManager.uid .. "openFightLevelTime", 1) this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main }) -- SoundManager.PlayMusic(SoundConfig.BGM_Main) end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function FightLevelChapterPanel:OnShow() this.OnShowPanel() end function this.OnShowPanel() local curTime = GetTimeStamp() local hint local maxChapterId = 4 local day = -1 local allChapterId = 0 for _, config in ConfigPairs(chapterConfig) do if curTime > PlayerManager.GetServerOpenTime() + config.OpenTime * 24 * 60 * 60 then hint = GetLanguageStrById(config.OpenNumber) --if maxChapterId==0 then if day ~= config.OpenTime - 1 then day = config.OpenTime - 1 maxChapterId = config.Id end --maxChapterId=config.Id --end end allChapterId = config.Id end this.hintTxt.text = hint SoundManager.PlayMusic(SoundConfig.BGM_Main) this.starNumText.text = FightLevelManager.GetAllChapterStars() curChapterId = FightLevelManager.GetCurChapterId() LogError("curChapterId=========" .. curChapterId .. " maxChapterId==" .. maxChapterId) this.maxTxt.gameObject:SetActive(false) if curChapterId == maxChapterId then LogError("11111111111111111111111111111111111111") this.maxTxt.gameObject:SetActive(true) this.maxTxt.text = Language[10790] end if curChapterId == allChapterId then this.maxTxt.gameObject:SetActive(true) this.maxTxt.text = Language[10791] end local allData = FightLevelManager.GetChapterData() this.ScrollView:SetData(allData, function(index, go) this.SingleChapterDataShow(go, allData[index], index) end, true, true) if FightLevelManager.curSelect > 0 then this.ScrollView:SetShow(FightLevelManager.curSelect) else local curIndex = FightLevelManager.GetCurChapterId() this.ScrollView:SetShow(curIndex) end -- 设置每日奖励显示 this:SetDailyRewardShow() end function this.SingleChapterDataShow(go, data, index) local playerParent = Util.GetGameObject(go, "playerParent") local cur = Util.GetGameObject(go, "cur") local open = Util.GetGameObject(go, "open") local lock = Util.GetGameObject(go, "lock") local curIndexImageParent = Util.GetGameObject(go, "curIndexImageParent") local curCurIndexImageList = {} for i = 1, 3 do curCurIndexImageList[i] = Util.GetGameObject(curIndexImageParent, "curIndexImage (" .. i .. ")") curCurIndexImageList[i]:SetActive(#data.config.BigNumber == i) end local curTime = GetTimeStamp() local isTimeOpen = curTime >= PlayerManager.GetServerOpenTime() + data.config.OpenTime * 24 * 60 * 60 Util.GetGameObject(go, "redPoint"):SetActive(FightLevelManager.GetSingleChapterRewardBoxRedPoint(data.chapterId)) if curChapterId == data.chapterId then if npc then npc:OnClose() npc = nil end local PlayerLiveViewData = { -- ride = PlayerManager.GetPlayerRide(), skin = PlayerManager.GetPlayerSkin(), sex = NameManager.roleSex, -- designation = PlayerManager.GetPlayerDesignation() } npc = PlayerLiveView:New(playerParent.transform, 2, PlayerLiveViewData, this.sortingOrder) -- npc:OnOpen(GetPlayerRoleSingleConFig().Scale6,Vector3.New(0,0,0),WALK_DIR.IDLE_LEFT) if data.userMount and data.userMount > 0 and data.userMount ~= PlayerRide.YUJIAN then npc:OnOpen(GetPlayerRoleSingleConFig().Scale6, Vector3.New(0, 0, 0), WALK_DIR.IDLE_LEFT) else npc:OnOpen(GetPlayerRoleSingleConFig().Scale6, Vector3.New(0, 0, 0), WALK_DIR.IDLE_FRONT) end end if curChapterId == data.chapterId then playerParent.gameObject:SetActive(true) else playerParent.gameObject:SetActive(false) end cur:SetActive(curChapterId == data.chapterId) open:SetActive(curChapterId > data.chapterId) lock:SetActive(curChapterId < data.chapterId) curIndexImageParent:SetActive(curChapterId >= data.chapterId) if curCurIndexImageList[#data.config.BigNumber] then for i = 1, #data.config.BigNumber do Util.GetGameObject(curCurIndexImageList[#data.config.BigNumber], "curIndexImage (0" .. i .. ")"):GetComponent("Image").sprite = this.spLoader:LoadSprite(data.config.BigNumber[i]) end end Util.GetGameObject(go, "chapterImage"):GetComponent("Image").sprite = this.spLoader:LoadSprite(data.config.Map) Util.GetGameObject(go, "star/starNum"):GetComponent("Text").text = data.stars .. "/" .. data.curMaxStarNum Util.GetGameObject(go, "chapterName"):GetComponent("Text").text = GetLanguageStrById(data.config.Name) Util.SetGray(go, curChapterId < data.chapterId) Util.AddOnceClick(go, function() if data.config.Open == -1 then PopupTipPanel.ShowTip(Language[10792]) return end if PlayerManager.level < data.config.Open then PopupTipPanel.ShowTip(string.format(Language[10793], data.config.Open)) return end if not isTimeOpen then PopupTipPanel.ShowTip(string.format(Language[10794], data.config.OpenTime + 1)) return end if curChapterId >= data.chapterId then UIManager.OpenPanel(UIName.FightLevelSingleChapterPanel, data.chapterId) FightLevelManager.curSelect = index elseif curChapterId < data.chapterId then PopupTipPanel.ShowTip(Language[10795]) end end) end -- 设置日常奖励显示 function FightLevelChapterPanel:SetDailyRewardShow() local data = FightLevelManager.GetDailyRewardData() if data then self.rewardTip.text = string.format(Language[10576]) self.rewardKaiQi:SetActive(false) self.rewardKeKaiQi:SetActive(true) self.rewardOpen:SetActive(false) self.rewardTai.sprite = this.spLoader:LoadSprite("s_shanhe_xiaoditu_zhongbiao") self.rewardTextBg.sprite = this.spLoader:LoadSprite("s_shanhe_xiaoditu_biaoxiamingzidi") else self.rewardTip.text = string.format(Language[10796]) self.rewardKaiQi:SetActive(false) self.rewardKeKaiQi:SetActive(false) self.rewardOpen:SetActive(true) self.rewardTai.sprite = this.spLoader:LoadSprite("s_shanhe_xiaoditu_zhongbiao_01") self.rewardTextBg.sprite = this.spLoader:LoadSprite("s_shanhe_xiaoditu_biaoxiamingzidi_01") end end --界面关闭时调用(用于子类重写) function FightLevelChapterPanel:OnClose() FightLevelManager.curSelect = 0 end --界面销毁时调用(用于子类重写) function FightLevelChapterPanel:OnDestroy() if npc then npc:OnClose() end SubUIManager.Close(this.UpView) this.spLoader:Destroy() end return FightLevelChapterPanel