require("Base/BasePanel") IncarnationPanel = Inherit(BasePanel) local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local artResourcesConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig) local specialConfig = ConfigManager.GetConfigData(ConfigName.SpecialConfig,155).Value local xiuxian=ConfigManager.GetConfig(ConfigName.XiuXianConfig) local cardPosition=ConfigManager.GetConfig(ConfigName.ChangingCardPosition) local curLevel =PracticeManager.PracticeLevel --ConfigManager.GetConfigData(ConfigName.ChangingForce,IncarnationManager.incarnationForceLv).Level local limits=string.split(specialConfig,"#") local tabs = {} local tabsRedpoints = {} local tabsImg = {"r_hero_huo 1_zh", "r_hero_feng 1_zh", "r_hero_shui 1_zh", "r_hero_dadi 1_zh","z_icon_qingjinbao"} local proId = 1 local curIndex=1 local allPos={1321,327,-330} function IncarnationPanel:InitComponent() self.spLoader = SpriteLoader.New() for i = 1, 5 do tabs[i] = Util.GetGameObject(self.transform, "bg/Tabs/grid/Btn" .. i) local nameTxt=Util.GetGameObject(self.transform, "bg/Tabs/grid/Btn" .. i.."/Text"):GetComponent("Text") nameTxt.text=PropertyType[i] tabsRedpoints[i] = Util.GetGameObject(tabs[i], "redpoint") if tabsImg[i] then Util.GetGameObject(tabs[i], "Image"):GetComponent("Image").sprite = self.spLoader:LoadSprite(tabsImg[i]) end end self.selectBtn = Util.GetGameObject(self.gameObject,"bg/Tabs/selectBtn") self.btnBack = Util.GetGameObject(self.gameObject,"bg/btnBack") self.btn_left = Util.GetGameObject(self.gameObject,"bg/left") self.btn_left:SetActive(false) self.btn_right = Util.GetGameObject(self.gameObject,"bg/right") self.btn_right:SetActive(false) self.incarnationPowerBtn = Util.GetGameObject(self.gameObject,"bg/incarnationPowerBtn") self.incarnationPowerBtn:SetActive(false) self.powerBtnRedPoint = Util.GetGameObject(self.gameObject,"bg/incarnationPowerBtn/redPoint") self.addBtn = Util.GetGameObject(self.gameObject,"bg/addBtn") self.helpBtn = Util.GetGameObject(self.gameObject,"bg/helpBtn") self.helpPos = self.helpBtn:GetComponent("RectTransform").localPosition self.fetterItem = Util.GetGameObject(self.gameObject,"fetterItem") local grid = Util.GetGameObject(self.gameObject,"bg/fetterGrid") local v21 = grid.transform.rect self.scroll = SubUIManager.Open(SubUIConfig.ScrollCycleView,grid.transform,self.fetterItem,nil,Vector2.New(v21.width, v21.height), 1, 1, Vector2.New(0,25)) self.itemPreList = {} self.upLayoutItemList = {} self.upLayout = Util.GetGameObject(self.gameObject,"bg/upScroll/upLayout") self.upLayout:GetComponent("RectTransform").anchoredPosition=Vector2.New(allPos[curIndex],-221) for i = 1,4 do self.upLayoutItemList[i] = {} self.upLayoutItemList[i].go = Util.GetGameObject(self.upLayout,"card"..i) self.upLayoutItemList[i].btn = Util.GetGameObject(self.upLayoutItemList[i].go,"unLoadBtn") self.upLayoutItemList[i].pos = Util.GetGameObject(self.upLayoutItemList[i].go,"cardPre") self.upLayoutItemList[i].posImg = Util.GetGameObject(self.upLayoutItemList[i].go,"posText"):GetComponent("Image") self.upLayoutItemList[i].posImg.sprite=self.spLoader:LoadSprite("r_fxgz_shuzi_"..i) self.upLayoutItemList[i].posImg.gameObject:SetActive(false) self.upLayoutItemList[i].getBtn = Util.GetGameObject(self.upLayoutItemList[i].pos,"getBtn") self.upLayoutItemList[i].lv = Util.GetGameObject(self.upLayoutItemList[i].go,"lvText"):GetComponent("Text") self.upLayoutItemList[i].desTxt = Util.GetGameObject(self.upLayoutItemList[i].go,"desText"):GetComponent("Text") self.upLayoutItemList[i].desTxt.text=cardPosition[i].Desc end self.empty = Util.GetGameObject(self.gameObject,"bg/NoneImage") self.cardList = {} self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform) end function IncarnationPanel:BindEvent() for i = 1,5 do Util.AddClick(tabs[i], function() if i == proId then return end proId = i self:SetSelectBtn() self:RefreshList(false,true) end) end for i = 1,4 do Util.AddClick(self.upLayoutItemList[i].btn, function() if self.upLayoutData[i] and self.upLayoutData[i].id then NetManager.UpOrDownTransformationRequest(self.upLayoutData[i].id,i,1,function() self.upLayoutData[i] = nil self.upLayoutItemList[i].btn.gameObject:SetActive(false) self:RefreshSingleCardPre(self.upLayoutItemList[i].pos,nil,false,i) self:RefreshList(true,true) PopupTipPanel.ShowTip("成功卸下身外化身!") end) end end) end for i = 1,4 do Util.AddClick(self.upLayoutItemList[i].getBtn, function() if self.upLayoutData[i] and self.upLayoutData[i].id then local pos = self:FindDatasIndexById(self.upLayoutData[i].id) if proId ~= self.upLayoutData[i].property then proId = self.upLayoutData[i].property self:SetSelectBtn() self:RefreshList(false,true) end if pos > 0 then self.scroll:SetIndex(pos) end end end) end Util.AddClick(self.helpBtn, function() UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.Incarnation,self.helpPos.x, self.helpPos.y) end) Util.AddClick(self.btnBack, function() self:ClosePanel() end) Util.AddClick(self.btn_left, function() -- curIndex=curIndex-1 -- if curIndex==1 then -- self.btn_left:SetActive(false) -- else -- self.btn_right:SetActive(true) -- end -- self.upLayout:GetComponent("RectTransform").anchoredPosition=Vector2.New(allPos[curIndex],-221) end) Util.AddClick(self.btn_right, function() -- curIndex=curIndex+1 -- if curIndex==3 then -- self.btn_right:SetActive(false) -- else -- self.btn_left:SetActive(true) -- end -- self.upLayout:GetComponent("RectTransform").anchoredPosition=Vector2.New(allPos[curIndex],-221) end) Util.AddClick(self.incarnationPowerBtn, function() UIManager.OpenPanel(UIName.IncarnationForcePanel) end) Util.AddClick(self.addBtn, function() local data = {} local singData = {} singData.title = "当前奥义卡总加成" singData.pro = IncarnationManager.GetproDesLst(IncarnationManager.GetIncarnationTotalPro(),"9E6828") singData.tip ="" --"总加成包括化身之力提供的属性" table.insert(data,singData) UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.IncarnationDes,data) end) BindRedPointObject(RedPointType.incarnation_people,tabsRedpoints[1].gameObject) BindRedPointObject(RedPointType.incarnation_buddish,tabsRedpoints[2].gameObject) BindRedPointObject(RedPointType.incarnation_demon,tabsRedpoints[3].gameObject) BindRedPointObject(RedPointType.incarnation_taoist,tabsRedpoints[4].gameObject) BindRedPointObject(RedPointType.incarnation_Kong,tabsRedpoints[5].gameObject) BindRedPointObject(RedPointType.incarnation_force,self.powerBtnRedPoint.gameObject) end function IncarnationPanel:FindDatasIndexById(id) for i = 1 ,#self.datas do if self.datas[i].id == id then return i end end return -1 end function IncarnationPanel:SetSelectBtn() self.selectBtn.transform:SetParent(tabs[proId].transform) self.selectBtn:GetComponent("RectTransform").localPosition = Vector3.zero self.selectBtn.transform:SetSiblingIndex(1) end function IncarnationPanel:RefreshUpLimitLevel() curLevel =PracticeManager.PracticeLevel --ConfigManager.GetConfigData(ConfigName.ChangingForce,IncarnationManager.incarnationForceLv).Level for i = 1,4 do self.upLayoutItemList[i].lv.gameObject:SetActive(curLevel%s",GetIncarnationNameColor[data.quality], data.name) self.itemPreList[go].red.gameObject:SetActive(data.state == 0) self.itemPreList[go].upLvRed.gameObject:SetActive(IncarnationManager.CheckCardUpLvRedData(data.id)) self.itemPreList[go].upStarRed.gameObject:SetActive(IncarnationManager.CheckCardUpStarRedData(data.id)) self:RefreshSingleCardPre(self.itemPreList[go].cardPre,data,true,index) self:SetProList(IncarnationManager.GetCardPropDesStr(data.id),self.itemPreList[go].preList,self.itemPreList[go].proGrid,self.itemPreList[go].pro.gameObject) Util.AddOnceClick(self.itemPreList[go].activableBtn,function() if data.state == 0 then NetManager.UpOrDownTransformationRequest(data.id,0,1,function() data.state = 1 self:SetSingleData(go,data,index) PopupTipPanel.ShowTip(string.format("成功激活%s",data.name)) CheckRedPointStatus(RedPointType.incarnation_force) end) else PopupTipPanel.ShowTip(string.format("成功激活%s",data.name)) end end) Util.AddOnceClick(self.itemPreList[go].incarnationBtn,function() if data.state == 1 then local pos = 0 for i = 1,4 do if self.upLayoutData[i] and self.upLayoutData[i].id then else pos = i break end end --LogError("curLevel==="..curLevel.." limits[pos]==="..limits[pos].."PracticeManager.PracticeLevel=="..PracticeManager.PracticeLevel) if PracticeManager.PracticeLevel 0 then NetManager.UpOrDownTransformationRequest(data.id,pos,2,function() data.state = 2 data.pos = pos self:SetSingleData(go,data,index) self.upLayoutData[pos] = data self:RefreshSingleCardPre(self.upLayoutItemList[pos].pos,data,false,pos) self.upLayoutItemList[pos].btn.gameObject:SetActive(true) PopupTipPanel.ShowTip("化身成功!") end) else PopupTipPanel.ShowTip("身外化身位置已达上限,请卸下需要替换的化身!") end else PopupTipPanel.ShowTip("化身成功!") end end) Util.AddOnceClick(self.itemPreList[go].incarnationningBtn,function() if data.state == 2 then NetManager.UpOrDownTransformationRequest(data.id,data.pos,1,function() local oldPos = data.pos data.state = 1 data.pos = 0 self:SetSingleData(go,data,index) self.upLayoutData[oldPos] = nil self:RefreshSingleCardPre(self.upLayoutItemList[oldPos].pos,nil,false,oldPos) self.upLayoutItemList[oldPos].btn.gameObject:SetActive(false) PopupTipPanel.ShowTip("成功卸下身外化身!") end) end end) Util.AddOnceClick(self.itemPreList[go].upLvBtn,function() UIManager.OpenPanel(UIName.IncarnationUpPopup,1,data.id) end) Util.AddOnceClick(self.itemPreList[go].upStarBtn,function() UIManager.OpenPanel(UIName.IncarnationUpPopup,2,data.id) end) Util.AddOnceClick(self.itemPreList[go].helpBtn,function() UIManager.OpenPanel(UIName.IncarnationUpHelpPopup,data.id) end) if data.state == -1 then self.itemPreList[go].unGetBtn.gameObject:SetActive(true) elseif data.state == 0 then self.itemPreList[go].activableBtn.gameObject:SetActive(true) elseif data.state == 1 then self.itemPreList[go].incarnationBtn.gameObject:SetActive(true) self.itemPreList[go].upLvBtn.gameObject:SetActive(true) self.itemPreList[go].upStarBtn.gameObject:SetActive(true) elseif data.state == 2 then self.itemPreList[go].incarnationningBtn.gameObject:SetActive(true) self.itemPreList[go].upLvBtn.gameObject:SetActive(true) self.itemPreList[go].upStarBtn.gameObject:SetActive(true) end end function IncarnationPanel:SetProList(data,preList,grid,pre) for i = 1,math.max(#data,#preList) do if not data[i] then preList[i].go.gameObject:SetActive(false) else if not preList[i] then preList[i] = {} preList[i].go = newObjToParent(pre,grid) preList[i].goText = preList[i].go:GetComponent("Text") end preList[i].go.gameObject:SetActive(true) preList[i].goText.text = data[i] end end ForceRebuildLayout(grid.transform) end function IncarnationPanel:OnSortingOrderChange() end function IncarnationPanel:OnClose() end function IncarnationPanel:OnDestroy() self.spLoader:Destroy() self.upLayoutItemList = {} self.itemPreList = {} self.cardList = {} ClearRedPointObject(RedPointType.incarnation_people,tabsRedpoints[1].gameObject) ClearRedPointObject(RedPointType.incarnation_buddish,tabsRedpoints[2].gameObject) ClearRedPointObject(RedPointType.incarnation_demon,tabsRedpoints[3].gameObject) ClearRedPointObject(RedPointType.incarnation_taoist,tabsRedpoints[4].gameObject) ClearRedPointObject(RedPointType.incarnation_Kong,tabsRedpoints[5].gameObject) ClearRedPointObject(RedPointType.incarnation_force,self.powerBtnRedPoint.gameObject) SubUIManager.Close(self.UpView) end return IncarnationPanel