战令定位
This commit is contained in:
parent
4a162302ff
commit
e07eb6a961
@ -29,6 +29,9 @@ function BountyMainUI:onClose()
|
|||||||
self.autoRotateTween:Kill()
|
self.autoRotateTween:Kill()
|
||||||
end
|
end
|
||||||
self:clearPreviewRewardAnimation()
|
self:clearPreviewRewardAnimation()
|
||||||
|
if self.rewardsContentMoveTween then
|
||||||
|
self.rewardsContentMoveTween:Kill()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function BountyMainUI:onLoadRootComplete()
|
function BountyMainUI:onLoadRootComplete()
|
||||||
@ -120,7 +123,6 @@ function BountyMainUI:initRewards()
|
|||||||
self.scrollrectComp = self.scrollrect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
self.scrollrectComp = self.scrollrect:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||||
self.scrollrectComp:clearCells()
|
self.scrollrectComp:clearCells()
|
||||||
self.scrollrectComp:setTotalCount(0)
|
self.scrollrectComp:setTotalCount(0)
|
||||||
self.scrollrectComp:setFadeArgs(0, 0.3)
|
|
||||||
self.scrollrectComp:addInitCallback(function()
|
self.scrollrectComp:addInitCallback(function()
|
||||||
return "app/ui/bounty/cell/bounty_cell"
|
return "app/ui/bounty/cell/bounty_cell"
|
||||||
end)
|
end)
|
||||||
@ -136,16 +138,18 @@ function BountyMainUI:initRewards()
|
|||||||
self.refreshIndex = index
|
self.refreshIndex = index
|
||||||
local totalCount = self.scrollrectComp:getTotalCount()
|
local totalCount = self.scrollrectComp:getTotalCount()
|
||||||
local isFinalCell = index == totalCount
|
local isFinalCell = index == totalCount
|
||||||
if isFinalCell then
|
if not self.disablePreviewReward then
|
||||||
self.rewardCellIdx = index
|
if isFinalCell then
|
||||||
self:hidePreviewReward()
|
|
||||||
else
|
|
||||||
if index > self.rewardCellIdx then
|
|
||||||
self.rewardCellIdx = index
|
self.rewardCellIdx = index
|
||||||
self:showNextPreviewReward()
|
self:hidePreviewReward()
|
||||||
elseif index < self.rewardCellIdx - self.rewardCellNum then
|
else
|
||||||
self.rewardCellIdx = index + self.rewardCellNum
|
if index > self.rewardCellIdx then
|
||||||
self:showNextPreviewReward()
|
self.rewardCellIdx = index
|
||||||
|
self:showNextPreviewReward()
|
||||||
|
elseif index < self.rewardCellIdx - self.rewardCellNum then
|
||||||
|
self.rewardCellIdx = index + self.rewardCellNum
|
||||||
|
self:showNextPreviewReward()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
cell:refresh(index, isFinalCell)
|
cell:refresh(index, isFinalCell)
|
||||||
@ -160,7 +164,7 @@ function BountyMainUI:initRewards()
|
|||||||
end
|
end
|
||||||
self.repeatRewardRoot:getTransform():SetAsLastSibling()
|
self.repeatRewardRoot:getTransform():SetAsLastSibling()
|
||||||
end)
|
end)
|
||||||
self.cellHeight = 200
|
self.cellHeight = self.uiMap["bounty_main_ui.mid_node.scrollrect.viewport.content.cell"]:getRectHeight()
|
||||||
local scrollBottom = 106
|
local scrollBottom = 106
|
||||||
local scrollTop = 464
|
local scrollTop = 464
|
||||||
local height = self.root:getRectHeight()
|
local height = self.root:getRectHeight()
|
||||||
@ -264,10 +268,16 @@ function BountyMainUI:refreshRewards()
|
|||||||
end
|
end
|
||||||
local maxLv = DataManager.BountyData:getMaxLevel()
|
local maxLv = DataManager.BountyData:getMaxLevel()
|
||||||
local lv = DataManager.BountyData:getLevel()
|
local lv = DataManager.BountyData:getLevel()
|
||||||
if self.scrollrectComp:getTotalCount() <= 0 then
|
if self.scrollrectComp:getTotalCount() <= 0 then -- 打开界面的时候定位到当前可领取的最低等级奖励,如果没有则定位到当前等级
|
||||||
self.scrollrectComp:refillCells(maxLv)
|
self.scrollrectComp:refillCells(maxLv)
|
||||||
|
local level = DataManager.BountyData:getMinUnclaimedRewardIndex()
|
||||||
|
if level > 1 then
|
||||||
|
self:scrollToIndex(level)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
|
self.disablePreviewReward = true
|
||||||
self.scrollrectComp:updateAllCell()
|
self.scrollrectComp:updateAllCell()
|
||||||
|
self.disablePreviewReward = false
|
||||||
end
|
end
|
||||||
if lv >= maxLv then
|
if lv >= maxLv then
|
||||||
self.line:setVisible(false)
|
self.line:setVisible(false)
|
||||||
@ -372,32 +382,46 @@ function BountyMainUI:clearPreviewRewardAnimation()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BountyMainUI:scrollToIndex(targetIndex)
|
function BountyMainUI:scrollToIndex(targetIndex)
|
||||||
local maxLv = DataManager.BountyData:getMaxLevel()
|
-- 未避免scrollrect没填充完毕,延迟一帧执行
|
||||||
local cellHeight = self.cellHeight
|
if self.rewardsContentSid then
|
||||||
local cellListHeight = self.scrollView:getTransform().rect.height
|
self:unscheduleGlobal(self.rewardsContentSid)
|
||||||
local posY = cellHeight*(targetIndex - 6)
|
|
||||||
local targetPosY = cellHeight*(targetIndex - 1)
|
|
||||||
targetPosY = math.min(targetPosY, maxLv*cellHeight - cellListHeight)
|
|
||||||
if self.scrollSid then
|
|
||||||
self:unscheduleGlobal(self.scrollSid)
|
|
||||||
self.scrollSid = nil
|
|
||||||
end
|
end
|
||||||
if targetIndex <= 6 then
|
self.rewardsContentSid = self:performWithDelayGlobal(function()
|
||||||
self.scrollrectComp:moveToIndex(targetIndex)
|
self.rewardsContentSid = nil
|
||||||
else
|
if self.rewardsContentMaxY == nil then
|
||||||
self.scrollrectComp:moveToIndex(targetIndex - 6)
|
local maxLv = DataManager.BountyData:getMaxLevel()
|
||||||
self.scrollSid = self:scheduleGlobal(function(inter)
|
self.rewardsContentMaxY = maxLv*self.cellHeight - self.scrollrectViewport:getRectHeight()
|
||||||
posY = posY + 40*inter/0.015
|
end
|
||||||
if posY >= targetPosY then
|
-- 最多移动6格,超过6格就先整体移动后再移动6格
|
||||||
posY = targetPosY
|
local moveTimePerCell = 0.05
|
||||||
|
local moveCount = 6
|
||||||
|
local moveTime = moveCount * moveTimePerCell
|
||||||
|
if targetIndex > 7 then
|
||||||
|
local tartgetY = (targetIndex - 7)*self.cellHeight
|
||||||
|
if tartgetY > self.rewardsContentMaxY then
|
||||||
|
self.rewardsContent:setAnchoredPositionY(self.rewardsContentMaxY)
|
||||||
|
return
|
||||||
|
else
|
||||||
|
self.rewardsContent:setAnchoredPositionY(tartgetY)
|
||||||
end
|
end
|
||||||
self.rewardsContent:setAnchoredPositionY(posY)
|
else
|
||||||
if posY >= targetPosY then
|
moveTime = (targetIndex - 1) * moveTimePerCell
|
||||||
self:unscheduleGlobal(self.scrollSid)
|
end
|
||||||
self.scrollSid = nil
|
local y = (targetIndex - 1) * self.cellHeight
|
||||||
end
|
if y > self.rewardsContentMaxY then
|
||||||
end, 0)
|
y = self.rewardsContentMaxY
|
||||||
end
|
end
|
||||||
|
if self.rewardsContentMoveTween == nil then
|
||||||
|
self.rewardsContentMoveTween = self.rewardsContent:getTransform():DOAnchorPosY(y, moveTime)
|
||||||
|
self.rewardsContentMoveTween:SetAutoKill(false)
|
||||||
|
else
|
||||||
|
local CacheVector2 = BF.CacheVector2
|
||||||
|
CacheVector2.x = 0
|
||||||
|
CacheVector2.y = y
|
||||||
|
self.rewardsContentMoveTween:ChangeEndValue(CacheVector2, moveTime, true)
|
||||||
|
self.rewardsContentMoveTween:Restart()
|
||||||
|
end
|
||||||
|
end, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
function BountyMainUI:updateTime()
|
function BountyMainUI:updateTime()
|
||||||
|
|||||||
@ -178,6 +178,31 @@ function BountyData:getIfCanBuyLevel()
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 未领取的最小奖励的index
|
||||||
|
function BountyData:getMinUnclaimedRewardIndex()
|
||||||
|
local level = self.level
|
||||||
|
local maxLevel = self:getMaxLevel()
|
||||||
|
if level > maxLevel then
|
||||||
|
level = maxLevel
|
||||||
|
end
|
||||||
|
if self.claimedCount < self.level then
|
||||||
|
for i = 1, level do
|
||||||
|
if not self.claimed[i] then
|
||||||
|
return i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if self.bought and self.proClaimedCount < self:getMaxLevel() then
|
||||||
|
for i = 1, level do
|
||||||
|
if not self.proClaimed[i] then
|
||||||
|
return i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return level
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否有未领取的奖励
|
||||||
function BountyData:getIfCanClaimReward()
|
function BountyData:getIfCanClaimReward()
|
||||||
if not self:getIsOpen() then
|
if not self:getIsOpen() then
|
||||||
return false
|
return false
|
||||||
@ -191,6 +216,7 @@ function BountyData:getIfCanClaimReward()
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 是否可以领取重复奖励
|
||||||
function BountyData:getIfCanClaimRepeatReward()
|
function BountyData:getIfCanClaimRepeatReward()
|
||||||
local maxLevel = self:getMaxLevel()
|
local maxLevel = self:getMaxLevel()
|
||||||
if maxLevel <= 0 then
|
if maxLevel <= 0 then
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user