193 lines
6.3 KiB
Lua
193 lines
6.3 KiB
Lua
----- 试练副本奖励弹窗 -----
|
||
require("Base/BasePanel")
|
||
local TrialRewardPopup = Inherit(BasePanel)
|
||
local this = TrialRewardPopup
|
||
local rewardConfig
|
||
local itemList={} --预设容器
|
||
local sortingOrder=0
|
||
local getFunc = {}
|
||
local pres = {}
|
||
local curType = 0
|
||
local scrollView = nil
|
||
function TrialRewardPopup:InitComponent()
|
||
this.panel=Util.GetGameObject(this.gameObject,"Panel")
|
||
this.backBtn=Util.GetGameObject(this.panel,"BackBtn")
|
||
|
||
this.scroll=Util.GetGameObject(this.panel,"Scroll")
|
||
pres[1]=Util.GetGameObject(this.panel,"Scroll/Pre")
|
||
pres[2]=Util.GetGameObject(this.panel,"Scroll/Pre3")
|
||
pres[4]=Util.GetGameObject(this.panel,"Scroll/Pre4")
|
||
scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,this.scroll.transform,pres[MonsterCampManager.preType], nil,
|
||
Vector2.New(this.scroll.transform.rect.width,this.scroll.transform.rect.height),1,1,Vector2.New(0,5))
|
||
scrollView.gameObject:GetComponent("RectTransform").anchoredPosition= Vector2.New(0,0)
|
||
scrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5)
|
||
scrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5)
|
||
scrollView.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5)
|
||
scrollView.moveTween.MomentumAmount = 1
|
||
scrollView.moveTween.Strength = 2
|
||
end
|
||
|
||
function TrialRewardPopup:BindEvent()
|
||
Util.AddClick(this.backBtn,function()
|
||
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
||
self:ClosePanel()
|
||
end)
|
||
end
|
||
|
||
function TrialRewardPopup:AddListener()
|
||
end
|
||
|
||
function TrialRewardPopup:RemoveListener()
|
||
end
|
||
|
||
function TrialRewardPopup:OnSortingOrderChange()
|
||
sortingOrder = self.sortingOrder
|
||
end
|
||
|
||
function TrialRewardPopup:OnOpen(...)
|
||
local arg = {...}
|
||
rewardConfig = arg[1]
|
||
getFunc = arg[2]
|
||
curType = arg[3]
|
||
end
|
||
|
||
function TrialRewardPopup:OnShow()
|
||
this.RefreshPanel(true,true)
|
||
sortingOrder = self.sortingOrder
|
||
end
|
||
|
||
function TrialRewardPopup:OnClose()
|
||
end
|
||
|
||
function TrialRewardPopup:OnDestroy()
|
||
scrollView=nil
|
||
itemList = {}
|
||
end
|
||
|
||
--0 已经领取,1 可领取,2不能领取·
|
||
local sortIndex = {
|
||
[0] = 0,
|
||
[1] = 2,
|
||
[2] = 1,
|
||
}
|
||
--刷新
|
||
function this.RefreshPanel(isTop,isAni)
|
||
if curType ~= 4 then
|
||
table.sort(rewardConfig,function(a,b)
|
||
if sortIndex[a.state] == sortIndex[b.state] then
|
||
return a.Id < b.Id
|
||
end
|
||
return sortIndex[a.state] > sortIndex[b.state]
|
||
end)
|
||
scrollView:SetData(rewardConfig,function(index,root)
|
||
this.SetScrollPre(root,rewardConfig[index])
|
||
end,not isTop,not isAni)
|
||
else--踏碎凌霄-仅供展示
|
||
scrollView:SetData(rewardConfig,function(index,root)
|
||
this.SetScrollPre2(root,rewardConfig[index])
|
||
end,not isTop,not isAni)
|
||
end
|
||
|
||
end
|
||
|
||
--设置每条数据
|
||
function this.SetScrollPre(root,data)
|
||
local info=Util.GetGameObject(root,"Title/Info"):GetComponent("Text")
|
||
local grid=Util.GetGameObject(root,"Grid")
|
||
local goBtn=Util.GetGameObject(root,"GoBtn")
|
||
local getBtn=Util.GetGameObject(root,"GetBtn")
|
||
local mask=Util.GetGameObject(root,"mask")
|
||
local pregress = Util.GetGameObject(root,"getRewardProgress")
|
||
if pregress then
|
||
if curType == 2 then
|
||
pregress:GetComponent("Text").text = "("..(MonsterCampManager.monsterWave - 1).."/"..data.Id..")"
|
||
end
|
||
end
|
||
info.text=data.info --string.format( Language[11483],data.Count,MapTrialManager.GetKilCount(),data.Count)
|
||
--ResetItemView(root,grid.transform,itemList,#data.BoxReward,0.9,sortingOrder,false,data.BoxReward)
|
||
if not itemList[root] then
|
||
itemList[root] = {}
|
||
end
|
||
for k,v in ipairs(itemList[root]) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
for i = 1 , #data.BoxReward do
|
||
if not itemList[root][i] then
|
||
itemList[root][i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform)
|
||
itemList[root][i].gameObject:SetActive(false)
|
||
end
|
||
itemList[root][i]:OnOpen(false, data.BoxReward[i], 0.9,false,false,false,sortingOrder)
|
||
itemList[root][i].gameObject:SetActive(true)
|
||
end
|
||
if data.state==0 then
|
||
-- goText.text="已领取"
|
||
mask:GetComponent("Image").sprite = Util.LoadSprite("s_slbz_yilingqu_zh")
|
||
mask:SetActive(true)
|
||
goBtn:SetActive(false)
|
||
getBtn:SetActive(false)
|
||
elseif data.state==1 then
|
||
-- goText.text="领取"
|
||
mask:SetActive(false)
|
||
goBtn:SetActive(false)
|
||
getBtn:SetActive(true)
|
||
elseif data.state==2 then
|
||
-- goText.text="前往"
|
||
mask:SetActive(false)
|
||
goBtn:SetActive(true)
|
||
getBtn:SetActive(false)
|
||
end
|
||
|
||
Util.AddOnceClick(goBtn,function()
|
||
this:ClosePanel()
|
||
end)
|
||
Util.AddOnceClick(getBtn,function()
|
||
if getFunc then
|
||
getFunc(data.Id,function()
|
||
mask:SetActive(true)
|
||
getBtn:SetActive(false)
|
||
this.ChangeState(data.Id)
|
||
this.RefreshPanel(false,false)
|
||
end)
|
||
end
|
||
end)
|
||
end
|
||
|
||
--设置每条数据
|
||
function this.SetScrollPre2(root,data)
|
||
local info=Util.GetGameObject(root,"Title/Info"):GetComponent("Text")
|
||
local grid=Util.GetGameObject(root,"Grid")
|
||
local mask=Util.GetGameObject(root,"mask")
|
||
info.text = string.format(Language[12309],data.otherData.Sort,data.otherData.Values[1][1])
|
||
|
||
if not itemList[root] then
|
||
itemList[root] = {}
|
||
end
|
||
for k,v in ipairs(itemList[root]) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
for i = 1 , #data.otherData.Reward do
|
||
if not itemList[root][i] then
|
||
itemList[root][i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform)
|
||
itemList[root][i].gameObject:SetActive(false)
|
||
end
|
||
itemList[root][i]:OnOpen(false, data.otherData.Reward[i], 0.9,false,false,false,sortingOrder)
|
||
itemList[root][i].gameObject:SetActive(true)
|
||
end
|
||
mask:SetActive(true)
|
||
if data.state==0 then
|
||
mask:GetComponent("Image").sprite = Util.LoadSprite("g_ghhb_weidacheng_zh")
|
||
elseif data.state==1 then
|
||
mask:GetComponent("Image").sprite = Util.LoadSprite("g_ghhb_yidacheng_zh")
|
||
end
|
||
end
|
||
|
||
function this.ChangeState(id)
|
||
for k,v in ipairs(rewardConfig) do
|
||
if v.Id == id then
|
||
v.state = 0
|
||
return
|
||
end
|
||
end
|
||
end
|
||
|
||
return TrialRewardPopup |