2020-08-25 15:46:38 +08:00
|
|
|
|
local ActivityDetail= quick_class("ActivityDetail")
|
2020-06-28 17:48:49 +08:00
|
|
|
|
local sortingOrder = 0
|
|
|
|
|
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
|
2020-07-08 21:09:45 +08:00
|
|
|
|
local listUpPre={} --限时召唤
|
2020-06-28 17:48:49 +08:00
|
|
|
|
local rate={}
|
2020-07-08 21:09:45 +08:00
|
|
|
|
local listSoulUpPre={} --魂印
|
|
|
|
|
local soulRate={}
|
|
|
|
|
|
2020-11-12 17:11:18 +08:00
|
|
|
|
local listMonsterUpPre={} --灵兽
|
|
|
|
|
local monsterRate={}
|
|
|
|
|
local mainMonsterRate=0
|
|
|
|
|
|
2020-12-23 10:34:47 +08:00
|
|
|
|
local listNewHeroUpPre={} --降妖夺宝
|
|
|
|
|
local newHeroRate={}
|
|
|
|
|
local mainNewHeroRate=0
|
|
|
|
|
|
2020-07-08 16:23:02 +08:00
|
|
|
|
local panelType
|
|
|
|
|
local detailText={
|
|
|
|
|
[1] = HELP_TYPE.TimeLimitedCall,
|
|
|
|
|
[2] = HELP_TYPE.QianKunBox,
|
2020-12-23 10:34:47 +08:00
|
|
|
|
[3] = HELP_TYPE.LingShouBaoGe,
|
|
|
|
|
[4] = HELP_TYPE.XiangYaoDuoBao,
|
2020-07-08 16:23:02 +08:00
|
|
|
|
}
|
2020-06-28 17:48:49 +08:00
|
|
|
|
|
2020-08-26 17:56:59 +08:00
|
|
|
|
function ActivityDetail:ctor(gameObject,type,effect)
|
2020-06-28 17:48:49 +08:00
|
|
|
|
self.gameObject = gameObject
|
2020-08-26 17:56:59 +08:00
|
|
|
|
if effect then
|
|
|
|
|
self.effect = effect
|
|
|
|
|
end
|
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")
|
2020-07-08 21:09:45 +08:00
|
|
|
|
self.content=Util.GetGameObject(self.gameObject,"panel/content/Text"):GetComponent("Text")
|
|
|
|
|
self.time=Util.GetGameObject(self.gameObject,"tip"):GetComponent("Text")
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ActivityDetail:BindEvent()
|
|
|
|
|
Util.AddClick(self.closeBtn.gameObject,function() self:OnHide() end)
|
2020-07-08 21:09:45 +08:00
|
|
|
|
Util.AddClick(self.LookDetailBtn.gameObject,function() self:LookDetailBtnAction() end)
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ActivityDetail:OnShow()
|
|
|
|
|
self.gameObject:SetActive(true)
|
2020-07-08 16:23:02 +08:00
|
|
|
|
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
|
|
|
|
|
--判断抽取的类型
|
2020-09-24 17:26:27 +08:00
|
|
|
|
if panelType == 1 then--限时召唤
|
2020-07-08 16:23:02 +08:00
|
|
|
|
self:ReFreshUpHero()
|
|
|
|
|
self:RefreshHeroRate()
|
|
|
|
|
str2=ActivityGiftManager.GetTimeStartToEnd(ActivityTypeDef.FindFairy)
|
|
|
|
|
elseif panelType==2 then--乾坤包囊
|
2020-07-08 21:09:45 +08:00
|
|
|
|
self:ReFreshUpSoul()
|
|
|
|
|
self:RefreshSoulRate()
|
2020-11-12 17:11:18 +08:00
|
|
|
|
str2=ActivityGiftManager.GetTimeStartToEnd(ActivityTypeDef.QianKunBox)
|
|
|
|
|
elseif panelType==3 then--灵兽宝阁
|
|
|
|
|
self:ReFreshUpMonster()
|
|
|
|
|
self:RefreshMonsterRate()
|
|
|
|
|
str2=ActivityGiftManager.GetTimeStartToEnd(ActivityTypeDef.LingShouBaoGe)
|
2020-12-23 10:34:47 +08:00
|
|
|
|
elseif panelType==4 then--降妖夺宝
|
|
|
|
|
self:ReFreshUpNewHero()
|
|
|
|
|
self:RefreshNewHeroRate()
|
|
|
|
|
str2=ActivityGiftManager.GetTimeStartToEnd(ActivityTypeDef.XiangYaoDuoBao)
|
2020-07-08 16:23:02 +08:00
|
|
|
|
end
|
2020-06-28 17:48:49 +08:00
|
|
|
|
|
2021-01-26 11:13:09 +08:00
|
|
|
|
self.time.text="概率有效期:"..str2
|
2020-07-08 16:23:02 +08:00
|
|
|
|
end
|
2020-12-23 10:34:47 +08:00
|
|
|
|
|
|
|
|
|
--============================降妖夺宝功能======================================
|
|
|
|
|
function ActivityDetail:ReFreshUpNewHero()
|
|
|
|
|
self.LookDetailBtn:SetActive(false)
|
|
|
|
|
local UpMonster=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.XIANG_YAO_UP)
|
|
|
|
|
local rewardData,showData,curScore = DynamicActivityManager.XiangYaoBuildData()
|
|
|
|
|
if(not listNewHeroUpPre) then
|
|
|
|
|
listNewHeroUpPre={}
|
|
|
|
|
end
|
|
|
|
|
if(not newHeroRate) then
|
|
|
|
|
newHeroRate={}
|
|
|
|
|
end
|
|
|
|
|
for n,m in ipairs(UpMonster) do
|
|
|
|
|
if m and m.Reward[1] == showData.monsterId then
|
|
|
|
|
if not listNewHeroUpPre[n] then
|
|
|
|
|
listNewHeroUpPre[n] = SubUIManager.Open(SubUIConfig.ItemView,self.itemGrid.transform)
|
|
|
|
|
end
|
|
|
|
|
listNewHeroUpPre[n]:OnOpen(false, {m.Reward[1], m.Reward[2]}, 1.1, true)
|
|
|
|
|
local weight = self:ReculateUpNewHeroRate(m.Reward[1])
|
|
|
|
|
local tempName = listNewHeroUpPre[n].name:GetComponent("Text").text
|
|
|
|
|
mainNewHeroRate = weight
|
|
|
|
|
listNewHeroUpPre[n].name:GetComponent("Text").text="<color=#EDB64C>"..string.format("%.2f", (weight/100000)*100) .."%</color>"
|
|
|
|
|
listNewHeroUpPre[n].gameObject:SetActive(true)
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(newHeroRate,{tag="魂印UP!",name=tempName,value=weight})
|
2020-12-23 10:34:47 +08:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--计算所有的比重
|
|
|
|
|
function ActivityDetail:ReculateUpNewHeroRate(id)
|
|
|
|
|
local UpMonster=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.XIANG_YAO_UP)
|
|
|
|
|
for n,m in ipairs(UpMonster) do
|
|
|
|
|
if m and id==m.Reward[1] then
|
|
|
|
|
return m.Weight
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ActivityDetail:RefreshNewHeroRate()
|
|
|
|
|
local list1={}
|
|
|
|
|
local list2={}
|
|
|
|
|
local list3={}
|
|
|
|
|
local monsterRateList={}
|
|
|
|
|
local allValue
|
|
|
|
|
|
|
|
|
|
local UpMonster=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.XIANG_YAO_UP)
|
|
|
|
|
for index, v in ipairs(UpMonster) do
|
|
|
|
|
if itemConfig[v.Reward[1]].HeroStar[2]==5 then
|
|
|
|
|
table.insert(list1,v)--五星应雄
|
|
|
|
|
elseif itemConfig[v.Reward[1]].HeroStar[2]==4 then
|
|
|
|
|
table.insert(list2,v)--四星应雄
|
|
|
|
|
elseif itemConfig[v.Reward[1]].HeroStar[2]==3 then
|
|
|
|
|
table.insert(list3,v)--三星应雄
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- LogGreen(self:ReculateRate(list1).." "..self:ReculateRate(list2).." "..self:ReculateRate(list3).." mainNewHeroRate:"..mainNewHeroRate)
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(monsterRateList,{tag="五星",name="其他五星英雄",value=self:ReculateRate(list1)-mainNewHeroRate})
|
|
|
|
|
table.insert(monsterRateList,{tag="四星",name="四星英雄",value=self:ReculateRate(list2)})
|
|
|
|
|
table.insert(monsterRateList,{tag="三星",name="三星英雄",value=self:ReculateRate(list3)})
|
2020-12-23 10:34:47 +08:00
|
|
|
|
allValue = self:ReculateRate(list1) + self:ReculateRate(list2) + self:ReculateRate(list3)
|
|
|
|
|
|
|
|
|
|
for n,m in ipairs(monsterRateList) do
|
|
|
|
|
if m and m.value>0 then
|
|
|
|
|
local o=Util.GetGameObject(self.gameObject,"panel/rate/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/allValue)*100).."%"
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
2020-11-12 17:11:18 +08:00
|
|
|
|
--============================灵兽宝阁功能======================================
|
|
|
|
|
function ActivityDetail:ReFreshUpMonster()
|
|
|
|
|
self.LookDetailBtn:SetActive(false)
|
|
|
|
|
local UpMonster=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.LING_SHOU_UP)
|
|
|
|
|
local rewardData,showData,curScore = DynamicActivityManager.LingShouBuildData()
|
|
|
|
|
if(not listMonsterUpPre) then
|
|
|
|
|
listMonsterUpPre={}
|
|
|
|
|
end
|
|
|
|
|
if(not monsterRate) then
|
|
|
|
|
monsterRate={}
|
|
|
|
|
end
|
|
|
|
|
for n,m in ipairs(UpMonster) do
|
|
|
|
|
if m and m.Reward[1] == showData.monsterId then
|
|
|
|
|
if not listMonsterUpPre[n] then
|
|
|
|
|
listMonsterUpPre[n] = SubUIManager.Open(SubUIConfig.ItemView,self.itemGrid.transform)
|
|
|
|
|
end
|
|
|
|
|
listMonsterUpPre[n]:OnOpen(false, {m.Reward[1], m.Reward[2]}, 1.1, true)
|
|
|
|
|
local weight = self:ReculateUpMonsterRate(m.Reward[1])
|
|
|
|
|
local tempName = listMonsterUpPre[n].name:GetComponent("Text").text
|
|
|
|
|
mainMonsterRate = weight
|
|
|
|
|
listMonsterUpPre[n].name:GetComponent("Text").text="<color=#EDB64C>"..string.format("%.2f", (weight/100000)*100) .."%</color>"
|
|
|
|
|
listMonsterUpPre[n].gameObject:SetActive(true)
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(monsterRate,{tag="魂印UP!",name=tempName,value=weight})
|
2020-11-12 17:11:18 +08:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--计算所有的比重
|
|
|
|
|
function ActivityDetail:ReculateUpMonsterRate(id)
|
|
|
|
|
local UpMonster=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.LING_SHOU_UP)
|
|
|
|
|
for n,m in ipairs(UpMonster) do
|
|
|
|
|
if m and id==m.Reward[1] then
|
|
|
|
|
return m.Weight
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ActivityDetail:RefreshMonsterRate()
|
|
|
|
|
local list1={}
|
|
|
|
|
local list2={}
|
|
|
|
|
local list3={}
|
|
|
|
|
local list4={}
|
|
|
|
|
local monsterRateList={}
|
|
|
|
|
|
|
|
|
|
local UpMonster=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.LING_SHOU_UP)
|
|
|
|
|
for index, v in ipairs(UpMonster) do
|
|
|
|
|
if itemConfig[v.Reward[1]].Quantity==5 and (itemConfig[v.Reward[1]].ItemType==22 or itemConfig[v.Reward[1]].ItemType==21) then
|
|
|
|
|
table.insert(list1,v)--金色灵兽碎片
|
|
|
|
|
elseif itemConfig[v.Reward[1]].Quantity==4 and (itemConfig[v.Reward[1]].ItemType==22 or itemConfig[v.Reward[1]].ItemType==21) then
|
|
|
|
|
table.insert(list2,v)--紫色灵兽碎片
|
|
|
|
|
elseif itemConfig[v.Reward[1]].Quantity==3 and (itemConfig[v.Reward[1]].ItemType==22 or itemConfig[v.Reward[1]].ItemType==21) then
|
|
|
|
|
table.insert(list3,v)--蓝色灵兽碎片
|
|
|
|
|
else
|
|
|
|
|
table.insert(list4,v)--其他
|
|
|
|
|
end
|
|
|
|
|
end
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(monsterRateList,{tag="金色",name="其他金色奖励",value=self:ReculateRate(list1)-mainMonsterRate})
|
|
|
|
|
table.insert(monsterRateList,{tag="紫色",name="紫色奖励",value=self:ReculateRate(list2)})
|
|
|
|
|
table.insert(monsterRateList,{tag="蓝色",name="蓝色奖励",value=self:ReculateRate(list3)})
|
|
|
|
|
table.insert(monsterRateList,{tag="其他",name="其他",value=self:ReculateRate(list4)})
|
2020-11-12 17:11:18 +08:00
|
|
|
|
|
|
|
|
|
for n,m in ipairs(monsterRateList) do
|
|
|
|
|
if m and m.value>0 then
|
|
|
|
|
local o=Util.GetGameObject(self.gameObject,"panel/rate/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-07-08 21:09:45 +08:00
|
|
|
|
function ActivityDetail:ReFreshUpSoul()
|
2020-07-23 19:05:43 +08:00
|
|
|
|
self.LookDetailBtn:SetActive(false)
|
2020-07-08 21:09:45 +08:00
|
|
|
|
local UpSoul=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.LOTTERY_SOUL_UP)
|
|
|
|
|
if(not listSoulUpPre) then
|
|
|
|
|
listSoulUpPre={}
|
|
|
|
|
end
|
|
|
|
|
if(not soulRate) then
|
|
|
|
|
soulRate={}
|
|
|
|
|
end
|
|
|
|
|
for n,m in ipairs(UpSoul) do
|
|
|
|
|
if m then
|
|
|
|
|
if not listSoulUpPre[n] then
|
|
|
|
|
listSoulUpPre[n] = SubUIManager.Open(SubUIConfig.ItemView,self.itemGrid.transform)
|
|
|
|
|
end
|
|
|
|
|
listSoulUpPre[n]:OnOpen(false, {m.Reward[1], m.Reward[2]}, 1.1, true)
|
|
|
|
|
local weight = self:ReculateUpSoulRate(m.Reward[1])
|
|
|
|
|
local tempName = listSoulUpPre[n].name:GetComponent("Text").text
|
|
|
|
|
listSoulUpPre[n].name:GetComponent("Text").text="<color=#EDB64C>"..string.format("%.2f", (weight/100000)*100) .."%</color>"
|
|
|
|
|
listSoulUpPre[n].gameObject:SetActive(true)
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(soulRate,{tag="魂印UP!",name=tempName,value=weight})
|
2020-07-08 21:09:45 +08:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
--计算所有的比重
|
|
|
|
|
function ActivityDetail:ReculateUpSoulRate(id)
|
|
|
|
|
local Soul=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.LOTTERY_SOUL)
|
|
|
|
|
for n,m in ipairs(Soul) do
|
|
|
|
|
if m and id==m.Reward[1] then
|
|
|
|
|
return m.Weight
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ActivityDetail:RefreshSoulRate()
|
|
|
|
|
local list4={}
|
|
|
|
|
local list5={}
|
|
|
|
|
local list6={}
|
|
|
|
|
local list7={}
|
|
|
|
|
|
|
|
|
|
local soul=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.LOTTERY_SOUL)
|
|
|
|
|
for index, v in ipairs(soul) do
|
|
|
|
|
if itemConfig[v.Reward[1]].Quantity==4 and itemConfig[v.Reward[1]].ItemType==13 then
|
2020-07-27 09:59:50 +08:00
|
|
|
|
table.insert(list4,v)--紫色
|
2020-07-08 21:09:45 +08:00
|
|
|
|
elseif itemConfig[v.Reward[1]].Quantity==5 and itemConfig[v.Reward[1]].ItemType==13 then
|
2020-07-27 09:59:50 +08:00
|
|
|
|
table.insert(list5,v)--金色
|
2020-07-08 21:09:45 +08:00
|
|
|
|
elseif itemConfig[v.Reward[1]].Quantity==6 and itemConfig[v.Reward[1]].ItemType==13 then
|
2020-07-27 09:59:50 +08:00
|
|
|
|
table.insert(list6,v)--红色
|
2020-07-08 21:09:45 +08:00
|
|
|
|
else
|
|
|
|
|
table.insert(list7,v)--其他
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(soulRate,{tag="红色",name="其他".."红色",value=self:ReculateRate(list6)-soulRate[1].value-soulRate[2].value-soulRate[3].value})
|
|
|
|
|
table.insert(soulRate,{tag="金色",name="金色",value=self:ReculateRate(list5)})
|
|
|
|
|
table.insert(soulRate,{tag="紫色",name="紫色",value=self:ReculateRate(list4)})
|
|
|
|
|
table.insert(soulRate,{tag="其他",name="其他",value=self:ReculateRate(list7)})
|
2020-07-08 21:09:45 +08:00
|
|
|
|
|
|
|
|
|
for n,m in ipairs(soulRate) do
|
|
|
|
|
if m and m.value>0 then
|
|
|
|
|
local o=Util.GetGameObject(self.gameObject,"panel/rate/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
|
|
|
|
|
|
2020-07-08 16:23:02 +08:00
|
|
|
|
end
|
2020-07-08 21:09:45 +08:00
|
|
|
|
|
2020-11-12 17:11:18 +08:00
|
|
|
|
--============================限时召唤功能======================================
|
2020-06-28 17:48:49 +08:00
|
|
|
|
function ActivityDetail:ReFreshUpHero()
|
2020-07-23 19:05:43 +08:00
|
|
|
|
self.LookDetailBtn:SetActive(true)
|
2020-06-28 17:48:49 +08:00
|
|
|
|
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
|
2020-07-08 21:09:45 +08:00
|
|
|
|
if m then
|
|
|
|
|
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>"
|
2020-07-08 21:09:45 +08:00
|
|
|
|
listUpPre[n].gameObject:SetActive(true)
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(rate,{tag="5星UP!",name=tempName,value=weight})
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
2020-07-08 21:09:45 +08:00
|
|
|
|
end
|
2020-06-28 17:48:49 +08:00
|
|
|
|
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
|
2020-07-08 21:09:45 +08:00
|
|
|
|
if m and id==m.Reward[1] then
|
2020-06-28 17:52:29 +08:00
|
|
|
|
return m.Weight
|
|
|
|
|
end
|
2020-07-08 21:09:45 +08:00
|
|
|
|
end
|
2020-06-28 17:52:29 +08:00
|
|
|
|
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={}
|
|
|
|
|
|
2020-07-08 21:09:45 +08:00
|
|
|
|
local hero=RecruitManager.GetRewardPreviewData(PRE_REWARD_POOL_TYPE.TIME_LIMITED)
|
2020-06-28 17:48:49 +08:00
|
|
|
|
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
|
|
|
|
|
|
2021-01-26 11:13:09 +08:00
|
|
|
|
table.insert(rate,{tag="5星",name="其他5星",value=self:ReculateRate(list5)-rate[1].value-rate[2].value-rate[3].value})
|
|
|
|
|
table.insert(rate,{tag="4星",name="4星神将",value=self:ReculateRate(list4)})
|
|
|
|
|
table.insert(rate,{tag="3星",name="3星神将",value=self:ReculateRate(list3)})
|
|
|
|
|
table.insert(rate,{tag="2星",name="2星神将",value=self:ReculateRate(list2)})
|
2020-06-28 17:48:49 +08:00
|
|
|
|
|
|
|
|
|
for n,m in ipairs(rate) do
|
|
|
|
|
if m and m.value>0 then
|
2020-07-08 21:09:45 +08:00
|
|
|
|
local o=Util.GetGameObject(self.gameObject,"panel/rate/rate/rateprefab"..n)
|
2020-06-28 17:48:49 +08:00
|
|
|
|
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()
|
2020-07-08 21:09:45 +08:00
|
|
|
|
if panelType == 1 then
|
|
|
|
|
UIManager.OpenPanel(UIName.HeroPreviewPanel,true,false)
|
|
|
|
|
elseif panelType ==2 then
|
2021-01-09 14:20:06 +08:00
|
|
|
|
LogPurple("打开魂印奖励预览")
|
2020-11-12 17:11:18 +08:00
|
|
|
|
elseif panelType ==3 then
|
2021-01-09 14:20:06 +08:00
|
|
|
|
LogPurple("打开魂印奖励预览")
|
2020-07-08 21:09:45 +08:00
|
|
|
|
end
|
|
|
|
|
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ActivityDetail:OnHide()
|
2020-07-08 21:09:45 +08:00
|
|
|
|
self.gameObject:SetActive(false)
|
2020-08-27 18:24:05 +08:00
|
|
|
|
if self.effect then
|
|
|
|
|
self.effect:SetActive(true)
|
|
|
|
|
end
|
2020-07-10 17:55:11 +08:00
|
|
|
|
if rate then
|
|
|
|
|
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
|
2020-07-08 21:09:45 +08:00
|
|
|
|
end
|
2020-07-10 17:55:11 +08:00
|
|
|
|
rate={}
|
2020-07-08 21:09:45 +08:00
|
|
|
|
end
|
2020-07-10 17:55:11 +08:00
|
|
|
|
|
|
|
|
|
if soulRate then
|
|
|
|
|
for n,m in ipairs(soulRate) do
|
|
|
|
|
if not soulRate[n] then
|
|
|
|
|
local o=Util.GetGameObject(self.gameObject,"panel/rate/rateprefab"..n)
|
|
|
|
|
o.gameObject.SetActive(false)
|
|
|
|
|
end
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
2020-07-10 17:55:11 +08:00
|
|
|
|
soulRate={}
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
2020-11-12 17:11:18 +08:00
|
|
|
|
|
|
|
|
|
if monsterRate then
|
|
|
|
|
for n,m in ipairs(monsterRate) do
|
|
|
|
|
if not monsterRate[n] then
|
|
|
|
|
local o=Util.GetGameObject(self.gameObject,"panel/rate/rateprefab"..n)
|
|
|
|
|
o.gameObject.SetActive(false)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
monsterRate={}
|
|
|
|
|
end
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
|
|
|
|
|
2020-07-08 21:09:45 +08:00
|
|
|
|
function ActivityDetail:OnDestroy()
|
2020-06-28 17:48:49 +08:00
|
|
|
|
listUpPre=nil
|
|
|
|
|
rate=nil
|
2020-07-08 21:09:45 +08:00
|
|
|
|
listSoulUpPre=nil
|
|
|
|
|
soulRate=nil
|
2020-11-12 17:11:18 +08:00
|
|
|
|
listMonsterUpPre=nil
|
|
|
|
|
monsterRate=nil
|
2020-12-23 10:34:47 +08:00
|
|
|
|
listNewHeroUpPre=nil
|
|
|
|
|
newHeroRate=nil
|
2020-06-28 17:48:49 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return ActivityDetail
|