miduo_client/Assets/ManagedResources/~Lua/Modules/FindTreasure/FindTreasureMainPanel.lua

536 lines
27 KiB
Lua

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.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
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.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()
JumpManager.GoJump(MazeTreasureSetting[1].Jump)
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.RefreshFindTreasure, self.OnShowPanelData,self)
end
--移除事件监听(用于子类重写)
function FindTreasureMainPanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.FindTreasure.RefreshFindTreasure, self.OnShowPanelData,self)
end
--界面打开时调用(用于子类重写)
function FindTreasureMainPanel:OnOpen(...)
isFirstOpen = true
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function FindTreasureMainPanel:OnShow()
isPlayAnim = 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
-- 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)--豪华寻宝
if FindTreasureGaoIdNum then
curVipStateId = FindTreasureManager.FindTreasureGaoId
curVipState = 2
end
if FindTreasureHaoIdNum then
curVipStateId = FindTreasureManager.FindTreasureHaoId
curVipState = 3
end
self.textImage:SetActive(curVipState < 3)
self.FindTreasureVipEffect:SetActive(curVipState > 1)
--self.FindTreasureVipText.text = RefreshItemNum
self.FindTreasureVipIcon.sprite = Util.LoadSprite(FindTreasureVipTypeSprite[curVipState])
self.FindTreasureVipTextIcon.sprite = Util.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 = Util.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 = Util.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 = "<color=#FFD700>"..PrintWanNum3(bagNum).."</color>/"..mazeTreasureMax
else
self.materialImageNumText.text ="<color=#FCF5D3>"..PrintWanNum3(bagNum).."</color>/"..mazeTreasureMax
end
self.materialImage.sprite = Util.LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,FindTreasureManager.materialItemId).ResourceID))
self.refreshNumText.text = RefreshItemNum
self.refreshImage.sprite=Util.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 = Util.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=Util.LoadSprite(starImage[1])
end
for m = 1, tonumber(sConFigData.TaskType) do
Util.GetGameObject(activityRewardGo,"star/Image"..m):GetComponent("Image").sprite=Util.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 = Util.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 = Util.LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,sConFigData.SpeedUpTake[1]).ResourceID))
quickGetButtonNumText.text = sConFigData.SpeedUpTake[2]
Util.AddOnceClick(jumpButton, function()
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()
if timer then
timer:Stop()
timer = nil
end
refreshIsMaterial = true
isRefreshAddNum = false
Game.GlobalEvent:DispatchEvent(GameEvent.CloseUI.OnClose)
end
--界面销毁时调用(用于子类重写)
function FindTreasureMainPanel:OnDestroy()
findTreasureGrid = {}
findTreasureItemsGrid = {}
missionInfo = {}
refreshIsMaterial = true
isRefreshAddNum = false
end
return FindTreasureMainPanel