miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/ActivityDetail.lua

161 lines
5.7 KiB
Lua
Raw Normal View History

2020-06-28 17:48:49 +08:00
local ActivityDetail= quick_class("ActivityDetail")
local sortingOrder = 0
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local listUpPre={} --
local rate={}
2020-07-08 16:23:02 +08:00
local panelType
local detailText={
[1] = HELP_TYPE.TimeLimitedCall,
[2] = HELP_TYPE.QianKunBox,
}
2020-06-28 17:48:49 +08:00
2020-07-08 16:23:02 +08:00
function ActivityDetail:ctor(gameObject,type)
2020-06-28 17:48:49 +08:00
self.gameObject = gameObject
2020-07-08 16:23:02 +08:00
panelType = type
2020-06-28 17:48:49 +08:00
self:InitComponent(gameObject)
self:BindEvent()
self:OnShow()
2020-07-08 16:23:02 +08:00
2020-06-28 17:48:49 +08:00
end
function ActivityDetail:InitComponent(gameObject)
self.closeBtn=Util.GetGameObject(self.gameObject,"close")
self.itemGrid=Util.GetGameObject(self.gameObject,"panel/itemGrid")
self.LookDetailBtn=Util.GetGameObject(self.gameObject,"panel/Image3/updetail")
self.content=Util.GetGameObject(self.gameObject,"panel/content/Text"):GetComponent("Text")
self.time=Util.GetGameObject(self.gameObject,"tip"):GetComponent("Text")
self.rateGrid=Util.GetGameObject(self.gameObject,"panel/rate")
end
function ActivityDetail:BindEvent()
Util.AddClick(self.closeBtn.gameObject,function() self:OnHide() end)
Util.AddClick(self.LookDetailBtn.gameObject,function() self:LookDetailBtnAction() end)
end
function ActivityDetail:OnShow()
self.gameObject:SetActive(true)
2020-07-08 16:23:02 +08:00
-- LogRed(panelType)
-- LogYellow(detailText[panelType])
local str=ConfigManager.TryGetConfigData(ConfigName.QAConfig,detailText[panelType]).content--内容详情可以复用
2020-06-28 17:52:29 +08:00
str = string.gsub(str,"{","<color=#D48A07>")
str = string.gsub(str,"}","</color>")
str = string.gsub(str,"|","\n")--换行
self.content.text= str
2020-07-08 16:23:02 +08:00
local str2
--判断抽取的类型
if panelType == 1 then--破阵诛仙
self:ReFreshUpHero()
self:RefreshHeroRate()
str2=ActivityGiftManager.GetTimeStartToEnd(ActivityTypeDef.FindFairy)
elseif panelType==2 then--乾坤包囊
self:ReFreshUpSoulPrint()
str2=ActivityGiftManager.GetTimeStartToEnd(ActivityTypeDef.FindFairy)
end
2020-06-28 17:48:49 +08:00
2020-07-08 16:23:02 +08:00
self.time.text=Language[12170]..str2
end
--============================乾坤包囊功能======================================
function ActivityDetail:ReFreshUpSoulPrint()
end
--============================破阵诛仙功能======================================
2020-06-28 17:48:49 +08:00
function ActivityDetail:ReFreshUpHero()
local UpHero=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.TIME_LIMITED_UP)
if(not listUpPre) then
listUpPre={}
end
if(not rate) then
rate={}
end
for n,m in ipairs(UpHero) do
if m then
2020-06-28 17:52:29 +08:00
if not listUpPre[n] then
2020-06-28 17:48:49 +08:00
listUpPre[n] = SubUIManager.Open(SubUIConfig.ItemView,self.itemGrid.transform)
end
2020-06-28 17:52:29 +08:00
listUpPre[n]:OnOpen(false, {m.Reward[1], m.Reward[2]}, 1.1, true)
2020-07-08 16:23:02 +08:00
local weight = self:ReculateUpHeroRate(m.Reward[1])
2020-06-28 17:52:29 +08:00
local tempName = listUpPre[n].name:GetComponent("Text").text
listUpPre[n].name:GetComponent("Text").text="<color=#EDB64C>"..string.format("%.2f", (weight/100000)*100) .."%</color>"
listUpPre[n].gameObject:SetActive(true)
table.insert(rate,{tag=Language[12171],name=tempName,value=weight})
2020-06-28 17:48:49 +08:00
end
end
end
2020-07-08 16:23:02 +08:00
function ActivityDetail:ReculateUpHeroRate(id)
2020-06-28 17:52:29 +08:00
local Hero=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.TIME_LIMITED)
for n,m in ipairs(Hero) do
if m and id==m.Reward[1] then
return m.Weight
end
end
return 0
end
2020-07-08 16:23:02 +08:00
function ActivityDetail:RefreshHeroRate()
2020-06-28 17:48:49 +08:00
local list3={}
local list4={}
local list5={}
local list2={}
local hero=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.TIME_LIMITED)
for index, v in ipairs(hero) do
if itemConfig[v.Reward[1]].HeroStar[2]==3 then
table.insert(list3,v)
elseif itemConfig[v.Reward[1]].HeroStar[2]==4 then
table.insert(list4,v)
elseif itemConfig[v.Reward[1]].HeroStar[2]==5 then
table.insert(list5,v)
elseif itemConfig[v.Reward[1]].HeroStar[2]==2 then
table.insert(list2,v)
end
end
table.insert(rate,{tag=Language[12173],name=Language[12174],value=self:ReculateRate(list5)})
table.insert(rate,{tag=Language[12175],name=Language[12176],value=self:ReculateRate(list4)})
table.insert(rate,{tag=Language[12177],name=Language[12178],value=self:ReculateRate(list3)})
table.insert(rate,{tag=Language[12179],name=Language[12180],value=self:ReculateRate(list2)})
for n,m in ipairs(rate) do
if m and m.value>0 then
local o=Util.GetGameObject(self.gameObject,"panel/rate/rateprefab"..n)
if not o then
else
o.gameObject:SetActive(true)
Util.GetGameObject(o.gameObject,"star"):GetComponent("Text") .text=m.tag
Util.GetGameObject(o.gameObject,"name"):GetComponent("Text") .text=m.name
Util.GetGameObject(o.gameObject,"rate"):GetComponent("Text") .text=string.format("%.2f",(m.value/100000)*100).."%"
end
end
end
end
2020-07-08 16:23:02 +08:00
--通用计算权重功能
2020-06-28 17:48:49 +08:00
function ActivityDetail:ReculateRate(list)
local weight=0
for index, v in ipairs(list) do
weight=v.Weight+weight
end
return weight
end
function ActivityDetail:LookDetailBtnAction()
UIManager.OpenPanel(UIName.HeroPreviewPanel,true,false)
end
function ActivityDetail:OnHide()
self.gameObject:SetActive(false)
for n,m in ipairs(rate) do
if not rate[n] then
local o=Util.GetGameObject(self.gameObject,"panel/rate/rateprefab"..n)
o.gameObject.SetActive(false)
end
end
rate={}
end
function ActivityDetail:OnDestroy()
listUpPre=nil
rate=nil
end
return ActivityDetail