513 lines
18 KiB
Lua
513 lines
18 KiB
Lua
|
local type = type
|
|||
|
|
|||
|
local CONDITION_COLOR = {
|
|||
|
[true] = CS.UnityEngine.Color.black,
|
|||
|
[false] = CS.UnityEngine.Color.red,
|
|||
|
}
|
|||
|
--===============
|
|||
|
--XRewardType <=> 道具数据类型
|
|||
|
--===============
|
|||
|
local RewardTypeToTemplateType = {
|
|||
|
[XArrangeConfigs.Types.Medal] = "Medal",
|
|||
|
}
|
|||
|
|
|||
|
local XUiGridCommon = XClass(nil, "XUiGridCommon")
|
|||
|
local XUiPanelNameplate = require("XUi/XUiNameplate/XUiPanelNameplate")
|
|||
|
function XUiGridCommon:Ctor(rootUi, ui)
|
|||
|
if not ui then
|
|||
|
ui = rootUi
|
|||
|
else
|
|||
|
self.RootUi = rootUi
|
|||
|
end
|
|||
|
|
|||
|
self.GameObject = ui.gameObject
|
|||
|
self.Transform = ui.transform
|
|||
|
self:InitAutoScript()
|
|||
|
self.TextCount = XUiHelper.TryGetComponent(self.Transform, "TextCount", nil)
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:Init(rootUi)
|
|||
|
self.RootUi = rootUi
|
|||
|
end
|
|||
|
|
|||
|
-- auto
|
|||
|
-- Automatic generation of code, forbid to edit
|
|||
|
function XUiGridCommon:InitAutoScript()
|
|||
|
self:AutoInitUi()
|
|||
|
XTool.InitUiObject(self)
|
|||
|
self.SpecialSoundMap = {}
|
|||
|
self:AutoAddListener()
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:AutoInitUi()
|
|||
|
self.TxtCount = XUiHelper.TryGetComponent(self.Transform, "TxtCount", "Text")
|
|||
|
if not self.TxtCount then self.TxtCount = XUiHelper.TryGetComponent(self.Transform, "PanelTxt/TxtCount", "Text") end -- 兼容不同grid结构
|
|||
|
self.TxtName = XUiHelper.TryGetComponent(self.Transform, "TxtName", "Text")
|
|||
|
self.TxtHave = XUiHelper.TryGetComponent(self.Transform, "TxtHave", "Text")
|
|||
|
if not self.TxtHave then self.TxtHave = XUiHelper.TryGetComponent(self.Transform, "PanelTxt/TxtHave", "Text") end -- 兼容不同grid结构
|
|||
|
self.Bg = XUiHelper.TryGetComponent(self.Transform, "Bg", "Image")
|
|||
|
self.ImgNew = XUiHelper.TryGetComponent(self.Transform, "ImgNew", "Image")
|
|||
|
self.RImgIcon = XUiHelper.TryGetComponent(self.Transform, "RImgIcon", "RawImage")
|
|||
|
self.HeadIconEffect = XUiHelper.TryGetComponent(self.Transform, "RImgIcon/Effect", "XUiEffectLayer")
|
|||
|
self.ImgQuality = XUiHelper.TryGetComponent(self.Transform, "ImgQuality", "Image")
|
|||
|
self.PanelFirst = XUiHelper.TryGetComponent(self.Transform, "PanelFirst", "Image")
|
|||
|
self.PanelSite = XUiHelper.TryGetComponent(self.Transform, "PanelSite", nil)
|
|||
|
self.TxtSite = XUiHelper.TryGetComponent(self.Transform, "PanelSite/TxtSite", "Text")
|
|||
|
self.BtnClick = XUiHelper.TryGetComponent(self.Transform, "BtnClick", "Button")
|
|||
|
self.ImgUp = XUiHelper.TryGetComponent(self.Transform, "ImgUp", "Image")
|
|||
|
self.ImgRail = XUiHelper.TryGetComponent(self.Transform, "ImgRail", "Image")
|
|||
|
self.ImgReceived = XUiHelper.TryGetComponent(self.Transform, "ImgReceived", nil)
|
|||
|
self.ImgQualityTag = XUiHelper.TryGetComponent(self.Transform, "ImgQualityTag", "Image")
|
|||
|
self.TxtStock = XUiHelper.TryGetComponent(self.Transform, "TxtStock", "Text")
|
|||
|
self.ImgNone = XUiHelper.TryGetComponent(self.Transform, "ImgNone", nil)
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:AutoAddListener()
|
|||
|
XUiHelper.RegisterClickEvent(self, self.BtnClick, self.OnBtnClickClick)
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetBtnNotClick(statue)
|
|||
|
self.BtnNotClick = statue
|
|||
|
end
|
|||
|
|
|||
|
-- auto
|
|||
|
function XUiGridCommon:OnBtnClickClick()
|
|||
|
if self.Disable or self.BtnNotClick then
|
|||
|
return
|
|||
|
end
|
|||
|
-- 匹配中
|
|||
|
if XDataCenter.FubenUnionKillRoomManager.IsMatching() then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
if self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Character then
|
|||
|
--从Tips的ui跳转需要关闭Tips的UI
|
|||
|
if self.RootUi and self.RootUi.Ui.UiData.UiType == CsXUiType.Tips then
|
|||
|
self.RootUi:Close()
|
|||
|
end
|
|||
|
|
|||
|
-- 暂停自动弹窗
|
|||
|
XDataCenter.AutoWindowManager.StopAutoWindow()
|
|||
|
XLuaUiManager.Open("UiCharacterDetail", self.TemplateId)
|
|||
|
elseif self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Equip then
|
|||
|
XLuaUiManager.Open("UiEquipDetail", self.TemplateId, true)
|
|||
|
--从Tips的ui跳转需要关闭Tips的UI
|
|||
|
if self.RootUi and self.RootUi.Ui.UiData.UiType == CsXUiType.Tips then
|
|||
|
self.RootUi:Close()
|
|||
|
end
|
|||
|
|
|||
|
-- 暂停自动弹窗
|
|||
|
XDataCenter.AutoWindowManager.StopAutoWindow()
|
|||
|
elseif self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Furniture then
|
|||
|
local cfg = XFurnitureConfigs.GetFurnitureReward(self.TemplateId)
|
|||
|
local furnitureRewardId = self.TemplateId
|
|||
|
local configId = cfg.FurnitureId
|
|||
|
if self.Data then
|
|||
|
XLuaUiManager.Open("UiFurnitureDetail", self.Data.InstanceId, configId, furnitureRewardId, nil, true)
|
|||
|
else
|
|||
|
XLuaUiManager.Open("UiFurnitureDetail", nil, configId, furnitureRewardId, nil, true)
|
|||
|
end
|
|||
|
elseif self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Fashion then
|
|||
|
local buyData
|
|||
|
if self.Data and self.Data.ItemCount and self.Data.ItemIcon and self.Data.BuyCallBack then
|
|||
|
buyData = {}
|
|||
|
local isHave, isLimitTime = XRewardManager.CheckRewardOwn(self.GoodsShowParams.RewardType, self.GoodsShowParams.TemplateId)
|
|||
|
buyData.IsHave = isHave and not isLimitTime
|
|||
|
buyData.ItemIcon = self.Data.ItemIcon
|
|||
|
buyData.ItemCount = self.Data.ItemCount
|
|||
|
buyData.GiftRewardId = self.Data.GiftRewardId
|
|||
|
buyData.BuyCallBack = self.Data.BuyCallBack
|
|||
|
end
|
|||
|
XLuaUiManager.Open("UiFashionDetail", self.TemplateId, false, buyData)
|
|||
|
elseif self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Partner then
|
|||
|
--从Tips的ui跳转需要关闭Tips的UI
|
|||
|
if self.RootUi and self.RootUi.Ui.UiData.UiType == CsXUiType.Tips then
|
|||
|
self.RootUi:Close()
|
|||
|
end
|
|||
|
-- 暂停自动弹窗
|
|||
|
XDataCenter.AutoWindowManager.StopAutoWindow()
|
|||
|
|
|||
|
local partnerData = { Id = 0, TemplateId = self.TemplateId }
|
|||
|
local partner = XDataCenter.PartnerManager.CreatePartnerEntityByPartnerData(partnerData, true)
|
|||
|
XLuaUiManager.Open("UiPartnerPreview", partner)
|
|||
|
|
|||
|
elseif XDataCenter.ItemManager.IsWeaponFashion(self.TemplateId) then
|
|||
|
local weaponFashionId = XDataCenter.ItemManager.GetWeaponFashionId(self.TemplateId)
|
|||
|
XLuaUiManager.Open("UiFashionDetail", weaponFashionId, true)
|
|||
|
elseif self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Nameplate then
|
|||
|
XLuaUiManager.Open("UiNameplateTip", self.TemplateId, true, true, true)
|
|||
|
elseif self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Medal then
|
|||
|
XLuaUiManager.Open("UiMeadalDetail", self.GoodsShowParams.Config, XDataCenter.MedalManager.Preview)
|
|||
|
else
|
|||
|
XLuaUiManager.Open("UiTip", self.Data and self.Data or self.TemplateId, self.HideSkipBtn, self.RootUi and self.RootUi.Name, self.LackNum)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetUiActive(ui, active)
|
|||
|
if not ui or not ui.gameObject then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
if ui.gameObject.activeSelf == active then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
ui.gameObject:SetActiveEx(active)
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:ResetUi()
|
|||
|
self:SetUiActive(self.TxtCount, false)
|
|||
|
self:SetUiActive(self.TxtName, false)
|
|||
|
self:SetUiActive(self.ImgNew, false)
|
|||
|
self:SetUiActive(self.RImgIcon, false)
|
|||
|
self:SetUiActive(self.ImgQuality, false)
|
|||
|
self:SetUiActive(self.PanelSite, false)
|
|||
|
self:SetUiActive(self.ImgUp, false)
|
|||
|
self:SetUiActive(self.ImgRail, false)
|
|||
|
self:SetUiActive(self.ImgReceived, false)
|
|||
|
self:SetUiActive(self.ImgQualityTag, false)
|
|||
|
self:SetUiActive(self.IconLevel, false)
|
|||
|
self:SetUiActive(self.TxtHave, false)
|
|||
|
self:SetUiActive(self.TxtStock, false)
|
|||
|
self:SetUiActive(self.ImgNone, false)
|
|||
|
end
|
|||
|
|
|||
|
-- data支持数据结构: XEquipData XItemData XCharacterData
|
|||
|
-- tags可包含: { ShowUp, ShowNew }
|
|||
|
function XUiGridCommon:Refresh(data, params, isBigIcon, hideSkipBtn, curCount)
|
|||
|
if XTool.UObjIsNil(self.GameObject) then
|
|||
|
return
|
|||
|
end
|
|||
|
self.GameObject:SetActiveEx(data ~= nil)
|
|||
|
if not data then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
self:ResetUi()
|
|||
|
|
|||
|
self.HideSkipBtn = hideSkipBtn
|
|||
|
|
|||
|
local count, costCount
|
|||
|
|
|||
|
if type(data) == "number" then
|
|||
|
self.TemplateId = data
|
|||
|
else
|
|||
|
self.Data = data
|
|||
|
self.TemplateId = (data.TemplateId and data.TemplateId > 0) and data.TemplateId or data.Id
|
|||
|
count = data.Count
|
|||
|
costCount = data.CostCount
|
|||
|
end
|
|||
|
self.GoodsShowParams = self:GetGoodsShowParams()
|
|||
|
if not self.GoodsShowParams then
|
|||
|
XLog.Error("获取道具数据有误,Data :", data)
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
params = params or {}
|
|||
|
|
|||
|
-- 名字
|
|||
|
if self.TxtName and self.GoodsShowParams.Name then
|
|||
|
if self.GoodsShowParams.RewardType == XArrangeConfigs.Types.Character then
|
|||
|
self.TxtName.text = self.GoodsShowParams.TradeName
|
|||
|
else
|
|||
|
self.TxtName.text = self.GoodsShowParams.Name
|
|||
|
end
|
|||
|
|
|||
|
self:SetUiActive(self.TxtName, true)
|
|||
|
end
|
|||
|
|
|||
|
-- 数量
|
|||
|
if self.TxtCount and count then
|
|||
|
self.TxtCount.text = CS.XTextManager.GetText("ShopGridCommonCount", count)
|
|||
|
self:SetUiActive(self.TxtCount, true)
|
|||
|
end
|
|||
|
|
|||
|
-- 可消耗数量
|
|||
|
if self.TxtHaveCount and count and self.TxtNeedCount and costCount then
|
|||
|
self.TxtHaveCount.text = count
|
|||
|
self.TxtNeedCount.text = "/" .. costCount
|
|||
|
self.TxtHaveCount.color = CONDITION_COLOR[count >= costCount]
|
|||
|
self.LackNum = costCount - count --记录缺少数量
|
|||
|
self:SetUiActive(self.TxtHaveCount, true)
|
|||
|
self:SetUiActive(self.TxtNeedCount, true)
|
|||
|
end
|
|||
|
|
|||
|
-- 图标
|
|||
|
if self.RImgIcon then
|
|||
|
local icon = self.GoodsShowParams.Icon
|
|||
|
if isBigIcon and self.GoodsShowParams.BigIcon then
|
|||
|
icon = self.GoodsShowParams.BigIcon
|
|||
|
end
|
|||
|
|
|||
|
if icon and #icon > 0 and self.GoodsShowParams.RewardType ~= XRewardManager.XRewardType.Nameplate then
|
|||
|
--self.RootUi:SetUiSprite(self.RImgIcon, icon)
|
|||
|
self.RImgIcon:SetRawImage(icon)
|
|||
|
self:SetUiActive(self.RImgIcon, true)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
-- 特效
|
|||
|
if self.HeadIconEffect then
|
|||
|
local effect = self.GoodsShowParams.Effect
|
|||
|
if effect then
|
|||
|
self.HeadIconEffect.gameObject:LoadPrefab(effect)
|
|||
|
self.HeadIconEffect.gameObject:SetActiveEx(true)
|
|||
|
else
|
|||
|
self.HeadIconEffect.gameObject:SetActiveEx(false)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
-- 品质底图
|
|||
|
if self.ImgQuality and self.GoodsShowParams.Quality then
|
|||
|
local qualityIcon = self.GoodsShowParams.QualityIcon
|
|||
|
|
|||
|
if self.RootUi and qualityIcon then
|
|||
|
self.RootUi:SetUiSprite(self.ImgQuality, qualityIcon)
|
|||
|
else
|
|||
|
XUiHelper.SetQualityIcon(self.RootUi, self.ImgQuality, self.SyncQuality or self.GoodsShowParams.Quality)
|
|||
|
end
|
|||
|
|
|||
|
self:SetUiActive(self.ImgQuality, true)
|
|||
|
end
|
|||
|
|
|||
|
-- 品质底图(大)
|
|||
|
if self.ImgIconQuality and self.GoodsShowParams.Quality then
|
|||
|
XUiHelper.SetQualityIcon(self.RootUi, self.ImgIconQuality, self.SyncQuality or self.GoodsShowParams.Quality)
|
|||
|
self:SetUiActive(self.ImgQuality, true)
|
|||
|
end
|
|||
|
|
|||
|
-- 创世纪标签
|
|||
|
if self.ImgQualityTag and self.GoodsShowParams.QualityTag then
|
|||
|
self:SetUiActive(self.ImgQualityTag, true)
|
|||
|
end
|
|||
|
|
|||
|
if self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Equip then
|
|||
|
-- 星数
|
|||
|
if self.PanelStars then
|
|||
|
self:ShowStar(self.GoodsShowParams.Star, self.GoodsShowParams.Star)
|
|||
|
end
|
|||
|
--
|
|||
|
if self.PanelSite then
|
|||
|
self:SetUiActive(self.PanelSite, self.GoodsShowParams.Site ~= XEquipConfig.EquipSite.Weapon)
|
|||
|
self.TxtSite.text = "0" .. self.GoodsShowParams.Site
|
|||
|
end
|
|||
|
end
|
|||
|
--铭牌
|
|||
|
if self.GoodsShowParams.RewardType == XRewardManager.XRewardType.Nameplate then
|
|||
|
self:SetUiActive(self.ImgQuality, false)
|
|||
|
self:SetUiActive(self.RImgIcon, false)
|
|||
|
local BtnSiblingIndex = 0
|
|||
|
if self.BtnClick then
|
|||
|
BtnSiblingIndex = self.BtnClick.transform:GetSiblingIndex()
|
|||
|
end
|
|||
|
|
|||
|
if not self.PanelNamePlate then
|
|||
|
local prefab = self.GameObject:LoadPrefab(XMedalConfigs.XNameplatePanelPath)
|
|||
|
prefab.transform:SetSiblingIndex(BtnSiblingIndex)
|
|||
|
local rectTransform = prefab.transform:GetComponent("RectTransform")
|
|||
|
if rectTransform then
|
|||
|
local vX = 0
|
|||
|
local vY = 15
|
|||
|
local scale = CS.UnityEngine.Vector3(0.6, 0.6, 0.6)
|
|||
|
if self.Bg then
|
|||
|
local tmpTrans = self.Bg:GetComponent("RectTransform")
|
|||
|
local vect = tmpTrans.anchoredPosition
|
|||
|
rectTransform.anchorMin = tmpTrans.anchorMin
|
|||
|
rectTransform.anchorMax = tmpTrans.anchorMax
|
|||
|
vX = vect.x
|
|||
|
vY = vect.y
|
|||
|
local bgX= self.Bg:GetComponent("RectTransform").sizeDelta.x
|
|||
|
local bgScale = self.Bg.transform.localScale.x
|
|||
|
local realBgWidth = bgX * bgScale
|
|||
|
local tempX = rectTransform.sizeDelta.x
|
|||
|
local scaleNum = 0.9 * realBgWidth/tempX
|
|||
|
scale = CS.UnityEngine.Vector3(scaleNum, scaleNum, scaleNum) -- 铭牌大小为标准背景宽高的90%防止超出格子
|
|||
|
end
|
|||
|
rectTransform.anchoredPosition = CS.UnityEngine.Vector2(vX, vY)
|
|||
|
rectTransform.localScale = scale
|
|||
|
end
|
|||
|
self.PanelNamePlate = XUiPanelNameplate.New(prefab, self.RootUi)
|
|||
|
end
|
|||
|
self.PanelNamePlate.GameObject:SetActiveEx(true)
|
|||
|
self.PanelNamePlate:UpdateDataById(self.TemplateId)
|
|||
|
else
|
|||
|
if self.PanelNamePlate then
|
|||
|
self.PanelNamePlate.GameObject:SetActiveEx(false)
|
|||
|
else
|
|||
|
local prefab = self.GameObject:LoadPrefab(XMedalConfigs.XNameplatePanelPath)
|
|||
|
prefab.gameObject:SetActiveEx(false)
|
|||
|
end
|
|||
|
end
|
|||
|
-- 特殊 : Params
|
|||
|
-- Params.ShowUp
|
|||
|
if self.ImgUp then
|
|||
|
self:SetUiActive(self.ImgUp, params.ShowUp)
|
|||
|
end
|
|||
|
|
|||
|
-- Params.ShowNew
|
|||
|
if self.ImgNew then
|
|||
|
self:SetUiActive(self.ImgNew, params.ShowNew)
|
|||
|
end
|
|||
|
|
|||
|
-- Params.ShowReceived 已领取
|
|||
|
if self.ImgReceived then
|
|||
|
self:SetUiActive(self.ImgReceived, params.ShowReceived)
|
|||
|
end
|
|||
|
|
|||
|
-- Params.Disable 不可点击
|
|||
|
self.Disable = params.Disable
|
|||
|
|
|||
|
--特殊抽奖中奖品的剩余数
|
|||
|
if self.TxtStock then
|
|||
|
if curCount then
|
|||
|
self.TxtStock.text = CS.XTextManager.GetText("ResidueStockText", curCount)
|
|||
|
self:SetUiActive(self.TxtStock, true)
|
|||
|
end
|
|||
|
self:SetUiActive(self.TxtName, false)
|
|||
|
end
|
|||
|
|
|||
|
--特殊抽奖中是否有库存的提示
|
|||
|
if self.ImgNone then
|
|||
|
self:SetUiActive(self.ImgNone, curCount and curCount <= 0)
|
|||
|
end
|
|||
|
|
|||
|
--收藏品等级
|
|||
|
if self.IconLevel and self.GoodsShowParams.LevelIcon then
|
|||
|
local levelIcon = self.SyncLevelIcon or self.GoodsShowParams.LevelIcon
|
|||
|
if levelIcon then
|
|||
|
self.RootUi:SetUiSprite(self.IconLevel, levelIcon)
|
|||
|
self:SetUiActive(self.IconLevel, true)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
--是否已拥有
|
|||
|
if self.TxtHave then
|
|||
|
local isHave, isLimitTime = XRewardManager.CheckRewardOwn(self.GoodsShowParams.RewardType, self.GoodsShowParams.TemplateId)
|
|||
|
local isShowTextHave = isHave and not isLimitTime
|
|||
|
self:SetUiActive(self.TxtHave, isShowTextHave)
|
|||
|
self:SetUiActive(self.TxtCount, not isShowTextHave)
|
|||
|
end
|
|||
|
|
|||
|
--清除临时的同步数据
|
|||
|
self:ClearSynData()
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:ShowCount(show)
|
|||
|
if (self.TxtCount) then
|
|||
|
self.TxtCount.gameObject:SetActiveEx(show)
|
|||
|
end
|
|||
|
if self.TextCount then
|
|||
|
self.TextCount.gameObject:SetActiveEx(show)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:ShowStar(count, max)
|
|||
|
local showStar = max > 0
|
|||
|
self.PanelStars.gameObject:SetActiveEx(showStar)
|
|||
|
|
|||
|
if not showStar then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
for i = 1, 6 do
|
|||
|
local starPanel = self["PanelStar" .. i]
|
|||
|
if starPanel then
|
|||
|
starPanel.gameObject:SetActiveEx(i <= max)
|
|||
|
end
|
|||
|
|
|||
|
local imgStar = self["ImgStar" .. i]
|
|||
|
if imgStar then
|
|||
|
imgStar.gameObject:SetActiveEx(i <= count)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetReceived(isReceive)
|
|||
|
if self.ImgReceived then
|
|||
|
self:SetUiActive(self.ImgReceived, isReceive)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetPanelFirst(isFirst)
|
|||
|
if self.PanelFirst then
|
|||
|
self.PanelFirst.gameObject:SetActiveEx(isFirst)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetShowUp(isShow)
|
|||
|
if self.ImgUp then
|
|||
|
self:SetUiActive(self.ImgUp, isShow)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetUpText(text)
|
|||
|
if self.UpText then
|
|||
|
self.UpText.text = text
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetUpImg(img)
|
|||
|
if self.ImgUp then
|
|||
|
self.ImgUp:SetRawImage(img)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetClickCallback(callback)
|
|||
|
XUiHelper.RegisterClickEvent(self, self.BtnClick, callback, true)
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetSyncQuality(quality)
|
|||
|
self.SyncQuality = quality
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetSyncLevelIcon(levelIcon)
|
|||
|
self.SyncLevelIcon = levelIcon
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:ClearSynData()
|
|||
|
self.SyncQuality = nil
|
|||
|
self.SyncLevelIcon = nil
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:GetQuality()
|
|||
|
return self.GoodsShowParams.Quality
|
|||
|
end
|
|||
|
|
|||
|
function XUiGridCommon:SetName(value)
|
|||
|
if not self.TxtName then return end
|
|||
|
self.TxtName.text = value
|
|||
|
end
|
|||
|
--============
|
|||
|
--获取物品显示数据
|
|||
|
--============
|
|||
|
function XUiGridCommon:GetGoodsShowParams()
|
|||
|
if not self.TemplateId then
|
|||
|
XLog.Error("错误日志:显示的道具数据TemplateId为空!")
|
|||
|
return
|
|||
|
end
|
|||
|
local templateType = self.Data and self.Data.RewardType and RewardTypeToTemplateType[self.Data.RewardType] or "Default"
|
|||
|
return self["Get" .. templateType .. "GoodsShowParams"](self)
|
|||
|
end
|
|||
|
--=============
|
|||
|
--获取一般道具显示数据(默认项)
|
|||
|
--=============
|
|||
|
function XUiGridCommon:GetDefaultGoodsShowParams()
|
|||
|
return XGoodsCommonManager.GetGoodsShowParamsByTemplateId(self.TemplateId)
|
|||
|
end
|
|||
|
--=============
|
|||
|
--获取勋章显示数据
|
|||
|
--=============
|
|||
|
function XUiGridCommon:GetMedalGoodsShowParams()
|
|||
|
--勋章的物品数据中,用TemplateId代替了表中的Params[0],即勋章Id
|
|||
|
local medal = XDataCenter.MedalManager.GetMedalById(self.Data.TemplateId)
|
|||
|
if not medal then return end
|
|||
|
local goodsShowParams = {
|
|||
|
Name = medal.Name,
|
|||
|
Icon = medal.MedalIcon,
|
|||
|
Config = medal,
|
|||
|
RewardType = XRewardManager.XRewardType.Medal
|
|||
|
}
|
|||
|
return goodsShowParams
|
|||
|
end
|
|||
|
|
|||
|
return XUiGridCommon
|