c1_lua/lua/app/ui/idle/idle_drop_ui.lua
2023-05-05 10:32:50 +08:00

147 lines
4.9 KiB
Lua

local IdleDropUI = class("IdleDropUI", BaseUI)
function IdleDropUI:isFullScreen()
return false
end
function IdleDropUI:getPrefabPath()
return "assets/prefabs/ui/idle/idle_drop_ui.prefab"
end
function IdleDropUI:onReshow()
-- self:refreshBtn()
end
function IdleDropUI:onLoadRootComplete()
-- self:_display()
self:_addListeners()
-- self:refreshCD()
-- self:scheduleGlobal(function()
-- self:refreshCD()
-- end, 1)
end
function IdleDropUI:ctor()
self.list = {}
-- self.list = DataManager.HangUpData:getCacheRewards()
self.coinPerHour = 0
self.expPerHour = 0
-- local chapterId = DataManager.StageData:getMaxChapterId()
-- local cfg = ConfigManager:getConfig("chapter")[chapterId]
-- if not cfg then
-- return
-- end
-- local coinPerTime = GFunc.getConstIntValue("gold_drop_time")
-- local expPerTime = GFunc.getConstIntValue("exp_drop_time")
-- local multpliter = DataManager.MonthlyData:getHangUpMultiplier()
-- self.coinPerHour = math.floor(cfg.idle_gold * (3600 // coinPerTime) * multpliter)
-- self.expPerHour = math.floor(cfg.idle_exp * (3600 // expPerTime) * multpliter)
end
function IdleDropUI:_display()
local uiMap = self.root:genAllChildren()
uiMap["idle_drop_ui.bg.title"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC))
uiMap["idle_drop_ui.bg.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_1))
uiMap["idle_drop_ui.bg.desc_2"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_3, Time:formatNumTime(GFunc.getConstIntValue("idle_maxtime"))))
uiMap["idle_drop_ui.bg.btn_1.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_5))
uiMap["idle_drop_ui.bg.btn_2.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.GET_DESC))
uiMap["idle_drop_ui.bg.bg_1.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_4, self.coinPerHour))
uiMap["idle_drop_ui.bg.bg_2.desc"]:setText(I18N:getGlobalText(I18N.GlobalConst.HANG_UP_DESC_4, self.expPerHour))
self:_refreshScrollRect()
self:refreshBtn()
self.canRefreshReward = true
end
function IdleDropUI:_addListeners()
local uiMap = self.root:genAllChildren()
self.root:addClickListener(function()
self:closeUI()
ModuleManager.IdleManager:getIdleRewrad()
end)
uiMap["idle_drop_ui.bg.close_img"]:addClickListener(function()
self:closeUI()
ModuleManager.IdleManager:getIdleRewrad()
end)
uiMap["idle_drop_ui.bg.btn_1"]:addClickListener(function()
ModuleManager.IdleManager:showIdleQuickDropUI()
end)
uiMap["idle_drop_ui.bg.btn_2"]:addClickListener(function()
ModuleManager.IdleManager:getIdleRewrad()
end)
-- self:bind(DataManager.HangUpData, "isDirty", function()
-- self.list = DataManager.HangUpData:getCacheRewards()
-- self:_refreshScrollRect()
-- self.canRefreshReward = true
-- end)
end
function IdleDropUI:refreshCD()
local uiMap = self.root:genAllChildren()
local time = Time:getServerTime() - DataManager.HangUpData:getLastTime()
time = math.min(time, GFunc.getConstIntValue("idle_maxtime"))
uiMap["idle_drop_ui.bg.cd_info"]:setText(Time:formatNumTime(time))
local btn = uiMap["idle_drop_ui.bg.btn_2"]
if time > ModuleManager.HangUpManager.HANG_UP_RP_TIME then
btn:addRedPoint(85, 36, 0.5)
else
btn:removeRedPoint()
end
if not self.lastRefreshTime then
self.lastRefreshTime = Time:getServerTime()
elseif Time:getServerTime() - self.lastRefreshTime > GFunc.getConstIntValue("exp_drop_time") then
if not self.canRefreshReward then
return
end
self.canRefreshReward = false
self.lastRefreshTime = Time:getServerTime()
ModuleManager.HangUpManager:getHangUpShowRewrad()
end
end
function IdleDropUI:_refreshScrollRect()
if self.scrollRect then
self.scrollRect:clearCells()
self.scrollRect:refillCells(#self.list)
return
end
local uiMap = self.root:genAllChildren()
self.scrollRect = uiMap["idle_drop_ui.bg.scrollrect"]: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.list[index])
end)
self.scrollRect:clearCells()
self.scrollRect:refillCells(#self.list)
end
function IdleDropUI:refreshBtn()
local uiMap = self.root:genAllChildren()
local btn = uiMap["idle_drop_ui.bg.btn_1"]
if self:canAd() or self:canDiamond() then
btn:addRedPoint(85, 36, 0.5)
else
btn:removeRedPoint()
end
end
function IdleDropUI:canAd()
return GFunc.getConstIntValue("idle_drop_fast_times_1") > DataManager.HangUpData:getAdCount()
end
function IdleDropUI:canDiamond()
return GFunc.getConstIntValue("idle_drop_fast_times_2") > DataManager.HangUpData:getDiamondCount()
end
return IdleDropUI