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

628 lines
25 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 _ShopTypeConfig = ConfigManager.GetConfig(ConfigName.StoreTypeConfig)
-- 通用得商店逻辑
local ShopView = {}
local this = ShopView
this.sortingOrder = 0
-- 保存商品中的物品节点
local _GoodsItemList = {}
---===============================生命周期函数================================
function this:New(gameObject)
local o = {}
this.__index = this
setmetatable(o, this)
o.gameObject = gameObject
o.transform = gameObject.transform
return o
end
--初始化组件(用于子类重写)
function this:InitComponent()
self.live = Util.GetGameObject(self.gameObject, "live")
self.liveRoot = Util.GetGameObject(self.gameObject, "live/root")
self.liveImg = Util.GetGameObject(self.gameObject, "live/img")
self.basePanel = Util.GetGameObject(self.gameObject, "base")
self.closeTimePanel = Util.GetGameObject(self.gameObject, "base/closeTime")
self.closeTimeLab = Util.GetGameObject(self.closeTimePanel, "timelab")
self.closeTime = Util.GetGameObject(self.closeTimePanel, "time")
self.refreshTimePanel = Util.GetGameObject(self.gameObject, "base/refreshTime")
self.refreshTimeLab = Util.GetGameObject(self.refreshTimePanel, "timelab")
self.refreshTime = Util.GetGameObject(self.refreshTimePanel, "time")
self.countTimePanel = Util.GetGameObject(self.gameObject, "base/countTime")
self.countTimeLab = Util.GetGameObject(self.countTimePanel, "timelab")
self.countTime = Util.GetGameObject(self.countTimePanel, "time")
self.refreshCountPanel = Util.GetGameObject(self.gameObject, "base/refreshCount")
self.countLabTip = Util.GetGameObject(self.refreshCountPanel, "tip")
self.countLab = Util.GetGameObject(self.refreshCountPanel, "count")
self.refreshBtnPanel = Util.GetGameObject(self.gameObject, "base/refreshBtn")
self.refreshBtn = Util.GetGameObject(self.refreshBtnPanel, "btn")
self.refreshRedpot = Util.GetGameObject(self.refreshBtnPanel, "redpot")
self.costIcon = Util.GetGameObject(self.refreshBtnPanel, "costIcon")
self.costLab = Util.GetGameObject(self.refreshBtnPanel, "costLab")
self.contentBg = Util.GetGameObject(self.gameObject, "duihua")
self.content = Util.GetGameObject(self.gameObject, "duihua/Text")
self.scrollBg = Util.GetGameObject(self.gameObject, "scrollbg")
self.scrollRoot = Util.GetGameObject(self.gameObject, "scrollbg/scrollroot")
self.scrollBg1 = Util.GetGameObject(self.gameObject, "scrollbg/bg1")
self.scrollBg2 = Util.GetGameObject(self.gameObject, "scrollbg/bg2")
self.scrollBg3 = Util.GetGameObject(self.gameObject, "scrollbg/bg3")
self.bottom = Util.GetGameObject(self.gameObject, "scrollbg/bottom")
self.tip = Util.GetGameObject(self.gameObject, "scrollbg/tip")
self.shopItem = Util.GetGameObject(self.gameObject, "scrollbg/scrollroot/shopItem")
self.rechargeShopItem = Util.GetGameObject(self.gameObject, "scrollbg/scrollroot/item")
self.titleBg = Util.GetGameObject(self.gameObject, "scrollbg/titlebg")
self.titleImg = Util.GetGameObject(self.gameObject, "scrollbg/titlebg/title")
this.helpBtn = Util.GetGameObject(self.gameObject, "scrollbg/titlebg/helpBtn")--scrollbg/titlebg/
this.helpPosition=this.helpBtn:GetComponent("RectTransform").localPosition
-- 创建循环列表
if not self.ScrollView then
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollRoot.transform,
self.shopItem, nil, Vector2.New(1000, 1024), 1, 3, Vector2.New(80, 0))
self.ScrollView.moveTween.MomentumAmount = 1
self.ScrollView.moveTween.Strength = 2
end
-- 创建循环列表
if not self.RechargeScrollView then
self.RechargeScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollRoot.transform,
self.rechargeShopItem, nil, Vector2.New(1000, 1024), 1, 3, Vector2.New(80, 0))
self.RechargeScrollView.moveTween.MomentumAmount = 1
self.RechargeScrollView.moveTween.Strength = 2
self.RechargeScrollView.gameObject.transform.localPosition = Vector3.New(0, -20, 0)
self.RechargeScrollView.elastic = false
end
end
--绑定事件(用于子类重写)
function this:BindEvent()
local localSelf = self
Util.AddOnceClick(self.refreshBtn, function()
local isPopUp = RedPointManager.PlayerPrefsGetStr(PlayerManager.uid .. localSelf.ShopType)
local currentTime = os.date("%Y%m%d", PlayerManager.serverTime)
local shopType = localSelf.ShopType
local isAutoRecover = ShopManager.IsAutoRecoverCount(shopType)
if (isPopUp ~= currentTime) and not isAutoRecover then
local shopInfo = ShopManager.GetShopInfoByType(shopType)
local costId, abcd = shopInfo.RefreshItem[1][1], shopInfo.RefreshItem[2]
local refreshNum = PrivilegeManager.GetPrivilegeUsedTimes(shopInfo.RefreshPrivilege)
local costNum = CalculateCostCount(refreshNum, abcd)
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local costName = itemConfig[costId].Name
local str = string.format(Language[12087], costNum, costName)
MsgPanel.ShowTwo(str, function()
end, function(isShow)
if (isShow) then
local currentTime = os.date("%Y%m%d", PlayerManager.serverTime)
RedPointManager.PlayerPrefsSetStr(PlayerManager.uid .. localSelf.ShopType, currentTime)
end
ShopManager.RequestRefreshShop(shopType, false)
end, Language[10719], Language[10720],nil,true)
else
ShopManager.RequestRefreshShop(localSelf.ShopType, false)
end
-- 重置商店刷新按钮点击状态
ShopManager.SetShopRefreshBtnClickStatus(localSelf.ShopType, true)
end)
--帮助按钮
Util.AddOnceClick(this.helpBtn, function()
if self.ShopConfig.HelpId==0 then
return
end
UIManager.OpenPanel(UIName.HelpPopup, self.ShopConfig.HelpId , this.helpPosition.x,this.helpPosition.y+372)--因层级锚点原因,需手动调整高度
end)
end
--添加事件监听(用于子类重写)
function this:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.Shop.OnShopInfoChange, self.RefreshShopInfo, self)
Game.GlobalEvent:AddEvent(GameEvent.MoneyPay.OnPayResultSuccess, self.RechargeSuccessFunc, self)
end
--移除事件监听(用于子类重写)
function this:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.Shop.OnShopInfoChange, self.RefreshShopInfo, self)
Game.GlobalEvent:RemoveEvent(GameEvent.MoneyPay.OnPayResultSuccess, self.RechargeSuccessFunc, self)
end
--界面打开时调用(用于子类重写)
function this:OnOpen(...)
end
--界面关闭时调用(用于子类重写)
function this:OnClose()
if self._TimeCounter then
self._TimeCounter:Stop()
self._TimeCounter = nil
end
-- 物品节点回收
for _, item in pairs(_GoodsItemList) do
Util.SetColor(item.gameObject, Color.New(1,1,1,1))
Util.SetGray(item.gameObject, false)
SubUIManager.Close(item)
end
_GoodsItemList = {}
-- 红点销毁
if self.ShopType == SHOP_TYPE.GENERAL_SHOP then
ClearRedPointObject(RedPointType.Shop_General_Refresh)
end
if self.ScrollView then
GameObject.DestroyImmediate(self.ScrollView.gameObject)
self.ScrollView = nil
end
if self.RechargeScrollView then
GameObject.DestroyImmediate(self.RechargeScrollView.gameObject)
self.RechargeScrollView = nil
end
if self.liveNode then
poolManager:UnLoadLive(self.LiveName, self.liveNode)
self.liveNode = nil
end
end
---=================================工具函数==========================================
-- 设置文本透明度
local function SetAlpha(text, a)
local color = text.color
color.a = a
text.color = color
end
---===================================内部函数========================================
-- 刷新商店内容显示
function this:RefreshShopInfo(isRefresh, isTop)
if self.ShopType == SHOP_TYPE.SOUL_STONE_SHOP then
self.RechargeShopData = OperatingManager.GetGiftGoodsInfoList(GoodsTypeDef.DemonCrystal)
else
self.ShopData = ShopManager.GetShopDataByType(self.ShopType)
end
self:RefreshLive()
self:RefreshBase()
self:RefreshItemList(isTop)
-- 刷新商店的查看时间
ShopManager.RefreshShopCheckTime(self.ShopType)
if isRefresh then
-- 物品节点播放特效
for _, item in pairs(_GoodsItemList) do
item:OnShowUIeffectItemViewSaoguang()
end
end
end
-- 刷新立绘显示
function this:RefreshLive()
if not self.ShopConfig.LiveName or self.ShopConfig.LiveName == "" then
self.live:SetActive(false)
return
end
self.live:SetActive(true)
self.liveImg:SetActive(false)
self.liveRoot:SetActive(false)
-- 立绘
--TODO:动态加载立绘
self.liveRoot:SetActive(true)
if self.liveNode then
poolManager:UnLoadLive(self.LiveName, self.liveNode)
end
local scale = self.ShopConfig.LiveScale
scale = Vector3.New(scale[1], scale[2], scale[3])
local livePos = Vector3.zero
if self.ShopConfig.LivePos then
livePos.x = self.ShopConfig.LivePos[1]
livePos.y = self.ShopConfig.LivePos[2]
end
self.LiveName = self.ShopConfig.LiveName
self.liveNode = poolManager:LoadLive(self.ShopConfig.LiveName, self.liveRoot.transform, scale, livePos)
local SkeletonGraphic = self.liveNode:GetComponent("SkeletonGraphic")
local idle = function()
SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
end
SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true)
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete + idle
poolManager:SetLiveClearCall(self.ShopConfig.LiveName, self.liveNode, function()
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete - idle
end)
end
-- 开始倒计时
function this:StartTimeCount()
local localSelf = self
local function _TimeUpdate()
-- 检测计时器是否已销毁,避免计时器销毁后仍然会执行一次,导致报错的问题
if not localSelf._TimeCounter then
return
end
-- 刷新时间
if localSelf.isShowRefreshTime then
local refreshTime = ShopManager.GetShopRefreshLeftTime(localSelf.ShopType)
if refreshTime >= 0 then
localSelf.refreshTime:GetComponent("Text").text = TimeToHMS(refreshTime)
end
end
-- 关闭时间
if localSelf.isShowCloseTime then
local closeTime = ShopManager.GetShopCloseTime(localSelf.ShopType)
if closeTime >= 0 then
local timeStr = ""
-- if localSelf.ShopType == SHOP_TYPE.ACTIVITY_SHOP then
-- timeStr = TimeToDHMS(closeTime)
-- else
timeStr = TimeToHMS(closeTime)
-- end
localSelf.closeTime:GetComponent("Text").text = timeStr
end
end
-- 次数恢复时间
if localSelf.isShowCountTime then
local refreshTime = ShopManager.GetShopRefreshCountRecoverTime(localSelf.ShopType)
local maxTime = ShopManager.GetMaxRefreshCount(localSelf.ShopType)
local isAutoRecover, leftTime = ShopManager.IsAutoRecoverCount(localSelf.ShopType)
if refreshTime > 0 then
localSelf.countTime:GetComponent("Text").text = TimeToHMS(refreshTime)
elseif isAutoRecover and maxTime == leftTime and not localSelf.isMaxTime then
-- localSelf:RefreshBase()
localSelf.countTime:GetComponent("Text").text = Language[12088]
localSelf.countLabTip:GetComponent("Text").text = Language[12092]
localSelf.countLab:GetComponent("Text").text = leftTime
localSelf.isMaxTime = true
elseif isAutoRecover and maxTime ~= leftTime and refreshTime == 0 then
localSelf:RefreshBase()
localSelf.isMaxTime = false
end
end
end
-- 开始吧
if not self._TimeCounter then
self._TimeCounter = Timer.New(_TimeUpdate, 1, -1, true)
self._TimeCounter:Start()
end
-- 刷新一次
_TimeUpdate()
end
-- 刷新时间及刷新按钮
function this:RefreshBase()
-- 自动刷新时间倒计时
local leftTime = ShopManager.GetShopRefreshLeftTime(self.ShopType)
self.isShowRefreshTime = leftTime >= 0
self.refreshTimePanel:SetActive(self.isShowRefreshTime)
-- 商店关闭时间倒计时
local closeTime = ShopManager.GetShopCloseTime(self.ShopType)
self.isShowCloseTime = closeTime >= 0 and not self.isShowRefreshTime
self.closeTimePanel:SetActive(self.isShowCloseTime)
if self.isShowCloseTime then
if self.ShopType == SHOP_TYPE.ARENA_SHOP or self.ShopType == SHOP_TYPE.TOP_MATCH_SHOP then
self.closeTimeLab:GetComponent("Text").text = Language[12089]
else
self.closeTimeLab:GetComponent("Text").text = Language[12090]
end
end
-- 次数恢复时间
local countTime = ShopManager.GetShopRefreshCountRecoverTime(self.ShopType)
self.isShowCountTime = countTime >= 0
self.countTimePanel:SetActive(self.isShowCountTime)
--开始倒计时
self:StartTimeCount()
-- 主动刷新按钮
local leftCount = ShopManager.GetShopLeftRefreshCount(self.ShopType)
if leftCount == -2 then
-- 不支持刷新
self.refreshCountPanel:SetActive(false)
self.refreshBtnPanel:SetActive(false)
else
self.refreshBtnPanel:SetActive(true)
if leftCount == -1 then
-- 无限制次数刷新
self.refreshCountPanel:SetActive(false)
elseif leftCount >= 0 then
-- 限制次数刷新
self.refreshCountPanel:SetActive(true)
self.countLab:GetComponent("Text").text = leftCount
end
local isAutoRecover = ShopManager.IsAutoRecoverCount(self.ShopType)
if isAutoRecover then
self.costIcon:SetActive(false)
self.costLab:SetActive(false)
self.countLabTip:GetComponent("Text").text = Language[12092]
self.isMaxTime = false
else
self.costIcon:SetActive(true)
self.costLab:SetActive(true)
self.countLabTip:GetComponent("Text").text = Language[12093]
-- 刷新物品计算
local shopInfo = ShopManager.GetShopInfoByType(self.ShopType)
local costId, abcd = shopInfo.RefreshItem[1][1], shopInfo.RefreshItem[2]
self.costIcon:GetComponent("Image").sprite = SetIcon(costId)
-- 商店特权正确性检测
if not shopInfo.RefreshPrivilege or shopInfo.RefreshPrivilege == 0 then
Log(Language[12094] .. self.ShopType .. Language[12095])
end
local refreshNum = PrivilegeManager.GetPrivilegeUsedTimes(shopInfo.RefreshPrivilege)
self.costLab:GetComponent("Text").text = "×" .. CalculateCostCount(refreshNum, abcd)
end
end
-- 商店标题
if self.ShopConfig.Title and self.ShopConfig.Title ~= "" then
self.titleImg:GetComponent("Image").sprite = Util.LoadSprite(self.ShopConfig.Title)
end
-- 对话显示
-- if self.ShopConfig.content then
-- self.contentBg:SetActive(true)
-- self.content:GetComponent("Text").text = self.ShopConfig.content
-- self.contentBg.transform.localPosition = Vector3(self.ShopConfig.contentPos[1], self.ShopConfig.contentPos[2], 0)
-- else
self.contentBg:SetActive(false)
-- end
end
-- 刷新物品列表
function this:RefreshItemList(isTop)
if self.ShopType == SHOP_TYPE.SOUL_STONE_SHOP then
self.ScrollView.gameObject:SetActive(false)
self.RechargeScrollView.gameObject:SetActive(true)
local itemlist = self.RechargeShopData
self.RechargeScrollView:SetData(itemlist, function(index, shopItem)
local itemData = itemlist[index]
self:RechargeShopItemAdapter(shopItem, itemData)
end)
--
if isTop then
self.RechargeScrollView:SetIndex(1)
end
else
-- 重置列表
self.RechargeScrollView.gameObject:SetActive(false)
self.ScrollView.gameObject:SetActive(true)
local itemlist = self.ShopData.storeItem
self.ScrollView:SetData(itemlist, function(index, shopItem)
local itemData = itemlist[index]
self:ShopItemAdapter(shopItem, itemData)
end)
if isTop then
self.ScrollView:SetIndex(1)
end
end
end
-- 商店物品数据匹配
function this:ShopItemAdapter(shopItem, itemData)
-- 获取对象
local bg = Util.GetGameObject(shopItem, "bg")
local item = Util.GetGameObject(bg, "item")
local itemName = Util.GetGameObject(bg, "itemName"):GetComponent("Text")
local limitBg = Util.GetGameObject(bg, "buyLimitbg")
local limitTip = Util.GetGameObject(bg, "buyLimitbg/tip"):GetComponent("Text")
local limitTimes = Util.GetGameObject(bg, "buyLimitbg/buyLimit"):GetComponent("Text")
local priceBg = Util.GetGameObject(bg, "pricebg")
local itemPrice = Util.GetGameObject(bg, "pricebg/price"):GetComponent("Text")
local costIcon = Util.GetGameObject(bg, "pricebg/costIcon"):GetComponent("Image")
local discountbg = Util.GetGameObject(bg, "discountbg")
local empty = Util.GetGameObject(shopItem, "empty")
local lock = Util.GetGameObject(shopItem, "lock")
local lockTip = Util.GetGameObject(shopItem, "lock/tip"):GetComponent("Text")
-- 计算数据
local itemInfo = ShopManager.GetShopItemInfo(itemData.id)
local curBuyCount = itemData.buyNum
local maxLimitCount = ShopManager.GetShopItemLimitBuyCount(itemData.id)
local costId, price = ShopManager.calculateBuyCost(self.ShopType, itemData.id, 1)
local goods = ShopManager.GetShopItemGoodsInfo(itemData.id)
itemName.text = ConfigManager.GetConfigData(ConfigName.ItemConfig,goods[1][1]).Name--itemInfo.GoodsName
-- 折扣
if price == 0 then
discountbg:SetActive(true)
discountbg:GetComponent("Image").sprite = Util.LoadSprite("s_shop_zhekou_00")
else
local isDiscount = itemInfo.IsDiscount == 1
discountbg:SetActive(isDiscount)
if isDiscount then
discountbg:GetComponent("Image").sprite = Util.LoadSprite("s_shop_zhekou_0" .. itemInfo.DiscountDegree)
end
end
-- 消耗物品的信息
itemPrice.text = PrintWanNum2(tonumber(price))--tostring(price)
costIcon.sprite = SetIcon(costId)
-- 判断商品栏位是否解锁
local _IsUnLock = true
if self.ShopType == SHOP_TYPE.GUILD_SHOP then
local isUnLock, unLockLevel = MyGuildManager.GetGuildShopSortIsUnLock(itemInfo.Sort)
if not isUnLock then
_IsUnLock = false
lockTip.text = string.format(Language[12096], unLockLevel)
end
end
lock:SetActive(not _IsUnLock)
priceBg.gameObject:SetActive(_IsUnLock)
itemName.gameObject:SetActive(_IsUnLock)
-- 限购
limitBg:SetActive(maxLimitCount ~= -1)
limitTimes.text = maxLimitCount
-- 售空 限购次数为-1 表示不限购
local isEmpty = maxLimitCount ~= -1 and curBuyCount >= maxLimitCount
if curBuyCount >= maxLimitCount then
empty:SetActive(true)
else
empty:SetActive(false)
end
empty:SetActive(isEmpty)
-- 数据匹配
if not _GoodsItemList[shopItem] then
_GoodsItemList[shopItem] = SubUIManager.Open(SubUIConfig.ItemView, item.transform)
end
Util.SetGray(_GoodsItemList[shopItem].gameObject, not _IsUnLock)
if isEmpty or not _IsUnLock then -- 物品空或者未解锁不现实物品特效
_GoodsItemList[shopItem]:OnOpen(false, goods[1],1,false,false,false)
else
_GoodsItemList[shopItem]:OnOpen(false, goods[1],1,false,false,false,this.sortingOrder)
end
-- 商品颜色显示
local imgColor = isEmpty and Color.New(0.5, 0.5, 0.5, 1) or Color.New(1, 1, 1, 1)
local textA = isEmpty and 0.7 or 1
Util.SetColor(bg, imgColor)
SetAlpha(itemName, textA)
SetAlpha(limitTip, textA)
SetAlpha(limitTimes, textA)
SetAlpha(itemPrice, textA)
-- 购买事件
Util.AddOnceClick(lock, function()
PopupTipPanel.ShowTip(Language[12097])
end)
Util.AddOnceClick(empty, function()
PopupTipPanel.ShowTip(Language[12098])
end)
Util.AddOnceClick(bg, function()
-- 售空
if isEmpty then
PopupTipPanel.ShowTip(Language[12098])
return
end
if not _IsUnLock then
PopupTipPanel.ShowTip(Language[12097])
return
end
UIManager.OpenPanel(UIName.ShopBuyPopup, self.ShopType, itemData.id)
end)
end
-- 妖晶商店物品数据匹配
function this:RechargeShopItemAdapter(shopItem, itemData)
-- 获取对象
local first = Util.GetGameObject(shopItem, "first")
local firstNum = Util.GetGameObject(shopItem, "first/Text"):GetComponent("Text")
local icon = Util.GetGameObject(shopItem, "icon"):GetComponent("Image")
local num = Util.GetGameObject(shopItem, "itemName"):GetComponent("Text")
local price = Util.GetGameObject(shopItem, "price/Text"):GetComponent("Text")
-- 计算数据
local itemInfo = ShopManager.GetRechargeItemInfo(itemData.goodsId)
icon.sprite = Util.LoadSprite(GetResourcePath(itemInfo.Resources))
num.text = itemInfo.Name
price.text = "¥" .. itemInfo.Price
-- 判断首充赠送
local curBuyCount = itemData.buyTimes
first:SetActive(curBuyCount < 1)
firstNum.text = itemInfo.FirstMultiple[1][2]
-- 购买事件
Util.AddOnceClick(shopItem, function()
if AppConst.isSDK then
PayManager.Pay({ Id = itemData.goodsId })
else
NetManager.RequestBuyGiftGoods(itemData.goodsId, function()
self:RechargeSuccessFunc(itemData.goodsId)
PlayerPrefs.SetInt(PlayerManager.uid.."czlb", 0)
CheckRedPointStatus(RedPointType.GrowthPackage)--成长礼包红点检测
end)
end
end)
end
-- 充值成功回调
function this:RechargeSuccessFunc(id)
FirstRechargeManager.RefreshAccumRechargeValue(id)
OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DemonCrystal, id)
self:RefreshShopInfo(false, false)
--PopupTipPanel.ShowTip("购买成功,请到邮箱中领取!")
end
---=====================================对外接口=============================----
-- 设置要显示的商店类型
function this:ShowShop(shopType,_sortingOrder)
--
self.titleBg:GetComponent("Canvas").sortingOrder = _sortingOrder + 1
this.sortingOrder = _sortingOrder
-- 红点销毁
self.refreshRedpot:SetActive(false)
if self.ShopType == SHOP_TYPE.GENERAL_SHOP then
ClearRedPointObject(RedPointType.Shop_General_Refresh)
end
-- 绑定新红点
if shopType == SHOP_TYPE.GENERAL_SHOP then
BindRedPointObject(RedPointType.Shop_General_Refresh, self.refreshRedpot)
end
-- 刷新显示
self.ShopType = shopType
self.ShopId = ShopManager.GetShopDataByType(self.ShopType).id
self.ShopConfig = _ShopTypeConfig[self.ShopId]
-- 显示帮助按钮
self.helpBtn:SetActive(self.ShopConfig.HelpId ~= 0)
self:RefreshShopInfo(false, true)
-- 设置tip显隐
local isSSSHop = self.ShopType == SHOP_TYPE.SOUL_STONE_SHOP
self.scrollBg1:SetActive(not isSSSHop)
self.scrollBg2:SetActive(not isSSSHop)
self.titleBg:SetActive(not isSSSHop)
self.bottom:SetActive(not isSSSHop)
self.scrollBg3:SetActive(isSSSHop)
self.tip:SetActive(isSSSHop)
end
-- 设置立绘位置
function this:SetLivePosition(pos)
-- 计算位置
if not pos then
return
end
if not self.liveNode then
return
end
self.liveNode.transform.localPosition = pos
end
-- 设置商店物品栏位置
function this:SetItemContentPosition(pos)
-- 计算位置
if not pos then
return
end
self.scrollBg.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(pos.x, pos.y)
--self.scrollBg.transform.localPosition = pos
end
-- 设置基础信息位置
function this:SetBasePanelPostion(pos)
self.basePanel:GetComponent("RectTransform").anchoredPosition = pos
end
-- 设置层级
function this:SetSortLayer(sortLayer)
--
Log("sortLayer _GoodsItemList "..sortLayer.." "..LengthOfTable(_GoodsItemList))
for _, item in pairs(_GoodsItemList) do
item:SetEffectLayer(sortLayer)--this.sortingOrder)
end
self.titleBg:GetComponent("Canvas").sortingOrder = sortLayer + 1
-- 保存层级
this.sortingOrder = sortLayer
end
return this