require("Base/BasePanel") local spcialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig) local equipConfig = ConfigManager.GetConfig(ConfigName.EquipConfig) RoleEquipPanel = Inherit(BasePanel) local isGonming = 0 --local SortTypeConst = { -- Natural = 1,--品阶 ur+ --> r 6 --> 1 -- Lv = 2 --} local PosIdConst = { All = 0, --全部 WuQi = 1, --武器 ZhanFu = 2, --战服 TouShi = 3, --头饰 ZhanXue = 4, --战靴 Hun = 5, --魂宝 Ling = 6 --灵宝 } local this = RoleEquipPanel --当前英雄穿的装备 local curHeroEquipDatas = {} --当前英雄 local curHeroData local heroListData local curSelectEquipData local index local indexBtnNum = 1 local typeTab = { [0] = Language[10175], [1] = Language[10391], [2] = Language[10392], [3] = Language[10393], [4] = Language[10394], [5] = "宝物", [6] = "法相"} local tabs = {} local redTabs = {} local openThisPanel local effectList = {} local orginLayer1 local orginLayer local isUpZhen = false local teamHero = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local jewerConfigs = ConfigManager.GetConfig(ConfigName.JewelConfig) local faXiangConfigs = ConfigManager.GetConfig(ConfigName.FaxiangConfig) local currPageIndex = 0 local curEquipTreasureDatas = {} local curFaXiangDatas={} local isCanUpEquipTreasure = false local isCanUpFaXiang = false local isPlayAnim = true local isFristOpenTime --初始化组件(用于子类重写)RoleEquipChangePopup function RoleEquipPanel:InitComponent() this.spLoader = SpriteLoader.New() orginLayer = 10 orginLayer1 = {0, 0, 0, 0, 0, 0,0,0} this.bg2 = Util.GetGameObject(self.transform, "bg2") screenAdapte(this.bg2) this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, {showType = UpViewOpenType.ShowLeft}) this.btnBack = Util.GetGameObject(self.transform, "btnBack/btnBack") --英雄 this.heroBg = Util.GetGameObject(self.transform, "bg/heroInfo/bg"):GetComponent("Image") this.heroLv = Util.GetGameObject(self.transform, "bg/heroInfo/lv/Text"):GetComponent("Text") this.heroIcon = Util.GetGameObject(self.transform, "bg/heroInfo/icon"):GetComponent("Image") Util.GetGameObject(self.transform, "bg/heroInfo/pos"):SetActive(false) --this.heroPosIcon = Util.GetGameObject(self.transform, "bg/heroInfo/pos/icon"):GetComponent("Image") this.heroProIcon = Util.GetGameObject(self.transform, "bg/heroInfo/pro/Image"):GetComponent("Image") --this.heroStage = Util.GetGameObject(self.transform, "bg/heroInfo/heroStage"):GetComponent("Image") Util.GetGameObject(self.transform, "bg/heroInfo/heroStage"):SetActive(false) this.heroStarGrid = Util.GetGameObject(self.transform, "bg/heroInfo/star") this.heroStarPre = Util.GetGameObject(self.transform, "bg/heroInfo/starPre") --英雄身上的装备 this.equipGrid = Util.GetGameObject(self.transform, "bg/equipInfo") local scale = (Screen.width / Screen.height / 1080 * 1920 + 1) / 2 if scale < 1 then for i = 1, this.equipGrid.transform.childCount do Util.SetParticleScale(Util.GetGameObject(this.equipGrid.transform:GetChild(i - 1), "effect"), scale) end end --装备list this.effect = Util.GetGameObject(self.transform, "bg/effect") for i = 1, 6 do tabs[i] = Util.GetGameObject(self.transform, "Tabs/Btn" .. i) Util.GetGameObject(tabs[i], "Text"):GetComponent("Text").fontSize = 36 redTabs[i] = Util.GetGameObject(tabs[i], "red") effectList[i] = Util.GetGameObject(self.transform, "bg/equipInfo/equip" .. i .. "/effect") end this.selectBtn = Util.GetGameObject(self.gameObject, "selectBtn") this.btnPrant = Util.GetGameObject(self.gameObject, "Tabs") this.equipPreList2 = {} this.equipPreList = {} this.equipPre = Util.GetGameObject(self.gameObject, "equipPre") this.grid = Util.GetGameObject(self.gameObject, "scroll/grid") this.selsectSkillImage = Util.GetGameObject(self.gameObject, "selsectSkillImage") this.ShaiXuanBtn = Util.GetGameObject(self.gameObject, "ShaiXuanBtn") this.ShaiXuanBtn:SetActive(false) this.ShaiXuanBtnLv = Util.GetGameObject(self.gameObject, "ShaiXuanBtn/Lv") this.ShaiXuanBtnLv:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_tongyong_dengjiqiehuan_zh") this.ShaiXuanBtnQu = Util.GetGameObject(self.gameObject, "ShaiXuanBtn/Qu") this.ShaiXuanBtnQu:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_tongyong_pingjieqiehuan_zh") this.leftBtn = Util.GetGameObject(self.transform, "leftBtn/GameObject") this.rightBtn = Util.GetGameObject(self.transform, "rightBtn/GameObject") this.allEquipUp = Util.GetGameObject(self.transform, "allEquipUp") this.allEquipDown = Util.GetGameObject(self.transform, "allEquipDown") this.allEquipUpRedPoint = Util.GetGameObject(self.transform, "allEquipUp/redPoint") this.ScrollBar = Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar") local v2 = Util.GetGameObject(self.gameObject, "scroll"):GetComponent("RectTransform").rect this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(self.transform, "scroll").transform, this.equipPre, this.ScrollBar,Vector2.New(v2.width, v2.height),1 , 5, Vector2.New(20, 20)) this.ScrollView.moveTween.MomentumAmount = 1 this.ScrollView.moveTween.Strength = 1 this.force = Util.GetGameObject(self.transform, "powerBtn/value"):GetComponent("Text") this.itemNumText = Util.GetGameObject(self.transform, "itemNumText"):GetComponent("Text") this.upLvEffect = Util.GetGameObject(self.transform, "powerBtn/effect") this.equipTreasureBtn = Util.GetGameObject(self.transform, "equipTreasureBtn") this.equipTreasureBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("b_baowuxitong_gongmin_zh") this.handBookBtn = Util.GetGameObject(self.transform, "handBookBtn") this.treasure1 = Util.GetGameObject(self.transform, "bg/equipInfo/equip5") this.treasure2 = Util.GetGameObject(self.transform, "bg/equipInfo/equip6") this.faXiang1 = Util.GetGameObject(self.transform, "bg/equipInfo/equip7") this.faXiang2 = Util.GetGameObject(self.transform, "bg/equipInfo/equip8") this.treasurePage1 = Util.GetGameObject(self.transform, "Tabs/Btn5") this.faXiangPage = Util.GetGameObject(self.transform, "Tabs/Btn6") this.emptyObj = Util.GetGameObject(self.transform, "emptyObj") this.emptyObj.gameObject:SetActive(false) this.mask = Util.GetGameObject(self.gameObject, "mask") this.equipBtn5 = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip5/Image") this.equipBtn6 = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip6/Image") this.equipBTn5Add = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip5/red") this.equipBtn6Add = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip6/red") this.equipBTn7Add = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip7/red") this.equipBtn8Add = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip8/red") for i = 1, 8 do Util.GetGameObject(self.gameObject,"bg/equipInfo/equip"..i.."/mask"):GetComponent("Image").sprite = this.spLoader:LoadSprite(EquipPositionIcon[i]) end this.treeBtn = Util.GetGameObject(self.gameObject, "treeBtn") Util.GetGameObject(this.treeBtn,"treebtn"):GetComponent("Image").sprite = this.spLoader:LoadSprite("j_jianmushenshu_anniu_01_zh") Util.AddClick(this.treeBtn, function() if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.SACREDTREE) then UIManager.OpenPanel(UIName.SacredTreePanel) end end) end --绑定事件(用于子类重写) function RoleEquipPanel:BindEvent() Util.AddClick(this.btnBack,function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) if openThisPanel.RefreshHeroDatas then openThisPanel:RefreshHeroDatas(curHeroData, HeroManager.heroSortedDatas) end self:ClosePanel() end) Util.AddClick(this.leftBtn,function() isPlayAnim = true this:LeftBtnOnClick() end) Util.AddClick(this.rightBtn,function() isPlayAnim = true this:RightBtnOnClick() end) Util.AddOnceClick(this.allEquipUp,function() this:AllEquipUpBtnOnClick() end) Util.AddOnceClick(this.allEquipDown,function() if HarmonyManager:IsShowGongMingEqiup(curHeroData.dynamicId) and curHeroData.harmonyGongMing then PopupTipPanel.ShowTip(Language[12222]) else this:AllEquipDownBtnOnClick() end end) for i = 1, 6 do Util.AddClick(tabs[i],function() isPlayAnim = true if i == indexBtnNum then return end indexBtnNum = i this:OnClickTabBtn(indexBtnNum) end) end Util.AddClick(this.equipTreasureBtn,function() if LengthOfTable(curEquipTreasureDatas) < 2 then PopupTipPanel.ShowTip(Language[11797]) return end UIManager.OpenPanel(UIName.EquipTreasureResonancePanel, curHeroData) end) Util.AddClick(this.handBookBtn,function() UIManager.OpenPanel(UIName.FaXiangHandBook) end) end --添加事件监听(用于子类重写) function RoleEquipPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Treasure.TreasureLvUp, this.CurrEquipDataChange) end --移除事件监听(用于子类重写) function RoleEquipPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Treasure.TreasureLvUp, this.CurrEquipDataChange) end function this.CurrEquipDataChange() this.ShowHeroEquip() this:OnClickTabBtn(indexBtnNum) this.CheckRedTab() end --界面打开时调用(用于子类重写) function RoleEquipPanel:OnOpen(...) local data = {...} if data[1] then curHeroData = data[1] HeroManager.roleEquipPanelCurHeroData = data[1] else curHeroData = HeroManager.roleEquipPanelCurHeroData end if data[2] then heroListData = data[2] HeroManager.roleEquipPanelHeroListData = data[2] else heroListData = HeroManager.GetAllHeroDatas() end openThisPanel = data[3] isUpZhen = data[4] end function RoleEquipPanel:OnShow() this.treeBtn:SetActive(ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.SACREDTREE)) this.treeBtn:SetActive(false) isPlayAnim = true for i = 1, #heroListData do if curHeroData == heroListData[i] then index = i end end for i = 1, 6 do if (effectList[i] ~= nil) then effectList[i]:SetActive(false) end end indexBtnNum = PosIdConst.WuQi teamHero = FormationManager.GetAllMainFormationHeroId() this.ShowHeroEquip(true) this:OnClickTabBtn(indexBtnNum) this.CheckRedTab() this.UpView:OnOpen({showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main}) local list=FaXiangManager.GetOneKeyUpFaXiangByType(curHeroData) LogError("list len=="..#list) end function this:OnSortingOrderChange() Util.AddParticleSortLayer(this.effect, this.sortingOrder - orginLayer) Util.SetParticleSortLayer(this.heroStarGrid,this.sortingOrder + 1) orginLayer = this.sortingOrder end --右切换按钮点击 function this:RightBtnOnClick() index = (index + 1 <= #heroListData and index + 1 or 1) curHeroData = heroListData[index] this.ShowHeroEquip() this:OnClickTabBtn(indexBtnNum) this.CheckRedTab() end --左切换按钮点击 function this:LeftBtnOnClick() index = (index - 1 > 0 and index - 1 or #heroListData) curHeroData = heroListData[index] this.ShowHeroEquip() this:OnClickTabBtn(indexBtnNum) this.CheckRedTab() end --一键装备 function this:AllEquipUpBtnOnClick() local allEquipIds = {} local allTreasureIds = {} local allFaXiang = {} --计算英雄身上的所有装备位的装备 local curHeroEquipDatas = {} local curHeroDataequipIdList = curHeroData.equipIdList for k, v in ipairs(curHeroDataequipIdList) do local equipData = EquipManager.GetSingleHeroSingleEquipData(v, curHeroData.dynamicId) if equipData ~= nil then curHeroEquipDatas[equipData.equipConfig.Position] = equipData else LogBlue("没有得到equipData") end end --宝物数据 for k, v in ipairs(curHeroData.jewels) do local equipData = EquipTreasureManager.GetSingleTreasureByIdDyn(v) if equipData ~= nil then curHeroEquipDatas[equipData.equipType + 4] = equipData end end --法相数据 for k, v in ipairs(curHeroData.faxiang) do local equipData = FaXiangManager.GetSingleTreasureByIdDyn(v) if equipData ~= nil then curHeroEquipDatas[equipData.equipType + 7] = equipData end end local equipEffectPos = {} local treasureEffectPos = {} for i = 1, 6 do local curPosEquip = {} local index = i if (index == 5 or index == 6) and isCanUpEquipTreasure then local pro=curHeroData.changeProId if curHeroData.changeProId==5 then pro=0 end curPosEquip = EquipTreasureManager.GetAllTreasuresByLocation(index - 4, pro) else --获取到所有未装备的装备 curPosEquip = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession, index) end -- LogBlue("i:"..index.." #curPosEquip:".. #curPosEquip) -- LogBlue("计算每个位置可装备的装备战力")-- 取战力最大的装备 if curPosEquip and #curPosEquip > 0 then local equiData = {} local indexMaxPower = 0 if curHeroEquipDatas[index] then equiData = curHeroEquipDatas[index] --获取到宝物战力 if index == 5 or index == 6 then indexMaxPower = EquipTreasureManager.CalculateWarForce(curHeroEquipDatas[index].idDyn) --LogBlue("宝物id:"..curHeroEquipDatas[index].idDyn.." id:"..curHeroEquipDatas[index].id.." indexMaxPower:"..indexMaxPower) else --获取到装备战力 indexMaxPower = EquipManager.CalculateWarForce(curHeroEquipDatas[index].id) --LogBlue("装备id:"..curHeroEquipDatas[index].id.." indexMaxPower:"..indexMaxPower) end end --LogGreen("循环计算每个装备的战力") for i = 1, #curPosEquip do local addPower = 0 local curEquip = curPosEquip[i] if curEquip then if index == 5 or index == 6 then addPower = EquipTreasureManager.CalculateWarForce(curEquip.idDyn) --LogGreen("宝物id:"..curEquip.idDyn.." id:"..curEquip.id.." addPower:"..addPower) else addPower = EquipManager.CalculateWarForce(curEquip.id) --LogGreen("装备id:"..curEquip.id.." addPower:"..addPower) end end if addPower > indexMaxPower then indexMaxPower = addPower equiData = curEquip end end if (index == 5 or index == 6) then if ((curHeroEquipDatas[index] and equiData.idDyn ~= curHeroEquipDatas[index].idDyn) or (not curHeroEquipDatas[index])) then table.insert(allTreasureIds, equiData.idDyn) end else if (not curHeroEquipDatas[index] or tonumber(equiData.id) ~= tonumber(curHeroEquipDatas[index].id)) then table.insert(allEquipIds, tostring(equiData.id)) end end --特效 if curHeroEquipDatas[equiData.position] then if equiData.idDyn then if equiData.idDyn ~= curHeroEquipDatas[equiData.position].idDyn then table.insert(treasureEffectPos, i) end else if equiData.id ~= curHeroEquipDatas[equiData.position].id then table.insert(equipEffectPos, i) end end else --table.insert(showEffectPos,i) end end end LogYellow("装备:"..#allEquipIds) LogYellow("宝物:"..#allTreasureIds) local list={} if isCanUpFaXiang then list=FaXiangManager.GetOneKeyUpFaXiangByType(curHeroData) for i = 1, #curHeroData.faxiang do local isCon=BattleUtil.ChecklistIsContainValue(list,curHeroData.faxiang[i]) if isCon then table.removebyvalue(list,curHeroData.faxiang[i]) end end end LogYellow("isCanUpEquipTreasure:"..tostring(isCanUpEquipTreasure)) if (allEquipIds and #allEquipIds > 0) or (isCanUpEquipTreasure and allTreasureIds and #allTreasureIds > 0) or (isCanUpFaXiang and list and #list > 0) then if allEquipIds and #allEquipIds > 0 and not curHeroData.harmonyGongMing then --穿装备协议 NetManager.EquipWearRequest(curHeroData.dynamicId,allEquipIds,1,function() this.UpdateEquipPosHeroData(1, 4, allEquipIds) --特效播放 if equipEffectPos then for i = 1, #equipEffectPos do effectList[equipEffectPos[i]]:SetActive(false) effectList[equipEffectPos[i]]:SetActive(true) end end end) end if curHeroData.harmonyGongMing then PopupTipPanel.ShowTip(Language[12223]) end --穿戴宝物 if isCanUpEquipTreasure and allTreasureIds and #allTreasureIds > 0 then --穿装备协议 NetManager.EquipWearRequest(curHeroData.dynamicId,allTreasureIds,2,function() this.UpdateEquipPosHeroData(2, 4, allTreasureIds) --特效播放 for i, v in pairs(treasureEffectPos) do effectList[v]:SetActive(false) effectList[v]:SetActive(true) end end) end if isCanUpFaXiang and list and #list>0 then NetManager.WearFaxiangEquipRequest(curHeroData.dynamicId,list,1,function() this.UpdateEquipPosHeroData(3, 4, list) HeroPropManager.SetDirtyByType(curHeroData.dynamicId, Hero_Prop_Type.FaXiang) end) end else if not allEquipIds or #allEquipIds < 1 then if #curHeroData.equipIdList <= 0 then PopupTipPanel.ShowTip(Language[11798]) else PopupTipPanel.ShowTip(Language[12137]) end else PopupTipPanel.ShowTip(Language[11799]) end end PlaySoundWithoutClick(SoundConfig.Sound_Wear) this.ShowHeroEquip() end --一键卸下 function this:AllEquipDownBtnOnClick() if(curHeroData.equipIdList and #curHeroData.equipIdList > 0) or (curHeroData.jewels and #curHeroData.jewels > 0 and isCanUpEquipTreasure) or (curHeroData.faxiang and #curHeroData.faxiang > 0 and isCanUpFaXiang) then if curHeroData.equipIdList and #curHeroData.equipIdList > 0 then NetManager.EquipUnLoadOptRequest(curHeroData.dynamicId,curHeroData.equipIdList,1,function() this.UpdateEquipPosHeroData(1, 5, curHeroData.equipIdList) end) end --寶物 if curHeroData.jewels and #curHeroData.jewels > 0 then -- 一键卸下音效 NetManager.EquipUnLoadOptRequest(curHeroData.dynamicId,curHeroData.jewels,2,function() this.UpdateEquipPosHeroData(2, 5, curHeroData.jewels) end) end if curHeroData.faxiang and #curHeroData.faxiang > 0 then -- 一键卸下音效 NetManager.WearFaxiangEquipRequest(curHeroData.dynamicId,curHeroData.faxiang,2,function() this.UpdateEquipPosHeroData(3, 5, curHeroData.faxiang) HeroPropManager.SetDirtyByType(curHeroData.dynamicId, Hero_Prop_Type.FaXiang) end) end else PopupTipPanel.ShowTip(Language[11800]) end PlaySoundWithoutClick(SoundConfig.Sound_TakeOff) this.ShowHeroEquip() this.CheckRedTab() end function this.ShowHeroEquip() --装备 if curHeroData and spcialConfig then local config = spcialConfig[40] if config then local limits = string.split(config.Value, "|") if limits then local heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig, curHeroData.id) local lvs = string.split(limits[1], "#") local stars = string.split(limits[2], "#") --LogBlue("tonumber(lvs[2]):" ..lvs[2].."PlayerManager.level:"..PlayerManager.level) if PlayerManager.level >= tonumber(lvs[2]) and heroConfig ~= nil and heroConfig.MaxRank >= tonumber(stars[2]) then isCanUpEquipTreasure = true --屏蔽宝物共鸣 this.equipTreasureBtn.gameObject:SetActive(false) this.treasure1.gameObject:SetActive(true) this.treasure2.gameObject:SetActive(true) this.treasurePage1.gameObject:SetActive(true) else isCanUpEquipTreasure = false this.equipTreasureBtn.gameObject:SetActive(false) this.treasure1.gameObject:SetActive(false) this.treasure2.gameObject:SetActive(false) this.treasurePage1.gameObject:SetActive(false) end end end isCanUpFaXiang=CheckFunctionOpen(FUNCTION_OPEN_TYPE.FaXiang) this.faXiangPage.gameObject:SetActive(isCanUpFaXiang) this.faXiang1:SetActive(isCanUpFaXiang) this.faXiang2:SetActive(isCanUpFaXiang) end SetHeroBg(this.spLoader, Util.GetGameObject(this.transform, "bg/heroInfo"),Util.GetGameObject(this.transform, "bg/heroInfo/bg"), curHeroData.star,0, orginLayer) this.heroLv.text = curHeroData.lv this.heroIcon.sprite = this.spLoader:LoadSprite(GetResourcePath(curHeroData.heroConfig.ShowLive)) --SetHEeroLiveToward(this.heroIcon,curHeroData.heroConfig.Toward) this.heroProIcon.sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(curHeroData.changeProId)) local star,starType = curHeroData.GetStar(1) local starScale = -10 if starType == 3 then starScale = -13.2 end Util.GetGameObject(this.transform, "bg/heroInfo/starnum"):GetComponent("Text").text=curHeroData.star.."/"..curHeroData.maxStar Util.GetGameObject(this.transform, "bg/heroInfo/name"):GetComponent("Text").text = GetLanguageStrById(curHeroData.heroConfig.ReadingName) Util.GetGameObject(this.transform, "bg/heroInfo/redAndLock"):SetActive(false) -- SetHeroStars(this.spLoader, this.heroStarGrid, star,starType,nil,starScale) -- Util.SetParticleSortLayer(this.heroStarGrid,this.sortingOrder + 1) --装备的数据 curHeroEquipDatas = {} for i = 1, #curHeroData.equipIdList do local equipData = EquipManager.GetSingleHeroSingleEquipData(curHeroData.equipIdList[i], curHeroData.dynamicId) if equipData ~= nil then curHeroEquipDatas[equipData.equipConfig.Position] = equipData end end --宝器的数据 curEquipTreasureDatas = {} for i = 1, #curHeroData.jewels do local treasureData = EquipTreasureManager.GetSingleEquipTreasreData(curHeroData.jewels[i]) if treasureData ~= nil then local id = treasureData.id local pos = jewerConfigs[id].Location + 4 curEquipTreasureDatas[pos] = treasureData end end --法相的数据 curFaXiangDatas = {} for i = 1, #curHeroData.faxiang do local treasureData = FaXiangManager.GetSingleEquipTreasreData(curHeroData.faxiang[i]) if treasureData ~= nil then local id = treasureData.id local pos = faXiangConfigs[id].Type + 7 curFaXiangDatas[pos] = treasureData end end for k,v in pairs(this.equipPreList2) do v.gameObject:SetActive(false) end for i = 1, this.equipGrid.transform.childCount do local go = this.equipGrid.transform:GetChild(i - 1).gameObject this:SingleDataShow(go,i) end local allAddProVal --计算面板属性 local WarPower = 0 if isUpZhen then WarPower = HeroPowerManager.GetHeroPower(curHeroData.dynamicId, FormationTypeDef.FORMATION_NORMAL) else WarPower = HeroPowerManager.GetHeroPower(curHeroData.dynamicId) end this.force.text = WarPower end function this:SingleDataShow(go,index) local effect = Util.GetGameObject(go.transform, "effect") screenAdapte(effect) Util.AddParticleSortLayer(effect, this.sortingOrder - orginLayer1[index]) orginLayer1[index] = this.sortingOrder effectList[index] = effect local pos = Util.GetGameObject(go.transform, "pos") if not this.equipPreList2[go] then this.equipPreList2[go] = SubUIManager.Open(SubUIConfig.ItemView,pos.transform) this.equipPreList2[go].gameObject:SetActive(false) end local mask = Util.GetGameObject(go.transform, "mask") if curHeroEquipDatas[index] then this.equipPreList2[go].gameObject:SetActive(true) mask.gameObject:SetActive(false) -- if curHeroEquipDatas[index].homeEquipLv then -- LogRed("LV:"..tostring(curHeroEquipDatas[index].homeEquipLv[1]).." "..tostring(curHeroEquipDatas[index].homeEquipLv[2])) -- else -- LogError("无homeEquipLv") -- end this.equipPreList2[go]:OnOpen(false,{curHeroEquipDatas[index].id,0}, 1, false, false, false, orginLayer,nil,curHeroEquipDatas[index]) if HarmonyManager:IsShowGongMingEqiup(curHeroData.dynamicId) and curHeroData.harmonyGongMing then -- body Util.GetGameObject(go.transform, "HongMenging"):SetActive(true) else Util.GetGameObject(go.transform, "HongMenging"):SetActive(false) end elseif curEquipTreasureDatas[index] then this.equipPreList2[go].gameObject:SetActive(true) mask.gameObject:SetActive(false) this.equipPreList2[go]:OnOpen(false,{curEquipTreasureDatas[index].id,0}, 1, false, false, false, orginLayer,curEquipTreasureDatas[index].idDyn) --鸿蒙阵 共享数据判断 if HarmonyManager.IsInfo(curEquipTreasureDatas[index].upHeroDid) and curEquipTreasureDatas[index].equipType == 1 then Util.GetGameObject(go.transform, "HongMenging"):SetActive(true) elseif HarmonyManager.IsInfo(curEquipTreasureDatas[index].upHeroDid) and curEquipTreasureDatas[index].equipType == 2 then Util.GetGameObject(go.transform, "HongMenging"):SetActive(true) else Util.GetGameObject(go.transform, "HongMenging"):SetActive(false) end elseif curFaXiangDatas[index] then this.equipPreList2[go].gameObject:SetActive(true) mask.gameObject:SetActive(false) this.equipPreList2[go]:OnOpen(false,{curFaXiangDatas[index].id,0}, 1, false, false, false, orginLayer,curFaXiangDatas[index].idDyn) else -- body this.equipPreList2[go].gameObject:SetActive(false) mask.gameObject:SetActive(true) end local iconBtn = Util.GetGameObject(go.transform, "btn") Util.AddOnceClick(iconBtn,function() if curHeroEquipDatas[index] then curSelectEquipData = curHeroEquipDatas[index] UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2, this,curHeroEquipDatas[index],2,false,nil,curHeroData) elseif curEquipTreasureDatas[index] then if itemConfig[curEquipTreasureDatas[index].id].ItemType == ItemType.EquipTreasure then local pos = 0 local jewerConfig = ConfigManager.TryGetConfigData(ConfigName.JewelConfig, curEquipTreasureDatas[index].id) if jewerConfig then if jewerConfig.Location == 1 then pos = 5 elseif jewerConfig.Location == 2 then pos = 6 end -- UIManager.OpenPanel(UIName.RoleEquipTreasureChangePopup,this,2,curHeroData,curEquipTreasureDatas[index],nil,pos)--以前的,现在不用了 UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,curEquipTreasureDatas[index],2,false,nil,curHeroData,pos) end end elseif curFaXiangDatas[index] then UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,curFaXiangDatas[index],2,false,nil,curHeroData,index) end end) end function this:SetSelectBtn() this.selectBtn:SetActive(true) this.selectBtn.transform:SetParent(tabs[indexBtnNum].transform) this.selectBtn:GetComponent("RectTransform").anchoredPosition3D = Vector3(0, 0, 0) this.selectBtn.transform:SetSiblingIndex(1) --this.selectBtn.transform.localScale = Vector3.one --this.selectBtn:GetComponent("Image"):SetNativeSize() Util.GetGameObject(this.selectBtn.transform, "Text"):GetComponent("Text").text = GetCurLanguage() == 0 and typeTab[indexBtnNum] or ""..typeTab[indexBtnNum]..""--typeTab[indexBtnNum] end function this:OpenTips(nextEquipData,pos) local content = Language[12224] MsgPanel.ShowTwo(content,function () end,function () local equipIdList={} local equipDataList={} table.insert(equipIdList,tostring(nextEquipData.id)) table.insert(equipDataList,nextEquipData) NetManager.EquipWearRequest(curHeroData.dynamicId,equipIdList,1,function () this.UpdateEquipPosHeroData(1,3,equipDataList,nextEquipData,pos) end) end,Language[10731],Language[11934]) end --点击装备按钮 function this:OnClickTabBtn(_index) this:SetSelectBtn() if _index < 5 then local allEquip = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession, _index) this:SortEquipDatas(allEquip) local count = 0 for i=1,#allEquip do count = count + 1--allEquip[i].num end --"装备数量:" this.itemNumText.text = Language[12181] .. count this:SetItemData(allEquip) elseif _index ==5 then -- body local allEquipTreasure local pro=curHeroData.changeProId if pro==5 then pro=0 end allEquipTreasure = EquipTreasureManager.GetAllTreasures(pro) this:SortEquipDatas1(allEquipTreasure) --"装备数量:" this.itemNumText.text = Language[12181] .. LengthOfTable(allEquipTreasure) this:SetItemData(allEquipTreasure) elseif _index==6 then local allEquipTreasure allEquipTreasure = FaXiangManager.GetAllTreasuresCanUp(curHeroData) this:SortEquipDatas1(allEquipTreasure) --"装备数量:" this.itemNumText.text = Language[12181] .. LengthOfTable(allEquipTreasure) this:SetItemData(allEquipTreasure) end this.CheckRedTab() end --设置背包列表数据 local curHeroCanUpEquipTabs = {} local curHeroCanUpEquipTreasuresTabs = {} function this:SetItemData(_itemDatas) if LengthOfTable(_itemDatas) == 0 then this.emptyObj.gameObject:SetActive(true) else this.emptyObj.gameObject:SetActive(false) end for k,v in pairs(this.equipPreList) do v.gameObject:SetActive(false) end this.ScrollView:SetData( _itemDatas, function(index, go) this.SingleItemDataShow(go, _itemDatas[index]) end ) if isPlayAnim then if isFristOpenTime then isFristOpenTime:Stop() isFristOpenTime = nil end isFristOpenTime = Timer.New(function() this.mask:SetActive(false) end, 0.3):Start() this.mask:SetActive(true) SecTorPlayAnimByScroll(this.ScrollView) isPlayAnim = false end end function this.SingleItemDataShow(_go, _itemData) if not itemConfig[_itemData.id] then return end if not this.equipPreList[_go] then this.equipPreList[_go] = SubUIManager.Open(SubUIConfig.ItemView,_go.transform) end local redPoint = Util.GetGameObject(_go.transform, "redPoint") this.equipPreList[_go].gameObject:SetActive(true) this.equipPreList[_go].transform:SetAsFirstSibling() if itemConfig[_itemData.id].ItemType == ItemType.EquipTreasure then this.equipPreList[_go]:OnOpen(false,{_itemData.id,0}, 1.1, true, false, false, orginLayer,_itemData.idDyn) if curHeroCanUpEquipTreasuresTabs and #curHeroCanUpEquipTreasuresTabs > 0 then local isShow = false for i = 1, #curHeroCanUpEquipTreasuresTabs do if curHeroCanUpEquipTreasuresTabs[i] == _itemData.idDyn then isShow = true end end if isShow then redPoint:SetActive(true) else redPoint:SetActive(false) end else redPoint:SetActive(false) end -- 0.查看属性 1.穿戴 2.卸下 3.交换 --宝物界面 Util.AddOnceClick(Util.GetGameObject(_go.transform, "mask"),function() if curEquipTreasureDatas[jewerConfigs[_itemData.id].Location + 4] then -- UIManager.OpenPanel(UIName.RoleEquipTreasureChangePopup,this,3,curHeroData,curEquipTreasureDatas[jewerConfigs[_itemData.id].Location + 4],_itemData,jewerConfigs[_itemData.id].Location + 4) UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,_itemData,4,false,nil,curHeroData,jewerConfigs[_itemData.id].Location + 4,curEquipTreasureDatas[jewerConfigs[_itemData.id].Location + 4]) else -- UIManager.OpenPanel(UIName.RoleEquipTreasureChangePopup, this, 1, curHeroData, _itemData, nil, jewerConfigs[_itemData.id].Location + 4) UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,_itemData,3,false,nil,curHeroData,jewerConfigs[_itemData.id].Location + 4) end end ) elseif itemConfig[_itemData.id].ItemType == ItemType.FaXiang then this.equipPreList[_go]:OnOpen(false,{_itemData.id,0}, 1.1, true, false, false, orginLayer,_itemData.idDyn) if curHeroCanUpEquipTreasuresTabs and #curHeroCanUpEquipTreasuresTabs > 0 then local isShow = false for i = 1, #curHeroCanUpEquipTreasuresTabs do if curHeroCanUpEquipTreasuresTabs[i] == _itemData.idDyn then isShow = true end end if isShow then redPoint:SetActive(true) else redPoint:SetActive(false) end else redPoint:SetActive(false) end -- 0.查看属性 1.穿戴 2.卸下 3.交换 --宝物界面 Util.AddOnceClick(Util.GetGameObject(_go.transform, "mask"),function() local pos=faXiangConfigs[_itemData.id].Type + 7 if curFaXiangDatas[pos] then UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,_itemData,4,false,nil,curHeroData,pos,curFaXiangDatas[pos]) else UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,_itemData,3,false,nil,curHeroData,pos) end end ) else -- body this.equipPreList[_go]:OnOpen(false,{_itemData.id,_itemData.num}, 1, true, false, false, orginLayer) if curHeroCanUpEquipTabs and #curHeroCanUpEquipTabs > 0 then local isShow = false for i = 1, #curHeroCanUpEquipTabs do if curHeroCanUpEquipTabs[i] == _itemData.id then isShow = true end end if isShow then redPoint:SetActive(true) else redPoint:SetActive(false) end else redPoint:SetActive(false) end Util.AddOnceClick(Util.GetGameObject(_go.transform, "mask"),function() if curHeroEquipDatas[equipConfig[_itemData.id].Position] then local nextEquipData = curHeroEquipDatas[equipConfig[_itemData.id].Position] if curHeroData.harmonyGongMing then this:OpenTips(nextEquipData,equipConfig[_itemData.id].Position) else -- Log("当前装备:"..tostring(nextEquipData.id).." 准备替换装备:"..tostring(_itemData.id)) UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2, this,_itemData,4,false,nil, curHeroData,equipConfig[_itemData.id].Position,nextEquipData) end else UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2, this,_itemData,3,false,nil, curHeroData,equipConfig[_itemData.id].Position) end end ) end end --刷新当前英雄装备坑位的信息 function this.UpdateEquipPosHeroData(_equipOrTreasure, _type, _selectEquipDataList, _oldSelectEquip, position) --type -- if _selectEquipDataList then -- LogYellow("_type:"..tostring(_type).." 新装备:"..tostring(_selectEquipDataList[1].id)) -- end -- if _oldSelectEquip then -- LogYellow("旧装备:"..tostring(_oldSelectEquip.id)) -- end --1 穿单件装备 2 卸单件装备 3 替换单件装备 4 一键穿装备 5一键脱装备 if _type == 1 then effectList[position]:SetActive(false) effectList[position]:SetActive(true) if _equipOrTreasure == 1 then --装备 curSelectEquipData = _selectEquipDataList[1] --装备绑英雄 EquipManager.SetEquipUpHeroDid(curSelectEquipData.id, curHeroData.dynamicId) --英雄加装备 table.insert(curHeroData.equipIdList, curSelectEquipData.id) HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList) elseif _equipOrTreasure==2 then --宝物 -- body curEquipTreasureDatas = _selectEquipDataList[1] --装备绑英雄 EquipTreasureManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, curHeroData.dynamicId) --英雄加装备 table.insert(curHeroData.jewels, curEquipTreasureDatas.idDyn) elseif _equipOrTreasure==3 then --法相 curEquipTreasureDatas = _selectEquipDataList[1] --装备绑英雄 FaXiangManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, curHeroData.dynamicId) --英雄加装备 table.insert(curHeroData.faxiang, curEquipTreasureDatas.idDyn) end elseif _type == 2 then if _equipOrTreasure == 1 then if not curHeroData.harmonyGongMing then --装备解绑英雄 curSelectEquipData = _selectEquipDataList[1] EquipManager.DeleteSingleEquip(curSelectEquipData.id, curHeroData.dynamicId) for i = 1, #curHeroData.equipIdList do if tonumber(curHeroData.equipIdList[i]) == tonumber(curSelectEquipData.id) then --英雄删除装备 table.remove(curHeroData.equipIdList, i) break end end local a = curHeroData.equipIdList if not curHeroData.harmonyGongMing then HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList) else HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, {}) end end elseif _equipOrTreasure==2 then -- body curEquipTreasureDatas = _selectEquipDataList[1] EquipTreasureManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, "") for i = 1, #curHeroData.jewels do if curHeroData.jewels[i] == curEquipTreasureDatas.idDyn then --英雄删除装备 table.remove(curHeroData.jewels, i) break end end elseif _equipOrTreasure==3 then curEquipTreasureDatas = _selectEquipDataList[1] FaXiangManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, "") for i = 1, #curHeroData.faxiang do if curHeroData.faxiang[i] == curEquipTreasureDatas.idDyn then --英雄删除装备 table.remove(curHeroData.faxiang, i) break end end end elseif _type == 3 then effectList[position]:SetActive(false) effectList[position]:SetActive(true) if _equipOrTreasure == 1 then local a = curHeroData.equipIdList if not curHeroData.harmonyGongMing then curSelectEquipData = _selectEquipDataList[1] EquipManager.SetEquipUpHeroDid(curSelectEquipData.id, curHeroData.dynamicId) --穿 if _oldSelectEquip and tonumber(_oldSelectEquip.id) ~= tonumber(curSelectEquipData.id) then EquipManager.DeleteSingleEquip(_oldSelectEquip.id, curHeroData.dynamicId) end --英雄替换新选择装备 if curHeroEquipDatas[equipConfig[curSelectEquipData.id].Position] then for i = 1, #curHeroData.equipIdList do if tonumber(curHeroData.equipIdList[i]) == tonumber(curHeroEquipDatas[equipConfig[curSelectEquipData.id].Position].id) then curHeroData.equipIdList[i] = curSelectEquipData.id break end end end HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList) else curSelectEquipData = _selectEquipDataList[1] HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, {curSelectEquipData.id}) EquipManager.SetEquipUpHeroDid(curSelectEquipData.id, curHeroData.dynamicId) end elseif _equipOrTreasure == 2 then -- body curEquipTreasureDatas = _selectEquipDataList[1] --新装备绑英雄 EquipTreasureManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, curHeroData.dynamicId) if _oldSelectEquip then --被替换装备解绑英雄 EquipTreasureManager.SetEquipTreasureUpHeroDid(_oldSelectEquip.idDyn, "") end --英雄替换新选择装备 for i = 1, #curHeroData.jewels do if curHeroData.jewels[i] == _oldSelectEquip.idDyn then curHeroData.jewels[i] = curEquipTreasureDatas.idDyn end end elseif _equipOrTreasure == 3 then curFaXiangDatas = _selectEquipDataList[1] --新装备绑英雄 FaXiangManager.SetEquipTreasureUpHeroDid(curFaXiangDatas.idDyn, curHeroData.dynamicId) if _oldSelectEquip then --被替换装备解绑英雄 FaXiangManager.SetEquipTreasureUpHeroDid(_oldSelectEquip.idDyn, "") end --英雄替换新选择装备 for i = 1, #curHeroData.faxiang do if curHeroData.faxiang[i] == _oldSelectEquip.idDyn then curHeroData.faxiang[i] = curFaXiangDatas.idDyn end end end elseif _type == 4 then --一键穿 把身上装备解绑英雄id if _equipOrTreasure == 1 then if not curHeroData.harmonyGongMing then local isadd for n, m in ipairs(_selectEquipDataList) do isadd = true for i = 1, #curHeroData.equipIdList do if equipConfig[tonumber(curHeroData.equipIdList[i])].Position == equipConfig[tonumber(m)].Position then EquipManager.DeleteSingleEquip(curHeroData.equipIdList[i], curHeroData.dynamicId) curHeroData.equipIdList[i] = m HeroManager.GetHeroEquipIdList1(curHeroData.dynamicId, m) isadd = false break end end if isadd then table.insert(curHeroData.equipIdList, m) end end EquipManager.UpdateEquipData(_selectEquipDataList, curHeroData.dynamicId) else local curEquilist = {} for n, m in ipairs(_selectEquipDataList) do table.insert(curEquilist, m) end curHeroData.equipIdList = curEquilist HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList) EquipManager.UpdateEquipData(_selectEquipDataList, curHeroData.dynamicId) end elseif _equipOrTreasure == 2 then -- body local isadd for i = 1, #_selectEquipDataList do isadd = true for j = 1, #curHeroData.jewels do --如果英雄身上有和选中的宝物的位置相同的,就替换 if EquipTreasureManager.GetSingleTreasureByIdDyn(curHeroData.jewels[j]).equipType == EquipTreasureManager.GetSingleTreasureByIdDyn(_selectEquipDataList[i]).equipType then EquipTreasureManager.SetTreasureUpOrDown(curHeroData.jewels[j], "0") EquipTreasureManager.SetTreasureUpOrDown(_selectEquipDataList[i], curHeroData.dynamicId) curHeroData.jewels[j] = _selectEquipDataList[i] isadd = false break end end if isadd then EquipTreasureManager.SetTreasureUpOrDown(_selectEquipDataList[i], curHeroData.dynamicId) table.insert(curHeroData.jewels, _selectEquipDataList[i]) end end elseif _equipOrTreasure == 3 then local isadd for i = 1, #_selectEquipDataList do isadd = true for j = 1, #curHeroData.faxiang do --如果英雄身上有和选中的宝物的位置相同的,就替换 if FaXiangManager.GetSingleTreasureByIdDyn(curHeroData.faxiang[j]).equipType == FaXiangManager.GetSingleTreasureByIdDyn(_selectEquipDataList[i]).equipType then FaXiangManager.SetTreasureUpOrDown(curHeroData.faxiang[j], "0") FaXiangManager.SetTreasureUpOrDown(_selectEquipDataList[i], curHeroData.dynamicId) curHeroData.faxiang[j] = _selectEquipDataList[i] isadd = false break end end if isadd then FaXiangManager.SetTreasureUpOrDown(_selectEquipDataList[i], curHeroData.dynamicId) table.insert(curHeroData.faxiang, _selectEquipDataList[i]) end end end elseif _type == 5 then --一键脱 把身上装备英雄id置为“0” 再把英雄装备list清空 if _equipOrTreasure == 1 then if _selectEquipDataList then for i = 1, #_selectEquipDataList do EquipManager.DeleteSingleEquip(_selectEquipDataList[i], curHeroData.dynamicId) end end curHeroData.equipIdList = {} HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, {}) curHeroData.equipIdList = {} elseif _equipOrTreasure == 2 then -- body if _selectEquipDataList then for i = 1, #_selectEquipDataList do EquipTreasureManager.SetTreasureUpOrDown(_selectEquipDataList[i], "") end curHeroData.jewels = {} end elseif _equipOrTreasure == 3 then if _selectEquipDataList then for i = 1, #_selectEquipDataList do FaXiangManager.SetTreasureUpOrDown(_selectEquipDataList[i], "") end curHeroData.faxiang = {} end end end --刷新界面 this.ShowHeroEquip() --上阵刷新红点 this.allEquipUpRedPoint:SetActive(isUpZhen and --((#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0 and not (HarmonyManager.IsInfo(curHeroData.dynamicId) and HarmonyManager.GetSingleAdditions(HarmonyAddType.AddEquip) ~= -1)) or ((#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0 and not (HarmonyManager.IsInfo(curHeroData.dynamicId))) or (isCanUpEquipTreasure and #HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,0) > 0) )) this:OnClickTabBtn(indexBtnNum) -- --刷新当前英雄可穿装备 -- if indexBtnNum == PosIdConst.All then -- this:OnClickAllBtn() -- else -- this:OnClickTabBtn(indexBtnNum) -- end --对比战力并更新战力值 播放战力变更动画 HeroManager.CompareWarPower(curHeroData.dynamicId) this.CheckRedTab() end function this.CheckRedTab() for i = 1,#redTabs do if i < 5 then local allEquip = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession, i) this:SortEquipDatas(allEquip) local showRed = false if curHeroCanUpEquipTabs and #curHeroCanUpEquipTabs > 0 then for j = 1,#curHeroCanUpEquipTabs do if equipConfig[curHeroCanUpEquipTabs[j]].Position == i then showRed = true break end end else showRed = false end redTabs[i].gameObject:SetActive(showRed) elseif i==5 then -- body local isRed for j = 1, 2 do local canEquips = HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,j) if canEquips and #canEquips>0 then isRed=true end end redTabs[i].gameObject:SetActive(isCanUpEquipTreasure and isUpZhen and isRed) elseif i==6 then redTabs[i].gameObject:SetActive(FaXiangManager.CheckIsCanUpFaXiang(curHeroData)) --redTabs[i].gameObject:SetActive(false) end end this.equipBTn5Add.gameObject:SetActive(curEquipTreasureDatas[5] and curEquipTreasureDatas[5].idDyn and HeroManager.CheckIsUpTreasure(curEquipTreasureDatas[5].idDyn,0) ) this.equipBtn6Add.gameObject:SetActive(curEquipTreasureDatas[6] and curEquipTreasureDatas[6].idDyn and HeroManager.CheckIsUpTreasure(curEquipTreasureDatas[6].idDyn,0) ) this.equipBTn7Add.gameObject:SetActive(curFaXiangDatas[7] and curFaXiangDatas[7].idDyn and FaXiangManager.CheckIsShowRed(curFaXiangDatas[7].idDyn,0) ) this.equipBtn8Add.gameObject:SetActive(curFaXiangDatas[8] and curFaXiangDatas[8].idDyn and FaXiangManager.CheckIsShowRed(curFaXiangDatas[8].idDyn,0) ) end --选择图片设置父级 function this.SelectImageSetParent(_objPoint) this.selsectSkillImage:SetActive(false) this.selsectSkillImage.transform:SetParent(_objPoint.transform) this.selsectSkillImage.transform.localScale = Vector3.one this.selsectSkillImage.transform.localPosition = Vector3.zero end --界面关闭时调用(用于子类重写) function RoleEquipPanel:OnClose() if isFristOpenTime then isFristOpenTime:Stop() isFristOpenTime = nil end end function this:AddRedPointVale(_equipDatas) for j = 1, #_equipDatas do _equipDatas[j].isRedPointShow = 1 for i = 1, #curHeroCanUpEquipTabs do if curHeroCanUpEquipTabs[i] == _equipDatas[j].id then _equipDatas[j].isRedPointShow = 2 end end end end function this:SortEquipDatas1(_equipDatas) if teamHero[curHeroData.dynamicId] then curHeroCanUpEquipTreasuresTabs = HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,0) else curHeroCanUpEquipTreasuresTabs = {} end for j = 1, #_equipDatas do _equipDatas[j].isRedPointShow = 1 for i = 1, #curHeroCanUpEquipTreasuresTabs do if curHeroCanUpEquipTreasuresTabs[i] == _equipDatas[j].idDyn then _equipDatas[j].isRedPointShow = 2 end end end table.sort(_equipDatas,function(a, b) if a.isRedPointShow == b.isRedPointShow then if a.refineLv == b.refineLv then if a.lv == b.lv then return a.id > b.id else return a.lv > b.lv end else return a.refineLv > b.refineLv end else return a.isRedPointShow > b.isRedPointShow end end ) end function this:SortEquipDatas(_equipDatas) if teamHero[curHeroData.dynamicId] then isUpZhen = true --上阵刷新红点 this.allEquipUpRedPoint:SetActive(isUpZhen and ((#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0 and not (HarmonyManager.IsInfo(curHeroData.dynamicId) and HarmonyManager.GetSingleAdditions(HarmonyAddType.AddEquip) ~= -1)) or (isCanUpEquipTreasure and #HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,0) > 0) )) curHeroCanUpEquipTabs = HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) else isUpZhen = false this.allEquipUpRedPoint:SetActive(false) curHeroCanUpEquipTabs = {} end this:AddRedPointVale(_equipDatas) table.sort( _equipDatas, function(a, b) if a.isRedPointShow == b.isRedPointShow then if a.itemConfig.Quantity == b.itemConfig.Quantity then if equipConfig[a.id].Position == equipConfig[b.id].Position then return itemConfig[a.id].Sort > itemConfig[b.id].Sort else return equipConfig[a.id].Position < equipConfig[b.id].Position end else return a.itemConfig.Quantity > b.itemConfig.Quantity end else return a.isRedPointShow > b.isRedPointShow end end ) end --界面销毁时调用(用于子类重写) function RoleEquipPanel:OnDestroy() this.spLoader:Destroy() SubUIManager.Close(this.UpView) this.ScrollView = nil for k,v in pairs(this.equipPreList) do SubUIManager.Close(v) end this.equipPreList = {} for k,v in pairs(this.equipPreList2) do SubUIManager.Close(v) end this.equipPreList2 = {} end return RoleEquipPanel