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

197 lines
6.3 KiB
Lua
Raw Normal View History

2023-06-06 15:57:53 +08:00
----- 试练副本奖励弹窗 -----
require("Base/BasePanel")
local TrialRewardPopup = Inherit(BasePanel)
local this = TrialRewardPopup
local rewardConfig
local itemList={} --预设容器
2023-06-07 11:36:53 +08:00
local type=0
2023-06-06 15:57:53 +08:00
local sortingOrder=0
local getFunc = {}
local pres = {}
local curType = 0
local scrollView = nil
function TrialRewardPopup:InitComponent()
this.spLoader = SpriteLoader.New()
this.panel=Util.GetGameObject(this.gameObject,"Panel")
this.backBtn=Util.GetGameObject(this.panel,"BackBtn")
this.maskBtn=Util.GetGameObject(this.gameObject,"Mask")
this.title = Util.GetGameObject(this.panel,"Title"):GetComponent("Text")
this.scroll=Util.GetGameObject(this.panel,"Scroll")
pres[1]=Util.GetGameObject(this.panel,"Scroll/Pre")
2023-06-07 11:36:53 +08:00
scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,this.scroll.transform,pres[1], nil,
2023-06-06 15:57:53 +08:00
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
scrollView.elastic = false
end
function TrialRewardPopup:BindEvent()
Util.AddClick(this.backBtn,function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
Util.AddClick(this.maskBtn,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 = {...}
2023-06-07 11:36:53 +08:00
type = arg[1]
--getFunc = arg[2]
--curType = arg[3]
2023-06-06 15:57:53 +08:00
end
function TrialRewardPopup:OnShow()
this.RefreshPanel(true,true)
sortingOrder = self.sortingOrder
end
function TrialRewardPopup:OnClose()
end
function TrialRewardPopup:OnDestroy()
this.spLoader:Destroy()
scrollView=nil
itemList = {}
end
--0 已经领取1 可领取2不能领取·
local sortIndex = {
[0] = 0,
[1] = 2,
[2] = 1,
}
--刷新
function this.RefreshPanel(isTop,isAni)
2023-06-07 11:36:53 +08:00
LogError("type============="..type)
local configs=ConfigManager.TryGetAllConfigsDataByKey(ConfigName.WishConfig,"LotteryType",type)
table.sort(configs,function(a,b)
return a.Id < b.Id
end)
scrollView:SetData(configs,function(index,root)
this.SetScrollPre(root,configs[index])
end,not isTop,not isAni)
if type==1 then
this.title.text = "神将心愿奖励"
elseif type==4 then
this.title.text = "法宝心愿奖励"
2023-06-06 15:57:53 +08:00
end
2023-06-07 11:36:53 +08:00
2023-06-06 15:57:53 +08:00
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")
2023-06-07 11:36:53 +08:00
goBtn:SetActive(false)
getBtn:SetActive(false)
2023-06-06 15:57:53 +08:00
local mask=Util.GetGameObject(root,"mask")
2023-06-07 11:36:53 +08:00
info.text="宝箱"..data.Level.."级奖励"
2023-06-06 15:57:53 +08:00
if not itemList[root] then
itemList[root] = {}
end
for k,v in ipairs(itemList[root]) do
v.gameObject:SetActive(false)
end
2023-06-07 11:36:53 +08:00
for i = 1 , #data.Reward do
2023-06-06 15:57:53 +08:00
if not itemList[root][i] then
itemList[root][i] = SubUIManager.Open(SubUIConfig.ItemView,grid.transform)
itemList[root][i].gameObject:SetActive(false)
end
2023-06-07 11:36:53 +08:00
itemList[root][i]:OnOpen(false, data.Reward[i], 0.9,false,false,false,sortingOrder)
2023-06-06 15:57:53 +08:00
itemList[root][i].gameObject:SetActive(true)
end
2023-06-07 11:36:53 +08:00
-- if data.state==0 then
-- -- goText.text="已领取"
-- mask:GetComponent("Image").sprite = this.spLoader: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
2023-06-06 15:57:53 +08:00
2023-06-07 11:36:53 +08:00
-- Util.AddOnceClick(goBtn,function()
-- this:ClosePanel()
-- if data.jump and data.jump > 0 then
-- JumpManager.GoJump(data.jump)
-- end
-- 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)
2023-06-06 15:57:53 +08:00
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 = this.spLoader:LoadSprite("g_ghhb_weidacheng_zh")
elseif data.state==1 then
mask:GetComponent("Image").sprite = this.spLoader: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