require("Base/BasePanel") FindTreasureMainPanel = Inherit(BasePanel) -- local findTreasureGrid = {} local findTreasureItemsGrid = {} local timer = Timer.New() local missionInfo = {} local refreshIsMaterial = true local isRefreshAddNum = false local orginLayer = 0 local isFirstOpen local isPlayAnim = true local starImage={[1]="x_xunbao_xingxingkong",[2]="ui_1xing"}--星星资源名 local MazeTreasureSetting = ConfigManager.GetConfig(ConfigName.MazeTreasureSetting) --初始化组件(用于子类重写) function FindTreasureMainPanel:InitComponent() self.spLoader = SpriteLoader.New() self.btnBack = Util.GetGameObject(self.gameObject, "btnBack") self.helpBtn = Util.GetGameObject(self.gameObject, "helpBtn") self.helpPos = Util.GetGameObject(self.gameObject, "helpBtn"):GetComponent("RectTransform").localPosition self.findTreasureVipBtn = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn") self.findTreasureVipBtnRedPoint = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn/redPoint") self.allGetBtn = Util.GetGameObject(self.gameObject, "allGetBtn") self.allGetBtnText = Util.GetGameObject(self.gameObject, "allGetBtn/Text"):GetComponent("Text") -- self.findTreasureGridGo = Util.GetGameObject(self.gameObject, "rect/rect (1)/grid") self.rewardPre = Util.GetGameObject(self.gameObject, "rewardPre") -- for i = 1, 2 do -- findTreasureGrid[i] = Util.GetGameObject(self.gameObject, "rect/rect (1)/grid/rewardPre ("..i..")") -- local curexpertRewardItemsGri = {} -- for j = 1, 4 do -- curexpertRewardItemsGri[j] = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(findTreasureGrid[i], "content").transform) -- end -- findTreasureItemsGrid[i] = curexpertRewardItemsGri -- end self.rectRoot = Util.GetGameObject(self.gameObject, "rect") local v = Util.GetGameObject(self.gameObject, "rect/rect (1)"):GetComponent("RectTransform").rect self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(self.gameObject, "rect/rect (1)").transform, self.rewardPre, nil, Vector2.New(v.width, v.height), 1, 1, Vector2.New(0,-5)) self.ScrollView.moveTween.MomentumAmount = 1 self.ScrollView.moveTween.Strength = 1 self.NoviceItemList={}--存储itemview 重复利用 self.goAndDataList={}--存储goAndData 倒计时用 self.FindTreasureVipIcon = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn/icon"):GetComponent("Image") self.FindTreasureVipTextIcon = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn/icon/icon (1)"):GetComponent("Image") self.FindTreasureVipText = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn/Text"):GetComponent("Text") self.FindTreasureVipEffect = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn/FindTreasureVipEffect") self.refreshBtn = Util.GetGameObject(self.gameObject, "refreshBtn") self.refreshBtnText = Util.GetGameObject(self.gameObject, "refreshBtn/Text") self.refreshImageGo = Util.GetGameObject(self.gameObject, "refreshBtn/refreshImage") self.refreshImageText = Util.GetGameObject(self.gameObject, "refreshBtn/refreshImage/Text (1)"):GetComponent("Text") self.refreshBtnNumText = Util.GetGameObject(self.gameObject, "refreshBtn/refreshImage/numText"):GetComponent("Text") self.refreshBtnImage = Util.GetGameObject(self.gameObject, "refreshBtn/refreshImage"):GetComponent("Image") self.materialImageBg = Util.GetGameObject(self.gameObject, "materialImageBg") self.materialImageNumText = Util.GetGameObject(self.gameObject, "materialImageBg/materialImage/numText"):GetComponent("Text") self.materialImage = Util.GetGameObject(self.gameObject, "materialImageBg/materialImage"):GetComponent("Image") self.refreshObj = Util.GetGameObject(self.gameObject, "refreshObj") self.refreshNumText = Util.GetGameObject(self.gameObject, "refreshObj/numText"):GetComponent("Text") self.refreshImage = Util.GetGameObject(self.gameObject, "refreshObj/refreshImage"):GetComponent("Image") self.textImage = Util.GetGameObject(self.gameObject, "titleBg/bg2/Image") self.goBtn = Util.GetGameObject(self.textImage, "Button") self.goBtnTxt = Util.GetGameObject(self.textImage, "Button/Text"):GetComponent("Text") self.btnEffect = Util.GetGameObject(self.goBtn, "UI_Effect_MianBan_GuaJi_Ani") orginLayer = 0 end --绑定事件(用于子类重写) function FindTreasureMainPanel:BindEvent() Util.AddClick(self.btnBack, function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) self:ClosePanel() end) Util.AddClick(self.goBtn, function() --DynamicActivityManager.SetSelectIndex(DataType.Shop,{20091,20092}) --JumpManager.GoJump(MazeTreasureSetting[1].Jump) UIManager.OpenPanel(UIName.GMShuaChongTeQuan) end) Util.AddClick(self.materialImageBg, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, FindTreasureManager.materialItemId) end) Util.AddClick(self.refreshObj, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, ConfigManager.GetConfigData(ConfigName.MazeTreasureSetting,1).RefreshItem[1]) end) Util.AddClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.FindTreasure,Util.GetGameObject(self.gameObject, "helpBtn"):GetComponent("RectTransform").localPosition.x,Util.GetGameObject(self.gameObject, "helpBtn"):GetComponent("RectTransform").localPosition.y) end) Util.AddClick(self.findTreasureVipBtn, function() UIManager.OpenPanel(UIName.FindTreasureVipPopup) FindTreasureManager.SetShowFindTreasureVipRedPoint(false) self.findTreasureVipBtnRedPoint:SetActive(FindTreasureManager.GetShowFindTreasureVipRedPoint()) end) Util.AddClick(self.refreshBtn, function() local allLockNum = 0 for i = 1, #missionInfo do if missionInfo[i].state == 0 and missionInfo[i].heroId and #missionInfo[i].heroId <= 0 then if missionInfo[i].lock == 1 then allLockNum = allLockNum + 1 end end end if allLockNum >= 6 then PopupTipPanel.ShowTip(Language[12149]) return end if refreshIsMaterial then local isShowTwo = false for i = 1, #missionInfo do if missionInfo[i].state ~= 2 then if ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(missionInfo[i].missionId%10000)).TaskType >= 4 and #missionInfo[i].heroId <= 0 and missionInfo[i].lock == 0 then isShowTwo = true end end end if isShowTwo then MsgPanel.ShowTwo(Language[10662], nil, function() NetManager.FindTreasureRefreshRequest(function(msg) TaskManager.RefreshFindTreasureData(msg) if isRefreshAddNum then PlayerManager.missingRefreshCount = PlayerManager.missingRefreshCount + 1 end isPlayAnim = true self:OnShowPanelData(true,false,false) end) end, nil, nil, nil) else NetManager.FindTreasureRefreshRequest(function(msg) TaskManager.RefreshFindTreasureData(msg) if isRefreshAddNum then PlayerManager.missingRefreshCount = PlayerManager.missingRefreshCount + 1 end isPlayAnim = true self:OnShowPanelData(true,false,false) end) end else PopupTipPanel.ShowTip(Language[10438]) end end) Util.AddClick(self.allGetBtn, function() local allGetMissionData = {} for i = 1, #missionInfo do if missionInfo[i].state == 1 then table.insert(allGetMissionData,missionInfo[i]) end end if #allGetMissionData > 0 then NetManager.TakeMissionRewardRequest(TaskTypeDef.FindTreasure,0, function(msg) UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function() end) --刷新界面 for i = 1, #allGetMissionData do --Log("missionInfo[i].missionId "..allGetMissionData[i].missionId) TaskManager.RefreshFindTreasureStatrData(allGetMissionData[i].missionId,2) end self:OnShowPanelData(true,true,true) end) else PopupTipPanel.ShowTip(Language[10663]) end end) end --添加事件监听(用于子类重写) function FindTreasureMainPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.FindTreasure.RefreshFindTreasureRect, self.RefreshFindTreasureRect,self) Game.GlobalEvent:AddEvent(GameEvent.FindTreasure.RefreshFindTreasure, self.OnShowPanelData,self) end --移除事件监听(用于子类重写) function FindTreasureMainPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.FindTreasure.RefreshFindTreasureRect, self.RefreshFindTreasureRect,self) Game.GlobalEvent:RemoveEvent(GameEvent.FindTreasure.RefreshFindTreasure, self.OnShowPanelData,self) end function FindTreasureMainPanel:RefreshFindTreasureRect() self.rectRoot.gameObject:SetActive(true) end --界面打开时调用(用于子类重写) function FindTreasureMainPanel:OnOpen(...) isFirstOpen = true end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function FindTreasureMainPanel:OnShow() isPlayAnim = true self.rectRoot.gameObject:SetActive(true) self:OnShowPanelData(true,true,true) end function FindTreasureMainPanel:OnSortingOrderChange() --特效穿透签到 -- for i = 1, #findTreasureItemsGrid do -- for j = 1, #findTreasureItemsGrid[i] do -- findTreasureItemsGrid[i][j]:SetEffectLayer(self.sortingOrder) -- end -- end for i, v in pairs(self.NoviceItemList) do for j = 1, #self.NoviceItemList[i] do if self.NoviceItemList[i][j] and self.NoviceItemList[i][j].gameObject then self.NoviceItemList[i][j]:SetEffectLayer(self.sortingOrder) end end end Util.AddParticleSortLayer(self.btnEffect, self.sortingOrder - orginLayer) Util.AddParticleSortLayer(self.FindTreasureVipEffect, self.sortingOrder - orginLayer) orginLayer = self.sortingOrder end function FindTreasureMainPanel:OnShowPanelData(isSort,isTop,isAni) refreshIsMaterial = true isRefreshAddNum = false TaskManager.SetFindTreasureDataState() missionInfo = TaskManager.GetTypeTaskList(TaskTypeDef.FindTreasure) if missionInfo == nil then return end -- Log("#missionInfo "..#missionInfo) if isSort then self:MissionInfoSort(missionInfo) end local isActive =OperatingManager.IsBuyGift(2204) --this.privilegeGo:SetActive(not isActive) if isActive then self.goBtnTxt.text="已激活" else self.goBtnTxt.text="去激活" end -- for i = 1, math.max(#missionInfo, #findTreasureGrid) do -- local go = findTreasureGrid[i] -- if not go then -- go = newObject(self.rewardPre) -- go.transform:SetParent(self.findTreasureGridGo.transform) -- go.transform.localScale = Vector3.one -- go.transform.localPosition = Vector3.zero -- go.name = "rewardPre ("..i..")" -- findTreasureGrid[i] = go -- findTreasureItemsGrid[i] = {} -- end -- go.gameObject:SetActive(false) -- end -- for i = 1, #missionInfo do -- self:ActivityRewardSingleShow(i,missionInfo[i]) -- end self.ScrollView:SetData(missionInfo, function (index, go) self:ActivityRewardSingleShow(go,missionInfo[index]) end,not isTop,not isAni) if isFirstOpen then isFirstOpen = false -- self.findTreasureGridGo:GetComponent("RectTransform").anchoredPosition = Vector2.New(0, 0) end self:RemainTimeDown() --vip local curVipState = 1 local curVipStateId = 1 local FindTreasureGaoIdNum = PrivilegeManager.GetPrivilegeOpenStatus(PRIVILEGE_TYPE.GoFindTreasure)--高级寻宝 local FindTreasureHaoIdNum = PrivilegeManager.GetPrivilegeOpenStatus(PRIVILEGE_TYPE.HaoFindTreasure)--豪华寻宝 local bool1,bool2 = true,true if FindTreasureGaoIdNum then curVipStateId = FindTreasureManager.FindTreasureGaoId curVipState = 2 bool1 = false end if FindTreasureHaoIdNum then curVipStateId = FindTreasureManager.FindTreasureHaoId curVipState = 3 bool2 = false end self.textImage:SetActive(true) self.FindTreasureVipEffect:SetActive(curVipState > 1) --self.FindTreasureVipText.text = RefreshItemNum self.FindTreasureVipIcon.sprite = self.spLoader:LoadSprite(FindTreasureVipTypeSprite[curVipState]) self.FindTreasureVipTextIcon.sprite = self.spLoader:LoadSprite(FindTreasureVipTextTypeSprite[curVipState]) --刷新道具 local mazeTreasureSetting = ConfigManager.GetConfigData(ConfigName.MazeTreasureSetting,1)--得判断是否特权 local itemNum = BagManager.GetItemCountById(FindTreasureManager.refreshTicketItemId) local RefreshItemNum = BagManager.GetItemCountById(mazeTreasureSetting.RefreshItem[1]) --Log("83 itemNum "..itemNum) --Log("79 RefreshItemNum "..RefreshItemNum) self.refreshBtnText:SetActive(itemNum > 0) self.refreshBtnText:GetComponent("Text").fontSize = GetCurLanguage() ~= 2 and 45 or 35 self.refreshImageGo:SetActive(itemNum <= 0) self.allGetBtnText.fontSize = GetCurLanguage() ~= 2 and 45 or 35 self.refreshImageText.fontSize = GetCurLanguage() ~= 2 and 38 or 28 if itemNum <= 0 then if RefreshItemNum > 0 then--劵有时花卷 没时候花妖晶 self.refreshBtnNumText.text = mazeTreasureSetting.RefreshItem[2] --Log("---------------mazeTreasureSetting.RefreshItem[1] "..mazeTreasureSetting.RefreshItem[1]) self.refreshBtnImage.sprite = self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,mazeTreasureSetting.RefreshItem[1]).ResourceID)) else local refreshNum = PlayerManager.missingRefreshCount local cost = mazeTreasureSetting.Cost[2] local costNum = math.floor(((cost[1] * math.pow(refreshNum, 3) + cost[2] * math.pow(refreshNum, 2) + cost[3] * refreshNum + cost[4]))) self.refreshBtnNumText.text = costNum --Log("---------------mazeTreasureSetting.RefreshItem[1] "..mazeTreasureSetting.RefreshItem[1]) self.refreshBtnImage.sprite = self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,mazeTreasureSetting.Cost[1][1]).ResourceID)) isRefreshAddNum = true if BagManager.GetItemCountById(mazeTreasureSetting.Cost[1][1]) < costNum then refreshIsMaterial = false end end end local mazeTreasureMax = ConfigManager.GetConfigData(ConfigName.PlayerLevelConfig,PlayerManager.level).MazeTreasureMax local bagNum = BagManager.GetItemCountById(FindTreasureManager.materialItemId) if bagNum >= mazeTreasureMax then self.materialImageNumText.text = ""..PrintWanNum3(bagNum).."/"..mazeTreasureMax else self.materialImageNumText.text =""..PrintWanNum3(bagNum).."/"..mazeTreasureMax end self.materialImage.sprite = self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,FindTreasureManager.materialItemId).ResourceID)) self.refreshNumText.text = RefreshItemNum self.refreshImage.sprite=self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,mazeTreasureSetting.RefreshItem[1]).ResourceID)) local gaoState = PrivilegeManager.GetPrivilegeOpenStatus(PRIVILEGE_TYPE.GoFindTreasure) local haoState = PrivilegeManager.GetPrivilegeOpenStatus(PRIVILEGE_TYPE.HaoFindTreasure) if gaoState and haoState then FindTreasureManager.SetShowFindTreasureVipRedPoint(false) end self.findTreasureVipBtnRedPoint:SetActive(FindTreasureManager.GetShowFindTreasureVipRedPoint()) end --活动奖励2 function FindTreasureMainPanel:ActivityRewardSingleShow(_activityRewardGo,rewardData) local activityRewardGo = _activityRewardGo--findTreasureGrid[index] activityRewardGo:SetActive(true) local sConFigData = ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(rewardData.missionId%10000)) local titleText = Util.GetGameObject(activityRewardGo, "titleImage/titleText"):GetComponent("Text") local titleImage = Util.GetGameObject(activityRewardGo, "titleImage"):GetComponent("Image") titleText.text = GetLanguageStrById(sConFigData.Desc).." 【"..FindTreasureMissionTitleTypeStr[sConFigData.TaskType].."】" titleImage.sprite = self.spLoader:LoadSprite(FindTreasureMissionTitleTypeSprite[sConFigData.TaskType]) local lockBtn = Util.GetGameObject(activityRewardGo, "lockBtn").gameObject local lockOpenImage = Util.GetGameObject(lockBtn, "lockOpen") local lockLockImage = Util.GetGameObject(lockBtn, "lockLock") --星星数量 for n = 1, 6 do Util.GetGameObject(activityRewardGo,"star/Image"..n):GetComponent("Image").sprite=self.spLoader:LoadSprite(starImage[1]) end for m = 1, tonumber(sConFigData.TaskType) do Util.GetGameObject(activityRewardGo,"star/Image"..m):GetComponent("Image").sprite=self.spLoader:LoadSprite(starImage[2]) end -- for i = 1, math.max(#sConFigData.Reward, #findTreasureItemsGrid[index]) do -- local go = findTreasureItemsGrid[index][i] -- if not go then -- go = SubUIManager.Open(SubUIConfig.ItemView, content.transform) -- findTreasureItemsGrid[index][i] = go -- end -- go.gameObject:SetActive(false) -- end local itemGroup = Util.GetGameObject(activityRewardGo, "content") self.goAndDataList[activityRewardGo] = {go = activityRewardGo,data = rewardData} --滚动条复用重设itemview if not self.NoviceItemList[activityRewardGo] then self.NoviceItemList[activityRewardGo] = {} end for i = 1, #sConFigData.Reward do if not self.NoviceItemList[activityRewardGo][i] then self.NoviceItemList[activityRewardGo][i] = SubUIManager.Open(SubUIConfig.ItemView, itemGroup.transform) end self.NoviceItemList[activityRewardGo][i].gameObject:SetActive(false) end for i = 1, #sConFigData.Reward do self.NoviceItemList[activityRewardGo][i]:OnOpen(false, sConFigData.Reward[i], 0.77,false,false,false,self.sortingOrder) self.NoviceItemList[activityRewardGo][i].gameObject:SetActive(true) -- findTreasureItemsGrid[index][i].gameObject:SetActive(true) -- findTreasureItemsGrid[index][i]:OnOpen(false,sConFigData.Reward[i],0.77,false,false,false,self.sortingOrder) end local grtButton = Util.GetGameObject(activityRewardGo.gameObject, "grtButton") local jumpButton = Util.GetGameObject(activityRewardGo.gameObject, "jumpButton") local quickGetButton = Util.GetGameObject(activityRewardGo.gameObject, "quickGetButton") local quickGetButtonImage = Util.GetGameObject(activityRewardGo.gameObject, "quickGetButton/Image"):GetComponent("Image") local quickGetButtonNumText = Util.GetGameObject(activityRewardGo.gameObject, "quickGetButton/numText"):GetComponent("Text") local getFinishText = Util.GetGameObject(activityRewardGo.gameObject, "getFinishText") local consumeObj = Util.GetGameObject(activityRewardGo.gameObject, "consumeObj") local consumeObjImage = Util.GetGameObject(activityRewardGo.gameObject, "consumeObj/Image/Image"):GetComponent("Image") local consumeObjNumText = Util.GetGameObject(activityRewardGo.gameObject, "consumeObj/numText"):GetComponent("Text") local timeTextGo = Util.GetGameObject(activityRewardGo.gameObject, "timeObject") -- --LogGreen("rewardData "..rewardData.missionId.." "..rewardData.state.." "..sConFigData.Desc) timeTextGo:SetActive(rewardData.state == 0 and rewardData.heroId and #rewardData.heroId > 0 ) grtButton:SetActive(rewardData.state == 1) jumpButton:SetActive(rewardData.state == 0 and rewardData.heroId and #rewardData.heroId <= 0) getFinishText:SetActive(rewardData.state == 2) consumeObj:SetActive(rewardData.state == 0 and rewardData.heroId and #rewardData.heroId <= 0) quickGetButton:SetActive(rewardData.state == 0 and rewardData.heroId and #rewardData.heroId > 0 ) lockBtn:SetActive(rewardData.state == 0 and rewardData.heroId and #rewardData.heroId <= 0) lockLockImage:SetActive(rewardData.lock == 1) lockOpenImage:SetActive(rewardData.lock == 0) consumeObjImage.sprite = self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,sConFigData.TakeItem[1]).ResourceID)) local isJian = PrivilegeManager.GetSerData(155) ~= nil--PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.FINDTREASURE_EXPERT) > 0 local privilegeTypeConfig = ConfigManager.GetConfigDataByKey(ConfigName.PrivilegeTypeConfig,"PrivilegeType",PRIVILEGE_TYPE.FINDTREASURE_EXPERT) local jianNum = (privilegeTypeConfig and isJian) and (privilegeTypeConfig.Condition[1][2])/10000 or 1 local takeItemNum = isJian and (sConFigData.TakeItem[2] + sConFigData.TakeItem[2] * jianNum) or sConFigData.TakeItem[2] consumeObjNumText.text = takeItemNum quickGetButtonImage.sprite = self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,sConFigData.SpeedUpTake[1]).ResourceID)) quickGetButtonNumText.text = sConFigData.SpeedUpTake[2] Util.AddOnceClick(jumpButton, function() self.rectRoot.gameObject:SetActive(false) UIManager.OpenPanel(UIName.FindTreasureDispatchPanel,rewardData) end) Util.AddOnceClick(grtButton, function() NetManager.TakeMissionRewardRequest(TaskTypeDef.FindTreasure,rewardData.missionId, function(msg) UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function() end) TaskManager.RefreshFindTreasureStatrData(rewardData.missionId,2) self:OnShowPanelData(true,false,false) --刷新界面 end) end) Util.AddOnceClick(quickGetButton, function() NetManager.FindTreasureMissingRoomAccelerateRequest(rewardData.missionId, function() --刷新界面 TaskManager.RefreshFindTreasureStatrData(rewardData.missionId,1) self:OnShowPanelData(false,false,false) end) end) Util.AddOnceClick(lockLockImage, function() rewardData.lock = 0 PopupTipPanel.ShowTip(Language[12164]) NetManager.MissingRoomLockRequest(rewardData.missionId,rewardData.lock, function() --刷新界面 TaskManager.RefreshFindTreasureStatrData2(rewardData.missionId,rewardData.lock) LogPink("rewardData.lock "..rewardData.lock) self:ActivityRewardSingleShow(activityRewardGo,rewardData) end) end) Util.AddOnceClick(lockOpenImage, function() rewardData.lock = 1 PopupTipPanel.ShowTip(Language[12165]) NetManager.MissingRoomLockRequest(rewardData.missionId,rewardData.lock, function() --刷新界面 TaskManager.RefreshFindTreasureStatrData2(rewardData.missionId,rewardData.lock) LogPink("rewardData.lock "..rewardData.lock) self:ActivityRewardSingleShow(activityRewardGo,rewardData) end) end) end --刷新倒计时显示 function FindTreasureMainPanel:RemainTimeDown() if timer then timer:Stop() timer = nil end self:RemainTimeDown2() timer = Timer.New(function() self:RemainTimeDown2() end, 1, -1, true) timer:Start() end function FindTreasureMainPanel:RemainTimeDown2() -- for i = 1, #missionInfo do -- if missionInfo[i].state == 0 and #missionInfo[i].heroId > 0 then--未完成 已派遣 -- local timeTextGo = Util.GetGameObject(findTreasureGrid[i], "timeObject/timeText") -- local timeDown = missionInfo[i].progress - GetTimeStamp() -- if timeDown > 0 then -- timeTextGo:SetActive(true) -- local cursConFigData = ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(missionInfo[i].missionId%10000)) -- local timeText = Util.GetGameObject(findTreasureGrid[i], "timeObject/timeText"):GetComponent("Text") -- local timeExp = Util.GetGameObject(findTreasureGrid[i], "timeObject/exp"):GetComponent("Slider") -- timeExp.value = (1- (timeDown / cursConFigData.WasteTime )) -- timeText.text = self:TimeStampToDateString(timeDown) -- else -- missionInfo[i].state = 1 -- timeTextGo:SetActive(false) -- self:ActivityRewardSingleShow(i,missionInfo[i]) -- end -- end -- end for key, value in pairs(self.goAndDataList) do if value and value.data and value.data.state == 0 and #value.data.heroId > 0 then--未完成 已派遣 local timeTextGo = Util.GetGameObject(value.go, "timeObject/timeText") local timeDown = value.data.progress - GetTimeStamp() if timeDown > 0 then timeTextGo:SetActive(true) local cursConFigData = ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(value.data.missionId%10000)) local timeText = Util.GetGameObject(value.go, "timeObject/timeText"):GetComponent("Text") local timeExp = Util.GetGameObject(value.go, "timeObject/exp"):GetComponent("Slider") timeExp.value = (1- (timeDown / cursConFigData.WasteTime )) timeText.text = self:TimeStampToDateString(timeDown) else value.data.state = 1 timeTextGo:SetActive(false) self:ActivityRewardSingleShow(value.go,value.data) end end end end function FindTreasureMainPanel:TimeStampToDateString(second) local day = math.floor(second / (24 * 3600)) local minute = math.floor(second / 60) % 60 local sec = second % 60 local hour = math.floor(math.floor(second - day * 24 * 3600 - sec - minute * 60) / 3600) return string.format("%02d:%02d:%02d", hour, minute, sec) end local sortTable={ [0] = 0, [1] = -1, [2] = 2, } function FindTreasureMainPanel:MissionInfoSort(missionInfo) table.sort(missionInfo, function(a, b) if a.state == b.state then if #a.heroId > 0 and #b.heroId > 0 or #a.heroId <= 0 and #b.heroId <= 0 then if a.lock == b.lock then if ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(a.missionId%10000)).TaskType == ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(b.missionId%10000)).TaskType then return a.missionId > b.missionId else return ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(a.missionId%10000)).TaskType > ConfigManager.GetConfigData(ConfigName.MazeTreasure,math.floor(b.missionId%10000)).TaskType end else return a.lock > b.lock end else return #a.heroId < #b.heroId end else return sortTable[a.state] < sortTable[b.state] end end) end --界面关闭时调用(用于子类重写) function FindTreasureMainPanel:OnClose() Game.GlobalEvent:DispatchEvent(GameEvent.Bag.BagGold) if timer then timer:Stop() timer = nil end refreshIsMaterial = true isRefreshAddNum = false Game.GlobalEvent:DispatchEvent(GameEvent.CloseUI.OnClose) end --界面销毁时调用(用于子类重写) function FindTreasureMainPanel:OnDestroy() self.spLoader:Destroy() findTreasureGrid = {} findTreasureItemsGrid = {} missionInfo = {} refreshIsMaterial = true isRefreshAddNum = false end return FindTreasureMainPanel