279 lines
12 KiB
Lua
279 lines
12 KiB
Lua
require("Base/BasePanel")
|
|
local GeneralTreasurePanel = Inherit(BasePanel)
|
|
local itemnum = 0
|
|
local LocalData = {
|
|
[ActivityTypeDef.QiJieTreasure] = {hp = HELP_TYPE.QiJieTreasure,imgName = "q_qjsl_qjmb2",imgBg = "q_qjsl_qjmb",unLockType = 4,Tips = "挑战七界试炼,提升秘宝等级,激活秘宝后还可领取额外奖励"},--七界秘宝
|
|
}
|
|
--初始化组件(用于子类重写)
|
|
function GeneralTreasurePanel:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
--topBar/btnBack
|
|
self.btnBack = Util.GetGameObject(self.transform, "btnBack")
|
|
self.buyBtn = Util.GetGameObject(self.transform, "bg/topBar/buyBtn")
|
|
self.Text1 = Util.GetGameObject(self.buyBtn, "buy"):GetComponent("Text")
|
|
self.topBarImg = Util.GetGameObject(self.transform, "bg/topBar"):GetComponent("Image")
|
|
self.tips = Util.GetGameObject(self.transform, "bg/topBar/tips"):GetComponent("Text")
|
|
self.time = Util.GetGameObject(self.transform, "bg/topBar/time"):GetComponent("Text")
|
|
self.quesBtn = Util.GetGameObject(self.transform, "bg/quesBtn")
|
|
self.helpPosition=self.quesBtn:GetComponent("RectTransform").localPosition
|
|
--Content
|
|
self.scoreText = Util.GetGameObject(self.transform, "bg/pageContent/bg/score/number"):GetComponent("Text")
|
|
self.treasureList = Util.GetGameObject(self.transform, "bg/pageContent/treasureList")
|
|
self.itemPre = Util.GetGameObject(self.transform, "bg/pageContent/itemPro")
|
|
self.itemPos = Util.GetGameObject(self.transform, "bg/pageContent/itemPos")
|
|
--img
|
|
self.titleName = Util.GetGameObject(self.transform, "bg/titleName"):GetComponent("Image")
|
|
|
|
--设置滚动条
|
|
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,self.treasureList.transform,self.itemPre,nil,Vector2.New(950, 1000),1,1,Vector2.New(100, 25))
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(0, 0)
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5)
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5)
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5)
|
|
self.ScrollView.moveTween.MomentumAmount = 1
|
|
self.ScrollView.moveTween.Strength = 2
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function GeneralTreasurePanel:BindEvent()
|
|
Util.AddClick(self.btnBack,function()
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(self.quesBtn,function()
|
|
UIManager.OpenPanel(UIName.HelpPopup,LocalData[self.curType].hp,self.helpPosition.x,self.helpPosition.y)
|
|
end)
|
|
end
|
|
|
|
function GeneralTreasurePanel:OnSortingOrderChange()
|
|
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function GeneralTreasurePanel:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.SerectTreasure.RechargeSuccess, self.refresh,self)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function GeneralTreasurePanel:RemoveListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.SerectTreasure.RechargeSuccess, self.refresh,self)
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function GeneralTreasurePanel:OnOpen(...)
|
|
self.curType = ...
|
|
end
|
|
|
|
-- 打开,重新打开时回调
|
|
function GeneralTreasurePanel:OnShow()
|
|
--暂时注释
|
|
self.treasureData = GeneralTreasureMangaer.GetTreasureData(self.curType)
|
|
self:ShowTime()
|
|
self:topBar()
|
|
self:showTaskList(true,true)
|
|
end
|
|
|
|
function GeneralTreasurePanel:refresh(isTop,isAni)
|
|
self.treasureData = GeneralTreasureMangaer.GetTreasureData(self.curType)
|
|
self:topBar()
|
|
self:showTaskList(isTop,isAni)
|
|
end
|
|
|
|
--topBar按钮状态
|
|
function GeneralTreasurePanel:topBar()
|
|
--设置礼包购买按钮状态
|
|
self.topBarImg.sprite = self.spLoader:LoadSprite(LocalData[self.curType].imgBg)
|
|
self.tips.text = LocalData[self.curType].Tips
|
|
self.titleName.sprite = self.spLoader:LoadSprite(LocalData[self.curType].imgName)
|
|
self.buyBtn:GetComponent("Button").interactable = self.treasureData.treasureState == 0
|
|
self.Text1.text = self.treasureData.treasureState == 0 and "激活秘宝" or "已激活"
|
|
Util.AddOnceClick(self.buyBtn,function()
|
|
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.HeavenUnlockExtraRewardPanel,LocalData[self.curType].unLockType)
|
|
end)
|
|
end
|
|
|
|
--任务列表
|
|
function GeneralTreasurePanel:showTaskList(isTop,isAni)
|
|
self.scoreText.text = self.treasureData.value
|
|
if not self.itemsList then
|
|
self.itemsList = {}
|
|
end
|
|
if not self.itemsList2 then
|
|
self.itemsList2 = {}
|
|
end
|
|
self.ScrollView:SetData(self.treasureData.dataList,function(index, rewardItem)
|
|
self:SingleTask(rewardItem, self.treasureData.dataList[index])
|
|
end,not isTop,not isAni)
|
|
--4 未达成 3 可再次领取 2 可领取 1 已领取 -1 完美领取(充钱领取过的)
|
|
--定位打开界面时位置
|
|
local t = 0
|
|
local State = self.treasureData.treasureState == 0 and 2 or 3
|
|
for i = 1, #self.treasureData.dataList do
|
|
if self.treasureData.dataList[i].State == State or self.treasureData.dataList[i].State == 4 then
|
|
t = i
|
|
break
|
|
end
|
|
end
|
|
self.ScrollView:SetIndex(t-1)
|
|
end
|
|
|
|
--单个任务
|
|
function GeneralTreasurePanel:SingleTask(rewardItem, singleData)
|
|
local scoreLevel = Util.GetGameObject(rewardItem, "scoreLevel"):GetComponent("Text")
|
|
local scroll1 = Util.GetGameObject(rewardItem, "scroll1")
|
|
local scroll2 = Util.GetGameObject(rewardItem, "scroll2")
|
|
if not self.itemsList[rewardItem] then
|
|
self.itemsList[rewardItem] = {}
|
|
end
|
|
for k,v in pairs(self.itemsList[rewardItem]) do
|
|
v.gameObject:SetActive(false)
|
|
end
|
|
for i = 1 ,#singleData.Reward do
|
|
if not self.itemsList[rewardItem][i] then
|
|
self.itemsList[rewardItem][i] = SubUIManager.Open(SubUIConfig.ItemView,scroll1.transform)
|
|
end
|
|
self.itemsList[rewardItem][i].transform:SetParent(scroll1.transform)
|
|
self.itemsList[rewardItem][i].transform.localScale = Vector3.one
|
|
self.itemsList[rewardItem][i].transform.localPosition = Vector3.zero
|
|
self.itemsList[rewardItem][i].gameObject:SetActive(true)
|
|
self.itemsList[rewardItem][i]:OnOpen(false, {singleData.Reward[i][1], singleData.Reward[i][2]}, 0.8, false)
|
|
end
|
|
|
|
if not self.itemsList2[rewardItem] then
|
|
self.itemsList2[rewardItem] = {}
|
|
end
|
|
for k,v in pairs(self.itemsList2[rewardItem]) do
|
|
v.gameObject:SetActive(false)
|
|
end
|
|
for i = 1 ,#singleData.TreasureReward do
|
|
if not self.itemsList2[rewardItem][i] then
|
|
self.itemsList2[rewardItem][i] = SubUIManager.Open(SubUIConfig.ItemView,scroll2.transform)
|
|
end
|
|
self.itemsList2[rewardItem][i].transform:SetParent(scroll2.transform)
|
|
self.itemsList2[rewardItem][i].transform.localScale = Vector3.one
|
|
self.itemsList2[rewardItem][i].transform.localPosition = Vector3.zero
|
|
self.itemsList2[rewardItem][i].gameObject:SetActive(true)
|
|
self.itemsList2[rewardItem][i]:OnOpen(false, {singleData.TreasureReward[i][1], singleData.TreasureReward[i][2]}, 0.8, false)
|
|
end
|
|
|
|
scoreLevel.text = singleData.Integral[1][2]
|
|
--初始化按钮状态
|
|
self:InitButtonState(rewardItem, singleData)
|
|
end
|
|
--初始化按钮状态
|
|
function GeneralTreasurePanel:InitButtonState(rewardItem, singleData)
|
|
local btnDeal = Util.GetGameObject(rewardItem, "btnDeal")
|
|
local get = Util.GetGameObject(rewardItem, "btnDeal/get")
|
|
local getAgain = Util.GetGameObject(rewardItem, "btnDeal/getAgain")
|
|
local unfinished = Util.GetGameObject(rewardItem, "btnDeal/unfinished")
|
|
local finished = Util.GetGameObject(rewardItem, "finished")
|
|
local redPoint = Util.GetGameObject(rewardItem, "btnDeal/redPoint")
|
|
--当前任务领取情况
|
|
local State = singleData.State
|
|
--4 未达成 3 可再次领取 2 可领取 1 已领取 -1 完美领取(充钱领取过的)
|
|
--判断
|
|
if State == 4 then
|
|
btnDeal.gameObject:SetActive(true)
|
|
get.gameObject:SetActive(false)
|
|
getAgain.gameObject:SetActive(false)
|
|
unfinished.gameObject:SetActive(true)
|
|
finished.gameObject:SetActive(false)
|
|
redPoint:SetActive(false)
|
|
elseif State == 3 then
|
|
btnDeal.gameObject:SetActive(true)
|
|
get.gameObject:SetActive(false)
|
|
getAgain.gameObject:SetActive(true)
|
|
unfinished.gameObject:SetActive(false)
|
|
finished.gameObject:SetActive(false)
|
|
redPoint:SetActive(true)
|
|
elseif State == 2 then
|
|
btnDeal.gameObject:SetActive(true)
|
|
get.gameObject:SetActive(true)
|
|
getAgain.gameObject:SetActive(false)
|
|
unfinished.gameObject:SetActive(false)
|
|
finished.gameObject:SetActive(false)
|
|
redPoint:SetActive(true)
|
|
elseif State == 1 then
|
|
btnDeal.gameObject:SetActive(true)
|
|
get.gameObject:SetActive(false)
|
|
getAgain.gameObject:SetActive(true)
|
|
unfinished.gameObject:SetActive(false)
|
|
finished.gameObject:SetActive(false)
|
|
redPoint:SetActive(false)
|
|
elseif State == -1 then
|
|
btnDeal.gameObject:SetActive(false)
|
|
get.gameObject:SetActive(false)
|
|
getAgain.gameObject:SetActive(false)
|
|
unfinished.gameObject:SetActive(false)
|
|
finished.gameObject:SetActive(true)
|
|
redPoint:SetActive(false)
|
|
end
|
|
--添加点击事件
|
|
Util.AddOnceClick(btnDeal,function()
|
|
self:OnBtnDealClicked(rewardItem,singleData)
|
|
end)
|
|
end
|
|
|
|
|
|
--按钮事件
|
|
function GeneralTreasurePanel:OnBtnDealClicked(rewardItem,singleData)
|
|
|
|
local btnDeal = Util.GetGameObject(rewardItem, "btnDeal")
|
|
local get = Util.GetGameObject(rewardItem, "btnDeal/get")
|
|
local getAgain = Util.GetGameObject(rewardItem, "btnDeal/getAgain")
|
|
local unfinished = Util.GetGameObject(rewardItem, "btnDeal/unfinished")
|
|
local finished = Util.GetGameObject(rewardItem, "btnDeal/finished")
|
|
if singleData.State == 4 then
|
|
PopupTipPanel.ShowTip(Language[11330])
|
|
elseif singleData.State == 3 or singleData.State == 2 then
|
|
NetManager.GetActivityRewardRequest(singleData.Id,self.treasureData.ActId,function (drop)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup,drop,1,function()
|
|
self:refresh(false,false)
|
|
end)
|
|
end)
|
|
elseif singleData.State == 1 then
|
|
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.HeavenUnlockExtraRewardPanel,LocalData[self.curType].unLockType)
|
|
end
|
|
end
|
|
|
|
function GeneralTreasurePanel:ShowTime()
|
|
if self.localTimer then
|
|
self.localTimer:Stop()
|
|
self.localTimer = nil
|
|
end
|
|
self.time.text = "重置时间:"..TimeToDHMS(self.treasureData.endTime - GetTimeStamp())
|
|
local time = self.treasureData.endTime - GetTimeStamp()
|
|
if time <= 0 then
|
|
PopupTipPanel.ShowTip("本期秘宝活动结束!")
|
|
self:ClosePanel()
|
|
end
|
|
self.localTimer = Timer.New(function()
|
|
time = time - 1
|
|
if time <= 0 then
|
|
self.time.text = "重置时间:"..TimeToDHMS(0)
|
|
self.localTimer:Stop()
|
|
self.localTimer = nil
|
|
PopupTipPanel.ShowTip("本期秘宝活动结束!")
|
|
self:ClosePanel()
|
|
end
|
|
self.time.text = "重置时间:"..TimeToDHMS(time)
|
|
end,1,-1,true)
|
|
self.localTimer:Start()
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function GeneralTreasurePanel:OnClose()
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.QiJieShiLian.CloseBuyTreasure)
|
|
if self.localTimer then
|
|
self.localTimer:Stop()
|
|
self.localTimer = nil
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function GeneralTreasurePanel:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
self.itemsList = {}
|
|
self.itemsList2 = {}
|
|
end
|
|
|
|
return GeneralTreasurePanel |