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