RecruitEquipPanelNew = {}
function RecruitEquipPanelNew:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = RecruitEquipPanelNew })
return b
end
local gameSetting = ConfigManager.GetConfig(ConfigName.GameSetting)
local AllActSetConfig = ConfigManager.GetConfig(ConfigName.GlobalSystemConfig)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local artResourcesConfig =ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
local lotterySetting=ConfigManager.GetConfig(ConfigName.LotterySetting)
local privilegeConfig=ConfigManager.GetConfig(ConfigName.PrivilegeTypeConfig)
local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
local wishConfig=ConfigManager.GetConfig(ConfigName.WishConfig)
local getId=0
function RecruitEquipPanelNew:InitComponent()
self.spLoader = SpriteLoader.New()
self.panel = Util.GetGameObject(self.gameObject,"Panel")
self.bg1 = Util.GetGameObject(self.gameObject,"Bg/Bg1"):GetComponent("Image")
self.bg2 = Util.GetGameObject(self.gameObject,"Bg/Bg2"):GetComponent("Image")
self.bg3 = Util.GetGameObject(self.gameObject,"Bg/Bg3"):GetComponent("Image")
self.title=Util.GetGameObject(self.panel,"title"):GetComponent("Image")
self.root=Util.GetGameObject(self.panel,"root")
self.rewardBox = Util.GetGameObject(self.panel, "btngroup/rewardBox")
self.boxIcon = Util.GetGameObject(self.rewardBox, "boxIcon")
self.slider = Util.GetGameObject(self.rewardBox,"Bg/Slider"):GetComponent("Image")
self.sliderText = Util.GetGameObject(self.rewardBox, "progress/Text"):GetComponent("Text")
self.boxNameText = Util.GetGameObject(self.rewardBox, "di/Text"):GetComponent("Text")
self.boxNameText.text="等级宝箱"
self.boxBtn=Util.GetGameObject(self.rewardBox,"Btn")
self.UI_effect_RecruitPanel_box_normal = Util.GetGameObject(self.rewardBox,"UI_effect_RecruitPanel_box_normal")
effectAdapte(Util.GetGameObject(self.UI_effect_RecruitPanel_box_normal, "quan01"))
self.UI_effect_RecruitPanel_box_open = Util.GetGameObject(self.rewardBox,"UI_effect_RecruitPanel_box_open")
effectAdapte(Util.GetGameObject(self.UI_effect_RecruitPanel_box_open, "quan01"))
effectAdapte(Util.GetGameObject(self.UI_effect_RecruitPanel_box_open, "quan02"))
self.UI_effect_RecruitPanel_particle = Util.GetGameObject(self.gameObject,"UI_effect_RecruitPanel_particle")
self.previewBtn = Util.GetGameObject(self.panel, "PreviewBtn")
self.helpBtn = Util.GetGameObject(self.panel, "helpBtn")
self.helpPosition = self.helpBtn:GetComponent("RectTransform").localPosition
self.wish = Util.GetGameObject(self.panel,"wishBtn")
self.wishNoOpen = Util.GetGameObject(self.wish,"noOpen")
self.wishBtn = Util.GetGameObject(self.wishNoOpen,"Img")
self.wishTextImg = Util.GetGameObject(self.wishNoOpen,"ImgText")
self.wishText = Util.GetGameObject(self.wishTextImg,"Text"):GetComponent("Text")
self.wishTipIma = Util.GetGameObject(self.wishNoOpen,"tip"):GetComponent("Text")
self.wishOpen = Util.GetGameObject(self.wish,"upHeroGrid")
self.wishPre = Util.GetGameObject(self.wish,"upHeroPre")
self.lsth = Util.GetGameObject(self.gameObject,"btngroup/zqbg")
Util.GetGameObject(self.gameObject,"btngroup/zqbg/Text"):GetComponent("Text").text="珍奇宝阁"
self.lsth.gameObject:SetActive(ActivityGiftManager.IsActivityTypeOpen(20015)~=nil)
self.zqbgRed = Util.GetGameObject(self.gameObject,"btngroup/zqbg/red")
BindRedPointObject(RedPointType.WishEquipStore,self.zqbgRed)
--self.zqbgEffect = Util.GetGameObject(self.gameObject,"btngroup/zqbg/Fx_Circle 1")
-- self.tip = Util.GetGameObject(self.panel, "tip/text"):GetComponent("Text")
self.tenTip = Util.GetGameObject(self.panel, "TenTip")
self.tenTipText = Util.GetGameObject(self.tenTip, "scroll/Text"):GetComponent("Text")
self.upper = Util.GetGameObject(self.panel,"Upper/Num"):GetComponent("Text")--"今日召唤上限:"
if not self.upHeroPreList then
self.upHeroPreList = {}
end
for i = 1,3 do
self.upHeroPreList[i] = {}
self.upHeroPreList[i].go = Util.GetGameObject(self.wishOpen,"upHeroPre"..i)
self.upHeroPreList[i].pos = Util.GetGameObject(self.upHeroPreList[i].go,"di")
self.upHeroPreList[i].itempos = Util.GetGameObject(self.upHeroPreList[i].go,"itempos")
self.upHeroPreList[i].item = SubUIManager.Open(SubUIConfig.ItemView,self.upHeroPreList[i].itempos.transform)
self.upHeroPreList[i].item.gameObject:SetActive(false)
self.upHeroPreList[i].item.transform:SetSiblingIndex(0)
self.upHeroPreList[i].choosed = Util.GetGameObject(self.upHeroPreList[i].go,"state")
--心愿神将现在只显示一个
if i>1 then
self.upHeroPreList[i].go:SetActive(false)
else
self.upHeroPreList[i].go:SetActive(true)
end
end
self.btns = {}
for i = 1,2 do
self.btns[i] = {}
self.btns[i].btn = Util.GetGameObject(self.gameObject,"btngroup/btn"..i)
self.btns[i].layoutDi = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/di"):GetComponent("Image")
self.btns[i].red = Util.GetGameObject(self.btns[i].btn.gameObject,"redPoint")
self.btns[i].info = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/Text"):GetComponent("Text")
self.btns[i].icon = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/icon"):GetComponent("Image")
self.btns[i].num = Util.GetGameObject(self.btns[i].btn.gameObject,"layout/num"):GetComponent("Text")
self.btns[i].time = Util.GetGameObject(self.btns[i].btn.gameObject,"time"):GetComponent("Text")
end
end
function RecruitEquipPanelNew:OnFocus()
CheckRedPointStatus(RedPointType.WishEquipStore)
end
function RecruitEquipPanelNew:BindEvent()
Util.AddOnceClick(self.lsth, function()
local isOpen =CheckFunctionOpen(FUNCTION_OPEN_TYPE.EquipWish)
local tip=GetFunctionOpenTip(FUNCTION_OPEN_TYPE.EquipWish)
if isOpen==false then
PopupTipPanel.ShowTip(tip)
return
end
JumpManager.GoJump(40082)
end)
--帮助按钮
Util.AddClick(self.helpBtn, function()
UIManager.OpenPanel(UIName.HelpPopup,self.config.HelpId,self.helpPosition.x,self.helpPosition.y)
end)
--宝箱按钮
Util.AddClick(self.boxBtn,function()
--UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.RecruitBox)
--self.UI_effect_RecruitPanel_box_normal:SetActive(true)
-- if RecruitManager.isCanOpenBox then
-- LogError("getid=========="..getId)
-- ActivityGiftManager.GetActivityRewardRequest(11901,getId)
-- else
-- UIManager.OpenPanel(UIName.WishHeroRewardPopup,self.config.ShopData[1][1])
-- end
UIManager.OpenPanel(UIName.WishHeroRewardPopup,self.config.ShopData[1][1])
end)
--奖池预览按钮
Util.AddClick(self.previewBtn, function()
UIManager.OpenPanel(UIName.HeroPreviewNewPanel,true,true,self.config.ShopData[4][1])
end)
end
function RecruitEquipPanelNew:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Recruit.OnRecruitRefreshData, self.UpdataPanel,self)
end
function RecruitEquipPanelNew:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Recruit.OnRecruitRefreshData, self.UpdataPanel,self)
end
function RecruitEquipPanelNew:OnSortingOrderChange(sortingOrder)
self.sortingOrder = sortingOrder
Util.SetParticleSortLayer(self.UI_effect_RecruitPanel_box_normal, self.sortingOrder + 1)
Util.SetParticleSortLayer(self.UI_effect_RecruitPanel_box_open, self.sortingOrder + 1)
Util.SetParticleSortLayer(self.UI_effect_RecruitPanel_particle, self.sortingOrder + 1)
--SetParticleSortLayer(self.zqbgEffect,self.sortingOrder+1)
end
--界面打开时调用(用于子类重写)
function RecruitEquipPanelNew:OnOpen(_Config,_index, parent)
self.config = _Config
self.parent = parent
self.gameObject.name = "RecruitEquipPanelNew"..self.config.Id
end
function RecruitEquipPanelNew:OnShow(sortingOrder)
self.sortingOrder = sortingOrder
self:OnSortingOrderChange(sortingOrder)
self.gameObject:SetActive(true)
RecruitManager.curWishType=self.config.ShopData[1][1]
self.singleConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.LotterySetting,"LotteryType",self.config.ShopData[1][1],"PerCount",1)
self.tenConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.LotterySetting,"LotteryType",self.config.ShopData[1][1],"PerCount",10)
self.XianZhaoConfig = ConfigManager.GetConfigDataByKey(ConfigName.LotterySetting,"LotteryType",TableRecruitType.xianyuan)
self:UpdataPanel()
SoundManager.PlayMusic(SoundConfig.BGM_Recruit)
if self.liveNode then
poolManager:UnLoadLive(self.liveNode.name, self.liveNode)
end
if self.config.ShopData[2][1] == 1 then
local heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig,self.config.ShopData[2][2])
local name = GetResourcePath(heroConfig.Painting)
self.liveNode = poolManager:LoadLive(name, self.root.transform, Vector3.one *0.32, Vector3.New(heroConfig.Position[1], heroConfig.Position[2], 0))
self.liveNode.name = name
SetHEeroLiveToward(self.liveNode,heroConfig.Toward)
local SkeletonGraphic = self.liveNode:GetComponent("SkeletonGraphic")
SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
end
CheckRedPointStatus(RedPointType.WishEquipStore)
end
local progresss=0
local wishLv=0
function RecruitEquipPanelNew:UpdataPanel()
-- self.bg1.sprite = self.spLoader:LoadSprite(self.config.Icon[3])
self.bg2.sprite = self.spLoader:LoadSprite(self.config.Icon[4])
self.bg3.sprite = self.spLoader:LoadSprite(self.config.Icon[8])
--self.title.sprite = self.spLoader:LoadSprite(self.config.Icon[5])
--宝箱活动数据
local actconfigs=ActivityGiftManager.GetActivityInfoByType(11901)
if actconfigs then
for i = 1,#actconfigs.mission do
progresss=actconfigs.mission[i].progress
end
end
--LogError("progress==============="..progresss)
for i, v in ConfigPairs(wishConfig) do
if RecruitManager.drawTimes[4] and RecruitManager.drawTimes[4]>= v.DrawCardNumber and v.LotteryType==4 then
wishLv=v.Level
RecruitManager.SetWishPro(v.Weight/10000*100)
end
end
self.boxNameText.text="宝箱等级:"..wishLv
--self.title:SetNativeSize()
for i = 1,2 do
self.btns[i].layoutDi.sprite = self.spLoader:LoadSprite(self.config.Icon[6])
end
self.parent.mask2.sprite = self.spLoader:LoadSprite(self.config.Icon[7])
self.parent.mask1.sprite = self.spLoader:LoadSprite(self.config.Icon[7])
-- self.tip.text = self.config.TitleText
self:UpdataWishPanel()
self:UpdataBoxReward()
local num=PrivilegeManager.GetPrivilegeRemainValue(self.singleConfig.MoneyTimes)
self.upper.text=string.format(self.config.TitleText,PrivilegeManager.GetPrivilegeUsedTimes(self.singleConfig.MaxTimes),privilegeConfig[self.singleConfig.MaxTimes].Condition[1][2]) --string.format(self.config.TitleText,PrivilegeManager.GetPrivilegeUsedTimes(self.singleConfig.MaxTimes),privilegeConfig[self.singleConfig.MaxTimes].Condition[1][2].." 剩余妖晶召唤次数:"..num) --特权上限
self:UpdatePanelData()
self:TimeCountDown()
end
function RecruitEquipPanelNew:UpdataWishPanel()
self.tenTip.gameObject:SetActive(false)
--如果没有达到150抽按钮置灰
local data = tonumber(specialConfig[119].Value)
NetManager.ChoiceWishHeroRequest(self.config.ShopData[1][1],function ()
if RecruitManager.drawTimes[4] then
LogError(" RecruitManager.drawTimes[4]===".. RecruitManager.drawTimes[4])
if wishLv < data then
self.wishNoOpen.gameObject:SetActive(true)
self.wishOpen.gameObject:SetActive(false)
Util.SetGray(self.wishBtn,true)
self.wishText.text = string.format("%s/%s",wishLv,data)
self.wishTipIma.text = "宝箱等级"..data.."级后开启心愿功能,\n将有更高概率获得心愿生命卡~"
else
self.wishNoOpen.gameObject:SetActive(false)
self.wishOpen.gameObject:SetActive(true)
for i = 1,1 do
local data = RecruitManager.WishEquipData[i]
local id =0
if data then
id=data.heroTid
end
LogError("id================================"..id)
if id > 0 then
self.upHeroPreList[i].item.gameObject:SetActive(true)
self.upHeroPreList[i].item:OnOpen(false, {id,0},1, false, false, false, self.sortingOrder)
self.upHeroPreList[i].item.frame.sprite = self.spLoader:LoadSprite(GetBgByHeroNatural(ConfigManager.GetConfigData(ConfigName.ItemConfig,id).Quantity))
self.upHeroPreList[i].choosed:SetActive(data.status == 1)
else
self.upHeroPreList[i].item.gameObject:SetActive(false)
self.upHeroPreList[i].choosed.gameObject:SetActive(false)
end
Util.AddOnceClick(self.upHeroPreList[i].pos,function()
local tempdata = tonumber(specialConfig[119].Value)
if RecruitManager.drawTimes[4] then
RecruitManager.curWishType=self.config.ShopData[1][1]
if RecruitManager.drawTimes[4] >= tempdata then
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.WishEquipDraw)
else
PopupTipPanel.ShowTip(string.format("%s次英雄召唤后,开启心愿抽卡!",tempdata - RecruitManager.drawTimes[4]))
end
else
PopupTipPanel.ShowTip(string.format("%s次英雄召唤后,开启心愿抽卡!",tempdata))
end
end)
end
end
else
self.wishNoOpen.gameObject:SetActive(true)
self.wishOpen.gameObject:SetActive(false)
Util.SetGray(self.wishBtn,true)
self.wishText.text = string.format("%s/%s",0,data)
self.wishTipIma.text = "宝箱等级"..data.."级后开启心愿功能,\n将有更高概率获得心愿生命卡~"
end
--self:CheckNewWishHero()
end)
self.tenTip.gameObject:SetActive(true)
-- if RecruitManager.isTenRecruit == 0 then
-- self.tenTipText.text = "每次十连必得五星神将法宝"
-- else
self.tenTipText.text = string.format("剩余%s次必得五星生命卡",RecruitManager.GetRecruit2MustCount())
--end
end
function RecruitEquipPanelNew:UpdataBoxReward()
--local num = BagManager.GetItemCountById(self.XianZhaoConfig.CostItem[1][1])
LogError("更新宝箱显示s")
local actconfigs=ActivityGiftManager.GetActivityInfoByType(11901)
RecruitManager.isCanOpenBox=false
if actconfigs then
for i = 1,#actconfigs.mission do
local config=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.WishConfig,"Level",actconfigs.mission[i].missionId,"LotteryType",4)
if config and actconfigs.mission[i].state==0 and RecruitManager.drawTimes[4] and RecruitManager.drawTimes[4]>=config.DrawCardNumber then
RecruitManager.isCanOpenBox=true
getId=actconfigs.mission[i].missionId
break
end
end
end
self.boxIcon:GetComponent("Animator").enabled = RecruitManager.isCanOpenBox
local wishData=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.WishConfig,"Level",wishLv+1,"LotteryType",4)
if wishData then
self.sliderText.text = string.format("%s/%s", RecruitManager.drawTimes[4] or 0,wishData.DrawCardNumber )
if RecruitManager.drawTimes[4] then
self.slider.fillAmount = RecruitManager.drawTimes[4]/wishData.DrawCardNumber
else
self.slider.fillAmount = 0 /wishData.DrawCardNumber
end
else
self.slider.fillAmount = 1
self.sliderText.text ="宝箱已达最大等级"
end
end
function RecruitEquipPanelNew:OnClose()
self.gameObject:SetActive(false)
if self.timer then
self.timer:Stop()
self.timer = nil
end
end
function RecruitEquipPanelNew:OnDestroy()
self.spLoader:Destroy()
if self.timer then
self.timer:Stop()
self.timer = nil
end
ClearRedPointObject(RedPointType.WishEquipStore,self.zqbgRed)
for i = 1,3 do
if self.upHeroPreList[i] then
SubUIManager.Close(self.upHeroPreList[i].item)
end
end
self.upHeroPreList = {}
if self.liveNode then
poolManager:UnLoadLive(self.liveNode.name, self.liveNode)
self.liveNode = nil
end
end
--刷新剩余次数
function RecruitEquipPanelNew:UpdatePanelData()
local freeTime = 0
if self.singleConfig.FreeTimes and self.singleConfig.FreeTimes > 0 then
freeTime = PrivilegeManager.GetPrivilegeRemainValue(self.singleConfig.FreeTimes)
RecruitManager.freeUseTimeList[self.singleConfig.FreeTimes] = freeTime
end
--按钮赋值
for n, m in ipairs(self.btns) do
--存在免费次数 并且 免费>=1 并且是1按钮
local isFree = freeTime >= 1 and n == 1
m.icon.gameObject:SetActive(not isFree)
m.num.gameObject:SetActive(not isFree)
local itemId=0
local itemNum=0
local type = 0
if n == 1 then
type = self.singleConfig.Id
m.info.text = "1次"
m.time.gameObject:SetActive(true)
m.red.gameObject:SetActive(RecruitManager.GetRecruitBtnRedpoint1(PreConfigure[RevertPreConfigure[self.config.ShopData[3][1]]]))
else
m.time.gameObject:SetActive(false)
type = self.tenConfig.Id
m.info.text = "10次"
m.red.gameObject:SetActive(RecruitManager.GetRecruitBtnRedpoint1(PreConfigure[RevertPreConfigure[self.config.ShopData[3][2]]]))
end
if self.config.ShopData[1][1] == TableRecruitType.Youqing then
m.time.gameObject:SetActive(false)
end
local d = {}
if (isFree) then
m.time.gameObject:SetActive(false)
m.info.text="免费召唤"
else
local d = RecruitManager.GetExpendData(type)
itemId=d[1]
itemNum=d[2]
m.icon.sprite=self.spLoader:LoadSprite(artResourcesConfig[itemConfig[itemId].ResourceID].Name)
m.num.text= PrintWanNum2(itemNum)
end
Util.AddOnceClick(m.btn,function()
local isOpen =CheckFunctionOpen(FUNCTION_OPEN_TYPE.EquipWish)
local tip=GetFunctionOpenTip(FUNCTION_OPEN_TYPE.EquipWish)
if isOpen==false then
PopupTipPanel.ShowTip(tip)
return
end
if not isFree then
if BagManager.GetItemCountById(itemId)privilegeConfig[self.singleConfig.MaxTimes].Condition[1][2] then
PopupTipPanel.ShowTip("无法超出每日召唤次数上限!")
return
end
if itemId==16 and PrivilegeManager.GetPrivilegeRemainValue(self.singleConfig.MaxTimes) 0 and #RecruitManager.newWishList<10 then
if not GuideManager.IsFunctionGuideExist() and not GuideManager.IsInMainGuide() then
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.NewAddWishHero)
end
end
end
return RecruitEquipPanelNew