219 lines
7.2 KiB
Lua
219 lines
7.2 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.btnHero = uiMap["collection_ui.banner.btn_hero"]
|
|
self.selectHero = uiMap["collection_ui.banner.btn_hero.select"]
|
|
self.txHero = uiMap["collection_ui.banner.btn_hero.tx_hero"]
|
|
-- 皮肤
|
|
self.btnSkin = uiMap["collection_ui.banner.btn_skin"]
|
|
self.selectSkin = uiMap["collection_ui.banner.btn_skin.select"]
|
|
self.txSkin = uiMap["collection_ui.banner.btn_skin.tx_skin"]
|
|
|
|
self.txHero:setText(I18N:getGlobalText(I18N.GlobalConst.MAIN_BTN_2))
|
|
self.txSkin:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN))
|
|
self.scrollrectComp:addInitCallback(function()
|
|
return "app/ui/collection/cell/collection_cell"
|
|
end)
|
|
self.scrollrectComp:addRefreshCallback(function(index, cell)
|
|
cell:refresh(self.collectType, self.collectList[index])
|
|
end)
|
|
|
|
self.btnRewards:addClickListener(function()
|
|
UIManager:showUI("app/ui/collection/collection_reward_ui", self.collectType)
|
|
end)
|
|
self.btnGet:addClickListener(function()
|
|
ModuleManager.CollectionManager:reqPointReward()
|
|
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.btnHero:addClickListener(function()
|
|
self:showHeroCollect()
|
|
end)
|
|
self.btnSkin:addClickListener(function()
|
|
self:showSkinCollect()
|
|
end)
|
|
self:bind(DataManager.CollectionData, "isDirty", 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()
|
|
if self.collectType == GConst.CollectionConst.TYPE.HERO then
|
|
self:showHeroCollect()
|
|
elseif self.collectType == GConst.CollectionConst.TYPE.SKIN then
|
|
self:showSkinCollect()
|
|
end
|
|
self:showCollectList()
|
|
self:refreshCollectPoint()
|
|
end
|
|
|
|
function CollectionUI:showCollectList()
|
|
self.collectList = DataManager.CollectionData:getCollectList(self.collectType)
|
|
self.scrollrectComp:clearCells()
|
|
self.scrollrectComp:refillCells(#self.collectList)
|
|
self.flyIcon:setActive(false)
|
|
end
|
|
|
|
-- 刷新收集点数状态
|
|
function CollectionUI:refreshCollectPoint()
|
|
local showId = DataManager.CollectionData:getCanGetOrCollectingTargetId()
|
|
-- Logger.logHighlight("展示档位:"..showId)
|
|
if showId then
|
|
local target = DataManager.CollectionData:getTargetPoint(showId)
|
|
local owned = DataManager.CollectionData:getTargetOwnedPoint(showId)
|
|
self.txStage:setText(owned.."/"..target)
|
|
self.imgProg.value = owned / target
|
|
if DataManager.CollectionData:isMeetTargetPoint(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()
|
|
local cur = DataManager.CollectionData:getCurCollectPoint()
|
|
self.txTotalValue:setText(cur.."/"..total)
|
|
|
|
GFunc.centerImgAndTx(self.imgGet, self.txGet, 5)
|
|
|
|
-- 红点
|
|
if DataManager.CollectionData:hasCanCollectPoint(GConst.CollectionConst.TYPE.HERO) then
|
|
self.btnHero:addRedPoint(25, 30, 0.6)
|
|
else
|
|
self.btnHero:removeRedPoint()
|
|
end
|
|
if DataManager.CollectionData:hasCanCollectPoint(GConst.CollectionConst.TYPE.SKIN) then
|
|
self.btnSkin:addRedPoint(25, 30, 0.6)
|
|
else
|
|
self.btnSkin:removeRedPoint()
|
|
end
|
|
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
|
|
|
|
-- 展示英雄收集
|
|
function CollectionUI:showHeroCollect()
|
|
self.collectType = GConst.CollectionConst.TYPE.HERO
|
|
|
|
self.btnHelp:setActive(true)
|
|
self.selectHero:setActive(true)
|
|
self.selectSkin:setActive(false)
|
|
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_1))
|
|
self:showCollectList()
|
|
end
|
|
|
|
-- 展示皮肤收集
|
|
function CollectionUI:showSkinCollect()
|
|
self.collectType = GConst.CollectionConst.TYPE.SKIN
|
|
|
|
self.btnHelp:setActive(false)
|
|
self.selectHero:setActive(false)
|
|
self.selectSkin:setActive(true)
|
|
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.SKIN_COLLECT))
|
|
self:showCollectList()
|
|
end
|
|
|
|
return CollectionUI |