【寻宝】 优化 加锁 1

dev_chengFeng
zhangqiang 2020-12-29 16:56:18 +08:00
parent 35f211a2a4
commit 1227e93456
3 changed files with 1080 additions and 6273 deletions

View File

@ -45,6 +45,7 @@ this.hadTakeBox = {}--竞技场宝箱数据
function this.ReceiveBaseArenaData(msg)
this.ArenaInfo = msg.arenaInfo
this.EnemyList = msg.arenaInfo.arenaEnemys
-- this.hadTakeBox = {}
for i = 1, #msg.arenaInfo.hadTakeBox do
this.hadTakeBox[msg.arenaInfo.hadTakeBox[i]] = msg.arenaInfo.hadTakeBox[i]
end

View File

@ -1,6 +1,6 @@
require("Base/BasePanel")
FindTreasureMainPanel = Inherit(BasePanel)
local findTreasureGrid = {}
-- local findTreasureGrid = {}
local findTreasureItemsGrid = {}
local timer = Timer.New()
local missionInfo = {}
@ -19,16 +19,26 @@ function FindTreasureMainPanel:InitComponent()
self.findTreasureVipBtn = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn")
self.findTreasureVipBtnRedPoint = Util.GetGameObject(self.gameObject, "FindTreasureVipBtn/redPoint")
self.allGetBtn = Util.GetGameObject(self.gameObject, "allGetBtn")
self.findTreasureGridGo = Util.GetGameObject(self.gameObject, "rect/rect (1)/grid")
-- 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
-- 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")
@ -153,11 +163,18 @@ function FindTreasureMainPanel:OnShow()
end
function FindTreasureMainPanel:OnSortingOrderChange()
--特效穿透签到
for i = 1, #findTreasureItemsGrid do
for j = 1, #findTreasureItemsGrid[i] do
findTreasureItemsGrid[i][j]:SetEffectLayer(self.sortingOrder)
-- 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
end
Util.AddParticleSortLayer(self.FindTreasureVipEffect, self.sortingOrder - orginLayer)
orginLayer = self.sortingOrder
end
@ -171,25 +188,29 @@ function FindTreasureMainPanel:OnShowPanelData(isSort)
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
-- 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)
if isFirstOpen then
isFirstOpen = false
self.findTreasureGridGo:GetComponent("RectTransform").anchoredPosition = Vector2.New(0, 0)
-- self.findTreasureGridGo:GetComponent("RectTransform").anchoredPosition = Vector2.New(0, 0)
end
self:RemainTimeDown()
@ -258,15 +279,18 @@ function FindTreasureMainPanel:OnShowPanelData(isSort)
end
--活动奖励2
function FindTreasureMainPanel:ActivityRewardSingleShow(index,rewardData)
local activityRewardGo = findTreasureGrid[index]
function FindTreasureMainPanel:ActivityRewardSingleShow(_activityRewardGo,rewardData)
rewardData.lockState = 1
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 = sConFigData.Desc..""..FindTreasureMissionTitleTypeStr[sConFigData.TaskType]..""
titleImage.sprite = Util.LoadSprite(FindTreasureMissionTitleTypeSprite[sConFigData.TaskType])
local content = Util.GetGameObject(activityRewardGo, "content")
local lockBtn = Util.GetGameObject(activityRewardGo, "lockBtn").gameObject
local lockOpenImage = Util.GetGameObject(lockBtn, "lockOpen")
local lockLockImage = Util.GetGameObject(lockBtn, "lockLock")
--星星数量
for n = 1, 6 do
@ -276,17 +300,32 @@ function FindTreasureMainPanel:ActivityRewardSingleShow(index,rewardData)
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
-- 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
go.gameObject:SetActive(false)
self.NoviceItemList[activityRewardGo][i].gameObject:SetActive(false)
end
for i = 1, #sConFigData.Reward do
findTreasureItemsGrid[index][i].gameObject:SetActive(true)
findTreasureItemsGrid[index][i]:OnOpen(false,sConFigData.Reward[i],0.77,false,false,false,self.sortingOrder)
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")
@ -298,13 +337,16 @@ function FindTreasureMainPanel:ActivityRewardSingleShow(index,rewardData)
local consumeObjImage = Util.GetGameObject(activityRewardGo.gameObject, "consumeObj/Image"):GetComponent("Image")
local consumeObjNumText = Util.GetGameObject(activityRewardGo.gameObject, "consumeObj/numText"):GetComponent("Text")
local timeTextGo = Util.GetGameObject(activityRewardGo.gameObject, "timeObject")
--Log("rewardData "..rewardData.missionId.." "..rewardData.state.." "..sConFigData.Desc)
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.lockState == 1)
lockOpenImage:SetActive(rewardData.lockState == 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
@ -333,6 +375,20 @@ function FindTreasureMainPanel:ActivityRewardSingleShow(index,rewardData)
self:OnShowPanelData(false)
end)
end)
Util.AddOnceClick(lockBtn, function()
-- NetManager.FindTreasureMissingRoomAccelerateRequest(rewardData.missionId, function()
--刷新界面
-- TaskManager.RefreshFindTreasureStatrData(rewardData.missionId,1)
if rewardData.lockState == 0 then
rewardData.lockState = 1
else
rewardData.lockState = 0
end
LogPink("rewardData.lockState "..rewardData.lockState)
self:ActivityRewardSingleShow(activityRewardGo,rewardData)
-- end)
end)
end
--刷新倒计时显示
function FindTreasureMainPanel:RemainTimeDown()
@ -347,21 +403,39 @@ function FindTreasureMainPanel:RemainTimeDown()
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()
-- 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(missionInfo[i].missionId%10000))
local timeText = Util.GetGameObject(findTreasureGrid[i], "timeObject/timeText"):GetComponent("Text")
local timeExp = Util.GetGameObject(findTreasureGrid[i], "timeObject/exp"):GetComponent("Slider")
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
missionInfo[i].state = 1
value.data.state = 1
timeTextGo:SetActive(false)
self:ActivityRewardSingleShow(i,missionInfo[i])
self:ActivityRewardSingleShow(value.go,value.data)
end
end
end