652 lines
30 KiB
Lua
652 lines
30 KiB
Lua
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
||
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.btn = 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.frameMask = Util.GetGameObject(self.gameObject, "item/frameMask")
|
||
--属性
|
||
self.pro = Util.GetGameObject(self.gameObject, "item/pro"):GetComponent("Image")
|
||
self.proIcon = Util.GetGameObject(self.gameObject, "item/pro/icon"):GetComponent("Image")
|
||
--星级
|
||
self.starGrid = Util.GetGameObject(self.gameObject, "item/starGrid")
|
||
--数量
|
||
self.num = Util.GetGameObject(self.gameObject, "item/num"):GetComponent("Text")
|
||
self.add = Util.GetGameObject(self.gameObject, "item/add")
|
||
--名字
|
||
self.upName = Util.GetGameObject(self.gameObject, "upName"):GetComponent("Text")
|
||
self.downName = Util.GetGameObject(self.gameObject, "downName"):GetComponent("Text")
|
||
--红点
|
||
self.redPoint = Util.GetGameObject(self.gameObject, "redPoint")
|
||
|
||
self.EffectOrginLayer = 0
|
||
self.EffectOrginLayerQu = 0
|
||
self.EffectOrginScale = 1
|
||
self.EffectOrginScaleQu = 1
|
||
|
||
self.effects = Util.GetGameObject(self.gameObject, "effects")
|
||
-- 角标
|
||
self.Corner = Util.GetGameObject(self.gameObject, "Corner")
|
||
--基因等级
|
||
self.geneLv = Util.GetGameObject(self.gameObject, "geneLv"):GetComponent("Image")
|
||
self.duiImage = Util.GetGameObject(self.gameObject, "Corner/Received")
|
||
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, cornerType)
|
||
isShowName = isShowName or false
|
||
isShowAddImage = isShowAddImage or false
|
||
isPlayAnim = isPlayAnim or false
|
||
effectLayer = effectLayer or 0
|
||
|
||
self.EffectOrginLayerQu = effectLayer
|
||
self.num.font = poolManager:LoadAsset(GetFont(), PoolManager.AssetType.Other)
|
||
self.upName.gameObject:SetActive(isShowName)
|
||
self.downName.gameObject:SetActive(false)
|
||
self.add: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(193, 202)
|
||
|
||
if isGet and itemDatas then
|
||
_Quantity = itemDatas.configData.Quantity
|
||
self:GetRewardShow(itemDatas, effectLayer)
|
||
elseif isGet == false and itemDatas then
|
||
_Quantity = ConfigManager.GetConfigData(ConfigName.ItemConfig, tonumber(itemDatas[1])).Quantity
|
||
self:NoGetRewardShow(itemDatas, effectLayer, isShowAddImage)
|
||
end
|
||
|
||
-- self.Corner:SetActive(not not cornerType)
|
||
-- self:SetCorner(cornerType)
|
||
|
||
self.effect_saoguang = Util.GetGameObject(self.effects, "UI_effect_ItemView_saoguang(Clone)")
|
||
if self.effect_saoguang then
|
||
self.effect_saoguang:SetActive(false)
|
||
end
|
||
|
||
self.effect_hongse = self:SetEffect("UI_Effect_Kuang_HongSe", 5)
|
||
self.effect_jinse = self:SetEffect("UI_Effect_Kuang_JinSe", 6)
|
||
self.effect_kuang = self:SetEffect("UI_effect_WuCai_Kuang", 7)
|
||
end
|
||
|
||
function ItemView:GetRewardShow(_itemData, effectLayer)
|
||
-- self.isRewardItemPop = true
|
||
self.starGrid:SetActive(false)
|
||
self.redPoint:SetActive(false)
|
||
self.add:SetActive(false)
|
||
self.frameMask:SetActive(false)
|
||
self.pro.gameObject:SetActive(false)
|
||
self.num.gameObject:SetActive(true)
|
||
self.geneLv.gameObject:SetActive(false)
|
||
|
||
-- if _itemData.Image_proBg ~= nil then
|
||
-- self.pro.gameObject:SetActive(true)
|
||
-- self.pro.sprite = Util.LoadSprite(_itemData.Image_proBg)
|
||
-- end
|
||
self.frame.sprite = Util.LoadSprite(_itemData.frame)
|
||
self.icon.sprite = Util.LoadSprite(_itemData.icon)
|
||
self.num.text = PrintWanNum(_itemData.num)
|
||
self.upName.text = GetLanguageStrById(_itemData.name)
|
||
|
||
self.EffectOrginScale = self.scale
|
||
|
||
local itemType = {
|
||
NoType = 0,
|
||
NoType_1 = 1,
|
||
Equip = 2, --装备
|
||
Hero = 3, --英雄
|
||
Weapon = 4, --法宝
|
||
Jewel = 5,
|
||
Reward = 6,
|
||
Medal = 7,
|
||
Gene = 8,
|
||
Title = 9, --称号
|
||
}
|
||
|
||
if _itemData.itemType == itemType.NoType or _itemData.itemType == itemType.NoType_1 then
|
||
if _itemData.configData == nil then
|
||
_itemData.configData = _itemData.itemConfig
|
||
_itemData.backData = _itemData.itembackData
|
||
end
|
||
if _itemData.configData.ItemType == ItemType.HeroDebris then
|
||
self.frameMask:SetActive(true)
|
||
self.pro.gameObject:SetActive(true)
|
||
self.frameMask:GetComponent("Image").sprite = Util.LoadSprite(GetHeroChipQuantityImageByquality(_itemData.configData.Quantity))
|
||
self.pro.sprite = Util.LoadSprite(GetQuantityProBgImageByquality(_itemData.configData.Quantity))
|
||
self.proIcon.sprite = Util.LoadSprite(GetProStrImageByProNum(_itemData.configData.PropertyName))
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.configData.ItemType == ItemType.Pokemon then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.configData.ItemType == ItemType.TalentItem then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.configData.ItemType == ItemType.Equip then
|
||
self.num.gameObject:SetActive(_itemData.num > 1)
|
||
self.starGrid:SetActive(true)
|
||
|
||
self.num.text = _itemData.num
|
||
self.upName.text = GetLanguageStrById(_itemData.configData.Name)
|
||
EquipManager.SetEquipStarShow(self.starGrid, _itemData.configData.Id)
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
_itemData.id = _itemData.configData.Id
|
||
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.configData.ItemType == ItemType.Blueprint then
|
||
local lanTuData = WorkShopManager.GetLanTuIsOpenLock(_itemData.backData.itemId)
|
||
if lanTuData then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.WorkShopArmorOnePanel,3,3, lanTuData[2])
|
||
end)
|
||
end
|
||
elseif _itemData.configData.ItemType == ItemType.HunYin then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.configData.itemType == ItemType.CombatPlan then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.configData.itemType == ItemType.medal then
|
||
self.starGrid:SetActive(true)
|
||
|
||
local medalItem = ConfigManager.GetConfigData("MedalConfig", _itemData.configData.Id)
|
||
local star = medalItem.Star
|
||
SetHeroStars(self.starGrid, star)
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[_itemData.configData.Id].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[_itemData.configData.Id].ResourceID))
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id,nil,self.isRewardItemPop)
|
||
end)
|
||
else
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.backData.itemId,nil,self.isRewardItemPop)
|
||
end)
|
||
end
|
||
elseif _itemData.itemType == itemType.Equip then
|
||
self.num.gameObject:SetActive(_itemData.num > 1)
|
||
self.starGrid:SetActive(true)
|
||
|
||
self.num.text = _itemData.num
|
||
self.upName.text = GetLanguageStrById(_itemData.configData.Name)
|
||
EquipManager.SetEquipStarShow(self.starGrid, _itemData.configData.Id)
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData.backData,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Hero then
|
||
self.pro.gameObject:SetActive(true)
|
||
self.num.gameObject:SetActive(false)
|
||
self.starGrid:SetActive(true)
|
||
|
||
self.upName:GetComponent("Text").text = GetLanguageStrById(_itemData.configData.ReadingName)
|
||
self.pro.sprite = Util.LoadSprite(GetQuantityProBgImageByquality(_itemData.configData.Quality, _itemData.configData.Star))
|
||
self.proIcon.sprite = Util.LoadSprite(GetProStrImageByProNum(_itemData.configData.PropertyName))
|
||
SetHeroStars(self.starGrid, _itemData.backData.star)
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RoleGetInfoPopup, true, _itemData.backData)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Weapon then
|
||
self.num.gameObject:SetActive(false)
|
||
self.starGrid:SetActive(true)
|
||
|
||
self.upName:GetComponent("Text").text = GetLanguageStrById(_itemData.name)
|
||
SetHeroStars(self.starGrid, _itemData.backData.rebuildLevel)
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,_itemData.backData.id,_itemData.backData.equipId,_itemData.backData.exp,_itemData.backData.rebuildLevel)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Jewel then
|
||
self.num.gameObject:SetActive(false)
|
||
|
||
self.upName:GetComponent("Text").text = GetLanguageStrById(_itemData.name)
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup, 0, _itemData.backData.id,_itemData.backData.equipId, 0,0)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Reward then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Medal then
|
||
if _itemData.configData.ItemType == ItemType.medal then
|
||
self.starGrid:SetActive(true)
|
||
self.pro.gameObject:SetActive(false)
|
||
|
||
local medalItem = ConfigManager.GetConfigData("MedalConfig", _itemData.configData.Id)
|
||
local star = medalItem.Star
|
||
SetHeroStars(self.starGrid, star)
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[_itemData.configData.Id].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[_itemData.configData.Id].ResourceID))
|
||
end
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Title then
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id, nil, self.isRewardItemPop)
|
||
end)
|
||
elseif _itemData.itemType == itemType.Gene then
|
||
self.geneLv.gameObject:SetActive(true)
|
||
self.geneLv.sprite = Util.LoadSprite(AircraftCarrierManager.GetSkillLvImgForId(_itemData.configData.Id).lvImg)
|
||
Util.AddOnceClick(self.btn, function()
|
||
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id, nil, self.isRewardItemPop)
|
||
UIManager.OpenPanel(UIName.LeadGeneTopLevelPanel, nil, _itemData.configData.Id, false)
|
||
end)
|
||
end
|
||
self.gameObject:GetComponent("RectTransform").localScale = Vector2.New(self.scale, self.scale)
|
||
end
|
||
|
||
function ItemView:SetEffectLayer(effectLayer)
|
||
self.EffectOrginLayerQu = effectLayer
|
||
end
|
||
|
||
function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
|
||
self.isRewardItemPop = false
|
||
self.starGrid:SetActive(false)
|
||
self.redPoint:SetActive(false)
|
||
self.frameMask:SetActive(false)
|
||
self.pro.gameObject:SetActive(false)
|
||
self.num.gameObject:SetActive(true)
|
||
self.geneLv.gameObject:SetActive(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.upName.text = GetLanguageStrById(itemDataConFig.Name)
|
||
self.EffectOrginScale = self.scale
|
||
|
||
if itemDataConFig.ItemType == ItemType.NoType then
|
||
self.num.text = PrintWanNum(itemNum)
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.Hero then
|
||
self.starGrid:SetActive(true)
|
||
self.num.gameObject:SetActive(itemNum > 1)
|
||
self.pro.gameObject:SetActive(true)
|
||
|
||
local heroConfigData = ConfigManager.GetConfigData(ConfigName.HeroConfig, itemConfig[itemSId].HeroStar[1])
|
||
self.num.text = PrintWanNum(itemNum)
|
||
local star = _reward[4] or itemConfig[itemSId].HeroStar[2] --获取星级
|
||
SetHeroStars(self.starGrid, star)
|
||
self.frame.sprite = Util.LoadSprite(GetHeroQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
if itemSId == 20000 then --高级回溯背景问题
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(nil,star))
|
||
end
|
||
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(heroConfigData.Icon))
|
||
self.upName:GetComponent("Text").text = GetLanguageStrById(heroConfigData.ReadingName)
|
||
self.pro.sprite = Util.LoadSprite(GetQuantityProBgImageByquality(itemConfig[itemSId].Quantity))
|
||
self.proIcon.sprite = Util.LoadSprite(GetProStrImageByProNum(heroConfigData.PropertyName))
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, heroConfigData.Id,star)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.HeroDebris then
|
||
self.frameMask:SetActive(true)
|
||
self.starGrid:SetActive(true)
|
||
--催化精粹做特殊处理不显示pro
|
||
if itemConfig[itemSId].PropertyName == 0 then
|
||
self.pro.gameObject:SetActive(false)
|
||
else
|
||
self.pro.gameObject:SetActive(true)
|
||
end
|
||
|
||
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))
|
||
self.pro.sprite = Util.LoadSprite(GetQuantityProBgImageByquality(itemConfig[itemSId].Quantity))
|
||
self.proIcon.sprite = Util.LoadSprite(GetProStrImageByProNum(itemConfig[itemSId].PropertyName))
|
||
local star = itemConfig[itemSId].Quantity
|
||
SetHeroStars(self.starGrid, star)
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.Equip then
|
||
self.starGrid:SetActive(true)
|
||
self.num.gameObject:SetActive(itemNum and itemNum > 0)
|
||
|
||
self.num.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))
|
||
EquipManager.SetEquipStarShow(self.starGrid,itemSId)
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.HandBookEquipInfoPanel, itemSId)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.Pokemon then
|
||
self.frame.sprite = Util.LoadSprite(YaoHunFrame[itemConfig[itemSId].Quantity])
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
|
||
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.btn, 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.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.Talisman then
|
||
self.num.gameObject:SetActive(false)
|
||
self.starGrid:SetActive(true)
|
||
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
SetHeroStars(self.starGrid, TalismanManager.AllTalismanStartStar[itemSId])
|
||
|
||
Util.AddOnceClick(self.frameBtn, function()
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.HunYin then
|
||
self.num.gameObject:SetActive(true)
|
||
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
Util.AddOnceClick(self.btn, 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))
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup,2,"",itemSId,0,0)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.CombatPlan then
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil,self.isRewardItemPop)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.medal then
|
||
self.starGrid:SetActive(true)
|
||
|
||
local medalItem = ConfigManager.GetConfigData("MedalConfig", itemSId)
|
||
local star = medalItem.Star
|
||
SetHeroStars(self.starGrid, star)
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
Util.AddOnceClick(self.btn, 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.btn, function()
|
||
local data = {["itemConfig"] = itemConfig[itemSId],["id"] = 10}
|
||
UIManager.OpenPanel(UIName.RewardBoxPanel, data,function ()
|
||
UIManager.ClosePanel(UIName.RewardBoxPanel)
|
||
end)
|
||
end)
|
||
elseif itemDataConFig.ItemType == ItemType.Gene then
|
||
self.geneLv.gameObject:SetActive(true)
|
||
self.geneLv.sprite = Util.LoadSprite(AircraftCarrierManager.GetSkillLvImgForId(itemSId).lvImg)
|
||
self.num.text = PrintWanNum(itemNum)
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
Util.AddOnceClick(self.btn, function()
|
||
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop)
|
||
UIManager.OpenPanel(UIName.LeadGeneTopLevelPanel, nil, itemSId, false)
|
||
end)
|
||
else
|
||
self.num.text = PrintWanNum(itemNum)
|
||
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
|
||
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[itemSId].ResourceID))
|
||
Util.AddOnceClick(self.btn, function()
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop)
|
||
end)
|
||
end
|
||
if itemNum <= 0 then
|
||
self.num.gameObject:SetActive(false)
|
||
else
|
||
if isShowAddImage then
|
||
local bagAllNum = BagManager.GetItemCountById(itemSId)
|
||
if bagAllNum >= itemNum then
|
||
self.add:SetActive(false)
|
||
self.num.text = string.format("%s/%s", PrintWanNum2(bagAllNum), PrintWanNum2(itemNum))
|
||
self.num.color = Color.New(1, 1, 1, 1)
|
||
else
|
||
self.num.text = string.format("%s/%s", PrintWanNum2(bagAllNum), PrintWanNum2(itemNum))
|
||
self.num.color = UIColor.NOT_ENOUGH_RED
|
||
end
|
||
else
|
||
self.num.text = string.format("%s", PrintWanNum(itemNum))
|
||
self.num.color = Color.New(1, 1, 1, 1)
|
||
end
|
||
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
|
||
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
|
||
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
|
||
else
|
||
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemDataConFig.Id,nil,self.isRewardItemPop)
|
||
end
|
||
end
|
||
|
||
--显示扫光特效
|
||
function ItemView:OnShowUIeffectItemViewSaoguang()
|
||
if not self.effect_saoguang then
|
||
self.effect_saoguang = poolManager:LoadAsset("UI_effect_ItemView_saoguang",PoolManager.AssetType.GameObject)
|
||
self.effect_saoguang.transform:SetParent(self.effects.transform)
|
||
self.effect_saoguang.transform.localScale = Vector3.one
|
||
self.effect_saoguang.transform.localPosition = Vector3.New(0, 0, 0)
|
||
-- Util.AddParticleSortLayer(self.effect_saoguang, self.EffectOrginLayerQu + 1)
|
||
Util.SetParticleSortLayer(self.effect_saoguang, self.EffectOrginLayerQu + 10)
|
||
else
|
||
self.effect_saoguang:SetActive(false)
|
||
self.effect_saoguang:SetActive(true)
|
||
end
|
||
end
|
||
|
||
--设置特效
|
||
function ItemView:SetEffect(str, quantity)
|
||
local effect = Util.GetGameObject(self.effects, str.."(Clone)")
|
||
if effect then
|
||
effect:SetActive(false)
|
||
if _Quantity == quantity then
|
||
effect:SetActive(true)
|
||
Util.SetParticleSortLayer(effect, self.EffectOrginLayerQu + 10)
|
||
end
|
||
else
|
||
if _Quantity == quantity then
|
||
effect = poolManager:LoadAsset(str,PoolManager.AssetType.GameObject)
|
||
effect.transform:SetParent(self.effects.transform)
|
||
effect.transform.localScale = Vector3.one
|
||
effect.transform.localPosition = Vector3.New(0, 0, 0)
|
||
Util.SetParticleSortLayer(effect, self.EffectOrginLayerQu + 10)
|
||
end
|
||
end
|
||
return effect
|
||
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.pro.enabled = data[2]
|
||
--self.heroStage.enabled = data[3]
|
||
self.num.enabled = data[4]
|
||
end
|
||
end
|
||
|
||
function ItemView:ResetNameColor(v4)
|
||
self.upName.color = GetLanguageStrById(v4)
|
||
end
|
||
|
||
--设置名字大小位置
|
||
function ItemView:ResetNameSize(v2,v3)
|
||
self.upName.gameObject:GetComponent("RectTransform").anchoredPosition3D = v2
|
||
self.upName.gameObject:GetComponent("RectTransform").localScale = v3
|
||
end
|
||
|
||
--设置数量显隐
|
||
function ItemView:ShowNum(isShow)
|
||
self.num.gameObject:SetActive(isShow)
|
||
end
|
||
--设置图片框
|
||
function ItemView:SetKuangSprite(resName)
|
||
self.frame.sprite = Util.LoadSprite(resName)
|
||
end
|
||
|
||
--设置星级显隐
|
||
function ItemView:ShowStar(isShow)
|
||
self.starGrid.gameObject:SetActive(isShow)
|
||
end
|
||
|
||
--设置按钮点击响应
|
||
function ItemView:ClickEnable(isEnable)
|
||
self.btn:GetComponent("Button").enabled = isEnable
|
||
end
|
||
|
||
--设置数量
|
||
function ItemView:SetNum(str)
|
||
self.num.text = str
|
||
end
|
||
|
||
--1:首通 2:锁 3:概率获得 4:已领取 5:特效 6:等级 7:基因等级
|
||
function ItemView:SetCorner(type, isShow, arg)
|
||
if type == 1 then
|
||
if isShow then
|
||
Util.GetGameObject(self.Corner, "CornerModel/Image"):GetComponent("Image").sprite = Util.LoadSprite(GetPictureFont("X1_fuhuazhizhan_shoutong"))
|
||
end
|
||
Util.GetGameObject(self.Corner, "CornerModel"):SetActive(isShow)
|
||
elseif type == 2 then
|
||
Util.GetGameObject(self.Corner, "Lock"):SetActive(isShow)
|
||
elseif type == 3 then
|
||
if isShow then
|
||
Util.GetGameObject(self.Corner, "ProbabilityGet"):GetComponent("Image").sprite = Util.LoadSprite(GetPictureFont("X1_gonghui_gailvhuode"))
|
||
end
|
||
Util.GetGameObject(self.Corner, "ProbabilityGet"):SetActive(isShow)
|
||
elseif type == 4 then
|
||
Util.GetGameObject(self.Corner, "Received"):SetActive(isShow)
|
||
elseif type == 5 then
|
||
Util.GetGameObject(self.Corner, "Effect"):SetActive(isShow)
|
||
elseif type == 6 then
|
||
Util.GetGameObject(self.Corner, "Lv"):SetActive(isShow)
|
||
Util.GetGameObject(self.Corner, "Lv"):GetComponent("Image").sprite = Util.LoadSprite(GetQuantityImageByqualityHexagon(nil, arg.star))
|
||
Util.GetGameObject(self.Corner, "Lv/Text"):GetComponent("Text").text = arg.lv
|
||
self.frame.sprite = Util.LoadSprite(GetHeroQuantityImageByquality(nil, arg.star))
|
||
SetHeroStars(self.starGrid, arg.star)
|
||
elseif type == 7 then
|
||
Util.GetGameObject(self.Corner, "geneLv"):SetActive(isShow)
|
||
Util.GetGameObject(self.Corner, "geneLv"):GetComponent("Image").sprite = Util.LoadSprite(AircraftCarrierManager.GetSkillLvImgForId(arg.id).lvImg)
|
||
end
|
||
end
|
||
|
||
--重写点击
|
||
function ItemView:ClickEvent(func)
|
||
Util.AddOnceClick(self.btn, function()
|
||
if func then
|
||
func()
|
||
end
|
||
end)
|
||
end
|
||
|
||
--设置红点显隐
|
||
function ItemView:SetRedPointState(isShow)
|
||
self.redPoint.gameObject:SetActive(isShow)
|
||
end
|
||
|
||
function ItemView:SetName(type, isShow)
|
||
self.upName.gameObject:SetActive(type == 1 and isShow)
|
||
self.downName.gameObject:SetActive(type == 2 and isShow)
|
||
self.downName.text = self.upName.text
|
||
end
|
||
|
||
function ItemView:SetColorNum(id, num)
|
||
SetItemCountColor(self.num, id, num)
|
||
end
|
||
|
||
--设置数量
|
||
function ItemView:CompareNum(bagNum, needNum)
|
||
self.num.text = CompareNum(bagNum, needNum)
|
||
end
|
||
|
||
function ItemView:OnClose()
|
||
-- 修复对象池回收层级没有重置,导致特效穿透的问题
|
||
self:SetEffectLayer(-self.EffectOrginLayerQu)
|
||
end
|
||
function ItemView:SetDuiImageShow(isShow)
|
||
self.duiImage:SetActive(isShow)
|
||
end
|
||
function ItemView:OnDestroy()
|
||
end
|
||
|
||
return ItemView |