220 lines
7.0 KiB
Lua
220 lines
7.0 KiB
Lua
RankPanel = quick_class("RankPanel")
|
||
local this = RankPanel
|
||
local AcitvityShowTheme = ConfigManager.GetConfig(ConfigName.AcitvityShowTheme)
|
||
local GlobalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
|
||
local mainLevelConfig = ConfigManager.GetConfig(ConfigName.MainLevelConfig)
|
||
|
||
local headList = {}
|
||
local activityId
|
||
local rewardList = {}
|
||
local titleTxt = {
|
||
[300] = GetLanguageStrById(50436),
|
||
[301] = GetLanguageStrById(50437),
|
||
[303] = GetLanguageStrById(50438),
|
||
[306] = GetLanguageStrById(50439),
|
||
[302] = GetLanguageStrById(50440),
|
||
[304] = GetLanguageStrById(50441),
|
||
[307] = GetLanguageStrById(50442),
|
||
[308] = GetLanguageStrById(50443),
|
||
[309] = GetLanguageStrById(50444),
|
||
[305] = GetLanguageStrById(50445),
|
||
}
|
||
local txt
|
||
local openType
|
||
function this:InitComponent(gameObject)
|
||
this.banner = Util.GetGameObject(gameObject, "banner"):GetComponent("Image")
|
||
this.expertDec = Util.GetGameObject(gameObject, "banner/Text"):GetComponent("Text")
|
||
this.firstReward = Util.GetGameObject(gameObject, "first/grid")
|
||
this.time = Util.GetGameObject(gameObject, "time/Text"):GetComponent("Text")
|
||
this.btnReward = Util.GetGameObject(gameObject, "btnReward")
|
||
this.scroll = Util.GetGameObject(gameObject, "scroll")
|
||
this.pro = Util.GetGameObject(gameObject, "scroll/pre")
|
||
local w = this.scroll.transform.rect.width
|
||
local h = this.scroll.transform.rect.height
|
||
this.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.scroll.transform, this.pro, nil,
|
||
Vector2.New(w, h), 1, 1, Vector2.New(0, 5))
|
||
this.scrollView.moveTween.MomentumAmount = 1
|
||
this.scrollView.moveTween.Strength = 2
|
||
this.myRank = Util.GetGameObject(gameObject, "myRank")
|
||
end
|
||
|
||
function this:BindEvent()
|
||
Util.AddClick(this.btnReward, function()
|
||
UIManager.OpenPanel(UIName.ExpertRewardSortPanel, activityId, 4)
|
||
end)
|
||
end
|
||
|
||
function this:AddListener()
|
||
end
|
||
|
||
function this:RemoveListener()
|
||
end
|
||
|
||
function this:OnOpen()
|
||
end
|
||
|
||
--[[
|
||
{
|
||
ranks = {
|
||
uid
|
||
level
|
||
head
|
||
userName
|
||
rankInfo
|
||
headFrame
|
||
guildName
|
||
force
|
||
guildSign
|
||
sex
|
||
likeNum
|
||
serverName
|
||
serverId
|
||
heroTemplateId
|
||
heroLevel
|
||
heroStar
|
||
}
|
||
}
|
||
]]
|
||
|
||
function this:OnShow(go, activeType, netIndex)
|
||
activityId = ActivityGiftManager.GetActivityIdByType(activeType)
|
||
txt = titleTxt[activeType]
|
||
openType = activeType
|
||
this.banner.sprite = Util.LoadSprite(GetPictureFont(AcitvityShowTheme[activeType].Compent))
|
||
this.expertDec.text = GetLanguageStrById(GlobalActivity[activeType].ExpertDec)
|
||
NetManager.RequestRankInfo(netIndex, function(msg)
|
||
this.rankDatas = msg.ranks
|
||
this.scrollView:SetData(this.rankDatas, function(index, go)
|
||
this.SetPlayerRank(go, this.rankDatas[index])
|
||
end)
|
||
this.SetMyRank(msg.myRankInfo, msg.myHeroTemplateId)
|
||
end, activityId)
|
||
this.SetFirstReward()
|
||
end
|
||
|
||
function this:OnSortingOrderChange()
|
||
end
|
||
|
||
function this:OnClose()
|
||
end
|
||
|
||
function this:OnDestroy()
|
||
headList = {}
|
||
rewardList = {}
|
||
end
|
||
|
||
function this.SetPlayerRank(go, data)
|
||
this.SetPro(go, {
|
||
rank = data.rankInfo.rank,
|
||
score = data.rankInfo.param1,
|
||
name = data.userName,
|
||
head = data.head,
|
||
hero = data.heroTemplateId,
|
||
frame = data.headFrame,
|
||
level = data.level,
|
||
uid = data.uid,
|
||
})
|
||
end
|
||
|
||
function this.SetMyRank(data,myHeroTemplateId)
|
||
this.SetPro(this.myRank, {
|
||
rank = data.rank,
|
||
score = data.param1,
|
||
hero = myHeroTemplateId,
|
||
name = PlayerManager.nickName,
|
||
head = PlayerManager.head,
|
||
frame = PlayerManager.frame,
|
||
level = PlayerManager.level,
|
||
uid = PlayerManager.uid,
|
||
})
|
||
end
|
||
|
||
function this.SetPro(go, data)
|
||
local bg = Util.GetGameObject(go, "bg"):GetComponent("Image")
|
||
local rank1 = Util.GetGameObject(go, "rank/rank1"):GetComponent("Image")
|
||
local rank2 = Util.GetGameObject(go, "rank/rank2")
|
||
local rank2Txt = Util.GetGameObject(go, "rank/rank2/Text"):GetComponent("Text")
|
||
local headpos = Util.GetGameObject(go, "headpos")
|
||
local name = Util.GetGameObject(go, "name"):GetComponent("Text")
|
||
local title = Util.GetGameObject(go, "title"):GetComponent("Text")
|
||
local value = Util.GetGameObject(go, "value"):GetComponent("Text")
|
||
local wangdian = Util.GetGameObject(go, "wangdian"):GetComponent("Image")
|
||
|
||
if data.rank > 0 and data.rank < 4 then
|
||
rank1.gameObject:SetActive(true)
|
||
rank2:SetActive(false)
|
||
rank1.sprite = SetRankNumFrame(data.rank)
|
||
else
|
||
rank1.gameObject:SetActive(false)
|
||
rank2:SetActive(true)
|
||
if data.rank < 1 then
|
||
rank2Txt.text = GetLanguageStrById(10041)
|
||
else
|
||
rank2Txt.text = data.rank
|
||
end
|
||
end
|
||
name.text = data.name
|
||
if data.score < 0 then data.score = 0 end
|
||
if openType == 300 and data.score > 0 then
|
||
value.text = mainLevelConfig[data.score].Name
|
||
else
|
||
value.text = data.score
|
||
end
|
||
title.text = txt
|
||
if not headList[go] then
|
||
headList[go] = SubUIManager.Open(SubUIConfig.PlayerHeadView, headpos.transform)
|
||
end
|
||
headList[go]:Reset()
|
||
headList[go]:SetScale(Vector3.one * 0.5)
|
||
LogError("开服冲榜herotemplateid:" .. data.hero)
|
||
if data.hero and data.hero ~= 0 and ConfigManager.GetConfigData(ConfigName.ItemConfig, data.hero) then
|
||
headList[go]:SetHead(nil, ConfigManager.GetConfigData(ConfigName.ItemConfig, data.hero).icon)
|
||
else
|
||
headList[go]:SetHead(data.head)
|
||
end
|
||
headList[go]:SetFrame(data.frame)
|
||
headList[go]:SetLevel(data.level)
|
||
headList[go]:SetUID(data.uid)
|
||
|
||
local spriteName, colorValue = this.GetBg(data.rank)
|
||
bg.sprite = Util.LoadSprite(spriteName)
|
||
wangdian.color = colorValue
|
||
end
|
||
|
||
function this.GetBg(rank)
|
||
local spriteName
|
||
local colorValue
|
||
if rank == 1 then
|
||
spriteName = "X1_tongyong_liebiao_02"
|
||
colorValue = Color.New(1, 0.7764706, 0.1568628, 1)
|
||
elseif rank == 2 then
|
||
spriteName = "X1_tongyong_liebiao_03"
|
||
colorValue = Color.New(1, 0.6627451, 0.3607843, 1)
|
||
elseif rank == 3 then
|
||
spriteName = "X1_tongyong_liebiao_04"
|
||
colorValue = Color.New(1, 0.6117647, 0.5803922, 1)
|
||
else
|
||
spriteName = "X1_tongyong_liebiao_05"
|
||
colorValue = Color.New(0.7803922, 0.5529412, 0.9960784, 1)
|
||
end
|
||
return spriteName, colorValue
|
||
end
|
||
|
||
function this.SetFirstReward()
|
||
local config = ConfigManager.GetConfigDataByDoubleKey(ConfigName.ActivityRankingReward, "ActivityId", activityId,
|
||
"MinRank", 1)
|
||
LogError("activityId:" .. activityId)
|
||
for i = 1, #rewardList do
|
||
rewardList[i].gameObject:SetActive(false)
|
||
end
|
||
for i = 1, #config.RankingReward do
|
||
if not rewardList[i] then
|
||
rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, this.firstReward.transform)
|
||
end
|
||
rewardList[i]:OnOpen(false, config.RankingReward[i], 0.55)
|
||
rewardList[i].gameObject:SetActive(true)
|
||
end
|
||
end
|
||
|
||
return RankPanel
|