sk-client/Assets/ManagedResources/~Lua/Modules/ChongBang/RankPanel.lua

220 lines
7.0 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.

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