c1_lua/lua/app/ui/idle/idle_quick_drop_ui.lua
2023-05-19 14:56:50 +08:00

142 lines
5.0 KiB
Lua

local IdleQuickDropUI = class("IdleQuickDropUI", BaseUI)
function IdleQuickDropUI:isFullScreen()
return false
end
function IdleQuickDropUI:getPrefabPath()
return "assets/prefabs/ui/idle/idle_quick_drop_ui.prefab"
end
function IdleQuickDropUI:ctor()
self.rewardList = {}
local rewards = DataManager.IdleData:getIdleQuickDropPreviewRewards()
for _, item in pairs(rewards) do
if item.num > 0 then
table.insert(self.rewardList, item)
end
end
if #self.rewardList > 1 then
local cfg = ConfigManager:getConfig("item")
local infoA
local infoB
table.sort(self.rewardList, function(a, b)
infoA = cfg[a.id]
infoB = cfg[b.id]
if infoA.type == infoB.type then
if infoA.qlt == infoB.qlt then
return infoA.qlt > infoB.qlt
else
return a.id < b.id
end
else
return infoA.type < infoB.type
end
end)
end
end
function IdleQuickDropUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.uiMap = uiMap
uiMap["idle_quick_drop_ui.bg.close_btn"]:addClickListener(function()
self:closeUI()
end)
uiMap["idle_quick_drop_ui.bg.title_text"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_QUICK))
local quickIdleTime = DataManager.IdleData:getQuickIdleTime()
uiMap["idle_quick_drop_ui.bg.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.IDLE_DROP_DESC_3, quickIdleTime // 3600))
self:initRewards()
self:initBtns()
self:bindData()
end
function IdleQuickDropUI:initRewards()
self.scrollRect = self.uiMap["idle_quick_drop_ui.bg.scroll_rect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
self.scrollRect:addInitCallback(function()
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
end)
self.scrollRect:addRefreshCallback(function(index, cell)
cell:refreshByConfig(self.rewardList[index])
end)
self.scrollRect:clearCells()
self.scrollRect:refillCells(#self.rewardList)
end
function IdleQuickDropUI:initBtns()
self.adBtn = self.uiMap["idle_quick_drop_ui.bg.ad_btn"]
self.adBtn:addClickListener(function()
ModuleManager.IdleManager:getIdleQuickRewrad(true)
end)
self.uiMap["idle_quick_drop_ui.bg.ad_btn.text"]:setText(I18N:getGlobalText(I18N.GlobalConst.STR_FREE))
self.itemBtn = self.uiMap["idle_quick_drop_ui.bg.item_btn"]
self.itemBtn:addClickListener(function()
ModuleManager.IdleManager:getIdleQuickRewrad(false)
end)
local cost = DataManager.IdleData:getQuickIdleCost()
local itemBtnIcon = self.uiMap["idle_quick_drop_ui.bg.item_btn.icon"]
local itemBtnTx = self.uiMap["idle_quick_drop_ui.bg.item_btn.text"]
local iconName = ConfigManager:getConfig("item")[cost.id].icon
itemBtnIcon:setSprite(GConst.ATLAS_PATH.ICON_ITEM, iconName)
itemBtnTx:setText(tostring(cost.num))
GFunc.centerImgAndTx(itemBtnIcon, itemBtnTx)
self.descTx2 = self.uiMap["idle_quick_drop_ui.bg.desc_tx_2"]
self.descTx3 = self.uiMap["idle_quick_drop_ui.bg.desc_tx_3"]
end
function IdleQuickDropUI:bindData()
self:bind(DataManager.IdleData, "adCount", function()
self:onRefresh()
end)
self:bind(DataManager.IdleData, "energyCount", function()
self:onRefresh()
end)
local cost = DataManager.IdleData:getQuickIdleCost()
local costId = GFunc.getRewardId(cost)
local itemEntity = DataManager.BagData.ItemData:getItemById(costId)
if itemEntity then
self:bind(itemEntity, "num", function()
self:onRefresh()
end)
end
end
function IdleQuickDropUI:onRefresh()
local adRemainTimes = DataManager.IdleData:getQuickIdleAdRemainTimes()
if adRemainTimes <= 0 then
adRemainTimes = 0
self.adBtn:setTouchEnable(false)
self.adBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2")
self.adBtn:removeRedPoint()
else
self.adBtn:setTouchEnable(true)
self.adBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_blue_2")
self.adBtn:addRedPoint(94, 42, 0.8)
end
self.descTx2:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, adRemainTimes))
local vitRemainTimes = DataManager.IdleData:getQuickIdleVitRemainTimes()
if vitRemainTimes <= 0 then
vitRemainTimes = 0
self.itemBtn:setTouchEnable(false)
self.itemBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_grey_2")
self.itemBtn:removeRedPoint()
else
self.itemBtn:setTouchEnable(true)
self.itemBtn:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_green_2")
local cost = DataManager.IdleData:getQuickIdleCost()
local costId = GFunc.getRewardId(cost)
local costNum = GFunc.getRewardNum(cost)
if GFunc.checkCost(costId, costNum) then
self.itemBtn:addRedPoint(94, 42, 0.8)
else
self.itemBtn:removeRedPoint()
end
end
self.descTx3:setText(I18N:getGlobalText(I18N.GlobalConst.TODAY_REMAIN_TIMES, vitRemainTimes))
end
return IdleQuickDropUI