require("Base/BasePanel") BagPanel = Inherit(BasePanel) local this = BagPanel local sortIndex = 0 local sortIndexBtnGo local tabs1 = {} local tabs1RedPoint = {} local itemData = {} this.isFristOpen = true local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig) local isFristOpenTime = Timer.New() local orginLayer=0--层级 local list={} --初始化组件(用于子类重写) function BagPanel:InitComponent() this.BtnBack = Util.GetGameObject(self.transform, "rightUp/btnBack") for i = 0, 7 do tabs1[i] = Util.GetGameObject(self.transform, "box/Btn" .. i) tabs1RedPoint[i] = Util.GetGameObject(self.transform, "box/Btn" .. i .. "/redPoint") end this.selectBtn1 = Util.GetGameObject(self.gameObject, "selectBtn") this.BtView = SubUIManager.Open(SubUIConfig.BtView, self.gameObject.transform) this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform) this.fenJieBtn = Util.GetGameObject(self.gameObject, "fenJieBtn") this.itemNumText = Util.GetGameObject(self.gameObject, "itemNumText") this.ItemView = Util.GetGameObject(self.gameObject, "ItemView") this.ItemViewEffect = Util.GetGameObject(self.gameObject, "ItemView/GameObject/effects") this.item = Util.GetGameObject(self.gameObject, "Item") this.grid = Util.GetGameObject(self.gameObject, "scroll/grid") this.Scrollbar = Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar") this.isBagPanel = true this.EffectOrginLayer = 0 this.mask = Util.GetGameObject(self.gameObject, "mask") -- 嚣张的头像 this.level = Util.GetGameObject(self.gameObject, "LeftUp/headBox/lvFrame/lv"):GetComponent("Text") this.playName = Util.GetGameObject(self.gameObject, "LeftUp/headBox/name"):GetComponent("Text") this.expSliderValue = Util.GetGameObject(self.gameObject, "LeftUp/headBox/exp"):GetComponent("Slider") this.headBox = Util.GetGameObject(self.gameObject, "LeftUp/headBox") this.headPos = Util.GetGameObject(self.gameObject, "LeftUp/headBox/headpos") this.headRedpot = Util.GetGameObject(self.gameObject, "LeftUp/headBox/redpot") this.teamPower = Util.GetGameObject(self.gameObject, "LeftUp/powerBtn/value"):GetComponent("Text") -- 特权 this.vipPrivilegeBtn = Util.GetGameObject(self.gameObject, "LeftUp/vipPrivilege/vipPrivilegeBtn") this.vipLevelText = Util.GetGameObject(this.vipPrivilegeBtn, "bg/vip"):GetComponent("Image") this.vipRedPoint = Util.GetGameObject(self.gameObject, "LeftUp/vipPrivilege/redPoint") screenAdapte(this.vipPrivilegeBtn) --无信息图片 this.noneImage=Util.GetGameObject(self.gameObject,"NoneImage") end --绑定事件(用于子类重写) function BagPanel:BindEvent() Util.AddClick(this.BtnBack, function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) self:ClosePanel() end) for i = 0, 7 do Util.AddClick(tabs1[i], function() if this.isFristOpen == false then if i == sortIndex then sortIndex = 0 this:OnClickAllBtn() else sortIndex = i this.OnClickTabBtn(sortIndex, tabs1[sortIndex]) end end end) end Util.AddClick(this.fenJieBtn, function() if sortIndex == ItemBaseType.Equip then UIManager.OpenPanel(UIName.EquipSellSelectPopup)--宝器 elseif sortIndex == ItemBaseType.SoulPrint then UIManager.OpenPanel(UIName.HeroAndEquipResolvePanel, 4)--魂印 end end) -- 点击你的猪头 Util.AddClick(this.headBox, function () UIManager.OpenPanel(UIName.SettingPanel) end) Util.AddClick(this.vipPrivilegeBtn, function() UIManager.OpenPanel(UIName.VipPanelV2) end) BindRedPointObject(RedPointType.Bag_HeroDebris, tabs1RedPoint[ItemBaseType.HeroChip]) BindRedPointObject(RedPointType.Bag_BoxAndBlueprint, tabs1RedPoint[ItemBaseType.Special]) BindRedPointObject(RedPointType.Setting, this.headRedpot) BindRedPointObject(RedPointType.VipPrivilege, this.vipRedPoint) end function this.JumpOnClickTabBtn(_sortIndex) sortIndex = _sortIndex this.OnClickTabBtn(sortIndex, tabs1[sortIndex]) end function this:SetSelectBtn(_btn) if _btn then this.selectBtn1:SetActive(true) this.selectBtn1.transform:SetParent(_btn.transform) this.selectBtn1.transform.localPosition = Vector3.zero Util.GetGameObject(this.selectBtn1.transform, "Text"):GetComponent("Text").text = Util.GetGameObject(_btn.transform, "Text"):GetComponent("Text").text else this.selectBtn1:SetActive(false) end this.fenJieBtn:SetActive(sortIndex == ItemBaseType.SoulPrint or sortIndex == ItemBaseType.Equip)--装备 this.itemNumText:SetActive(sortIndex == ItemBaseType.Equip or sortIndex == ItemBaseType.SoulPrint or sortIndex == ItemBaseType.EquipTreasure)--装备 法宝 end --点击全部按钮 function this:OnClickAllBtn() sortIndex = 0 this:SetSelectBtn(tabs1[sortIndex]) sortIndexBtnGo = tabs1[sortIndex] itemData = {} itemData = this.GetBagItemData() local curAllEquipTreasure = EquipTreasureManager.GetAllTreasures() for i = 1, #curAllEquipTreasure do table.insert(itemData, curAllEquipTreasure[i]) end local soulPrintData = BagManager.GetAllSoulPrintData() for i,v in ipairs(soulPrintData) do table.insert(itemData, v) end this:SetItemData(itemData) this.noneImage:SetActive(#itemData==0) this.fenJieBtn:GetComponent("Button").enabled = not(#itemData==0) end function this.BagGoldChangeCallBackOnClickTabBtn() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) end function this.OnClickTabBtn(_index, _clickBtn) sortIndexBtnGo = _clickBtn itemData = {} local itemNumText = this.itemNumText:GetComponent("Text") this:SetSelectBtn(_clickBtn) if _index == ItemBaseType.Equip then local allEquipData = BagManager.GetBagItemDataByItemType(ItemBaseType.Equip) itemNumText.text = Language[10188]..LengthOfTable(allEquipData).."/"..ConfigManager.GetConfigData(ConfigName.GameSetting,1).EquipNumlimit for i, v in pairs(allEquipData) do table.insert(itemData, v) end this:SetItemData(itemData) elseif _index == 0 then this:OnClickAllBtn() elseif (_index == ItemBaseType.SoulPrint) then itemData = BagManager.GetAllSoulPrintData() itemNumText.text = Language[10189]..#itemData.."/"..specialConfig[9].Value this:SetItemData(itemData, ItemBaseType.SoulPrint) elseif (_index == ItemBaseType.EquipTreasure) then itemData = EquipTreasureManager.GetAllTreasures() itemNumText.text = Language[10190]..LengthOfTable(itemData).."/"..specialConfig[10].Value this:SetItemData(itemData) else itemData = BagManager.GetBagItemDataByItemType(_index) this:SetItemData(itemData) end this.noneImage:SetActive(#itemData==0) this.fenJieBtn:GetComponent("Button").enabled = not(#itemData==0) end --当魂印升级消耗时刷新背包数据 function this.OnRefreshSoulPanelBagData() itemData = SoulPrintManager.soulPrintData this:SetItemData(itemData, ItemBaseType.SoulPrint) end local orginLayer2 = 0 --设置背包列表数据 function this:SetItemData(_itemDatas) list={} this.ItemsSortData(_itemDatas) if not this.ScrollView then local v2 = Util.GetGameObject(self.gameObject, "scroll"):GetComponent("RectTransform").rect this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(self.transform, "scroll").transform, this.ItemView, this.Scrollbar, Vector2.New(-v2.x * 2, -v2.y * 2), 1, 5, Vector2.New(40, 11)) this.ScrollView.moveTween.MomentumAmount = 1 this.ScrollView.moveTween.Strength = 2 end this.ScrollView:SetData(_itemDatas, function(index, go) if this.isFristOpen then go.gameObject:SetActive(false) end this.SingleItemDataShow(go, _itemDatas[index]) if _itemDatas[index].itemConfig.ItemType == ItemType.HunYin then table.insert(list,go) end end) --特效层级重设 for i=1,#list do Util.AddParticleSortLayer(list[i], this.sortingOrder- orginLayer2) end orginLayer2 = this.sortingOrder orginLayer = this.sortingOrder if this.isFristOpen then this.ScrollView:ForeachItemGO(function(index, go) Timer.New(function() go.gameObject:SetActive(true) PlayUIAnim(go.gameObject) end, 0.01 * (index - 1)):Start() end) if isFristOpenTime then isFristOpenTime:Stop() isFristOpenTime = nil end isFristOpenTime = Timer.New(function() this.isFristOpen = false this.mask:SetActive(false) end, 0.5):Start() end end --设置魂印循环滚动数据 function this:SetSoulPrintData(_go, _itemData) local openBtn = Util.GetGameObject(_go.gameObject, "openBtn") local quality = Util.GetGameObject(_go.gameObject, "itemShow/quality"):GetComponent("Image") local icon = Util.GetGameObject(_go.gameObject, "itemShow/icon"):GetComponent("Image") local name = Util.GetGameObject(_go.gameObject, "itemShow/Image/name"):GetComponent("Text") local level = Util.GetGameObject(_go.gameObject, "itemShow/level"):GetComponent("Text") local propertyText = Util.GetGameObject(_go.gameObject, "propertyText"):GetComponent("Text") local propertyText2 = Util.GetGameObject(_go.gameObject, "propertyText (1)"):GetComponent("Text") quality.sprite = Util.LoadSprite(GetQuantityImageByquality(_itemData.quality)) icon.sprite = Util.LoadSprite(_itemData.icon) name.text = _itemData.name num.gameObject.SetActive(false) level.text = "+" .. _itemData.level propertyText.text = "" propertyText2.text = "" local property = SoulPrintManager.GetShowPropertyData(_itemData.property[1][1], _itemData.property[1][2]) propertyText.text = property.name .. property.num if (#_itemData.property >= 2) then property = SoulPrintManager.GetShowPropertyData(_itemData.property[2][1], _itemData.property[2][2]) propertyText2.text = property.name .. property.num end Util.AddOnceClick(openBtn, function() UIManager.OpenPanel(UIName.SoulPrintPopUp, ShowType.showTip3, _itemData.did, nil, nil, nil) end) end function this.SingleItemDataShow(_go, _itemData) Util.GetGameObject(_go.gameObject, "GameObject/item"):SetActive(true) Util.GetGameObject(_go.gameObject, "GameObject/item/frame"):GetComponent("Image").sprite = Util.LoadSprite(_itemData.frame) Util.GetGameObject(_go.gameObject, "GameObject/item/icon"):GetComponent("Image").sprite = Util.LoadSprite(_itemData.icon) Util.GetGameObject(_go.gameObject, "GameObject/item/icon"):SetActive(true) Util.GetGameObject(_go.gameObject, "GameObject/item/circleFrameBg"):SetActive(false) Util.GetGameObject(_go.gameObject, "GameObject/name"):GetComponent("Text").text = _itemData.itemConfig.Name local upHeroInage = Util.GetGameObject(_go.transform, "GameObject/item/upHeroInage") local UI_Effect_jinkuang_Fang = Util.GetGameObject(_go.transform, "GameObject/effects/UI_Effect_jinkuang_Fang") if(UI_Effect_jinkuang_Fang) then UI_Effect_jinkuang_Fang:SetActive(false) end local UI_Effect_jinkuang_Yuan = Util.GetGameObject(_go.transform, "GameObject/effects/UI_Effect_jinkuang_Yuan") if(UI_Effect_jinkuang_Yuan) then UI_Effect_jinkuang_Yuan:SetActive(false) end local UI_Effect_Kuang_JinSe = Util.GetGameObject(_go.transform, "GameObject/effects/UI_Effect_Kuang_JinSe") if(UI_Effect_Kuang_JinSe) then UI_Effect_Kuang_JinSe:SetActive(false) end upHeroInage:SetActive(false) local frameMask = Util.GetGameObject(_go.transform, "GameObject/item/frameMask") frameMask:SetActive(false) local num = Util.GetGameObject(_go.gameObject, "GameObject/item/num") local strongLv=Util.GetGameObject(_go.gameObject, "GameObject/item/lv"):GetComponent("Text") local refine=Util.GetGameObject(_go.gameObject, "GameObject/item/refine"):GetComponent("Text") local resetLv = Util.GetGameObject(_go.gameObject, "GameObject/item/resetLv") local talismanStar = Util.GetGameObject(_go.gameObject, "GameObject/item/talismanStar") num:SetActive(true) resetLv:SetActive(false) talismanStar:SetActive(false) strongLv.gameObject:SetActive(false) refine.gameObject:SetActive(false) if _itemData.itemConfig then Util.GetGameObject(_go.transform, "GameObject/item/innateImage"):SetActive(false) Util.GetGameObject(_go.transform, "GameObject/item/fragmentIcon"):SetActive(false) num:SetActive(true) num:GetComponent("Text").text = _itemData.num if _itemData.itemConfig.ItemType == ItemType.Equip then --装备 local equipConfig = ConfigManager.GetConfigData(ConfigName.EquipConfig,_itemData.itemConfig.Id) if equipConfig then local equipStarsConfig = ConfigManager.GetConfigData(ConfigName.EquipStarsConfig,equipConfig.Star) if equipStarsConfig then talismanStar:SetActive(true) SetHeroStars(talismanStar, equipStarsConfig.Stars,1,Vector2.New(32.5,32.5),-15) end end elseif _itemData.itemConfig.ItemType == ItemType.Pokemon then Util.GetGameObject(_go.gameObject, "GameObject/item/frame"):GetComponent("Image").sprite = Util.LoadSprite(YaoHunFrame[_itemData.quality]) num:SetActive(false) elseif _itemData.itemConfig.ItemType == ItemType.HeroDebris then frameMask:SetActive(true) num:SetActive(false) frameMask:GetComponent("Image").sprite = Util.LoadSprite(GetHeroChipQuantityImageByquality(_itemData.itemConfig.Quantity)) Util.GetGameObject(_go.transform, "GameObject/item/frameMask/exp/Text"):GetComponent("Text").text = BagManager.GetItemCountById(_itemData.itemConfig.Id) .. "/" .. _itemData.itemConfig.UsePerCount local curExpVal = BagManager.GetItemCountById(_itemData.itemConfig.Id) / _itemData.itemConfig.UsePerCount local expValue = curExpVal >= 1 and 1 or curExpVal Util.GetGameObject(_go.transform, "GameObject/item/frameMask/exp"):GetComponent("Slider").value = expValue local expMask = Util.GetGameObject(_go.transform, "GameObject/item/frameMask/mask") if expValue >= 1 then expMask:SetActive(true) else expMask:SetActive(false) end local propertyName = itemConfig[_itemData.itemConfig.Id].PropertyName if (propertyName ~= 0) then Util.GetGameObject(_go.transform, "GameObject/item/fragmentIcon"):SetActive(true) Util.GetGameObject(_go.transform, "GameObject/item/fragmentIcon"):GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(propertyName)) end elseif _itemData.itemConfig.ItemType == ItemType.TalentItem then --天赋材料 if _itemData.itemConfig.RingLevel > 0 then Util.GetGameObject(_go.transform, "GameObject/item/innateImage"):SetActive(true) Util.GetGameObject(_go.transform, "GameObject/item/innateImage/Text"):GetComponent("Text").text = "+" .. _itemData.itemConfig.RingLevel else Util.GetGameObject(_go.transform, "GameObject/item/innateImage"):SetActive(false) Util.GetGameObject(_go.transform, "GameObject/item/innateImage/Text"):GetComponent("Text").text = "" end elseif _itemData.itemConfig.ItemType == ItemType.Talisman then --法宝 talismanStar:SetActive(true) SetHeroStars(talismanStar, _itemData.star,1,Vector2.New(32.5,32.5),-15) num:SetActive(false) elseif _itemData.itemConfig.ItemType == ItemType.EquipTreasure then --宝器 num:SetActive(false) if _itemData.lv>0 then strongLv.gameObject:SetActive(true) strongLv.text=_itemData.lv end if _itemData.refineLv>0 then refine.gameObject:SetActive(true) refine.text="+".._itemData.refineLv end Util.GetGameObject(_go.transform, "GameObject/item/fragmentIcon"):SetActive(true) Util.GetGameObject(_go.transform, "GameObject/item/fragmentIcon"):GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(itemConfig[_itemData.itemConfig.Id].PropertyName)) elseif _itemData.itemConfig.ItemType == ItemType.HunYin then SetSoulEffect(itemConfig[_itemData.itemConfig.Id].Quantity,Util.GetGameObject(_go.transform, "GameObject/effects")) Util.GetGameObject(_go.transform, "GameObject/item/resetLv"):SetActive(false) Util.GetGameObject(_go.gameObject, "GameObject/item/icon"):SetActive(false) Util.GetGameObject(_go.gameObject, "GameObject/item/circleFrameBg"):SetActive(true) Util.GetGameObject(_go.gameObject,"GameObject/item/circleFrameBg"):GetComponent("Image").sprite=Util.LoadSprite(SoulPrintSpriteByQuantity[itemConfig[_itemData.itemConfig.Id].Quantity].circleBg2) Util.GetGameObject(_go.gameObject,"GameObject/item/circleFrameBg/Icon"):GetComponent("Image").sprite=Util.LoadSprite(_itemData.icon) Util.GetGameObject(_go.gameObject,"GameObject/item/circleFrameBg/circleFrame"):GetComponent("Image").sprite=Util.LoadSprite(SoulPrintSpriteByQuantity[itemConfig[_itemData.itemConfig.Id].Quantity].circle) num:SetActive(false) end end local redPoint = Util.GetGameObject(_go.gameObject, "GameObject/redPoint") Util.AddOnceClick(Util.GetGameObject(_go.gameObject, "GameObject/item/frame"), function() if _itemData.itemConfig then if _itemData.itemConfig.ItemBaseType == ItemBaseType.Equip then UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) end,nil,true) elseif _itemData.itemConfig.ItemType == ItemType.SelfBox then--自选宝箱 UIManager.OpenPanel(UIName.RewardBoxPanel, _itemData, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) UIManager.ClosePanel(UIName.RewardBoxPanel) end) -- body elseif _itemData.itemConfig.ItemBaseType == ItemBaseType.HeroChip then UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.id, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) UIManager.ClosePanel(UIName.RewardItemSingleShowPopup) end) elseif _itemData.itemConfig.ItemType == ItemType.Blueprint then --蓝图 local lanTuData = WorkShopManager.GetLanTuIsOpenLock(_itemData.itemConfig.Id) if lanTuData and lanTuData[1] == true then UIManager.OpenPanel(UIName. WorkShopArmorOnePanel, 2, 2, lanTuData[2], this, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) end) elseif lanTuData and lanTuData[1] == false then UIManager.OpenPanel(UIName.WorkShopArmorOnePanel, 2, 1, lanTuData[2], this, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) end) end elseif _itemData.itemConfig.ItemType == ItemType.HeroDebris then --角色碎片 if _itemData.num >= _itemData.itemConfig.UsePerCount then UIManager.OpenPanel(UIName.BagResolveAnCompoundPanel, 3, _itemData, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) end) else UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.id, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) UIManager.ClosePanel(UIName.RewardItemSingleShowPopup) end) end elseif _itemData.itemConfig.ItemBaseType == ItemBaseType.EquipTreasure then --宝器 UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup, 0, _itemData.idDyn,_itemData.id, _itemData.lv,_itemData.refineLv, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) end) elseif _itemData.itemConfig.ItemBaseType == ItemBaseType.SoulPrint then --魂印 UIManager.OpenPanel(UIName.SoulPrintPopUp, ShowType.showTip3, nil,_itemData.id) else UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.id, function() this.OnClickTabBtn(sortIndex, sortIndexBtnGo) UIManager.ClosePanel(UIName.RewardItemSingleShowPopup) end) end end end) --显示红点 redPoint:SetActive(false) if _itemData.itemConfig.ItemType == ItemType.Equip then if _itemData.itemConfig.Quantity >= 4 then redPoint:SetActive(EquipManager.IsNewEquipFrame(_itemData.did)) end elseif _itemData.itemConfig.ItemType == ItemType.Blueprint then local lanTuData = WorkShopManager.GetLanTuIsOpenLock(_itemData.itemConfig.Id) if lanTuData and lanTuData[1] == false then redPoint:SetActive(true) end elseif _itemData.itemConfig.ItemType == ItemType.Box then redPoint:SetActive(true) end end --通过物品类型获取物品数据 function this:GetItemsByItemTpye(_itemType) local items = {} local index = 1 for i, v in pairs(BagManager.bagDatas) do if v.type == _itemType then items[index] = v index = index + 1 end end return items end --添加事件监听(用于子类重写) function BagPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Bag.OnTempBagChanged, this.BagGoldChangeCallBackOnClickTabBtn) Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, this.BagGoldChangeCallBackOnClickTabBtn) Game.GlobalEvent:AddEvent(GameEvent.Bag.OnRefreshSoulPanelData, this.OnRefreshSoulPanelBagData) Game.GlobalEvent:AddEvent(GameEvent.Player.OnChangeName, this.FreshPlayerInfo) end --移除事件监听(用于子类重写) function BagPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Bag.OnTempBagChanged, this.BagGoldChangeCallBackOnClickTabBtn) Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, this.BagGoldChangeCallBackOnClickTabBtn) Game.GlobalEvent:RemoveEvent(GameEvent.Bag.OnRefreshSoulPanelData, this.OnRefreshSoulPanelBagData) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnChangeName, this.FreshPlayerInfo) end --界面打开时调用(用于子类重写) function BagPanel:OnOpen(_sortIndex) sortIndex = 0--注释掉就是记录选择类型 if _sortIndex then sortIndex = _sortIndex end this.UpView:OnOpen({ showType = UpViewOpenType.ShowRight, panelType = PanelType.Main }) this.BtView:OnOpen({ sortOrder = self.sortingOrder, panelType = PanelTypeView.BagPanel }) end --界面打开时调用(用于子类重写) function BagPanel:OnShow() this.sortingOrder = self.sortingOrder this.isFristOpen = true this.mask:SetActive(true) if this.ScrollView then this.ScrollView:SetIndex(1) end if sortIndex > 0 then this.OnClickTabBtn(sortIndex, tabs1[sortIndex]) else this:OnClickAllBtn() end SoundManager.PlayMusic(SoundConfig.BGM_Main) BagManager.isBagPanel = true this.FreshPlayerInfo() this.SetPlayerHead() end -- 刷新玩家信息显示 function this.FreshPlayerInfo() this.vipLevelText.sprite = VipManager.SetVipLevelImg() this.level.text = PlayerManager.level this.expSliderValue.value = PlayerManager.exp / PlayerManager.userLevelData[PlayerManager.level].Exp this.playName.text = PlayerManager.nickName this.teamPower.text = FormationManager.GetFormationPower(FormationManager.curFormationIndex) end -- 设置头像 function this.SetPlayerHead() if not this.playerHead then this.playerHead = SubUIManager.Open(SubUIConfig.PlayerHeadView, this.headPos.transform) end this.playerHead:SetHead(PlayerManager.head) this.playerHead:SetFrame(PlayerManager.frame) this.playerHead:SetScale(Vector3.one * 0.9) this.playerHead:SetPosition(Vector3.New(-5, 0, 0)) end local orginLayer function BagPanel:OnSortingOrderChange() Util.AddParticleSortLayer(this.ItemViewEffect, self.sortingOrder - this.EffectOrginLayer) Util.AddParticleSortLayer(this.vipPrivilegeBtn, self.sortingOrder - this.EffectOrginLayer) --特效层级重设 for i=1,#list do Util.AddParticleSortLayer(list[i], this.sortingOrder- orginLayer) end orginLayer = this.sortingOrder this.EffectOrginLayer = self.sortingOrder this.BtView:SetOrderStatus({ sortOrder = self.sortingOrder }) end --界面关闭时调用(用于子类重写) function BagPanel:OnClose() this.noneImage:SetActive(false) BagManager.isBagPanel = false if isFristOpenTime then isFristOpenTime:Stop() isFristOpenTime = nil end end function this.DelePokemonItemData(_itemDatas) local curItemDatas = {} --背包特殊处理 sortType=1 sortIndex=5 时显示妖魂 其他页签不显示 for k, v in pairs(_itemDatas) do if sortIndex == ItemBaseType.DemonSoul then else if v.itemConfig.ItemType == ItemType.Pokemon then _itemDatas[k] = nil end end end for k, v in pairs(_itemDatas) do table.insert(curItemDatas, v) end return curItemDatas end function this.ItemsSortData(_itemDatas) --排序 table.sort(_itemDatas, function(a, b) if sortIndex == 0 then --0全部 1装备 2材料 3消耗 4特殊 5碎片 if a.itemConfig.ItemBaseType == b.itemConfig.ItemBaseType then if a.itemConfig.ItemType == a.itemConfig.ItemType then if a.itemConfig.ItemType == ItemType.Talisman and b.itemConfig.ItemType == ItemType.Talisman then if a.itemConfig.Quantity == b.itemConfig.Quantity then if a.star == b.star then return a.id < b.id else return a.star > b.star end else return a.itemConfig.Quantity > b.itemConfig.Quantity end end if a.itemConfig.ItemType == ItemType.HunYin and b.itemConfig.ItemType == ItemType.HunYin then if a.itemConfig.Quantity == b.itemConfig.Quantity then if a.quality == b.quality then return a.id > b.id else return a.quality > b.quality end else return a.itemConfig.Quantity > b.itemConfig.Quantity end end if a.itemConfig.ItemType == ItemType.EquipTreasure and b.itemConfig.ItemType == ItemType.EquipTreasure then if a.itemConfig.Quantity == b.itemConfig.Quantity 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.itemConfig.Quantity > b.itemConfig.Quantity end end if a.itemConfig.ItemType == ItemType.HeroDebris and b.itemConfig.ItemType == ItemType.HeroDebris then local aNum = BagManager.GetItemCountById(a.itemConfig.Id) >= a.itemConfig.UsePerCount and 2 or 1 local bNum = BagManager.GetItemCountById(b.itemConfig.Id) >= b.itemConfig.UsePerCount and 2 or 1 if aNum == bNum then if a.itemConfig.Quantity == b.itemConfig.Quantity then if a.itemConfig.PropertyName == b.itemConfig.PropertyName then return a.id < b.id else return a.itemConfig.PropertyName < b.itemConfig.PropertyName end else return a.itemConfig.Quantity > b.itemConfig.Quantity end else return aNum > bNum end end else return a.itemConfig.ItemType < b.itemConfig.ItemType end else return a.itemConfig.ItemBaseType < b.itemConfig.ItemBaseType end elseif sortIndex == ItemBaseType.Equip or sortIndex == ItemBaseType.Materials or sortIndex == ItemBaseType.Special then if a.itemConfig.Quantity == b.itemConfig.Quantity then if a.itemConfig.ItemType == b.itemConfig.ItemType then return a.id > b.id else return a.itemConfig.ItemType < b.itemConfig.ItemType end else return a.itemConfig.Quantity > b.itemConfig.Quantity end elseif sortIndex == ItemBaseType.HeroChip then local aNum = BagManager.GetItemCountById(a.itemConfig.Id) >= a.itemConfig.UsePerCount and 2 or 1 local bNum = BagManager.GetItemCountById(b.itemConfig.Id) >= b.itemConfig.UsePerCount and 2 or 1 if aNum == bNum then if a.itemConfig.Quantity == b.itemConfig.Quantity then if a.itemConfig.PropertyName == b.itemConfig.PropertyName then return a.id < b.id else return a.itemConfig.PropertyName < b.itemConfig.PropertyName end else return a.itemConfig.Quantity > b.itemConfig.Quantity end else return aNum > bNum end elseif sortIndex == ItemBaseType.DemonSoul then local aNum = BagManager.GetItemCountById(a.itemConfig.Id) >= a.itemConfig.UsePerCount and 2 or 1 local bNum = BagManager.GetItemCountById(b.itemConfig.Id) >= b.itemConfig.UsePerCount and 2 or 1 if aNum == bNum then if a.itemConfig.Quantity == b.itemConfig.Quantity then if a.itemConfig.ItemType == b.itemConfig.ItemType then return a.id > b.id else return a.itemConfig.ItemType < b.itemConfig.ItemType end else return a.itemConfig.Quantity > b.itemConfig.Quantity end else return aNum > bNum end elseif sortIndex == ItemBaseType.SoulPrint then if a.quality == b.quality then return a.id > b.id else return a.quality > b.quality end elseif sortIndex == ItemBaseType.EquipTreasure then if a.itemConfig.Quantity == b.itemConfig.Quantity 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.itemConfig.Quantity > b.itemConfig.Quantity end end end) end --获取所有背包物品 function this.GetBagItemData() local _index = 1 local _bagItemData = {} for i, v in pairs(BagManager.bagDatas) do if v.isBag and v.num > 0 and v.itemConfig.ItemType ~= ItemType.Pokemon and v.itemConfig.ItemType ~= ItemType.HunYin then --进背包 数量大于零的 不是异妖部件 _bagItemData[_index] = v _index = _index + 1 end end return _bagItemData end --界面销毁时调用(用于子类重写) function BagPanel:OnDestroy() SubUIManager.Close(this.UpView) SubUIManager.Close(this.BtView) this.ScrollView = nil this.ScrollView1 = nil ClearRedPointObject(RedPointType.Bag_HeroDebris, tabs1RedPoint[ItemBaseType.HeroChip]) ClearRedPointObject(RedPointType.Bag_BoxAndBlueprint, tabs1RedPoint[ItemBaseType.Special]) ClearRedPointObject(RedPointType.Setting, this.headRedpot) ClearRedPointObject(RedPointType.VipPrivilege, this.vipRedPoint) list={} orginLayer2=0 orginLayer=0 end --跳转显示新手提示圈 function this.ShowGuideGo() local item1Btn = Util.GetGameObject(this.transform, "scroll/ScrollCycleView/grid/item1") if item1Btn then JumpManager.ShowGuide(UIName.BagPanel, item1Btn) end end return BagPanel