PC-202302260912\Administrator 2025-10-18 13:19:37 +08:00
parent a14fd59ea1
commit 7edf0a66db
1 changed files with 84 additions and 69 deletions

View File

@ -4,31 +4,33 @@ function ItemView:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = ItemView })
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
@ -39,7 +41,7 @@ function ItemView:InitComponent()
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
@ -47,26 +49,26 @@ 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 当前界面层级(显示粒子特效用)
--界面打开时调用(用于子类重写)
-- 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
@ -80,7 +82,7 @@ function ItemView:OnOpen(isGet, itemDatas, _scale, isShowName, isShowAddImage, i
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").localScale = Vector2.New(scale, scale)
self.gameObject:GetComponent("RectTransform").sizeDelta = Vector2.New(193, 202)
if isGet and itemDatas then
@ -128,14 +130,14 @@ function ItemView:GetRewardShow(_itemData, effectLayer)
local itemType = {
NoType = 0,
NoType_1 = 1,
Equip = 2, --装备
Hero = 3, --英雄
Weapon = 4, --法宝
Equip = 2, -- 装备
Hero = 3, -- 英雄
Weapon = 4, -- 法宝
Jewel = 5,
Reward = 6,
Medal = 7,
Gene = 8,
Title = 9, --称号
Title = 9 -- 称号
}
if _itemData.itemType == itemType.NoType or _itemData.itemType == itemType.NoType_1 then
@ -146,8 +148,8 @@ function ItemView:GetRewardShow(_itemData, effectLayer)
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.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))
@ -167,9 +169,9 @@ function ItemView:GetRewardShow(_itemData, effectLayer)
end)
elseif _itemData.configData.ItemType == ItemType.Gift then
Util.AddOnceClick(self.btn, function()
--local equipConfigData = ConfigManager.GetConfigData(ConfigName.EquipConfig, tonumber(_itemData.backData.itemId))
--LogError("cccccccccccccc"..tostring(_itemData.backData.itemId))
--ogError("cccccccccccccc"..tostring(equipConfigData.Id))
-- local equipConfigData = ConfigManager.GetConfigData(ConfigName.EquipConfig, tonumber(_itemData.backData.itemId))
-- LogError("cccccccccccccc"..tostring(_itemData.backData.itemId))
-- ogError("cccccccccccccc"..tostring(equipConfigData.Id))
local data = {}
data.type = 1
data.qua = 0
@ -293,6 +295,10 @@ function ItemView:GetRewardShow(_itemData, effectLayer)
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, _itemData.configData.Id, nil, self.isRewardItemPop)
UIManager.OpenPanel(UIName.LeadGeneTopLevelPanel, nil, _itemData.configData.Id, false)
end)
elseif _itemData.itemType == ItemType.ItemDebris then
self.frameMask:SetActive(true)
self.frameMask:GetComponent("Image").sprite = Util.LoadSprite(
GetHeroChipQuantityImageByquality(_itemData.configData.Quantity))
end
self.gameObject:GetComponent("RectTransform").localScale = Vector2.New(self.scale, self.scale)
end
@ -317,7 +323,6 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
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))
@ -332,10 +337,10 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
local heroConfigData = ConfigManager.GetConfigData(ConfigName.HeroConfig, itemConfig[itemSId].HeroStar[1])
self.num.text = PrintWanNum(itemNum)
local star = _reward[4] or itemConfig[itemSId].HeroStar[2] --获取星级
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 --高级回溯背景问题
if itemSId == 20000 then -- 高级回溯背景问题
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(nil, star))
end
@ -350,23 +355,20 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
elseif itemDataConFig.ItemType == ItemType.HeroDebris then
self.frameMask:SetActive(true)
self.starGrid:SetActive(true)
--催化精粹做特殊处理不显示pro
-- 催化精粹做特殊处理不显示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
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()
@ -455,7 +457,10 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
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 }
local data = {
["itemConfig"] = itemConfig[itemSId],
["id"] = 10
}
UIManager.OpenPanel(UIName.RewardBoxPanel, data, function()
UIManager.ClosePanel(UIName.RewardBoxPanel)
end)
@ -470,6 +475,16 @@ function ItemView:NoGetRewardShow(_reward, effectLayer, isShowAddImage)
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId, nil, self.isRewardItemPop)
UIManager.OpenPanel(UIName.LeadGeneTopLevelPanel, nil, itemSId, false)
end)
elseif itemDataConFig.ItemType == ItemType.ItemDebris then
self.frameMask:SetActive(true)
self.frameMask:GetComponent("Image").sprite = Util.LoadSprite(
GetHeroChipQuantityImageByquality(itemDataConFig.Quantity))
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)
else
self.num.text = PrintWanNum(itemNum)
self.frame.sprite = Util.LoadSprite(GetQuantityImageByquality(itemConfig[itemSId].Quantity))
@ -518,7 +533,7 @@ function ItemView:OnBtnCkickEvent(itemSId)
end
end
--显示扫光特效
-- 显示扫光特效
function ItemView:OnShowUIeffectItemViewSaoguang()
if not self.effect_saoguang then
self.effect_saoguang = poolManager:LoadAsset("UI_effect_ItemView_saoguang", PoolManager.AssetType.GameObject)
@ -533,7 +548,7 @@ function ItemView:OnShowUIeffectItemViewSaoguang()
end
end
--设置特效
-- 设置特效
function ItemView:SetEffect(str, quantity)
local effect = Util.GetGameObject(self.effects, str .. "(Clone)")
if effect then
@ -554,12 +569,12 @@ function ItemView:SetEffect(str, quantity)
return effect
end
--重设属性
--OnOpen ItemView时 只对isGet=false时生效 否则会报错
--该方法根据对ItemView的不同需求自己拓展
--该方法可有可无 不调用时走默认的赋值 调用时根据自定义的设置赋值
--_reward为数据 便于物品类型与传入的type类型相匹配
--settings为表类型 传入的参数需要与自定义配置相对应
-- 重设属性
-- 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)
@ -567,7 +582,7 @@ function ItemView:Reset(_reward, type, settings)
local data = settings
-- self.posImage.enabled = data[1]
self.pro.enabled = data[2]
--self.heroStage.enabled = data[3]
-- self.heroStage.enabled = data[3]
self.num.enabled = data[4]
end
end
@ -576,43 +591,43 @@ 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:基因等级
-- 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"))
GetPictureFont("X1_fuhuazhizhan_shoutong"))
end
Util.GetGameObject(self.Corner, "CornerModel"):SetActive(isShow)
elseif type == 2 then
@ -620,7 +635,7 @@ function ItemView:SetCorner(type, isShow, arg)
elseif type == 3 then
if isShow then
Util.GetGameObject(self.Corner, "ProbabilityGet"):GetComponent("Image").sprite = Util.LoadSprite(
GetPictureFont("X1_gonghui_gailvhuode"))
GetPictureFont("X1_gonghui_gailvhuode"))
end
Util.GetGameObject(self.Corner, "ProbabilityGet"):SetActive(isShow)
elseif type == 4 then
@ -630,18 +645,18 @@ function ItemView:SetCorner(type, isShow, arg)
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))
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)
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
@ -650,7 +665,7 @@ function ItemView:ClickEvent(func)
end)
end
--设置红点显隐
-- 设置红点显隐
function ItemView:SetRedPointState(isShow)
self.redPoint.gameObject:SetActive(isShow)
end
@ -665,7 +680,7 @@ function ItemView:SetColorNum(id, num)
SetItemCountColor(self.num, id, num)
end
--设置数量
-- 设置数量
function ItemView:CompareNum(bagNum, needNum)
self.num.text = CompareNum(bagNum, needNum)
end