147 lines
4.9 KiB
Lua
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 |