----- 心愿抽卡弹窗 ----- local this = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig) function this:InitComponent(gameObject) self.spLoader = SpriteLoader.New() self.scroll = Util.GetGameObject(gameObject,"selectList") self.itemPre = Util.GetGameObject(gameObject,"itemPre") -- 设置循环滚动,万一内容不停地加 local rootHight = self.scroll.transform.rect.height local width = self.scroll.transform.rect.width self.scrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scroll.transform, self.itemPre, nil, Vector2.New(width, rootHight), 1, 5, Vector2.New(20, 45)) self.scrollView.moveTween.MomentumAmount = 1 self.scrollView.moveTween.Strength = 2 self.itemList = {} self.maskList = {} --wishList self.wishListObj = {} self.bgObjlist = {} for i = 1, 3 do self.wishListObj[i] = Util.GetGameObject(gameObject,"wishList/hero ("..i..")") self.bgObjlist[i] = Util.GetGameObject(gameObject,"Bg/bglist/obj"..i) end --tabList self.tabListObj = {} self.selectBtn = Util.GetGameObject(gameObject,"Tabs/grid/selectBtn") for j = 1, 4 do self.maskList[j] = {} self.itemList[j] = {} self.tabListObj[j] = Util.GetGameObject(gameObject,"Tabs/grid/Btn"..j) end self.okBtn = Util.GetGameObject(gameObject,"okBtn") self.helpBtn = Util.GetGameObject(gameObject, "helpBtn") self.helpPosition = self.helpBtn:GetComponent("RectTransform").localPosition end function this:BindEvent() for i = 1, 4 do Util.AddOnceClick(self.tabListObj[i],function () self.curSelect = i this:Refresh(true,false) end) end for i = 1, 3 do Util.AddOnceClick(self.bgObjlist[i],function () self.curSelect = RecruitManager.CheckIndex() this:Refresh(true,false) end) end Util.AddOnceClick(self.okBtn,function () self.parent:ClosePanel() end) --帮助按钮 Util.AddClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.WishCard,self.helpPosition.x,self.helpPosition.y) end) end function this:AddListener() end function this:RemoveListener() end function this:OnShow(_parent,_Data) self.parent=_parent self.sortingOrder = _parent.sortingOrder local args = _Data NetManager.ChoiceWishHeroRequest(nil,function () if args[1] then self.curSelect = args[1] else self.curSelect = RecruitManager.CheckIndex() end this:Refresh(true,true) end) end function this:Refresh(isTop,isAni) local data = tonumber(specialConfig[119].Value) if not RecruitManager.drawTimes[1] or RecruitManager.drawTimes[1] < data then self.parent:ClosePanel() end self.selectBtn:GetComponent("RectTransform").localPosition = self.tabListObj[self.curSelect]:GetComponent("RectTransform").localPosition this:SetHeroList(isTop,isAni) this:SetUpHero() end function this:SetUpHero() for i = 1, 3 do local go = self.wishListObj[i] local frame = Util.GetGameObject(go, "frame"):GetComponent("Image") local icon = Util.GetGameObject(go, "icon"):GetComponent("Image") local proIcon = Util.GetGameObject(go, "proIcon"):GetComponent("Image") local starGrid = Util.GetGameObject(go, "star") local choosed = Util.GetGameObject(go, "choosed") local heroId = RecruitManager.WishCardData[i].heroTid choosed:SetActive(false) if heroId > 0 then go:SetActive(true) local heroData = heroConfig[heroId] frame.sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.Quality,heroData.Star)) icon.sprite = self.spLoader:LoadSprite(GetResourcePath(heroData.Icon)) proIcon.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName)) SetHeroStars(self.spLoader,starGrid, heroData.Star) choosed:SetActive(RecruitManager.WishCardData[i].status == 1) Util.AddOnceClick(go,function () if RecruitManager.WishCardData[i].status == 1 then PopupTipPanel.ShowTip("同系神将每日只可选择一位获取一次概率提升~") elseif RecruitManager.WishCardData[i].status == 0 then RecruitManager.ChangeHero(2,heroId,function () this:Refresh(false,false) end)--英雄变更:1增加、2卸下 end end) else go:SetActive(false) end Util.AddLongPressClick(go,function () UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroId, 5) end,0.5) end end function this:SetHeroList(isTop,isAni) local heroList = RecruitManager.GetCurHeroList(self.curSelect) self.scrollView:SetData(heroList, function (index, item) this:ShowSingleHero(item, heroList[index],index) end,not isTop,not isAni) end function this:ShowSingleHero(go,data,index) local heroData = heroConfig[data.Reward[1]] self.itemList[self.curSelect][index] = go Util.GetGameObject(go, "frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.Quality,heroData.Star)) Util.GetGameObject(go, "icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(heroData.Icon)) Util.GetGameObject(go, "proIcon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName)) Util.GetGameObject(go, "name"):GetComponent("Text").text = heroData.ReadingName local starGrid = Util.GetGameObject(go, "star") SetHeroStars(self.spLoader,starGrid, heroData.Star) self.maskList[self.curSelect][index] = Util.GetGameObject(go, "choosed") self.maskList[self.curSelect][index]:SetActive(false) Util.SetGray(self.itemList[self.curSelect][index],false) local value = RecruitManager.CheckCurHeroState(data.Reward[1]) if value == 0 then--上方存在相同阵营 Util.SetGray(self.itemList[self.curSelect][index],true) Util.AddOnceClick(go,function () PopupTipPanel.ShowTip("同系神将只可选择一位~") end) elseif value == 2 then--上方选满 Util.SetGray(self.itemList[self.curSelect][index],true) Util.AddOnceClick(go,function () PopupTipPanel.ShowTip("心愿神将已满~") end) elseif value == 1 then--上方存在自己 self.maskList[self.curSelect][index]:SetActive(true) Util.AddOnceClick(go,function () RecruitManager.ChangeHero(2,data.Reward[1],function () this:Refresh(false,false) end)--英雄变更:1增加、2卸下 end) elseif value == 4 then--上方存在自己,但已经出过该英雄了 self.maskList[self.curSelect][index]:SetActive(true) Util.AddOnceClick(go,function () PopupTipPanel.ShowTip("同系神将每日只可选择一位获取一次概率提升~") end) elseif value == 3 then--可选 Util.AddOnceClick(go,function () RecruitManager.ChangeHero(1,data.Reward[1],function () this:Refresh(false,false) end)--英雄变更:1增加、2卸下 end) end Util.AddLongPressClick(go,function () UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, data.Reward[1], 5) end,0.5) end function this:OnClose() end function this:OnDestroy() self.itemList = {} self.maskList = {} self.wishListObj = {} self.tabListObj = {} self.spLoader:Destroy() end return this