miduo_client/Assets/ManagedResources/~Lua/View/ItemView.lua

1208 lines
67 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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.GodPrint then
local equip=ConfigManager.TryGetConfigData(ConfigName.EquipConfig,_itemData.backData.itemId)
if equip then
self.homeLv.gameObject:SetActive(equip.Star>0)
self.homeLv:GetComponent("Text").text="+"..equip.Star
end
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
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)
elseif _itemData.configData.ItemType == 56 then --装备
--hero
self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById(_itemData.configData.ReadingName),5)
self.heroShowGo:SetActive(false)
self.starGrid:SetActive(true)
self.resetLvText.gameObject:SetActive(true)
if _itemData.configData.ItemBaseType==14 then
self.resetLvText.text=""
elseif _itemData.configData.ItemBaseType==15 then
self.resetLvText.text=""
end
LogError("equipConfig[_itemData.sId].Star=="..equipConfig[_itemData.sId].Star)
SetHeroStars(self.spLoader, self.starGrid, equipConfig[_itemData.sId].Star,1,Vector2.New(32.5,32.5),-15)
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 or _itemData.itemType == 56 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)
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])
if _itemData.itemType == 56 then
self.resetLvText.gameObject:SetActive(true)
if _itemData.configData.ItemBaseType==14 then
self.resetLvText.text=""
elseif _itemData.configData.ItemBaseType==15 then
self.resetLvText.text=""
end
LogError("equipConfig[_itemData.sId].Star=="..equipConfig[_itemData.sId].Star)
SetHeroStars(self.spLoader, self.starGrid, equipConfig[_itemData.sId].Star,1,Vector2.New(32.5,32.5),-15)
else
SetHeroStars(self.spLoader, self.starGrid, _itemData.backData.star,1,Vector2.New(32.5,32.5),-15)
end
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.sId)
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.Talisman then--
Util.AddOnceClick(self.frameBtn, function()
--UIManager.OpenPanel(UIName.RewardRideShowPopup, _,nil)
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.equipId,nil,self.isRewardItemPop,true)
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 or itemDataConFig.ItemType == ItemType.Gift 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
if itemDataConFig.ItemType ==ItemType.Gift then
self.resetLvText.gameObject:SetActive(true)
if itemDataConFig.ItemBaseType==14 then
self.resetLvText.text=""
elseif itemDataConFig.ItemBaseType==15 then
self.resetLvText.text=""
end
local star=0
if equipConfig[itemSId] then
star=equipConfig[itemSId].Star
end
--self.starGrid:SetActive(false)
LogError("star=============================="..star)
SetHeroStars(self.spLoader, self.starGrid, star,1,nil,-15)
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.RewardRideShowPopup, _,nil)
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("<color=#32F432>%s</color>",data.lv)
else
self.rightUplv.gameObject:SetActive(false)
end
if data.refineLv > 0 then
self.resetLv.gameObject:SetActive(true)
self.resetLvText.text =string.format("<color=#32CFF4>+%s</color>", 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("<color=#FFFFFF>%s</color>", 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("<color=#32F432>%s</color>",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()
local equipData={}
equipData.id=itemSId
local faxiangConfig=ConfigManager.GetConfigData(ConfigName.FaxiangConfig,itemSId)
equipData.levelPool=faxiangConfig.LevelUpPool
equipData.lv=0
equipData.maxLv=faxiangConfig.LevelMax
equipData.refinePool=faxiangConfig.Star
equipData.refineLv=0
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,nil,equipData ,0,0,0,nil,7)
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))
local equip=ConfigManager.TryGetConfigData(ConfigName.EquipConfig,itemSId)
LogError("itemSId==================="..itemSId)
if equip then
self.homeLv.gameObject:SetActive(equip.Star>0)
LogError("equip.Star==============="..equip.Star)
self.homeLv:GetComponent("Text").text="+"..equip.Star
end
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