miduo_client/Assets/ManagedResources/~Lua/Modules/Popup/TrialRewardPopup.lua

145 lines
4.5 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
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")
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]
this.pre = pres[curType]
end
function TrialRewardPopup:OnShow()
this.scrollView=SubUIManager.Open(SubUIConfig.ScrollCycleView,this.scroll.transform,this.pre, nil,
Vector2.New(this.scroll.transform.rect.width,this.scroll.transform.rect.height),1,1,Vector2.New(0,5))
this.scrollView.gameObject:GetComponent("RectTransform").anchoredPosition= Vector2.New(0,0)
this.scrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5)
this.scrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5)
this.scrollView.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5)
this.scrollView.moveTween.MomentumAmount = 1
this.scrollView.moveTween.Strength = 2
this.RefreshPanel()
sortingOrder = self.sortingOrder
end
function TrialRewardPopup:OnClose()
SubUIManager.Close(this.scrollView)
end
function TrialRewardPopup:OnDestroy()
this.scrollView=nil
end
--刷新
function this.RefreshPanel()
this.scrollView:SetData(rewardConfig,function(index,root)
this.SetScrollPre(root,rewardConfig[index])
end)
this.scrollView:SetIndex(1)
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.."/"..data.Id..")"
end
end
info.text=data.info --string.format( Language[11616],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=Language[10350]
mask:SetActive(true)
goBtn:SetActive(false)
getBtn:SetActive(false)
elseif data.state==1 then
-- goText.text=Language[10022]
mask:SetActive(false)
goBtn:SetActive(false)
getBtn:SetActive(true)
elseif data.state==2 then
-- goText.text=Language[10023]
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()
end)
end
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