sk-client/Assets/ManagedResources/~Lua/View/ItemView.lua

652 lines
30 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)
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