----- 归元弹窗 ----- local this = {} --传入父脚本模块 local parent --层级 local sortingOrder = 0 --传入不定参 local _args = {} --传入选择英雄计算返回奖励数据列表 local dropList = {} --item容器 local itemList = {} --传入选择英雄 local selectHeroData local heroConfig=ConfigManager.GetConfig(ConfigName.HeroConfig) local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig) local proId=0 local isCan=false local curProId=0 local costConfig=ConfigManager.GetConfigData(ConfigName.SpecialConfig,147) local itemNum=0 local costId=0 local func=nil function this:InitComponent(gameObject) this.spLoader = SpriteLoader.New() this.titleText = Util.GetGameObject(gameObject, "TitleText"):GetComponent("Text") this.bodyText = Util.GetGameObject(gameObject, "BodyText"):GetComponent("Text") this.cancelBtn = Util.GetGameObject(gameObject, "CancelBtn") this.confirmBtn = Util.GetGameObject(gameObject, "ConfirmBtn") this.itemImage = Util.GetGameObject(gameObject, "ConfirmBtn/itemImage"):GetComponent("Image") this.itemImageText = Util.GetGameObject(gameObject, "ConfirmBtn/itemText"):GetComponent("Text") this.selectBtn=Util.GetGameObject(gameObject, "Tabs/selectBtn") this.hintTxt=Util.GetGameObject(gameObject, "tipTxt") this.btns={} for i = 1, 4 do this.btns[i]=Util.GetGameObject(gameObject, "Tabs/grid/Btn"..i) end end --页签选中效果设置 function this:SetSelectBtn(index) this.selectBtn.transform:SetParent(this.btns[index].transform) this.selectBtn.transform.localScale = Vector3.one this.selectBtn.transform.localPosition=Vector3.zero end function this:BindEvent() Util.AddClick(this.cancelBtn,function() parent:ClosePanel() end) for i = 1, 4 do Util.AddClick(this.btns[i], function() if i == curProId then return end proId=i this:SetSelectBtn(i) end) end Util.AddClick(this.confirmBtn,function() if not isCan and selectHeroData.changeProId~=5 then LogError("costid=="..costId) PopupTipPanel.ShowTip(string.format( Language[10298],itemConfig[costId].Name)) return end local state=PlayerPrefs.GetInt(PlayerManager.uid.."GeneralPopup_ChangeHeroProConfirm") if curProId==proId then return end if selectHeroData.changeProId==5 then this:ChangeHeroPro() return end if state==1 then this:ChangeHeroPro() else UIManager.OpenPanel(UIName.ChangeHeroProConfirmWindow,CostConfirmType.ChangeHeroPro,function() this:ChangeHeroPro() end) end end) end function this:ChangeHeroPro() NetManager.ChangeHeroPro(selectHeroData.dynamicId,proId,function() curProId=proId parent:ClosePanel() if func then func() end end) end function this:AddListener() end function this:RemoveListener() end function this:OnShow(_parent,...) parent=_parent sortingOrder =_parent.sortingOrder local args = {...} selectHeroData = args[1] func=args[2] LogError("selectHeroData.changeProId== "..selectHeroData.changeProId) curProId=selectHeroData.changeProId -- if curProId==5 then -- proId=1 -- else -- proId=curProId -- end for i = 1, 5 do if i~=curProId then proId=i break end end itemNum=0 this.titleText.text="阵营转换" --this.bodyText.text = string.format("归元神将会返还所有的升级材料,神将重置为1级,\n 此操作不可逆,是否确认归元?") for i = 1, #this.btns do Util.GetGameObject(this.btns[i], "Image"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetProStrImageByProNum(i)) if i==curProId then Util.SetGray(this.btns[i],true) else Util.SetGray(this.btns[i],false) end end this:SetSelectBtn(proId) if curProId==5 then this.hintTxt.gameObject:SetActive(true) this.itemImage.gameObject:SetActive(false) this.itemImageText.gameObject:SetActive(false) else this.hintTxt.gameObject:SetActive(false) this.itemImage.gameObject:SetActive(true) this.itemImageText.gameObject:SetActive(true) end this:RefreshCostShow() end function this:RefreshCostShow() if costConfig then local cost=string.split(costConfig.Value,('#')) costId=tonumber(cost[1]) itemNum = BagManager.GetItemCountById(costId) if itemNum >=tonumber(cost[2]) then this.itemImageText.text = string.format("×%s", cost[2]) isCan=true else isCan=false this.itemImageText.text = string.format("×%s", cost[2]) end this.itemImage.sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfig[tonumber(cost[1])].ResourceID)) end end function this:OnClose() end function this:OnDestroy() this.spLoader:Destroy() end return this