143 lines
5.2 KiB
Lua
143 lines
5.2 KiB
Lua
----- 东海寻仙-天官赐福 -----
|
|
local this = {}
|
|
local shopItemData
|
|
local conFigData
|
|
local itemRewardGrid = {}
|
|
local sortingOrder = 0
|
|
|
|
function this:InitComponent(gameObject)
|
|
this.gameObject = gameObject
|
|
this.panel=Util.GetGameObject(gameObject,"Panel")
|
|
this.timeGo=Util.GetGameObject(this.panel,"Time")
|
|
this.oldPurchaseText=Util.GetGameObject(this.panel,"downGo/purchase/old/oldPurchaseText"):GetComponent("Text")
|
|
this.curPurchaseText=Util.GetGameObject(this.panel,"downGo/purchase/cur/curPurchaseText"):GetComponent("Text")
|
|
this.itemRewardParent=Util.GetGameObject(this.panel,"downGo/itemRewardParent")
|
|
this.buyBtn=Util.GetGameObject(this.panel,"downGo/BuyBtn")
|
|
this.buyNumText=Util.GetGameObject(this.panel,"downGo/BuyBtn/buyNumText"):GetComponent("Text")
|
|
this.buyText=Util.GetGameObject(this.panel,"downGo/BuyBtn/Text"):GetComponent("Text")
|
|
for i = 1, 4 do
|
|
itemRewardGrid[i] = SubUIManager.Open(SubUIConfig.ItemView, this.itemRewardParent.transform)
|
|
end
|
|
this.timeGo=Util.GetGameObject(this.panel,"downGo/Time")
|
|
this.time=Util.GetGameObject(this.panel,"downGo/Time"):GetComponent("Text")
|
|
end
|
|
|
|
function this:BindEvent()
|
|
|
|
end
|
|
|
|
function this:AddListener()
|
|
end
|
|
|
|
function this:RemoveListener()
|
|
end
|
|
|
|
function this:OnShow(_sortingOrder)
|
|
sortingOrder = _sortingOrder
|
|
this.OnShowPanelData()
|
|
end
|
|
|
|
function this.OnShowPanelData()
|
|
local ids = FindFairyManager.GetGiftActiveBtnState(DirectBuyType.TGCF)
|
|
if ids and #ids > 0 then
|
|
else
|
|
return
|
|
end
|
|
conFigData = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig,ids[1] )
|
|
shopItemData = OperatingManager.GetGiftGoodsInfo(conFigData.Type,conFigData.Id)
|
|
if shopItemData == nil then return end
|
|
this.oldPurchaseText.text = Language[10537]..string.format(MoneyUtil.GetMoneyUnitName(), MoneyUtil.GetMoney(conFigData.Price)/(conFigData.IsDiscount/10))--..MoneyUtil.GetMoneyUnitName()
|
|
this.curPurchaseText.text = Language[10640]..string.format(MoneyUtil.GetMoneyUnitName(), MoneyUtil.GetMoney(conFigData.Price))--..MoneyUtil.GetMoneyUnitName()
|
|
this.buyNumText.text = Language[10556]..shopItemData.buyTimes.."/"..conFigData.Limit
|
|
if shopItemData.buyTimes <= 0 then
|
|
this.buyText.text = Language[10641]
|
|
this.buyBtn:GetComponent("Button").enabled = true
|
|
Util.SetGray(this.buyBtn, false)
|
|
else
|
|
this.buyText.text = Language[10526]
|
|
this.buyBtn:GetComponent("Button").enabled = false
|
|
Util.SetGray(this.buyBtn, true)
|
|
end
|
|
|
|
for i = 1, math.max(#conFigData.BaseReward, #itemRewardGrid) do
|
|
local go = itemRewardGrid[i]
|
|
if not go then
|
|
if not go then
|
|
go = SubUIManager.Open(SubUIConfig.ItemView, this.itemRewardParent.transform)
|
|
itemRewardGrid[i] = go
|
|
end
|
|
go.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, #conFigData.BaseReward do
|
|
itemRewardGrid[i].gameObject:SetActive(true)
|
|
itemRewardGrid[i]:OnOpen(false,conFigData.BaseReward[i],1.1,false,false,false,sortingOrder)
|
|
end
|
|
Util.AddOnceClick(this.buyBtn, function()
|
|
PayManager.Pay(conFigData.Id, function(id)
|
|
this.RechargeSuccessFunc(id)
|
|
end)
|
|
end)
|
|
this.RemainTimeDown(this.timeGo,this.time,shopItemData.endTime - GetTimeStamp())
|
|
end
|
|
|
|
this.timer = Timer.New()
|
|
--刷新倒计时显示
|
|
function this.RemainTimeDown(_timeTextExpertgo,_timeTextExpert,timeDown)
|
|
if timeDown > 0 then
|
|
_timeTextExpertgo:SetActive(true)
|
|
_timeTextExpert.text = Language[10028]..this.TimeStampToDateString(timeDown)
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
this.timer = Timer.New(function()
|
|
_timeTextExpert.text = Language[10028]..this.TimeStampToDateString(timeDown)
|
|
if timeDown < 0 then
|
|
_timeTextExpertgo:SetActive(false)
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
if conFigData.DailyUpdate~=1 then --不是每日刷新 显示活动结束操作
|
|
PopupTipPanel.ShowTip(Language[10029])
|
|
require("Modules/FindFairy/FindFairyPanel"):OnShow()
|
|
else
|
|
this:OnShow(sortingOrder)
|
|
end
|
|
end
|
|
timeDown = timeDown - 1
|
|
end, 1, -1, true)
|
|
this.timer:Start()
|
|
else
|
|
_timeTextExpertgo:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function this.TimeStampToDateString(second)
|
|
local day = math.floor(second / (24 * 3600))
|
|
local minute = math.floor(second / 60) % 60
|
|
local sec = second % 60
|
|
local hour = math.floor(math.floor(second - day * 24 * 3600 - sec - minute * 60) / 3600)
|
|
return string.format(Language[10548],day, hour, minute, sec)
|
|
end
|
|
|
|
function this.RechargeSuccessFunc(id)
|
|
FirstRechargeManager.RefreshAccumRechargeValue(id)
|
|
OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DirectPurchaseGift, id)
|
|
this.OnShowPanelData()
|
|
end
|
|
|
|
function this:OnClose()
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
end
|
|
|
|
function this:OnDestroy()
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
end
|
|
|
|
return this |