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,
|
|
|
|
|
}
|
|
|
|
|
--刷新
|
2023-06-13 18:46:34 +08:00
|
|
|
|
local actId=0
|
|
|
|
|
local actconfigs
|
2023-06-06 15:57:53 +08:00
|
|
|
|
function this.RefreshPanel(isTop,isAni)
|
2023-06-07 11:36:53 +08:00
|
|
|
|
LogError("type============="..type)
|
2023-06-13 18:46:34 +08:00
|
|
|
|
-- local configs=ConfigManager.TryGetAllConfigsDataByKey(ConfigName.WishConfig,"LotteryType",type)
|
|
|
|
|
-- table.sort(configs,function(a,b)
|
|
|
|
|
-- return a.Id < b.Id
|
|
|
|
|
-- end)
|
|
|
|
|
|
2023-06-07 11:36:53 +08:00
|
|
|
|
if type==1 then
|
2023-12-07 01:11:27 +08:00
|
|
|
|
this.title.text = "英雄心愿奖励"
|
2023-06-13 18:46:34 +08:00
|
|
|
|
actId=11701
|
2023-06-07 11:36:53 +08:00
|
|
|
|
elseif type==4 then
|
2023-12-08 21:57:53 +08:00
|
|
|
|
this.title.text = "生命卡心愿奖励"
|
2023-06-13 18:46:34 +08:00
|
|
|
|
actId=11901
|
2023-06-06 15:57:53 +08:00
|
|
|
|
end
|
2023-06-13 18:46:34 +08:00
|
|
|
|
actconfigs=ActivityGiftManager.GetActivityInfoByType(actId)
|
|
|
|
|
--LogError("len================="..#actconfigs)
|
|
|
|
|
table.sort(actconfigs.mission,function(a,b)
|
2023-08-29 17:58:24 +08:00
|
|
|
|
if a.state==b.state then
|
|
|
|
|
return a.missionId < b.missionId
|
|
|
|
|
else
|
|
|
|
|
return a.state < b.state
|
|
|
|
|
end
|
|
|
|
|
|
2023-06-13 18:46:34 +08:00
|
|
|
|
end)
|
|
|
|
|
scrollView:SetData(actconfigs.mission,function(index,root)
|
|
|
|
|
this.SetScrollPre(root,actconfigs.mission[index])
|
|
|
|
|
end,not isTop,not isAni)
|
|
|
|
|
|
2023-06-07 11:36:53 +08:00
|
|
|
|
|
2023-06-06 15:57:53 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--设置每条数据
|
|
|
|
|
function this.SetScrollPre(root,data)
|
2023-06-13 18:46:34 +08:00
|
|
|
|
local wishData=ConfigManager.GetConfigData(ConfigName.WishConfig, data.missionId)
|
2023-06-06 15:57:53 +08:00
|
|
|
|
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-13 18:46:34 +08:00
|
|
|
|
local goText=Util.GetGameObject(root,"GetBtn/Text"):GetComponent("Text")
|
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-13 18:46:34 +08:00
|
|
|
|
info.text="宝箱"..wishData.Level.."级奖励,心愿概率提升为"..wishData.Weight/100 .."%"
|
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-13 18:46:34 +08:00
|
|
|
|
for i = 1 , #wishData.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-13 18:46:34 +08:00
|
|
|
|
itemList[root][i]:OnOpen(false, wishData.Reward[i], 0.9,false,false,false,sortingOrder)
|
2023-06-06 15:57:53 +08:00
|
|
|
|
itemList[root][i].gameObject:SetActive(true)
|
|
|
|
|
end
|
2023-08-29 17:58:24 +08:00
|
|
|
|
LogError("data.state=="..data.state)
|
2023-06-13 18:46:34 +08:00
|
|
|
|
if data.state==1 then
|
|
|
|
|
goText.text="已领取"
|
|
|
|
|
mask:GetComponent("Image").sprite = this.spLoader:LoadSprite("s_slbz_yilingqu_zh")
|
|
|
|
|
mask:SetActive(true)
|
|
|
|
|
goBtn:SetActive(false)
|
|
|
|
|
getBtn:SetActive(false)
|
|
|
|
|
else
|
2023-08-29 17:58:24 +08:00
|
|
|
|
if RecruitManager.drawTimes[type] and RecruitManager.drawTimes[type]>=wishData.DrawCardNumber then
|
2023-06-13 18:46:34 +08:00
|
|
|
|
goText.text="领取"
|
|
|
|
|
mask:SetActive(false)
|
|
|
|
|
goBtn:SetActive(false)
|
|
|
|
|
getBtn:SetActive(true)
|
|
|
|
|
else
|
|
|
|
|
goText.text="前往"
|
|
|
|
|
mask:SetActive(false)
|
|
|
|
|
goBtn:SetActive(true)
|
|
|
|
|
getBtn:SetActive(false)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
ActivityGiftManager.GetActivityRewardRequest(actId,data.missionId,function()
|
|
|
|
|
mask:SetActive(true)
|
|
|
|
|
getBtn:SetActive(false)
|
|
|
|
|
this.ChangeState(data.missionId)
|
|
|
|
|
this.RefreshPanel(false,false)
|
|
|
|
|
end)
|
|
|
|
|
end)
|
2023-06-06 15:57:53 +08:00
|
|
|
|
end
|
|
|
|
|
|
2023-06-13 18:46:34 +08:00
|
|
|
|
|
2023-06-06 15:57:53 +08:00
|
|
|
|
--设置每条数据
|
|
|
|
|
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)
|
2023-06-13 18:46:34 +08:00
|
|
|
|
for k,v in ipairs(actconfigs) do
|
|
|
|
|
if v.missionId == id then
|
2023-06-06 15:57:53 +08:00
|
|
|
|
v.state = 0
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return TrialRewardPopup
|