miduo_client/Assets/ManagedResources/~Lua/Modules/Carbon/XuanYuanMirrorRankPopup.lua

125 lines
4.8 KiB
Lua

----- 公会十绝阵排行弹窗 -----
require("Base/BasePanel")
local XuanYuanMirrorRankPopup = Inherit(BasePanel)
local this = XuanYuanMirrorRankPopup
function XuanYuanMirrorRankPopup:InitComponent()
this.spLoader = SpriteLoader.New()
this.panel=Util.GetGameObject(this.gameObject,"Panel")
this.backBtn=Util.GetGameObject(this.panel,"BackBtn")
this.rankScroll=Util.GetGameObject(this.panel,"Scroll/Root")
this.rankPre=Util.GetGameObject(this.panel,"Scroll/Root/Pre")
this.scrollView=SubUIManager.Open(SubUIConfig.ScrollCycleView,this.rankScroll.transform,this.rankPre, nil,
Vector2.New(this.rankScroll.transform.rect.width,this.rankScroll.transform.rect.height),1,1,Vector2.New(0,10))
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.mRRank=Util.GetGameObject(this.panel,"MyInfo")
this.mRName=Util.GetGameObject(this.mRRank,"Grid/Name"):GetComponent("Text")
this.mRNum=Util.GetGameObject(this.mRRank,"Grid/Num"):GetComponent("Text")
this.empty=Util.GetGameObject(this.panel,"Scroll/Empty")
end
function XuanYuanMirrorRankPopup:BindEvent()
Util.AddClick(this.backBtn,function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
end
function XuanYuanMirrorRankPopup:OnOpen(...)
end
function XuanYuanMirrorRankPopup:OnShow()
this.RefreshRank()
end
function XuanYuanMirrorRankPopup:OnClose()
this.empty:SetActive(false)
end
function XuanYuanMirrorRankPopup:OnDestroy()
this.spLoader:Destroy()
this.scrollView=nil
end
--刷新排行榜 index当前排行类型索引
function this.RefreshRank()
-- NetManager.RequestRankInfo(RANK_TYPE.XUANYUANMIRROR_RANK,function(msg)
-- this.empty:SetActive(#msg.ranks <= 0)
-- for i=1,#msg.ranks do
-- --LogGreen("msg.ranks[i].userName:"..msg.ranks[i].userName.."msg.ranks[i].rankInfo.rank:"..msg.ranks[i].rankInfo.rank.."msg.ranks[i].rankInfo.param1:"..msg.ranks[i].rankInfo.param1)
-- end
-- --LogGreen("msg.myRankInfo:"..PlayerManager.nickName.."msg.myRankInfo.rank:"..msg.myRankInfo.rank.."msg.myRankInfo.param1:"..msg.myRankInfo.param1)
-- this.scrollView:SetData(msg.ranks,function(index,root)
-- this.SetScrollPre(root,msg.ranks[index])
-- end)
-- this.scrollView:SetIndex(1)
-- this.mRRank.gameObject:SetActive((not msg.myRankInfo) or msg.myRankInfo.rank~=-1)
-- if msg.myRankInfo and msg.myRankInfo.rank ~= -1 then
-- this.SetMyRank(msg.myRankInfo)
-- end
-- end)
RankingManager.InitData(RANK_TYPE.XUANYUANMIRROR_RANK,function()
local ranks,myRankInfo = RankingManager.GetRankingInfo()
this.empty:SetActive(#ranks <= 0)
this.SetScrollView(ranks)
this.scrollView:SetIndex(1)
this.mRRank.gameObject:SetActive((not myRankInfo) or myRankInfo.rank~=-1)
if myRankInfo and myRankInfo.rank ~= -1 then
this.SetMyRank(myRankInfo)
end
end,nil,1)
end
function this.SetScrollView(ranks)
this.scrollView:SetData(ranks,function(index,root)
this.SetScrollPre(root,ranks[index])
if index==#ranks then
RankingManager.RequestNextWarPowerPageData(function()
local ranks,myRankInfo = RankingManager.GetRankingInfo()
this.SetScrollView(ranks)
end)
end
end)
end
--设置每条数据
function this.SetScrollPre(root,data)
local name=Util.GetGameObject(root,"Grid/Name"):GetComponent("Text")
local num=Util.GetGameObject(root,"Grid/Num"):GetComponent("Text")
this.SetRankingNum(root,data.rankInfo.rank,false)
name.text=data.userName
num.text=data.rankInfo.param1
end
--设置我的名次
function this.SetMyRank(data,curRankType)
this.SetRankingNum(this.mRRank,data.rank,true)
this.mRName.text = PlayerManager.nickName
this.mRNum.text = data.param1
end
--设置名次 isMy 是否是设置我的名次
function this.SetRankingNum(root,rank,isMy)
local sortNumTabs={}
for i = 1, 4 do
sortNumTabs[i]=Util.GetGameObject(root,"SortNum/SortNum ("..i..")")
sortNumTabs[i]:SetActive(false)
end
if rank < 4 then
sortNumTabs[rank]:SetActive(true)
else
sortNumTabs[4]:SetActive(true)
if rank > 100 and isMy then
rank="100+"
end
Util.GetGameObject(sortNumTabs[4], "TitleText"):GetComponent("Text").text = rank
end
end
return XuanYuanMirrorRankPopup