191 lines
6.6 KiB
Lua
191 lines
6.6 KiB
Lua
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("<size=30>" .. GFunc.getRewardNum(costItems[1]) .. "</size>")
|
|
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("<size=24>" .. I18N:getGlobalText(I18N.GlobalConst.FREE_DESC) .. "</size>")
|
|
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 |