local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local equipConfig = ConfigManager.GetConfig(ConfigName.EquipConfig) local EquipStrengthen = ConfigManager.GetConfig(ConfigName.EquipStrengthen) local EquipRankUp = ConfigManager.GetConfig(ConfigName.EquipRankUp) ItemView = {} function ItemView:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = ItemView }) return b end --初始化组件(用于子类重写) function ItemView:InitComponent() self.spLoader = SpriteLoader.New() self.frameBtn = Util.GetGameObject(self.gameObject, "item/frame") self.frame = Util.GetGameObject(self.gameObject, "item/frame"):GetComponent("Image") self.icon = Util.GetGameObject(self.gameObject, "item/icon"):GetComponent("Image") self.iconGo = Util.GetGameObject(self.gameObject, "item/icon") self.circleFrameBg = Util.GetGameObject(self.gameObject, "item/circleFrameBg") self.num = Util.GetGameObject(self.gameObject, "item/num") self.addImage = Util.GetGameObject(self.gameObject, "item/addImage") self.redPoint = Util.GetGameObject(self.gameObject, "redPoint") self.frameMask = Util.GetGameObject(self.gameObject, "item/frameMask") self.heroShowGo = Util.GetGameObject(self.gameObject, "item/heroShow") self.starPre = Util.GetGameObject(self.gameObject, "item/heroShow/starPre") self.starGrid = Util.GetGameObject(self.gameObject, "item/starGameobject") self.proImage = Util.GetGameObject(self.gameObject, "item/heroShow/proIcon"):GetComponent("Image") --self.posImage = Util.GetGameObject(self.gameObject, "item/heroShow/posIcon"):GetComponent("Image") Util.GetGameObject(self.gameObject, "item/heroShow/posIcon"):SetActive(false) self.name = Util.GetGameObject(self.gameObject, "name") self.resetLv = Util.GetGameObject(self.gameObject, "item/resetLv") -- self.upImg = Util.GetGameObject(self.gameObject, "item/upImg") -- self.upImg:SetActive(false) self.resetLvText = self.resetLv:GetComponent("Text") self.rightUplv = Util.GetGameObject(self.gameObject, "item/rightUplv"):GetComponent("Text") self.middleDownLv = Util.GetGameObject(self.gameObject, "item/middleDownLv") self.middleDownLvText = Util.GetGameObject(self.middleDownLv, "Text"):GetComponent("Text") self.item = Util.GetGameObject(self.gameObject, "item") self.innateImage=Util.GetGameObject(self.gameObject, "item/innateImage") self.innateText=Util.GetGameObject(self.gameObject, "item/innateImage/Text"):GetComponent("Text") self.fragmentIcon=Util.GetGameObject(self.gameObject, "item/fragmentIcon") self.time = Util.GetGameObject(self.gameObject, "item/time") self.timeTxt = Util.GetGameObject(self.gameObject, "item/time/Text"):GetComponent("Text") self.homeLv = Util.GetGameObject(self.gameObject, "item/homeLv"):GetComponent("Text") self.homeProLv = Util.GetGameObject(self.gameObject, "item/homeProLv"):GetComponent("Text") --self.heroStage=Util.GetGameObject(self.gameObject, "item/heroShow/heroStage"):GetComponent("Image") Util.GetGameObject(self.gameObject, "item/heroShow/heroStage"):SetActive(false) --双倍妖晶 self.Double=Util.GetGameObject(self.gameObject, "Double") self.EffectOrginLayer = 0 self.EffectOrginLayerQu = 0 self.EffectOrginScale = 1 self.EffectOrginScaleQu = 1 self.effectRoot = Util.GetGameObject(self.gameObject, "effects") self.pokemonEffect = Util.GetGameObject(self.gameObject, "effects/pokemonEffect") self.pokemonEffectPartical = Util.GetGameObject(self.pokemonEffect, "ziti mask"):GetComponent(typeof(UnityEngine.ParticleSystem)) self.itemEffect = Util.GetGameObject(self.gameObject, "itemEffect") self.itemEffectPartical = Util.GetGameObject(self.itemEffect, "ziti mask"):GetComponent(typeof(UnityEngine.ParticleSystem)) self.UI_Effect_Kuang_JinSe = Util.GetGameObject(self.gameObject, "effects/UI_Effect_Kuang_JinSe") self.UI_Effect_Kuang_HongSe = Util.GetGameObject(self.gameObject, "effects/UI_Effect_Kuang_HongSe") self.UI_Effect_jinkuang_Fang = Util.GetGameObject(self.gameObject, "effects/UI_Effect_jinkuang_Fang") self.UI_Effect_jinkuang_Yuan = Util.GetGameObject(self.gameObject, "effects/UI_Effect_jinkuang_Yuan") self.UI_effect_ItemView_saoguang = Util.GetGameObject(self.gameObject, "effects/UI_effect_ItemView_saoguang") self.UI_effect_WuCai_Kuang = Util.GetGameObject(self.gameObject, "effects/UI_effect_WuCai_Kuang") self.c_ui_qinyan_duan = Util.GetGameObject(self.gameObject, "effects/c_ui_qinyan_duan") self:InitFrameEffect() end function ItemView:ToEffect(num) end --绑定事件(用于子类重写) function ItemView:BindEvent() end --添加事件监听(用于子类重写) function ItemView:AddListener() end --移除事件监听(用于子类重写) function ItemView:RemoveListener() end --isGet 是否获得 --itemDatas 数据 --scale 缩放值 --isShowName 是否显示名字(默认不显示) --isShowAddImage 是否显示道具不足加号(默认不显示) --isPlayAnim 是否播放获得动画(默认不播) --effectLayer 当前界面层级(显示粒子特效用) --_allData 整个物品的数据(装备、宝物、等等等(目前只有装备)) --界面打开时调用(用于子类重写) function ItemView:OnOpen(isGet, itemDatas, _scale, isShowName, isShowAddImage, isPlayAnim, effectLayer,Did,_allData) isShowName = isShowName or false isShowAddImage = isShowAddImage or false isPlayAnim = isPlayAnim or false --isShowLightEffect = isShowLightEffect or false effectLayer = effectLayer or 0 self.name:SetActive(isShowName) self.addImage:SetActive(isShowAddImage) self.gameObject:GetComponent("PlayFlyAnim").enabled = isPlayAnim self.scale = _scale or 1 self.Did = Did self.allData = _allData --self.gameObject:GetComponent("RectTransform").localScale = Vector2.New(scale, scale) self.gameObject:GetComponent("RectTransform").sizeDelta = Vector2.New(135, 135) if isGet and itemDatas then self:GetRewardShow(itemDatas, effectLayer) elseif isGet == false and itemDatas then self:NoGetRewardShow(itemDatas, effectLayer, isShowAddImage) end -- 重置icon大小 self.icon.transform.sizeDelta = Vector2.New(120, 120) end function ItemView:GetRewardShow(_itemData, effectLayer) self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.isRewardItemPop=true self.fragmentIcon:SetActive(false) self.heroShowGo:SetActive(false) self.starGrid:SetActive(false) self.redPoint:SetActive(false) self.num:SetActive(true) self.addImage:SetActive(false) self.frameMask:SetActive(false) self.resetLv:SetActive(false) self.pokemonEffect:SetActive(false) self.item:SetActive(true) self.UI_Effect_Kuang_JinSe:SetActive(false) self.UI_Effect_Kuang_HongSe:SetActive(false) self.UI_Effect_jinkuang_Fang:SetActive(false) self.UI_Effect_jinkuang_Yuan:SetActive(false) self.UI_effect_ItemView_saoguang:SetActive(false) self.UI_effect_WuCai_Kuang:SetActive(false) self.c_ui_qinyan_duan:SetActive(false) self.frame.sprite = self.spLoader:LoadSprite(_itemData.frame) self.icon.sprite = self.spLoader:LoadSprite(_itemData.icon) self.num:GetComponent("Text").text = PrintWanNum2(_itemData.num) self.innateImage:SetActive(false) self.iconGo:SetActive(true) self.circleFrameBg:SetActive(false) self.time:SetActive(false) self.homeLv.text = "" self.homeProLv.text = "" -- self.upImg:SetActive(false) self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById( _itemData.configData.Name),4) Util.AddParticleSortLayer(self.UI_Effect_Kuang_JinSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_Kuang_HongSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_jinkuang_Fang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_jinkuang_Yuan, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_ItemView_saoguang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_WuCai_Kuang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.c_ui_qinyan_duan, effectLayer - self.EffectOrginLayerQu) self.EffectOrginLayerQu = effectLayer Util.GetGameObject(self.UI_effect_ItemView_saoguang, "saoguang"):GetComponent("RectTransform").localScale = Vector2.New(self.scale * 0.48,self.scale * 0.48) --Util.SetParticleScale(self.UI_Effect_SaoGuang, 0.5 / self.EffectOrginScale) self.EffectOrginScale = self.scale -- 卸载头像框特效 self:UnLoadFrameEffect() -- LogGreen("itemType:"..tostring(_itemData.itemType).." Name:"..tostring(_itemData.configData.Name).." 数量:"..tostring(_itemData.num)) if _itemData.itemType == 1 or _itemData.itemType == 0 then--物品 --item if effectLayer > 0 and _itemData.configData.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7) self.c_ui_qinyan_duan:SetActive(_itemData.configData.Quantity1 == 8) end if _itemData.configData == nil then _itemData.configData = _itemData.itemConfig _itemData.backData = _itemData.itembackData end if _itemData.configData.ItemType == ItemType.HeroDebris or _itemData.configData.ItemType ==ItemType.LingShouChip or _itemData.configData.ItemType == ItemType.EquipChip or _itemData.configData.ItemType == ItemType.GodWeaponChip or _itemData.configData.ItemType == ItemType.CommonChip then --角色碎片 self.frameMask:SetActive(true) self.frameMask:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroChipQuantityImageByquality(_itemData.configData.Quantity)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) local propertyName=itemConfig[_itemData.backData.itemId].PropertyName if(propertyName~=0) then self.fragmentIcon:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(propertyName)) end elseif _itemData.configData.ItemType == ItemType.Pokemon then --异妖配件 --self.item:SetActive(false) --self.pokemonEffect:SetActive(true) --Util.AddParticleSortLayer(self.pokemonEffect, effectLayer - self.EffectOrginLayer) --self.EffectOrginLayer = effectLayer --self.pokemonNum:GetComponent("Text").text = _itemData.num --self.pokemonFrame:SetActive(true) --self.pokemonFrame:GetComponent("Image").sprite = self.spLoader:LoadSprite(YaoHunFrame[_itemData.configData.Quantity])--_itemData.quality --self.pokemonImage.sprite = self.spLoader:LoadSprite(_itemData.icon) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) if effectLayer > 0 and _itemData.configData.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7) end elseif _itemData.configData.ItemType == ItemType.TalentItem then --天赋材料 if _itemData.configData.RingLevel > 0 then self.innateImage:SetActive(true) self.innateText.text ="+".._itemData.configData.RingLevel else self.innateImage:SetActive(false) self.innateText.text ="" end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) elseif _itemData.configData.ItemType == ItemType.Equip then --装备 self.num:SetActive(_itemData.num > 1) self.num:GetComponent("Text").text =PrintWanNum2(_itemData.num) self.name:GetComponent("Text").text =GetCutOutStr(GetLanguageStrById( _itemData.configData.Name),5) self.starGrid:SetActive(true) EquipManager.SetEquipStarShow(self.spLoader, self.starGrid, _itemData.configData.Id) Util.AddOnceClick(self.frameBtn, function() _itemData.id = _itemData.configData.Id -- UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData,nil,self.isRewardItemPop) UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2,self, _itemData,0,true,true,nil) end) if effectLayer > 0 and _itemData.configData.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5 or _itemData.configData.Quantity1 == 4) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7) self.c_ui_qinyan_duan:SetActive(_itemData.configData.Quantity1 == 8) end --摘星阁加成 if self.allData and self.allData.homeEquipLv and self.allData.homeEquipLv[1] > 0 then self.homeLv.text = self.allData.homeEquipLv[1] > 0 and self.allData.homeEquipLv[1] or "" self.homeProLv.text = self.allData.homeEquipLv[2] > 0 and self.allData.homeEquipLv[2] or "" end elseif _itemData.configData.ItemType == ItemType.Blueprint then local lanTuData = WorkShopManager.GetLanTuIsOpenLock(_itemData.backData.itemId) if lanTuData then Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.WorkShopArmorOnePanel,3,3, lanTuData[2]) end) end --魂印 elseif _itemData.configData.ItemType == ItemType.HunYin then if effectLayer > 0 and _itemData.configData.Quantity1 then -- self.UI_Effect_jinkuang_Fang:SetActive(_itemData.configData.Quantity == 7) -- self.UI_Effect_jinkuang_Yuan:SetActive(_itemData.configData.Quantity == 7) -- self.UI_Effect_Kuang_JinSe:SetActive(not (_itemData.configData.Quantity == 7)) -- self.UI_Effect_jinkuang_Fang:SetActive(false) -- self.UI_Effect_jinkuang_Yuan:SetActive(false) self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7 or _itemData.configData.Quantity1 == 8) end self.iconGo:SetActive(false) self.circleFrameBg:SetActive(true) self.circleFrameBg:GetComponent("Image").sprite=self.spLoader:LoadSprite(SoulPrintSpriteByQuantity[_itemData.configData.Quantity].circleBg2) Util.GetGameObject(self.circleFrameBg,"Icon"):GetComponent("Image").sprite=self.spLoader:LoadSprite(_itemData.icon) Util.GetGameObject(self.circleFrameBg,"circleFrame"):GetComponent("Image").sprite=self.spLoader:LoadSprite(SoulPrintSpriteByQuantity[_itemData.configData.Quantity].circle) Util.AddOnceClick(self.frameBtn, function() --所有的魂印打开都用这个界面 UIManager.OpenPanel(UIName.SoulPrintPopUp, ShowType.showTip3, nil,_itemData.backData.itemId) end) elseif _itemData.configData.ItemType == ItemType.heroDogFood then --狗粮 --狗粮 Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) self.heroShowGo:SetActive(true) local propertyName=itemConfig[_itemData.backData.itemId].PropertyName if(propertyName~=0) then self.proImage.gameObject:SetActive(true) self.proImage.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(propertyName)) else self.proImage.gameObject:SetActive(false) end self.starGrid:SetActive(true) local star = _itemData.configData.HeroStar[1] SetHeroStars(self.spLoader,self.starGrid, star,1,Vector2.New(32.5,32.5),-15) elseif _itemData.configData.ItemType == ItemType.talismanSoulChip then self.num:SetActive(true) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[_itemData.backData.itemId].Quantity)) self.frameMask:SetActive(true) self.frameMask:GetComponent("Image").sprite = self.spLoader:LoadSprite("f_fabaojuling_zijiemianfabaokuang1") self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[_itemData.backData.itemId].ResourceID)) self.starGrid:SetActive(false) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,_itemData.backData.itemId,nil,self.isRewardItemPop,true) end) elseif _itemData.configData.ItemType == ItemType.Gem then if _itemData.isReplace then -- self.upImg:SetActive(true) end if _itemData.backData.isReplace then -- self.upImg:SetActive(true) end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardGemSingleShowPopup, _itemData.backData.itemId,3) end) elseif _itemData.configData.ItemType == ItemType.TimeIsGold then -- 挂机奖励 self.num:SetActive(true) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[ _itemData.backData.itemId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[ _itemData.backData.itemId].ResourceID)) local useGain = itemConfig[_itemData.backData.itemId].UseGain if useGain and useGain[1] and useGain[1][2] then local mins = useGain[1][2] local hours = math.floor(mins/60) self.time.gameObject:SetActive(true) self.timeTxt.text= hours .. "小时" end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) else Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) end elseif _itemData.itemType == 2 then --equip self.num:SetActive(_itemData.num > 1) self.num:GetComponent("Text").text =PrintWanNum2(_itemData.num) self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById(_itemData.configData.Name),5) self.starGrid:SetActive(true) EquipManager.SetEquipStarShow(self.spLoader, self.starGrid, _itemData.configData.Id) Util.AddOnceClick(self.frameBtn, function() --Log("self.isRewardItemPop "..tostring(self.isRewardItemPop)) -- UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData.backData,nil,self.isRewardItemPop) UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2,self, _itemData,0,true,true,nil) end) if effectLayer > 0 and _itemData.configData.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5 or _itemData.configData.Quantity1 == 4) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7) end elseif _itemData.itemType == 3 then --装备 --hero self.num:SetActive(false) self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById(_itemData.configData.ReadingName),5) self.heroShowGo:SetActive(true) self.starGrid:SetActive(true) SetHeroStars(self.spLoader, self.starGrid, _itemData.backData.star,1,Vector2.New(32.5,32.5),-15) self.proImage.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(_itemData.configData.PropertyName)) --self.posImage.sprite = self.spLoader:LoadSprite(GetJobSpriteStrByJobNum(_itemData.configData.Profession)) --self.heroStage.sprite = self.spLoader:LoadSprite(HeroStageSprite[_itemData.configData.HeroStage]) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RoleGetInfoPopup, true, _itemData.backData) end) if effectLayer > 0 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Star == 5) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Star == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Star == 7) self.c_ui_qinyan_duan:SetActive(_itemData.configData.Quantity1 == 8) end --摘星阁加成 if self.allData and self.allData.homeEquipLv and self.allData.homeEquipLv[1] > 0 then self.homeLv.text = self.allData.homeEquipLv[1] > 0 and self.allData.homeEquipLv[1] or "" self.homeProLv.text = self.allData.homeEquipLv[2] > 0 and self.allData.homeEquipLv[2] or "" end elseif _itemData.itemType == 4 then --法宝 self.num:SetActive(false) self.name:GetComponent("Text").text = GetCutOutStr(_itemData.name,5) self.starGrid:SetActive(true) SetHeroStars(self.spLoader, self.starGrid, _itemData.backData.rebuildLevel,1,Vector2.New(32.5,32.5),-15) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,_itemData.backData.id,_itemData.backData.equipId,_itemData.backData.exp,_itemData.backData.rebuildLevel,0) end) if effectLayer > 0 and _itemData.configData.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7) end elseif _itemData.itemType == 5 then self.num:SetActive(false) self.name:GetComponent("Text").text = GetCutOutStr(_itemData.name,5) --self.resetLv:GetComponent("Text").text = "+" .._itemData.lv.." ".._itemData.refineLv self.resetLv:SetActive(false) self.fragmentIcon:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(_itemData.configData.PropertyName)) Util.AddOnceClick(self.frameBtn, function() -- UIManager.OpenPanel(UIName.RewardSoulPrintSingleShowPopup,0, _itemData.backData.id, function() -- end) --UIManager.OpenPanel(UIName.SoulPrintPopUp,0,nil,_itemData.backData.id,nil,nil) UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup, 0, _itemData.backData.id,_itemData.backData.equipId, 0,0,0) end) elseif _itemData.itemType == 6 then self.num:SetActive(false) local str = "" if _itemData.name and _itemData.name ~= "" then str = _itemData.name elseif _itemData.configData then str = _itemData.configData.Name end self.name:GetComponent("Text").text = GetCutOutStr(str,5) -- self.resetLv:GetComponent("Text").text = "+" ..1 self.resetLv:SetActive(false) self.fragmentIcon:SetActive(false) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.PokemonGetInfoPopup, true,_itemData.backData) end) elseif _itemData.ItemType == ItemType.HeadFrame then self.UI_Effect_Kuang_JinSe:SetActive(false) self.UI_Effect_Kuang_HongSe:SetActive(false) self.UI_effect_WuCai_Kuang:SetActive(false) -- 显示头像框特效 local effectRoot = Util.GetGameObject(self.gameObject, "effects") self:LoadFrameEffect(itemDataConFig.Id, effectRoot) self:SetFrameEffectLayer(effectLayer) self:SetFrameEffectScale(self.scale * 0.7) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop) end) elseif _itemData.itemType == ItemType.LingShou then Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.PokemonGetInfoPopup, true, _itemData.backData) end) elseif _itemData.itemType == ItemType.GodWeapon then Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.GodWeaponGetInfoPopup, false, _itemData.backData.itemId) end) elseif _itemData.ItemType == ItemType.Incarnation then--化身卡 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[ _itemData.backData.itemId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[ _itemData.backData.itemId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardTailsmanChipShowPopup, _itemData.backData.itemId, nil) end) elseif _itemData.ItemType == ItemType.Ride then--坐骑 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardRideShowPopup, _itemData.backData.itemId,nil) end) elseif _itemData.ItemType == ItemType.Gem then if _itemData.isReplace then self.upImg:SetActive(true) end if effectLayer > 0 and _itemData.configData.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity1 == 5 or _itemData.configData.Quantity1 == 4) self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity1 == 7) end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardGemSingleShowPopup, _itemData,3) end) elseif _itemData.ItemType == ItemType.likeabilityItemChip or _itemData.ItemType == ItemType.EquipChip then self.fragmentIcon:SetActive(true) if itemConfig[itemSId].PropertyName > 0 then self.fragmentIcon.gameObject:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(itemConfig[itemSId].PropertyName)) else self.fragmentIcon.gameObject:SetActive(false) end self.frameMask:SetActive(true) self.frameMask:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroChipQuantityImageByquality(itemConfig[itemSId].Quantity)) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) end self.gameObject:GetComponent("RectTransform").localScale = Vector3.New(self.scale, self.scale,1) end function ItemView:SetEffectLayer(effectLayer) Util.AddParticleSortLayer(self.UI_Effect_Kuang_JinSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_jinkuang_Yuan, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_jinkuang_Fang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_Kuang_HongSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_ItemView_saoguang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_WuCai_Kuang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.c_ui_qinyan_duan,effectLayer-self.EffectOrginLayerQu) Util.SetParticleSortLayer(self.starGrid,effectLayer + 1) self:SetFrameEffectLayer(effectLayer) self.EffectOrginLayerQu = effectLayer end function ItemView:SetEffectShow(isShow) self.effectRoot:SetActive(isShow) end function ItemView:SetNumShow(isShow) self.num:SetActive(isShow) end function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage) self.isRewardItemPop=false local itemSId = tonumber(_reward[1]) local itemNum = tonumber(_reward[2]) or 0 self.Double:SetActive((_reward[3] and _reward[3] == 2) and true or false) local itemDataConFig = ConfigManager.GetConfigData(ConfigName.ItemConfig, itemSId) self.fragmentIcon:SetActive(false) self.heroShowGo:SetActive(false) self.starGrid:SetActive(false) self.redPoint:SetActive(false) self.num:SetActive(true) self.frameMask:SetActive(false) self.resetLv:SetActive(false) self.pokemonEffect:SetActive(false) self.item:SetActive(true) self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById(itemDataConFig.Name),5) self.innateImage:SetActive(false) self.UI_Effect_Kuang_JinSe:SetActive(false) self.UI_Effect_Kuang_HongSe:SetActive(false) self.UI_Effect_jinkuang_Fang:SetActive(false) self.UI_Effect_jinkuang_Yuan:SetActive(false) self.UI_effect_ItemView_saoguang:SetActive(false) self.UI_effect_WuCai_Kuang:SetActive(false) self.c_ui_qinyan_duan:SetActive(false) self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.iconGo:SetActive(true) self.circleFrameBg:SetActive(false) self.time:SetActive(false) self.homeLv.text = "" self.homeProLv.text = "" Util.AddParticleSortLayer(self.UI_Effect_Kuang_JinSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_Kuang_HongSe, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_Effect_jinkuang_Fang, effectLayer - self.EffectOrginLayerQu ) Util.AddParticleSortLayer(self.UI_Effect_jinkuang_Yuan, effectLayer - self.EffectOrginLayerQu ) Util.AddParticleSortLayer(self.UI_effect_ItemView_saoguang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.UI_effect_WuCai_Kuang, effectLayer - self.EffectOrginLayerQu) Util.AddParticleSortLayer(self.c_ui_qinyan_duan, effectLayer - self.EffectOrginLayerQu) self.EffectOrginLayerQu = effectLayer Util.GetGameObject(self.UI_effect_ItemView_saoguang, "saoguang"):GetComponent("RectTransform").localScale = Vector2.New(self.scale * 0.48,self.scale * 0.48) --Util.SetParticleScale(self.UI_Effect_SaoGuang, self.scale / self.EffectOrginScale) self.EffectOrginScale = self.scale -- 卸载头像框特效 self:UnLoadFrameEffect() if effectLayer > 0 and itemDataConFig.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(itemDataConFig.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive((itemDataConFig.Quantity1 == 7) or (_reward[3] and _reward[3] == 999)) end if itemDataConFig.ItemType == ItemType.NoType then --0无特殊分类 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.likeabilityItem then self.fragmentIcon:SetActive(true) if itemConfig[itemSId].PropertyName > 0 then self.fragmentIcon.gameObject:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(itemConfig[itemSId].PropertyName)) else self.fragmentIcon.gameObject:SetActive(false) end self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.Hero then -- 1角色 local heroConfigData = ConfigManager.GetConfigData(ConfigName.HeroConfig, itemConfig[itemSId].HeroStar[1]) self.heroShowGo:SetActive(true) self.starGrid:SetActive(true) self.num:SetActive(itemNum > 1) self.num:GetComponent("Text").text = PrintWanNum(itemNum) --Util.ClearChild(self.starGrid.transform) local star = _reward[4] --or itemConfig[itemSId].HeroStar[2] --GetHeroQuantityImageByquality(heroConfigData.Quality,star) local frameName="" if _reward[5] then frameName=GetHeroQuantityImageByquality(heroConfigData.Quality,star) else frameName=GetHeroQuantityImageByHeroNatural(heroConfigData.Natural) end self.frame.sprite = self.spLoader:LoadSprite(frameName) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(heroConfigData.Icon)) self.proImage.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroConfigData.PropertyName)) --self.posImage.sprite = self.spLoader:LoadSprite(GetJobSpriteStrByJobNum(heroConfigData.Profession)) --self.heroStage.sprite = self.spLoader:LoadSprite(HeroStageSprite[heroConfigData.HeroStage]) self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById(heroConfigData.ReadingName),5) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroConfigData.Id,heroConfigData.MaxRank) end) local did = _reward[5] or nil local starType = 1 local tempHero = nil if did then tempHero = HeroManager.GetSingleHeroData(did) star,starType = tempHero.GetStar(1) end if star==nil then star=itemConfig[itemSId].HeroStar[2] end SetHeroStars(self.spLoader, self.starGrid, star,starType,nil,-15) if effectLayer > 0 then if tempHero then SetHeroFlyEffect(self.heroShowGo,self.spLoader,tempHero.star,effectLayer+1,0.95,2) end Util.SetParticleSortLayer(self.starGrid,effectLayer + 1) self.UI_Effect_Kuang_JinSe:SetActive(heroConfigData.Star == 5) self.UI_Effect_Kuang_HongSe:SetActive(heroConfigData.Star == 6) self.UI_effect_WuCai_Kuang:SetActive(heroConfigData.Quantity == 7) end elseif itemDataConFig.ItemType == ItemType.HeroDebris or itemDataConFig.ItemType==ItemType.LingShouChip or itemDataConFig.ItemType==ItemType.GodWeaponChip or itemDataConFig.ItemType == ItemType.CommonChip then --2角色碎片 self.frameMask:SetActive(true) self.frameMask:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroChipQuantityImageByquality(itemConfig[itemSId].Quantity)) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) local propertyName=itemConfig[itemSId].PropertyName if(propertyName~=0) then self.fragmentIcon:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(propertyName)) end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.Equip then --3装备 self.num:SetActive(itemNum and itemNum > 1) self.num:GetComponent("Text").text = PrintWanNum(itemNum and itemNum or 0) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.starGrid:SetActive(true) EquipManager.SetEquipStarShow(self.spLoader, self.starGrid,itemSId) if effectLayer > 0 and itemDataConFig.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity1 == 5 or itemDataConFig.Quantity1 == 4) self.UI_Effect_Kuang_HongSe:SetActive(itemDataConFig.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(itemDataConFig.Quantity1 == 7) self.c_ui_qinyan_duan:SetActive(itemDataConFig.Quantity1 == 8) end Util.AddOnceClick(self.frameBtn, function() -- UIManager.OpenPanel(UIName.HandBookEquipInfoPanel, itemSId) local _itemData = {} _itemData.id = itemSId -- UIManager.OpenPanel(UIName.RoleEquipChangePopup, nil, 4, nil, _itemData, nil, nil) UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2,self, _itemData,0,true,true,nil) end) --摘星阁加成 if self.allData and self.allData.homeEquipLv and self.allData.homeEquipLv[1] and self.allData.homeEquipLv[1] > 0 then self.homeLv.text = self.allData.homeEquipLv[1] > 0 and self.allData.homeEquipLv[1] or "" self.homeProLv.text = self.allData.homeEquipLv[2] > 0 and self.allData.homeEquipLv[2] or "" end elseif itemDataConFig.ItemType == ItemType.Pokemon then --异妖配件 --self.item:SetActive(false) --self.pokemonEffect:SetActive(true) --Util.AddParticleSortLayer(self.pokemonEffect, effectLayer - self.EffectOrginLayer) --self.EffectOrginLayer = effectLayer self.frame.sprite = self.spLoader:LoadSprite(YaoHunFrame[itemConfig[itemSId].Quantity]) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) --self.pokemonFrame:GetComponent("Image").sprite = self.spLoader:LoadSprite(YaoHunFrame[itemConfig[itemSId].Quantity]) --self.pokemonImage.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) if effectLayer > 0 and itemConfig[itemSId].Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(itemConfig[itemSId].Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(itemConfig[itemSId].Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(itemConfig[itemSId].Quantity1 == 7) end elseif itemDataConFig.ItemType == ItemType.Blueprint then --蓝图 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) local lanTuData = WorkShopManager.GetLanTuIsOpenLock(itemSId) if lanTuData then Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.WorkShopArmorOnePanel,3,3, lanTuData[2]) end) end elseif itemDataConFig.ItemType == ItemType.TalentItem then --天赋材料 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) if itemDataConFig.RingLevel > 0 then self.innateImage:SetActive(true) self.innateText.text = "+" .. itemDataConFig.RingLevel else self.innateImage:SetActive(false) self.innateText.text = "" end if effectLayer > 0 and itemDataConFig.Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(itemDataConFig.Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(itemDataConFig.Quantity1 == 7) end elseif itemDataConFig.ItemType == ItemType.Talisman then --法宝 Log("法宝 "..itemSId) self.num:SetActive(itemNum and itemNum > 1) --self.num:GetComponent("Text").text = PrintWanNum(itemNum and itemNum or 0) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.starGrid:SetActive(true) --TalismanManager.AllTalismanStartStar[itemSId] SetHeroStars(self.spLoader, self.starGrid, 0,1,Vector2.New(32.5,32.5),-15) Util.AddOnceClick(self.frameBtn, function() --UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0,0) UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.talismanSoulChip then self.num:SetActive(true) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.frameMask:SetActive(true) self.frameMask:GetComponent("Image").sprite = self.spLoader:LoadSprite("f_fabaojuling_zijiemianfabaokuang1") self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.starGrid:SetActive(false) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.HunYin then -- self.UI_Effect_jinkuang_Fang:SetActive(itemConfig[itemSId].Quantity>=7) -- self.UI_Effect_jinkuang_Yuan:SetActive(itemConfig[itemSId].Quantity>=7) -- self.UI_Effect_Kuang_JinSe:SetActive(not (itemConfig[itemSId].Quantity>=7)) -- self.UI_Effect_jinkuang_Fang:SetActive(false) -- self.UI_Effect_jinkuang_Yuan:SetActive(false) -- self.UI_Effect_Kuang_JinSe:SetActive(true) if effectLayer > 0 and itemConfig[itemSId].Quantity1 then self.UI_Effect_Kuang_JinSe:SetActive(itemConfig[itemSId].Quantity1 == 5) self.UI_Effect_Kuang_HongSe:SetActive(itemConfig[itemSId].Quantity1 == 6) self.UI_effect_WuCai_Kuang:SetActive(itemConfig[itemSId].Quantity1 == 7 or itemConfig[itemSId].Quantity1 == 8 ) end self.num:SetActive(true) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.iconGo:SetActive(false) self.circleFrameBg:SetActive(true) self.circleFrameBg:GetComponent("Image").sprite=self.spLoader:LoadSprite(SoulPrintSpriteByQuantity[itemConfig[itemSId].Quantity].circleBg2) Util.GetGameObject(self.circleFrameBg,"Icon"):GetComponent("Image").sprite=self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.GetGameObject(self.circleFrameBg,"circleFrame"):GetComponent("Image").sprite=self.spLoader:LoadSprite(SoulPrintSpriteByQuantity[itemConfig[itemSId].Quantity].circle) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.SoulPrintPopUp,0,nil,itemSId,nil,nil) end) elseif itemDataConFig.ItemType == ItemType.EquipTreasure then self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.fragmentIcon:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(itemConfig[itemSId].PropertyName)) if not self.Did then self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.resetLv.gameObject:SetActive(false) else local data = EquipTreasureManager.GetSingleTreasureByIdDyn(self.Did) if not data then data = MonsterCampManager.GetSingleTreasureByIdDyn(self.Did) end if not data then data = ExpeditionManager.GetSingleTreasureByIdDyn(self.Did) end if not data then data = GoodFriendManager.GetSingleTreasureByIdDyn(self.Did) end if not data then self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.resetLv.gameObject:SetActive(false) else if data.lv > 0 then self.rightUplv.gameObject:SetActive(true) self.rightUplv.text = string.format("%s",data.lv) else self.rightUplv.gameObject:SetActive(false) end if data.refineLv > 0 then self.resetLv.gameObject:SetActive(true) self.resetLvText.text =string.format("+%s", data.refineLv) else self.resetLv.gameObject:SetActive(false) end if data.treeLv > 0 then self.middleDownLv.gameObject:SetActive(true) local lv = data.treeLv if data.treeLv > data.maxTreeLv then lv = data.maxTreeLv end self.middleDownLvText.text =string.format("%s", lv) else self.middleDownLv.gameObject:SetActive(false) end end end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0,0) end) elseif itemDataConFig.ItemType == ItemType.FaXiang then self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) if not self.Did then self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.resetLv.gameObject:SetActive(false) else local data = FaXiangManager.GetSingleTreasureByIdDyn(self.Did) if not data then data = MonsterCampManager.GetSingleFaXiangByIdDyn(self.Did) end if not data then data = ExpeditionManager.GetSingleTreasureByIdDyn(self.Did) end if not data then data = GoodFriendManager.GetSingleFaXiangByIdDyn(self.Did) end if not data then self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.resetLv.gameObject:SetActive(false) else if data.lv > 0 then self.rightUplv.gameObject:SetActive(true) self.rightUplv.text = string.format("%s",data.lv) else self.rightUplv.gameObject:SetActive(false) end if data.refineLv > 0 then self.starGrid:SetActive(true) SetHeroStars(self.spLoader,self.starGrid, data.refineLv,1,Vector2.New(32.5,32.5),-15) else self.starGrid:SetActive(false) end end end -- Util.AddOnceClick(self.frameBtn, function() -- UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0,0) -- end) elseif itemDataConFig.ItemType == ItemType.LingShou then self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.fragmentIcon:SetActive(false) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.PokemonGetInfoPopup, false,itemSId) end) elseif itemDataConFig.ItemType == ItemType.GodWeapon then self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.fragmentIcon:SetActive(false) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.GodWeaponGetInfoPopup, false,itemSId) end) elseif itemDataConFig.ItemType == ItemType.HeadFrame then self.UI_Effect_Kuang_JinSe:SetActive(false) self.UI_Effect_Kuang_HongSe:SetActive(false) self.UI_effect_WuCai_Kuang:SetActive(false) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) -- 显示头像框特效 local effectRoot = Util.GetGameObject(self.gameObject, "effects") self:LoadFrameEffect(itemDataConFig.Id, effectRoot) self:SetFrameEffectLayer(effectLayer) self:SetFrameEffectScale(self.scale * 0.7) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.SelfBox then self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardBoxPanel,nil,itemSId) end) elseif itemDataConFig.ItemType == ItemType.heroDogFood then --狗粮 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) local propertyName=itemConfig[itemSId].PropertyName if(propertyName~=0) then self.fragmentIcon:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(propertyName)) end self.starGrid:SetActive(true) local star = _reward[4] or itemConfig[itemSId].HeroStar[1] SetHeroStars(self.spLoader,self.starGrid, star,1,Vector2.New(32.5,32.5),-15) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) elseif itemDataConFig.ItemType == ItemType.Incarnation then--化身卡 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardTailsmanChipShowPopup, itemSId,_reward[4],_reward[5]) end) elseif itemDataConFig.ItemType == ItemType.Ride then--坐骑 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardRideShowPopup, itemSId,nil) end) elseif itemDataConFig.ItemType == ItemType.Gem then--命石 -- if _itemData.backData.isReplace then -- self.upImg:SetActive(true) -- end self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardGemSingleShowPopup, itemSId,3) end) elseif itemDataConFig.ItemType == ItemType.TimeIsGold then -- 挂机奖励 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) self.num:SetActive(itemNum > 1) self.num:GetComponent("Text").text = PrintWanNum(itemNum) local useGain = itemConfig[itemSId].UseGain if useGain and useGain[1] and useGain[1][2] then local mins = useGain[1][2] local hours = math.floor(mins/60) self.time.gameObject:SetActive(true) self.timeTxt.text= hours .. "小时" end Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop) end) elseif itemDataConFig.ItemType == ItemType.GodPrint then self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.GodPrintPopUp,0,nil,itemSId ) end) elseif itemDataConFig.ItemType == ItemType.likeabilityItemChip or itemDataConFig.ItemType == ItemType.EquipChip then self.fragmentIcon:SetActive(true) if itemConfig[itemSId].PropertyName > 0 then self.fragmentIcon.gameObject:SetActive(true) self.fragmentIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(itemConfig[itemSId].PropertyName)) else self.fragmentIcon.gameObject:SetActive(false) end self.frameMask:SetActive(true) self.frameMask:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroChipQuantityImageByquality(itemConfig[itemSId].Quantity)) self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop,true) end) else --,5随机道具,6符文 self.frame.sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity)) self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID)) Util.AddOnceClick(self.frameBtn, function() UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop,true) end) end if itemNum <= 0 then self.num:SetActive(false) else if isShowAddImage then local bagAllNum = BagManager.GetItemCountById(itemSId) if bagAllNum >= itemNum then self.addImage:SetActive(false) self.num:GetComponent("Text").text = string.format("%s/%s", PrintWanNum2(bagAllNum), PrintWanNum2(itemNum)) self.num:GetComponent("Text").color = Color.New(1, 1, 1, 1) --self.pokemonNum:GetComponent("Text").text = string.format("%s/%s", PrintWanNum(bagAllNum), PrintWanNum(itemNum)) --self.pokemonNum:GetComponent("Text").color = Color.New(1, 1, 1, 1) else self.num:GetComponent("Text").text = string.format("%s/%s", PrintWanNum2(bagAllNum), PrintWanNum2(itemNum)) self.num:GetComponent("Text").color = UIColor.NOT_ENOUGH_RED --self.pokemonNum:GetComponent("Text").text = string.format("%s/%s", PrintWanNum(bagAllNum), PrintWanNum(itemNum)) --self.pokemonNum:GetComponent("Text").color = UIColor.NOT_ENOUGH_RED end else self.num:GetComponent("Text").text = string.format("%s", PrintWanNum2(itemNum)) self.num:GetComponent("Text").color = Color.New(1, 1, 1, 1) end end self.gameObject:GetComponent("RectTransform").localScale = Vector3.New(self.scale, self.scale,1) end function ItemView:OnBtnCkickEvent(itemSId) Log("ItemView:OnBtnCkickEvent("..tostring(itemSId)..")") local itemDataConFig = ConfigManager.GetConfigData(ConfigName.ItemConfig, itemSId) if itemDataConFig.ItemType == ItemType.Hero then -- 1角色 local heroConfigData = ConfigManager.GetConfigData(ConfigName.HeroConfig, itemConfig[itemDataConFig.Id].HeroStar[1]) UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroConfigData.Id, itemConfig[itemDataConFig.Id].HeroStar[2]) elseif itemDataConFig.ItemType == ItemType.Equip then --3装备 -- UIManager.OpenPanel(UIName.HandBookEquipInfoPanel, itemDataConFig.Id) local _itemData = {} _itemData.id = itemDataConFig.Id -- UIManager.OpenPanel(UIName.RoleEquipChangePopup, nil, 4, nil, _itemData, nil, nil) UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2,self, _itemData,0,true,true,nil) elseif itemDataConFig.ItemType == ItemType.Blueprint then local lanTuData = WorkShopManager.GetLanTuIsOpenLock(itemDataConFig.Id) if lanTuData then UIManager.OpenPanel(UIName.WorkShopArmorOnePanel,3,3, lanTuData[2]) end elseif (itemDataConFig.ItemType == ItemType.Talisman) or (itemDataConFig.ItemType == ItemType.EquipTreasure) then --魂宝灵宝 UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemDataConFig.Id,0,0) elseif itemDataConFig.ItemType == ItemType.HunYin then --魂印 UIManager.OpenPanel(UIName.SoulPrintPopUp,0,nil,itemSId,nil,nil) elseif itemDataConFig.ItemType == ItemType.LingShou then --灵兽 UIManager.OpenPanel(UIName.PokemonGetInfoPopup, false,itemDataConFig.Id) elseif itemDataConFig.ItemType == ItemType.GodWeapon then --神兵 UIManager.OpenPanel(UIName.GodWeaponGetInfoPopup, false,itemDataConFig.Id) elseif itemDataConFig.ItemType == ItemType.SelfBox then --道具自选箱 UIManager.OpenPanel(UIName.RewardBoxPanel,nil,itemDataConFig.Id) elseif itemDataConFig.ItemType == ItemType.Gem then UIManager.OpenPanel(UIName.RewardGemSingleShowPopup, itemDataConFig.Id,3) elseif itemDataConFig.ItemType == ItemType.Incarnation then UIManager.OpenPanel(UIName.RewardTailsmanChipShowPopup, itemDataConFig.Id, nil) elseif itemDataConFig.ItemType == ItemType.Ride then UIManager.OpenPanel(UIName.RewardRideShowPopup, itemDataConFig.Id, nil) else UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemDataConFig.Id,nil,self.isRewardItemPop,true) end end function ItemView:OnShowUIeffectItemViewSaoguang() self.UI_effect_ItemView_saoguang:SetActive(false) self.UI_effect_ItemView_saoguang:SetActive(true) end --重设属性 --OnOpen ItemView时 只对isGet=false时生效 否则会报错 --该方法根据对ItemView的不同需求自己拓展 --该方法可有可无 不调用时走默认的赋值 调用时根据自定义的设置赋值 --_reward为数据 便于物品类型与传入的type类型相匹配 --settings为表类型 传入的参数需要与自定义配置相对应 function ItemView:Reset(_reward,type,settings) local itemSId = tonumber(_reward[1]) local itemDataConFig = ConfigManager.GetConfigData(ConfigName.ItemConfig, itemSId) if type == itemDataConFig.ItemType then local data=settings -- self.posImage.enabled=data[1] self.proImage.enabled=data[2] --self.heroStage.enabled=data[3] self.num:GetComponent("Text").enabled=data[4] end end function ItemView:ResetNameColor(v4) self.name:GetComponent("Text").color=v4 end function ItemView:ResetBtnInteractable(isOpen) self.frameBtn:GetComponent("Button").enabled=isOpen end function ItemView:ResetNameSize(v2,v3) self.name:GetComponent("RectTransform").anchoredPosition3D = v2 self.name:GetComponent("RectTransform").localScale = v3 end function ItemView:ResetName(nameStr) self.name:GetComponent("Text").text=nameStr end function ItemView:OnClose() self.frameBtn:GetComponent("Button").enabled = true self.gameObject:SetActive(true) self.Double:SetActive(false) -- 修复对象池回收层级没有重置,导致特效穿透的问题 self:SetEffectLayer(-self.EffectOrginLayerQu) self.spLoader:Destroy() self.rightUplv.gameObject:SetActive(false) self.middleDownLv.gameObject:SetActive(false) self.Did = nil end function ItemView:OnDestroy() end -- 头像框特效相关 function ItemView:InitFrameEffect() -- body self.orderLayer = 0 self.effectScale = 1 self.effectScaleFix = 1 end function ItemView:LoadFrameEffect(frameId, parent) local name, scale, pos = GetPlayerHeadFrameEffect(frameId) if name then self.frameEffectName = name self.frameEffect = poolManager:LoadAsset(self.frameEffectName, PoolManager.AssetType.GameObject) self.frameEffect.transform:SetParent(parent.transform) self.frameEffect.transform.localPosition = pos self.frameEffect.transform.localScale = Vector3.one self.effectScaleFix = scale Util.SetParticleScale(self.frameEffect, scale) -- 还原修正大小 end end function ItemView:UnLoadFrameEffect() if self.frameEffectName and self.frameEffect then -- 重置层级 self:SetFrameEffectLayer(0) self:SetFrameEffectScale(1) Util.SetParticleScale(self.frameEffect, 1/self.effectScaleFix) -- 还原修正大小 poolManager:UnLoadAsset(self.frameEffectName, self.frameEffect, PoolManager.AssetType.GameObject) self.frameEffectName = nil self.frameEffect = nil end end function ItemView:SetFrameEffectScale(scale) if self.frameEffect then local targetScale = scale/self.effectScale self.effectScale = scale Util.SetParticleScale(self.frameEffect, targetScale) end end function ItemView:SetFrameEffectLayer(orderLayer) if self.frameEffect then Util.AddParticleSortLayer(self.frameEffect, orderLayer - self.orderLayer) self.orderLayer = orderLayer end end return ItemView