241 lines
9.1 KiB
Lua
241 lines
9.1 KiB
Lua
require("Base/BasePanel")
|
|
local OnlineRewardPanel = Inherit(BasePanel)
|
|
local this = OnlineRewardPanel
|
|
local itemPreList={} --item预设容器
|
|
local orginLayer = 0
|
|
local canGetList = {}
|
|
|
|
function OnlineRewardPanel:InitComponent()
|
|
this.closeBtn = Util.GetGameObject(this.gameObject,"show/btnBack")
|
|
this.getAll = Util.GetGameObject(this.gameObject,"show/btnGetAll")
|
|
this.preViewBtn = Util.GetGameObject(this.gameObject,"show/bg/preview")
|
|
this.light = Util.GetGameObject(this.gameObject,"light")
|
|
this.time2 = Util.GetGameObject(this.gameObject,"show/Time"):GetComponent("Text")
|
|
|
|
end
|
|
|
|
function OnlineRewardPanel:showReward()
|
|
ActivityGiftManager.onlineData = {}
|
|
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)) do
|
|
--获取在线礼包数据
|
|
if (v.ActivityId == ActivityTypeDef.OnlineGift) then
|
|
table.insert(ActivityGiftManager.onlineData, v)
|
|
end
|
|
end
|
|
table.sort(ActivityGiftManager.onlineData, function(a, b)
|
|
return a.Id < b.Id
|
|
end)
|
|
for i=1,#ActivityGiftManager.onlineData do
|
|
this.root=Util.GetGameObject(this.gameObject,"show/bg/Grid/RewardView"..i.."/root")
|
|
if not itemPreList[i] then
|
|
itemPreList[i] = SubUIManager.Open(SubUIConfig.ItemView,this.root.transform)
|
|
end
|
|
itemPreList[i]:OnOpen(false, {ActivityGiftManager.onlineData[i].Reward[1][1], ActivityGiftManager.onlineData[i].Reward[1][2]}, 0.9,true, false, false, self.sortingOrder)
|
|
--itemPreList[i]:ResetNameColor(Vector4.New(1,1,1,1))
|
|
itemPreList[i]:ResetNameSize(Vector3.New(0,-95,0),Vector3.New(1.3,1.3,1))
|
|
end
|
|
OnlineRewardPanel:OnShowActivityData()
|
|
end
|
|
|
|
--面板刷新
|
|
function OnlineRewardPanel:OnShowActivityData()
|
|
ActivityGiftManager.onlineData = {}
|
|
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)) do
|
|
--获取在线礼包数据
|
|
if (v.ActivityId == ActivityTypeDef.OnlineGift) then
|
|
table.insert(ActivityGiftManager.onlineData, v)
|
|
end
|
|
end
|
|
table.sort(ActivityGiftManager.onlineData, function(a, b)
|
|
return a.Id < b.Id
|
|
end)
|
|
for i=1,#ActivityGiftManager.onlineData do
|
|
--local item = Util.GetGameObject(this.gameObject,"show/bg/Grid/RewardView"..i.."/root/ItemView")
|
|
local redPoint = Util.GetGameObject(this.gameObject,"show/bg/Grid/RewardView"..i.."/root/ItemView/redPoint")
|
|
local flag = Util.GetGameObject(this.gameObject,"show/bg/Grid/RewardView"..i.."/flag")
|
|
local btn = Util.GetGameObject(this.gameObject,"show/bg/Grid/RewardView"..i.."/btn")
|
|
btn:SetActive(true)
|
|
|
|
local onlineRewardEffect = Util.GetGameObject(this.gameObject, "show/bg/Grid/RewardView"..i.."/root/ItemView/effects/UI_Effect_Kuang_JinSe")
|
|
local onlineRewardEffect2 = Util.GetGameObject(this.gameObject, "show/bg/Grid/RewardView"..i.."/root/ItemView/effects/UI_effect_WuCai_Kuang")
|
|
if(i<=ActivityGiftManager.currentTimeIndex)then--是否达到领奖时长
|
|
if(ActivityGiftManager.onlineGetRewardState[ActivityGiftManager.onlineData[i].Id]==0)then--奖励是否领取
|
|
this.getAll:SetActive(true)
|
|
this.closeBtn:SetActive(false)
|
|
if(redPoint)then
|
|
redPoint:SetActive(true)
|
|
end
|
|
--打开特效
|
|
onlineRewardEffect:SetActive(true)
|
|
onlineRewardEffect2:SetActive(true)
|
|
|
|
table.insert(canGetList,i)
|
|
|
|
flag:SetActive(false)
|
|
Util.AddOnceClick(btn,function()
|
|
flag:SetActive(true)
|
|
redPoint:SetActive(false)
|
|
btn:SetActive(false)
|
|
|
|
if(onlineRewardEffect)then
|
|
onlineRewardEffect:SetActive(false)
|
|
onlineRewardEffect2:SetActive(false)
|
|
end
|
|
|
|
NetManager.GetActivityRewardRequest(ActivityGiftManager.onlineData[i].Id, ActivityTypeDef.OnlineGift, function(_drop)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1,function()
|
|
ActivityGiftManager.onlineGetRewardState[ActivityGiftManager.onlineData[i].Id] = 1
|
|
this.Refresh()
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.OnlineGift.GetOnlineRewardSuccess)
|
|
end)
|
|
end)
|
|
|
|
end)
|
|
elseif (ActivityGiftManager.onlineGetRewardState[ActivityGiftManager.onlineData[i].Id]==1) then
|
|
flag:SetActive(true)
|
|
btn:SetActive(false)
|
|
if(onlineRewardEffect)then
|
|
onlineRewardEffect:SetActive(false)
|
|
onlineRewardEffect2:SetActive(false)
|
|
end
|
|
|
|
end
|
|
else
|
|
if(onlineRewardEffect)then
|
|
onlineRewardEffect:SetActive(false)
|
|
onlineRewardEffect2:SetActive(false)
|
|
end
|
|
|
|
Util.AddOnceClick(btn,function()
|
|
PopupTipPanel.ShowTip(Language[11346])
|
|
end)
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
--绑定事件(用于子类重写)
|
|
function OnlineRewardPanel:BindEvent()
|
|
Util.AddClick(this.closeBtn,function()
|
|
this:ClosePanel()
|
|
end)
|
|
Util.AddClick(this.getAll,function()
|
|
NetManager.GetActivityRewardRequest(-1, ActivityTypeDef.OnlineGift, function(_drop)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1,function()
|
|
for i = 1, #canGetList do
|
|
ActivityGiftManager.onlineGetRewardState[ActivityGiftManager.onlineData[canGetList[i]].Id] = 1
|
|
end
|
|
this.Refresh()
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.OnlineGift.GetOnlineRewardSuccess)
|
|
end)
|
|
end)
|
|
end)
|
|
Util.AddClick(this.light,function()
|
|
this:ClosePanel()
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function OnlineRewardPanel:AddListener()
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function OnlineRewardPanel:RemoveListener()
|
|
end
|
|
|
|
function OnlineRewardPanel.Refresh()
|
|
canGetList={}
|
|
OnlineRewardPanel:showReward()
|
|
this.closeBtn:SetActive(#canGetList == 0)
|
|
this.getAll:SetActive(#canGetList > 0)
|
|
OnlineRewardPanel:RemainTimeDown()
|
|
end
|
|
|
|
function OnlineRewardPanel:OnSortingOrderChange()
|
|
--初试创建List中为0
|
|
if(#itemPreList ~= 0)then
|
|
for i=1,#itemPreList do
|
|
itemPreList[i]:SetEffectLayer(self.sortingOrder)
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function OnlineRewardPanel:OnOpen(...)
|
|
end
|
|
|
|
-- 打开,重新打开时回调
|
|
function OnlineRewardPanel:OnShow()
|
|
this.Refresh()
|
|
end
|
|
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function OnlineRewardPanel:OnClose()
|
|
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.OnlineGift.GetOnlineRewardSuccess)
|
|
|
|
--self:SetEffectLayer(-self.orginLayer)
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function OnlineRewardPanel:OnDestroy()
|
|
itemPreList={}
|
|
end
|
|
|
|
--在线奖励刷新
|
|
--刷新倒计时显示
|
|
function OnlineRewardPanel:RemainTimeDown()
|
|
self:RemainTimeDownUpdata()
|
|
if ActivityGiftManager.currentTimeIndex == #ActivityGiftManager.onlineData then
|
|
this.time2.text = Language[12212]
|
|
end
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
self.timer = Timer.New(function()
|
|
if NetManager.IsConnect() then--是否在线状态
|
|
self:RemainTimeDownUpdata()
|
|
end
|
|
if ActivityGiftManager.currentTimeIndex == #ActivityGiftManager.onlineData then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
this.time2.text = Language[12212]
|
|
end
|
|
end, 1, -1, true)
|
|
self.timer:Start()
|
|
end
|
|
|
|
function OnlineRewardPanel:RemainTimeDownUpdata()
|
|
local timeNum = GetTimeStamp() - ActivityGiftManager.cuOnLineTimestamp
|
|
local newSort = 0
|
|
for i = 1, #ActivityGiftManager.onlineData do
|
|
local curValue = ActivityGiftManager.onlineData[i].Values[1][1]*60
|
|
local curSort = ActivityGiftManager.onlineData[i].Sort
|
|
if ActivityGiftManager.onlineGetRewardState[ActivityGiftManager.onlineData[i].Id] == 0 then
|
|
if (math.floor(timeNum) >= curValue and newSort < curSort) then
|
|
newSort = curSort
|
|
end
|
|
elseif ActivityGiftManager.onlineGetRewardState[ActivityGiftManager.onlineData[i].Id] == 1 then
|
|
newSort = curSort
|
|
end
|
|
end
|
|
if newSort ~= ActivityGiftManager.currentTimeIndex then
|
|
ActivityGiftManager.currentTimeIndex = newSort
|
|
this:OnShowActivityData(ActivityGiftManager.onlineData, ActivityTypeDef.OnlineGift, ActivityGiftManager.onlineGetRewardState, ActivityGiftManager.currentTimeIndex)
|
|
end
|
|
if(newSort<12)then
|
|
this.time2.text = Language[10032]..TimeToHMS(ActivityGiftManager.onlineData[newSort+1].Values[1][1]*60-timeNum)
|
|
else
|
|
this.time2.text =Language[10032].."00:00:00"
|
|
end
|
|
|
|
end
|
|
|
|
return OnlineRewardPanel |