243 lines
8.8 KiB
Lua
243 lines
8.8 KiB
Lua
require("Base/BasePanel")
|
|
GMSong10WanPanel = Inherit(BasePanel)
|
|
local this= GMSong10WanPanel
|
|
local zhenchongConfig= ConfigManager.GetConfig(ConfigName.SuperZhenChong)
|
|
local sortingOrder = 0
|
|
local lineTime=0
|
|
local activityData
|
|
local allValue=0
|
|
local rewardTime=0
|
|
local isCanGet=false
|
|
local deleteTime=0
|
|
local currShowRed=nil
|
|
local rewardNum=0
|
|
--初始化组件(用于子类重写)
|
|
function GMSong10WanPanel:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
this.btn_close=Util.GetGameObject(self.gameObject, "bg/closeBtn")
|
|
this.btn_get=Util.GetGameObject(self.gameObject, "bg/btn_get")
|
|
this.getRed=Util.GetGameObject(self.gameObject, "bg/btn_get/red")
|
|
this.itemPre = Util.GetGameObject(self.gameObject, "itemPre")
|
|
this.scroll = Util.GetGameObject(self.gameObject, "bg/rect")
|
|
this.shopItemPre=Util.GetGameObject(self.gameObject, "rewardPre")
|
|
this.timeTxt=Util.GetGameObject(self.gameObject, "bg/timeText"):GetComponent("Text")
|
|
this.getTxt=Util.GetGameObject(self.gameObject, "bg/getTxt"):GetComponent("Text")
|
|
this.noGetTxt=Util.GetGameObject(self.gameObject, "bg/noGetTxt"):GetComponent("Text")
|
|
--设置滚动条
|
|
local rootHight = this.scroll.transform.rect.height
|
|
local width = this.scroll.transform.rect.width
|
|
this.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.scroll.transform,
|
|
this.shopItemPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 12),false)
|
|
this.scrollView.moveTween.MomentumAmount = 1
|
|
this.scrollView.moveTween.Strength = 2
|
|
this.itemList={}
|
|
this.timer = nil
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function GMSong10WanPanel:BindEvent()
|
|
Util.AddOnceClick(this.btn_close, function()
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddOnceClick(this.btn_get, function()
|
|
if isCanGet then
|
|
NetManager.GetActivityRewardRequest(1,11201,function(msg)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, msg, 1,function ()
|
|
isCanGet=false
|
|
this.getRed:SetActive(false)
|
|
deleteTime=0
|
|
self:OnShow()
|
|
end)
|
|
end)
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function GMSong10WanPanel:AddListener()
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function GMSong10WanPanel:RemoveListener()
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function GMSong10WanPanel:OnOpen()
|
|
|
|
|
|
end
|
|
function GMSong10WanPanel:OnFocus()
|
|
|
|
end
|
|
|
|
|
|
function GMSong10WanPanel:OnSortingOrderChange()
|
|
end
|
|
|
|
|
|
-- 打开,重新打开时回调
|
|
function GMSong10WanPanel:OnShow()
|
|
activityData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.Song10Wan)
|
|
LogError("value=================="..activityData.value)
|
|
this.getTxt.text=string.format("已领取:<color=#2DBD11>%s</color>元",activityData.value)
|
|
local lastState=-1
|
|
local dayList={}
|
|
if activityData then
|
|
local maxId=0
|
|
for i = 1,#activityData.mission do
|
|
local id=activityData.mission[i].missionId
|
|
if zhenchongConfig[id] then
|
|
--LogError("id==="..id)
|
|
local aaa=zhenchongConfig[id]
|
|
allValue=allValue+aaa.RewardValue
|
|
if not dayList[aaa.day] then
|
|
local day={}
|
|
day.reward={}
|
|
table.insert(day.reward,aaa.Reward)
|
|
dayList[aaa.day]=day
|
|
else
|
|
table.insert(dayList[aaa.day].reward,aaa.Reward)
|
|
end
|
|
local state=activityData.mission[i].state
|
|
dayList[aaa.day].reward.state=state
|
|
local progress=activityData.mission[i].progress
|
|
if lastState~=0 and progress>=0 then
|
|
maxId=id
|
|
lineTime=progress
|
|
if state==0 and rewardTime==0 then
|
|
rewardTime=aaa.Time
|
|
end
|
|
end
|
|
if state==1 then
|
|
isCanGet=true
|
|
end
|
|
lastState=state
|
|
end
|
|
end
|
|
rewardNum=0
|
|
this.timeTxt.text=""
|
|
this.scrollView:SetData(dayList,function(index, rewardItem)
|
|
this:UpdateSingleInfo(rewardItem, dayList[index],index)
|
|
end,not false,not false)
|
|
this.scrollView:SetIndex(maxId/4)
|
|
if deleteTime>0 then
|
|
this.timer = Timer.New(function ()
|
|
--LogError("needTime=="..needTime)
|
|
deleteTime= deleteTime-1
|
|
if deleteTime<=0 then
|
|
isCanGet=true
|
|
this.timeTxt.text = "有可领取奖励"
|
|
this.getRed:SetActive(true)
|
|
currShowRed:SetActive(true)
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
else
|
|
this.timeTxt.text = string.format("领取倒计时:".."%s",TimeToFelaxible(deleteTime))
|
|
end
|
|
end,1,-1,true)
|
|
this.timer:Start()
|
|
end
|
|
end
|
|
|
|
this.getRed:SetActive(isCanGet)
|
|
this.noGetTxt.text=string.format("未领取:<color=#2DBD11>%s</color>元",allValue-activityData.value)
|
|
end
|
|
|
|
function this:UpdateSingleInfo(go,data,index)
|
|
local dayTxt=Util.GetGameObject(go, "GameObject/Text"):GetComponent("Text")
|
|
dayTxt.text= string.format("第%s天",index)
|
|
local grid=Util.GetGameObject(go, "GameObject/content")
|
|
if not this.itemList[go] then
|
|
this.itemList[go] = {}
|
|
end
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
for i = 1, #this.itemList[go] do
|
|
this.itemList[go][i].go.gameObject:SetActive(false)
|
|
end
|
|
|
|
for i = 1, #data.reward do
|
|
if not this.itemList[go][i] then
|
|
this.itemList[go][i]={}
|
|
this.itemList[go][i].go=newObjToParent(this.itemPre,grid)
|
|
this.itemList[go][i].pos=Util.GetGameObject(this.itemList[go][i].go, "itemPos")
|
|
this.itemList[go][i].red=Util.GetGameObject(this.itemList[go][i].go, "redPoint")
|
|
this.itemList[go][i].get=Util.GetGameObject(this.itemList[go][i].go, "yilingqu")
|
|
this.itemList[go][i].out=Util.GetGameObject(this.itemList[go][i].go, "guoqi")
|
|
this.itemList[go][i].name=Util.GetGameObject(this.itemList[go][i].go, "name")
|
|
this.itemList[go][i].itemView= SubUIManager.Open(SubUIConfig.ItemView,this.itemList[go][i].pos.transform)
|
|
end
|
|
this.itemList[go][i].go.gameObject:SetActive(true)
|
|
this.itemList[go][i].red:SetActive(false)
|
|
this.itemList[go][i].get:SetActive(false)
|
|
this.itemList[go][i].out:SetActive(false)
|
|
this.itemList[go][i].itemView:OnOpen(false, data.reward[i],0.75, false, false, false, self.sortingOrder)
|
|
local itemConfig=ConfigManager.GetConfigData(ConfigName.ItemConfig,data.reward[i][1])
|
|
this.itemList[go][i].name:GetComponent("Text").text=itemConfig.Name
|
|
local id=(index-1)*4+i
|
|
local state=activityData.mission[id].state --data.reward[i].state
|
|
local progress=activityData.mission[id].progress
|
|
local config=ConfigManager.GetConfigData(ConfigName.SuperZhenChong,id)
|
|
--LogError("state====="..state)
|
|
if state==0 then
|
|
if progress~=-1 then
|
|
local cha= tonumber(GetTimeStamp()-ActivityGiftManager.loginTime)
|
|
local needTime=config.Time- (lineTime+cha)
|
|
this.getRed:SetActive(false)
|
|
if needTime>0 and deleteTime==0 then
|
|
this.timeTxt.gameObject:SetActive(true)
|
|
deleteTime=needTime
|
|
currShowRed=this.itemList[go][i].red
|
|
--this.timeTxt.gameObject:SetActive(false)
|
|
end
|
|
if needTime<=0 then
|
|
if rewardTime~=0 then
|
|
isCanGet=true
|
|
this.itemList[go][i].red:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
elseif state==1 then
|
|
this.itemList[go][i].red:SetActive(true)
|
|
elseif state==2 then
|
|
this.itemList[go][i].get:SetActive(true)
|
|
rewardNum=rewardNum+1
|
|
elseif state==3 then
|
|
this.itemList[go][i].out:SetActive(true)
|
|
end
|
|
end
|
|
--LogError("deleteTime==="..deleteTime)
|
|
end
|
|
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function GMSong10WanPanel:OnClose()
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
allValue=0
|
|
rewardTime=0
|
|
deleteTime=0
|
|
rewardNum=0
|
|
this.getRed:SetActive(false)
|
|
if currShowRed then
|
|
currShowRed:SetActive(false)
|
|
currShowRed=nil
|
|
end
|
|
|
|
CheckRedPointStatus(RedPointType.song10Wan)
|
|
end
|
|
--界面销毁时调用(用于子类重写)
|
|
function GMSong10WanPanel:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
end
|
|
return GMSong10WanPanel |