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

752 lines
40 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)
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.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.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.heroStage=Util.GetGameObject(self.gameObject, "item/heroShow/heroStage"):GetComponent("Image")
Util.GetGameObject(self.gameObject, "item/heroShow/heroStage"):SetActive(false)
--云梦专用
self.PreciousShow=Util.GetGameObject(self.gameObject, "PreciousShow")
self.PreciousShowText=Util.GetGameObject(self.gameObject, "PreciousShow/Text"):GetComponent("Text")
self.EffectOrginLayer = 0
self.EffectOrginLayerQu = 0
self.EffectOrginScale = 1
self.EffectOrginScaleQu = 1
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: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 当前界面层级(显示粒子特效用)
--界面打开时调用(用于子类重写)
function ItemView:OnOpen(isGet, itemDatas, _scale, isShowName, isShowAddImage, isPlayAnim, effectLayer)
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.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
end
function ItemView:GetRewardShow(_itemData, effectLayer)
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.PreciousShow:SetActive(false)
self.frame.sprite = Util.LoadSprite(_itemData.frame)
self.icon.sprite = Util.LoadSprite(_itemData.icon)
self.num:GetComponent("Text").text = PrintWanNum(_itemData.num)
self.innateImage:SetActive(false)
self.iconGo:SetActive(true)
self.circleFrameBg:SetActive(false)
self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById( _itemData.configData.Name),5)
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)
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()
local isShowPrecious = _itemData.isShowPrecious or 0
if isShowPrecious == 0 then
elseif isShowPrecious == 1 then
self.PreciousShow:SetActive(true)
self.PreciousShowText.text=Language[12023]
elseif isShowPrecious == 2 then
self.PreciousShow:SetActive(true)
self.PreciousShowText.text=Language[12024]
elseif isShowPrecious == 3 then
self.PreciousShow:SetActive(true)
self.PreciousShowText.text=Language[12025]
end
if _itemData.itemType == 1 or _itemData.itemType == 0 then--物品
--item
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity == 5)
self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity == 7)
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 then
--角色碎片
self.frameMask:SetActive(true)
self.frameMask:GetComponent("Image").sprite = Util.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 = Util.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 = Util.LoadSprite(YaoHunFrame[_itemData.configData.Quantity])--_itemData.quality
--self.pokemonImage.sprite = Util.LoadSprite(_itemData.icon)
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
end)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity == 5)
self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity == 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 = _itemData.num
self.name:GetComponent("Text").text =GetCutOutStr(GetLanguageStrById( _itemData.configData.Name),5)
self.starGrid:SetActive(true)
EquipManager.SetEquipStarShow(self.starGrid, _itemData.configData.Id)
Util.AddOnceClick(self.frameBtn, function()
_itemData.id = _itemData.configData.Id
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData,nil,self.isRewardItemPop)
end)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity == 5 or _itemData.configData.Quantity == 4)
self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity == 7)
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 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(true)
end
self.iconGo:SetActive(false)
self.circleFrameBg:SetActive(true)
self.circleFrameBg:GetComponent("Image").sprite=Util.LoadSprite(SoulPrintSpriteByQuantity[_itemData.configData.Quantity].circleBg2)
Util.GetGameObject(self.circleFrameBg,"Icon"):GetComponent("Image").sprite=Util.LoadSprite(_itemData.icon)
Util.GetGameObject(self.circleFrameBg,"circleFrame"):GetComponent("Image").sprite=Util.LoadSprite(SoulPrintSpriteByQuantity[_itemData.configData.Quantity].circle)
Util.AddOnceClick(self.frameBtn, function()
--所有的魂印打开都用这个界面
UIManager.OpenPanel(UIName.SoulPrintPopUp, ShowType.showTip3, nil,_itemData.backData.itemId)
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 = _itemData.num
self.name:GetComponent("Text").text = GetCutOutStr(GetLanguageStrById(_itemData.configData.Name),5)
self.starGrid:SetActive(true)
EquipManager.SetEquipStarShow(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)
end)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity == 5 or _itemData.configData.Quantity == 4)
self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity == 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.starGrid, _itemData.backData.star,1,Vector2.New(32.5,32.5),-15)
self.proImage.sprite = Util.LoadSprite(GetProStrImageByProNum(_itemData.configData.PropertyName))
--self.posImage.sprite = Util.LoadSprite(GetJobSpriteStrByJobNum(_itemData.configData.Profession))
--self.heroStage.sprite = Util.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)
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.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)
end)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity == 5)
self.UI_Effect_Kuang_HongSe:SetActive(_itemData.configData.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(_itemData.configData.Quantity == 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 = Util.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)
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()
local pokemonData={tempId=_itemData.configData.Id,id=_itemData.configData.Id,star=0,level=1}
UIManager.OpenPanel(UIName.PokemonGetInfoPopup, true,pokemonData)
end)
end
self.gameObject:GetComponent("RectTransform").localScale = Vector2.New(self.scale, self.scale)
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)
self:SetFrameEffectLayer(effectLayer)
self.EffectOrginLayerQu = effectLayer
end
function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
self.isRewardItemPop=false
local itemSId = tonumber(_reward[1])
local itemNum = tonumber(_reward[2]) or 0
local isShowPrecious = _reward[3] or 0
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.PreciousShow:SetActive(false)
self.iconGo:SetActive(true)
self.circleFrameBg:SetActive(false)
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)
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 then
self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity == 5)
self.UI_Effect_Kuang_HongSe:SetActive(itemDataConFig.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(itemDataConFig.Quantity == 7)
end
if itemDataConFig.ItemType == ItemType.NoType then
--0无特殊分类
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
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]
SetHeroStars(self.starGrid, star,1,Vector2.New(32.5,32.5),-15)
self.frame.sprite = Util.LoadSprite(GetHeroQuantityImageByquality(heroConfigData.Quality,star))
self.icon.sprite = Util.LoadSprite(GetResourcePath(heroConfigData.Icon))
self.proImage.sprite = Util.LoadSprite(GetProStrImageByProNum(heroConfigData.PropertyName))
--self.posImage.sprite = Util.LoadSprite(GetJobSpriteStrByJobNum(heroConfigData.Profession))
--self.heroStage.sprite = Util.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,star)
end)
if effectLayer > 0 then
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 then
--2角色碎片
self.frameMask:SetActive(true)
self.frameMask:GetComponent("Image").sprite = Util.LoadSprite(GetHeroChipQuantityImageByquality(itemConfig[itemSId].Quantity))
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
local propertyName=itemConfig[itemSId].PropertyName
if(propertyName~=0) then
self.fragmentIcon:SetActive(true)
self.fragmentIcon:GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(propertyName))
end
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
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 = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
self.starGrid:SetActive(true)
EquipManager.SetEquipStarShow(self.starGrid,itemSId)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity == 5 or itemDataConFig.Quantity == 4)
self.UI_Effect_Kuang_HongSe:SetActive(itemDataConFig.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(itemDataConFig.Quantity == 7)
end
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.HandBookEquipInfoPanel, itemSId)
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 = Util.LoadSprite(YaoHunFrame[itemConfig[itemSId].Quantity])
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
--self.pokemonFrame:GetComponent("Image").sprite = Util.LoadSprite(YaoHunFrame[itemConfig[itemSId].Quantity])
--self.pokemonImage.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
end)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(itemConfig[itemSId].Quantity == 5)
self.UI_Effect_Kuang_HongSe:SetActive(itemConfig[itemSId].Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(itemConfig[itemSId].Quantity == 7)
end
elseif itemDataConFig.ItemType == ItemType.Blueprint then
--蓝图
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.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 = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
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 then
self.UI_Effect_Kuang_JinSe:SetActive(itemDataConFig.Quantity == 5)
self.UI_Effect_Kuang_HongSe:SetActive(itemDataConFig.Quantity == 6)
self.UI_effect_WuCai_Kuang:SetActive(itemDataConFig.Quantity == 7)
end
elseif itemDataConFig.ItemType == ItemType.Talisman then
--法宝
Log("法宝 "..itemSId)
self.num:SetActive(false)
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
self.starGrid:SetActive(true)
SetHeroStars(self.starGrid, TalismanManager.AllTalismanStartStar[itemSId],1,Vector2.New(32.5,32.5),-15)
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0)
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)
self.num:SetActive(true)
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.iconGo:SetActive(false)
self.circleFrameBg:SetActive(true)
self.circleFrameBg:GetComponent("Image").sprite=Util.LoadSprite(SoulPrintSpriteByQuantity[itemConfig[itemSId].Quantity].circleBg2)
Util.GetGameObject(self.circleFrameBg,"Icon"):GetComponent("Image").sprite=Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
Util.GetGameObject(self.circleFrameBg,"circleFrame"):GetComponent("Image").sprite=Util.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 = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
self.fragmentIcon:SetActive(true)
self.fragmentIcon:GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(itemConfig[itemSId].PropertyName))
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0)
end)
elseif itemDataConFig.ItemType == ItemType.LingShou then
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.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.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 = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.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)
end)
elseif itemDataConFig.ItemType == ItemType.SelfBox then
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardBoxPanel,nil,itemSId)
end)
else
--5随机道具6符文
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop)
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", PrintWanNum(itemNum))
self.num:GetComponent("Text").color = Color.New(1, 1, 1, 1)
end
end
if isShowPrecious == 0 then
elseif isShowPrecious == 1 then
self.PreciousShow:SetActive(true)
self.PreciousShowText.text=Language[12023]
elseif isShowPrecious == 2 then
self.PreciousShow:SetActive(true)
self.PreciousShowText.text=Language[12024]
elseif isShowPrecious == 3 then
self.PreciousShow:SetActive(true)
self.PreciousShowText.text=Language[12025]
end
self.gameObject:GetComponent("RectTransform").localScale = Vector2.New(self.scale, self.scale)
end
function ItemView:OnBtnCkickEvent(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)
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.SelfBox then
--道具自选箱
UIManager.OpenPanel(UIName.RewardBoxPanel,nil,itemDataConFig.Id)
else
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemDataConFig.Id,nil,self.isRewardItemPop)
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:ResetNameSize(v2,v3)
self.name:GetComponent("RectTransform").anchoredPosition3D = v2
self.name:GetComponent("RectTransform").localScale = v3
end
function ItemView:OnClose()
-- 修复对象池回收层级没有重置,导致特效穿透的问题
self:SetEffectLayer(-self.EffectOrginLayerQu)
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