165 lines
5.6 KiB
Lua
165 lines
5.6 KiB
Lua
local CollectionUI = class("CollectionUI", BaseUI)
|
|
|
|
function CollectionUI:isFullScreen()
|
|
return true
|
|
end
|
|
|
|
function CollectionUI:showCommonBG()
|
|
return false
|
|
end
|
|
|
|
function CollectionUI:getPrefabPath()
|
|
return "assets/prefabs/ui/collection/collection_ui.prefab"
|
|
end
|
|
|
|
function CollectionUI:onPressBackspace()
|
|
self:closeUI()
|
|
end
|
|
|
|
function CollectionUI:ctor(params)
|
|
self.collectType = params
|
|
end
|
|
|
|
function CollectionUI:onCover()
|
|
end
|
|
|
|
function CollectionUI:onReshow()
|
|
end
|
|
|
|
function CollectionUI:onClose()
|
|
if self.animFly then
|
|
self.animFly:Kill()
|
|
self.animFly = nil
|
|
end
|
|
if self.showRewardNodeSid then
|
|
self:unscheduleGlobal(self.showRewardNodeSid)
|
|
end
|
|
end
|
|
|
|
function CollectionUI:onLoadRootComplete()
|
|
local uiMap = self.root:genAllChildren()
|
|
|
|
self.txTitle = uiMap["collect_ui.tx_title"]
|
|
self.btnHelp = uiMap["collect_ui.tx_title.btn_help"]
|
|
self.btnClose = uiMap["collect_ui.banner.btn_close"]
|
|
self.scrollrectComp = uiMap["collect_ui.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
|
self.rewardsNode = uiMap["collection_ui.rewards"]
|
|
self.txTotalValue = uiMap["collect_ui.rewards.btn_rewards.tx_total"]
|
|
self.btnGet = uiMap["collection_ui.rewards.btn_get"]
|
|
self.imgGet = uiMap["collection_ui.rewards.btn_get.img_icon"]
|
|
self.txGet = uiMap["collection_ui.rewards.btn_get.tx_get"]
|
|
self.txDesc = uiMap["collect_ui.rewards.tx_desc"]
|
|
self.txStage = uiMap["collect_ui.rewards.tx_stage"]
|
|
self.imgProg = uiMap["collect_ui.rewards.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
|
|
self.btnRewards = uiMap["collection_ui.rewards.point"]
|
|
self.flyIcon = uiMap["collection_ui.fly_icon"]
|
|
|
|
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_1))
|
|
|
|
self.btnRewards:addClickListener(function()
|
|
UIManager:showUI("app/ui/collection/collection_reward_ui", self.collectType)
|
|
end)
|
|
self.btnGet:addClickListener(function()
|
|
ModuleManager.CollectionManager:reqHeroPointReward()
|
|
end)
|
|
self.btnClose:addClickListener(function()
|
|
self:closeUI()
|
|
end)
|
|
self.btnHelp:addClickListener(function()
|
|
local params = {
|
|
type = GConst.TipsConst.HELP_TIPS_TYPE.ARENA,
|
|
title = I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_11),
|
|
desc = I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_7),
|
|
}
|
|
ModuleManager.TipsManager:showHelpTips(params)
|
|
end)
|
|
self:bind(DataManager.CollectionData, "dirtyHero", function()
|
|
self:refreshCollectPoint()
|
|
self:showFlyAnim()
|
|
end)
|
|
self:addEventListener(EventManager.CUSTOM_EVENT.COLLECTION_CLICK_GET_POINT, function(pos)
|
|
self.flyFromPos = pos
|
|
end)
|
|
end
|
|
|
|
function CollectionUI:onRefresh()
|
|
self:showCollectList()
|
|
self:refreshCollectPoint()
|
|
end
|
|
|
|
function CollectionUI:showCollectList()
|
|
local datas = DataManager.CollectionData:getCollectList(self.collectType)
|
|
self.scrollrectComp:addInitCallback(function()
|
|
return "app/ui/collection/cell/collection_hero_cell"
|
|
end)
|
|
self.scrollrectComp:addRefreshCallback(function(index, cell)
|
|
cell:refresh(datas[index])
|
|
end)
|
|
self.scrollrectComp:clearCells()
|
|
self.scrollrectComp:refillCells(#datas)
|
|
self.flyIcon:setActive(false)
|
|
end
|
|
|
|
-- 刷新收集点数状态
|
|
function CollectionUI:refreshCollectPoint()
|
|
local showId = DataManager.CollectionData:getCanGetOrCollectingTargetId(self.collectType)
|
|
-- Logger.logHighlight("展示档位:"..showId)
|
|
if showId then
|
|
local target = DataManager.CollectionData:getTargetPoint(self.collectType, showId)
|
|
local owned = DataManager.CollectionData:getTargetOwnedPoint(self.collectType, showId)
|
|
self.txStage:setText(owned.."/"..target)
|
|
self.imgProg.value = owned / target
|
|
if DataManager.CollectionData:isMeetTargetPoint(self.collectType, showId) then
|
|
-- 可领取
|
|
self.txGet:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
|
|
self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_9))
|
|
self.imgGet:setSprite(GConst.ATLAS_PATH.HERO, "hero_dec_7")
|
|
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_2")
|
|
self.btnGet:setTouchEnable(true)
|
|
else
|
|
-- 进行中
|
|
self.txGet:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_3))
|
|
self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_4, target - owned))
|
|
self.imgGet:setSprite(GConst.ATLAS_PATH.HERO, "hero_dec_8")
|
|
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2")
|
|
self.btnGet:setTouchEnable(false)
|
|
end
|
|
else
|
|
-- 已全部领完所有目标
|
|
self.txGet:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
|
|
self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_8))
|
|
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2")
|
|
self.btnGet:setTouchEnable(false)
|
|
end
|
|
|
|
local total = DataManager.CollectionData:getTotalCollectPoint(self.collectType)
|
|
local cur = DataManager.CollectionData:getCurCollectPoint(self.collectType)
|
|
self.txTotalValue:setText(cur.."/"..total)
|
|
|
|
GFunc.centerImgAndTx(self.imgGet, self.txGet, 5)
|
|
end
|
|
|
|
function CollectionUI:showFlyAnim()
|
|
if not self.flyFromPos then
|
|
return
|
|
end
|
|
|
|
self.flyIcon:setLocalScale(0.4, 0.4, 0.4)
|
|
self.flyIcon:setPosition(self.flyFromPos.x, self.flyFromPos.y, self.flyFromPos.z)
|
|
self.flyIcon:setActive(true)
|
|
if self.animFly then
|
|
self.animFly:Kill()
|
|
self.animFly = nil
|
|
end
|
|
self.animFly = self.root:createBindTweenSequence()
|
|
self.animFly:Insert(0, self.flyIcon:getTransform():DOScale(0.8, 0.2))
|
|
self.animFly:Insert(0.2, self.flyIcon:getTransform():DOMove(self.btnRewards:getPosition(), 1))
|
|
self.animFly:Insert(0.4, self.flyIcon:getTransform():DOScale(0.4, 0.4))
|
|
self.animFly:OnComplete(function()
|
|
self.flyIcon:setActive(false)
|
|
self.flyFromPos = nil
|
|
self.animFly = nil
|
|
end)
|
|
end
|
|
|
|
return CollectionUI |