diff --git a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua index 3703c65512..1b0a7b66c1 100644 --- a/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/FirstRecharge/FirstRechargePanel.lua @@ -199,15 +199,47 @@ function FirstRechargePanel:OnTabChanged(index) self.stageImage100.gameObject:SetActive(index == 2) self:ShowContent(index) self.selectTabIndex = index - self.rewardGrid.transform.localPosition = self.rewardGridPos + local AccumRecharge = 0 + self.offsetIndex = 0 + local tempData = {} + local day = GetTimePass(FirstRechargeManager.GetRechargeTime())--FirstRechargeManager.GetRechargeTime() + for _, missInfo in pairs(self.activityInfo.mission) do + if missInfo.missionId then + if activityRewardConfig[missInfo.missionId].Values[1][1] == IndexValueDef[MoneyUtil.MT][index] then + table.insert(tempData,missInfo) + end + end + end + table.sort(tempData,function(a,b) + return a.missionId < b.missionId + end) + for _, missInfo in ipairs(tempData) do + if missInfo and missInfo.progress and activityRewardConfig[missInfo.missionId].Values[1][1] == IndexValueDef[MoneyUtil.MT][index] then + AccumRecharge = missInfo.progress + if AccumRecharge >= missInfo.progress and missInfo.state ~= 1 and activityRewardConfig[missInfo.missionId].Values[1][2] <= day then + self.offsetIndex = _ + break + end + end + end + if self.offsetIndex == 0 then + self.offsetIndex = 1 + end if self.isPlayAnim then self.isPlayAnim = false local vec = self.rewardGrid.transform.localPosition - vec.x = self.rewardGridPos.x - #self.activityInfo.mission * self.itemWidth + vec.x = self.rewardGridPos.x - #tempData * self.itemWidth self.rewardGrid.transform.localPosition = vec - self.tween = self.rewardGrid.gameObject.transform:DOLocalMove(self.rewardGridPos, 1):OnStart(function() end):OnUpdate(function() --TODO:测试速度 - end):OnComplete(function () - end):SetEase(Ease.Linear) + local x = self.rewardGridPos.x - (self.offsetIndex - 1) * self.itemWidth + local vec2 = Vector3.New(x,self.rewardGridPos.y,self.rewardGridPos.z) + self.tween = self.rewardGrid.gameObject.transform:DOLocalMove(vec2, 0.5):OnStart(function() end):OnUpdate(function() --TODO:测试速度 + end):OnComplete(function () + --self.rewardGrid.transform.localPosition = vec2 + end) + else + local x = self.rewardGridPos.x - (self.offsetIndex - 1) * self.itemWidth + local vec2 = Vector3.New(x,self.rewardGridPos.y,self.rewardGridPos.z) + self.rewardGrid.transform.localPosition = vec2 end end @@ -272,6 +304,7 @@ function FirstRechargePanel:OnClose() fun() fun = nil end + self.rewardGrid.transform.localPosition = self.rewardGridPos end function FirstRechargePanel:OnDestroy()