miduo_client/Assets/ManagedResources/~Lua/Modules/Guild/DeathPos/DeathPosRewardPopup.lua

173 lines
6.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

----- 公会十绝阵奖励弹窗 -----
require("Base/BasePanel")
local DeathPosRewardPopup = Inherit(BasePanel)
local this = DeathPosRewardPopup
local itemViewList={}
local tempData={}
function DeathPosRewardPopup:InitComponent()
this.spLoader = SpriteLoader.New()
this.panel=Util.GetGameObject(this.gameObject,"Panel")
this.backBtn=Util.GetGameObject(this.panel,"BackBtn")
Util.GetGameObject(this.panel,"Title"):GetComponent("Text").text="地盘争夺奖励宝箱"
Util.GetGameObject(this.panel,"Bg/Tip"):GetComponent("Text").text="宝箱在地盘争夺结束后产生每个成员可开启1次试试手气吧"
this.scroll=Util.GetGameObject(this.panel,"Scroll")
this.pre=Util.GetGameObject(this.scroll,"Pre")
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,3,Vector2.New(10,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.empty=Util.GetGameObject(this.panel,"Empty")
this.timeTip=Util.GetGameObject(this.panel,"TimeTip"):GetComponent("Text")
end
function DeathPosRewardPopup:BindEvent()
Util.AddClick(this.backBtn,function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
end
function DeathPosRewardPopup:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Guild.RefreshDeathPosStatus, this.RefreshPanel)
Game.GlobalEvent:AddEvent(GameEvent.Guild.RefreshDeathPosReward, this.SetIndicationData)
end
function DeathPosRewardPopup:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Guild.RefreshDeathPosStatus, this.RefreshPanel)
Game.GlobalEvent:RemoveEvent(GameEvent.Guild.RefreshDeathPosReward, this.SetIndicationData)
end
function DeathPosRewardPopup:OnOpen(...)
this.SetIndicationData()
end
function DeathPosRewardPopup:OnShow()
if DeathPosManager.status==DeathPosStatus.Close then
this:ClosePanel()
return
end
if DeathPosManager.status== DeathPosStatus.Fight then
return
end
this.empty:SetActive(false)
this.timeTip.gameObject:SetActive(DeathPosManager.status==DeathPosStatus.Reward)
NetManager.GetAllDeathPathRewardInfoResponse(function(msg)
DeathPosManager.SetRewardData(msg.info)
this.RefreshPanel(DeathPosManager.GetRewardData(),false)
end)
end
function DeathPosRewardPopup:OnClose()
tempData={}
CheckRedPointStatus(RedPointType.Guild_DeathPos)
end
function DeathPosRewardPopup:OnDestroy()
this.spLoader:Destroy()
this.scrollView=nil
end
--其他玩家点击领取奖励的indication推送
function this.SetIndicationData()
local data=DeathPosManager.GetDoRewardData()
this.RefreshPanel(data,true)
end
--刷新面板 isI 是否是Indication推送
function this.RefreshPanel(data,isI)
LogRed("刷新面板")
this.timeTip.text=DeathPosManager.rewardTimeTip
if isI then --indication推送 只翻牌单一数据
for i = 1, #tempData do
if tempData[i].position==data.position then
tempData[i]=data
end
end
else --上来主动获取数据
for i = 1, #data do
Log("uid "..data[i].uid.." itemId "..data[i].itemId.." itemCount "..data[i].itemCount.." position "..data[i].position.." username "..data[i].username)
local isHave = false
for j=1, #data do
if data[j].position>0 and data[j].position==i then
-- if not data[j] then
isHave = true
table.insert(tempData,data[j])
-- end
end
end
if not isHave then
table.insert(tempData,{uid=0,username = "",position=i})
end
end
end
DeathPosManager.SetMyRewardData(tempData)
this.scrollView:SetData(tempData,function(index,root)
this.SetScrollPre(root,tempData[index],index)
end)
this.scrollView:SetIndex(1)
this.empty:SetActive(#tempData <= 0)
end
--设置每个预设
function this.SetScrollPre(root,data,index)
local itemRoot=Util.GetGameObject(root,"Root")
local lock=Util.GetGameObject(itemRoot,"Lock")
local name=Util.GetGameObject(root,"Name"):GetComponent("Text")
local btn=Util.GetGameObject(root,"Bg")
if data.username~="" then
LogBlue("uid "..data.uid.." itemId "..data.itemId.." itemCount "..data.itemCount.." position "..data.position.." username "..data.username)
else
LogBlue("uid "..data.uid.." position "..data.position.." username "..data.username)
end
lock:SetActive(data.username=="")
if data.username=="" then
name.text=Language[11033]
else
name.text=data.uid==PlayerManager.uid and "<color=#FF8345>"..data.username.."</color>" or "<color=#FFBB62>"..data.username.."</color>"
end
name.text=data.username=="" and Language[11034] or data.username
btn:GetComponent("Button").interactable=data.username==""
Util.AddOnceClick(btn,function()
if DeathPosManager.GetIsGeted(tempData) then
PopupTipPanel.ShowTip(Language[11035])
return
end
if DeathPosManager.GetIsTakeIn()==false then
PopupTipPanel.ShowTip(Language[11036])
return
end
NetManager.DoRewardDeathPathRequest(index,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1, function()
-- this.RefreshPanel()
LogRed("msg.drop"..#msg.drop)
end)
end)
end)
if data.username=="" then
if itemViewList[root] then
itemViewList[root].gameObject:SetActive(false)
end
return
end
if not itemViewList[root] then
itemViewList[root]=SubUIManager.Open(SubUIConfig.ItemView,itemRoot.transform)
end
itemViewList[root]:OnOpen(false,{data.itemId,data.itemCount},1.1,false,false,false)
itemViewList[root].gameObject:SetActive(true)
if data.username then
name.text=data.username
end
end
return DeathPosRewardPopup