miduo_client/Assets/ManagedResources/~Lua/Modules/GeneralPanel/GeneralRankRewardPanel.lua

138 lines
5.1 KiB
Lua
Raw Normal View History

require("Base/BasePanel")
GeneralRankRewardPanel = Inherit(BasePanel)
local this = GeneralRankRewardPanel
local RewardList
local GloActConfig = ConfigManager.GetConfig(ConfigName.GlobalActivity)
local RewardConfig
local itemList = {}--优化itemView使用
local sorting = 0
local ConfigList = {
[1] = ConfigManager.GetConfig(ConfigName.ActivityRankingReward),
[ActivityTypeDef.Celebration] = ConfigManager.GetConfig(ConfigName.GodSacrificeConfig),
}
--初始化组件(用于子类重写)
function GeneralRankRewardPanel:InitComponent()
this.btnBack = Util.GetGameObject(self.gameObject, "btnBack")
this.Title = Util.GetGameObject(self.gameObject, "Title"):GetComponent("Text")
this.tipText = Util.GetGameObject(self.gameObject, "content1/tipText"):GetComponent("Text")
this.myRank = Util.GetGameObject(self.gameObject, "content1/myRank")
this.myRankNum = Util.GetGameObject(self.gameObject, "content1/myRank/num"):GetComponent("Text")
local v2 = Util.GetGameObject(self.gameObject, "content1/scrollRect"):GetComponent("RectTransform").rect
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(self.gameObject, "content1/scrollRect").transform,
Util.GetGameObject(self.gameObject, "content1/itemPre"), nil, Vector2.New(-v2.x*2, -v2.y*2), 1, 1, Vector2.New(10,10))
this.ScrollView.moveTween.MomentumAmount = 1
this.ScrollView.moveTween.Strength = 1
end
--绑定事件(用于子类重写)
function GeneralRankRewardPanel:BindEvent()
Util.AddClick(self.btnBack, function()
self:ClosePanel()
end)
end
--添加事件监听(用于子类重写)
function GeneralRankRewardPanel:AddListener()
end
--移除事件监听(用于子类重写)
function GeneralRankRewardPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
function GeneralRankRewardPanel:OnOpen(ActivityId,myRank)
if ConfigList[GloActConfig[ActivityId].Type] then
RewardConfig = ConfigList[GloActConfig[ActivityId].Type]
else
RewardConfig = ConfigList[1]
end
this.ShowRewardInfo(ActivityId)
this.SetMyRank(myRank)
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function GeneralRankRewardPanel:OnShow()
end
function GeneralRankRewardPanel:OnSortingOrderChange()
for i, v in pairs(itemList) do
for j = 1, #v do
v[j]:SetEffectLayer(self.sortingOrder)
end
end
sorting = self.sortingOrder
end
function this.SetMyRank(myRank)
if myRank and myRank > 0 then
this.myRank:SetActive(true)
this.myRankNum.text = Language[10104]..myRank
else
this.myRank:SetActive(false)
end
end
function this.ShowRewardInfo(ActivityId)
RewardList = {}
--guildCheckpointRank
for _, configInfo in ConfigPairs(RewardConfig) do
if configInfo.ActivityId == ActivityId then
table.insert(RewardList,configInfo)
end
end
this.ScrollView:SetData(RewardList, function (index, go)
this.ActivityRewardSingleShow(go, RewardList[index],index)
end)
end
--排名奖励2
function this.ActivityRewardSingleShow(activityRewardGo,rewardData,index)
local sortNumTabs = {}
for i = 1, 4 do
sortNumTabs[i] = Util.GetGameObject(activityRewardGo, "sortNum/sortNum ("..i..")")
sortNumTabs[i]:SetActive(false)
end
if rewardData.MaxRank == rewardData.MinRank then
if rewardData.MinRank < 4 then
sortNumTabs[ rewardData.MaxRank]:SetActive(true)
else
sortNumTabs[4]:SetActive(true)
Util.GetGameObject(sortNumTabs[4], "rankNumberText"):GetComponent("Text").text = rewardData.MinRank
end
else
sortNumTabs[4]:SetActive(true)
if rewardData.MaxRank > 100 then
Util.GetGameObject(sortNumTabs[4], "rankNumberText"):GetComponent("Text").text =rewardData.MinRank-1 .."+"
else
Util.GetGameObject(sortNumTabs[4], "rankNumberText"):GetComponent("Text").text =rewardData.MinRank .."-".. rewardData.MaxRank
end
end
if not itemList[activityRewardGo.name] then
itemList[activityRewardGo.name] = {}
end
for i = 1, #itemList[activityRewardGo.name] do
itemList[activityRewardGo.name][i].gameObject:SetActive(false)
end
for i = 1, #rewardData.RankingReward do
if itemList[activityRewardGo.name][i] then
itemList[activityRewardGo.name][i]:OnOpen(false, rewardData.RankingReward[i], 0.75,false,false,false,sorting)
else
itemList[activityRewardGo.name][i] = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(activityRewardGo, "content").transform)
itemList[activityRewardGo.name][i]:OnOpen(false, rewardData.RankingReward[i], 0.75,false,false,false,sorting)
end
itemList[activityRewardGo.name][i].gameObject:SetActive(true)
end
end
--界面关闭时调用(用于子类重写)
function GeneralRankRewardPanel:OnClose()
end
--界面销毁时调用(用于子类重写)
function GeneralRankRewardPanel:OnDestroy()
itemList = {}
end
return GeneralRankRewardPanel