local GiftCell = class("GiftCell", BaseCell)
function GiftCell:onClose()
if self.sid then
self.txTime:unscheduleGlobal(self.sid)
self.sid = nil
end
end
function GiftCell:init()
local uiMap = self:getUIMap()
self.txTitle = uiMap["gift_cell.tx_title"]
self.rewardNode = uiMap["gift_cell.reward_node"]
self.rewards = {}
for i = 1, 3 do
table.insert(self.rewards, uiMap["gift_cell.reward_node.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
end
self.btnGet = uiMap["gift_cell.btn_get"]
self.txGetDesc = uiMap["gift_cell.btn_get.tx_desc"]
self.txLimit = uiMap["gift_cell.btn_get.tx_limit"]
self.costNode = uiMap["gift_cell.btn_get.cost"]
self.imgCost = uiMap["gift_cell.btn_get.cost.img_cost"]
self.txCost = uiMap["gift_cell.btn_get.cost.tx_cost"]
self.imgAd = uiMap["gift_cell.btn_get.cost.img_ad"]
self.txTime = uiMap["gift_cell.btn_get.tx_time"]
self.tagNode = uiMap["gift_cell.tag"]
self.txTag = uiMap["gift_cell.tag.tx_tag"]
self.sid = self.txTime:scheduleGlobal(function ()
self:updateTime()
end, 1)
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_10))
end
function GiftCell:updateTime()
if self.cfg == nil then
return
end
if not DataManager.ActGiftData:isFreeGift(self.data:getActId(), self.cfg.id) then
return
end
local totalNum = self.cfg.limit
local curNum = DataManager.ActGiftData:getGiftBuyCount(self.cfg.id)
if totalNum - curNum > 0 then
self.txTime:setText("")
return
end
self.txTime:setText(Time:formatNumTime(Time:getTodaySurplusTime()))
end
function GiftCell:refresh(parentUI, dataKey, id)
self.parentUI = parentUI or self.parentUI
self.data = DataManager[dataKey]
self.cfg = DataManager.ActGiftData:getGiftConfig(self.data:getActId(), id)
self:updateTime()
self.txTitle:setText(I18N:getText("act_gift", self.cfg.id, "value"))
local rewards = self.cfg.reward
for i, cell in ipairs(self.rewards) do
if rewards and rewards[i] then
cell:showCell()
cell:refreshByConfig(rewards[i])
else
cell:hideCell()
end
end
local value = self.cfg.value
if value then
self.tagNode:setActive(true)
self.txTag:setText("-" .. value .. "%")
else
self.tagNode:setActive(false)
end
local totalNum = self.cfg.limit
local curNum = DataManager.ActGiftData:getGiftBuyCount(self.cfg.id)
local remainNum = totalNum - curNum
local costItems = self.cfg.item_cost
local costRecharge = self.cfg.recharge_id
if costItems then
-- 道具购买
self.imgAd:setActive(false)
self.imgCost:setActive(true)
self.txTime:setActive(false)
self:getBaseObject():setSprite(GConst.ATLAS_PATH.UI_ACT_COMMON, "act_common_bg_7")
self.imgCost:setSprite(GFunc.getRewardIconRes(costItems[1]))
if totalNum >= 9999 then
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_21))
elseif DataManager.ActGiftData:isDailyGift(self.data:getActId(), self.cfg.id) then
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.WORLDBOSS_DESC_16, remainNum, totalNum))
else
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_8).. ":" .. remainNum .. "/" .. totalNum)
end
if remainNum > 0 then
self.costNode:setActive(true)
self.txGetDesc:setActive(false)
self.btnGet:setTouchEnable(true)
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_yellow_4")
self.txCost:setText("" .. GFunc.getRewardNum(costItems[1]) .. "")
GFunc.centerImgAndTx(self.imgCost, self.txCost, -8)
else
self.costNode:setActive(false)
self.txGetDesc:setActive(true)
self.btnGet:setTouchEnable(false)
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_gray_4")
self.txGetDesc:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_10))
end
self.btnGet:removeRedPoint()
self.btnGet:addClickListener(function()
if not GFunc.checkCost(GFunc.getRewardId(costItems[1]), GFunc.getRewardNum(costItems[1]), true) then
return
end
local params = {}
params.content = I18N:getGlobalText(I18N.GlobalConst.MALL_DESC_13)
params.boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL
params.showToday = GConst.MESSAGE_BOX_SHOW_TODAY.ACT_DREAM_GIFT
params.okFunc = function()
ModuleManager.ActivityManager:onGiftBuy(self.cfg.id)
end
GFunc.showMessageBox(params)
end)
elseif costRecharge then
-- 充值购买
self.costNode:setActive(false)
self.txGetDesc:setActive(true)
self.txTime:setActive(false)
self:getBaseObject():setSprite(GConst.ATLAS_PATH.UI_ACT_COMMON, "act_common_bg_7")
if totalNum >= 9999 then
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_21))
else
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_8).. ":" .. remainNum .. "/" .. totalNum)
end
if remainNum > 0 then
self.btnGet:setTouchEnable(true)
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_yellow_4")
self.txGetDesc:setText(GFunc.getFormatPrice(self.cfg.recharge_id))
else
self.btnGet:setTouchEnable(false)
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_gray_4")
self.txGetDesc:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_10))
end
self.btnGet:removeRedPoint()
self.btnGet:addClickListener(function()
ModuleManager.ActivityManager:onGiftBuy(self.cfg.id)
end)
else
-- 免费购买
self.costNode:setActive(true)
self.txGetDesc:setActive(false)
self.imgAd:setActive(true)
self.imgCost:setActive(false)
self.txTime:setActive(true)
self:getBaseObject():setSprite(GConst.ATLAS_PATH.UI_ACT_COMMON, "act_common_bg_6")
GFunc.setAdsSprite(self.imgAd, remainNum <= 0)
self.txCost:setText("" .. I18N:getGlobalText(I18N.GlobalConst.FREE_DESC) .. "")
GFunc.centerImgAndTx(self.imgAd, self.txCost)
if remainNum > 0 then
self.btnGet:setTouchEnable(true)
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_blue_4")
self.btnGet:addRedPoint(80, 30, 0.9)
else
self.btnGet:setTouchEnable(false)
self.btnGet:setSprite(GConst.ATLAS_PATH.COMMON, "common_btn_gray_4")
self.btnGet:removeRedPoint()
end
if totalNum >= 9999 then
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.GIFT_ROUTINE_DESC_21))
else
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.WORLDBOSS_DESC_16, remainNum, totalNum))
end
self.btnGet:addClickListener(function()
SDKManager:showFullScreenAds(self.parentUI:getGiftAdType(), function ()
ModuleManager.ActivityManager:onGiftBuy(self.cfg.id)
end)
end)
end
end
return GiftCell