miduo_client/Assets/ManagedResources/~Lua/Modules/Recharge/View/GiftPre.lua

309 lines
13 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.

GiftPre = {}
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
local parent
function GiftPre:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = GiftPre })
return b
end
local rechargeNum
local offSetX = {
[0] = {
icon = Vector3.New(336,-27,0),
txt = Vector3.New(407,-31.5,0),
ima = Vector3.New(315.5,-32,0),
txt1 = Vector3.New(158,-31.5,0),
icon1 = Vector3.New(95,-27,0),
scroll = Vector3.New(-306.21,67.1,0),
},
[1] = {
icon = Vector3.New(219.86,8,0),
txt = Vector3.New(288.5,0.5,0),
ima = Vector3.New(20.19,0,0),
txt1 = Vector3.New(-162,0.5,0),
icon1 = Vector3.New(-219.6,8,0),
scroll = Vector3.New(-254,71.9,0),
},
[2] = { icon = Vector3.New(30,8,0),
txt = Vector3.New(86.4,0.5,0),
ima = Vector3.New(30,0,0),
txt1 = Vector3.New(-105.7,0.5,0),
icon1 = Vector3.New(-155.7,8,0)
}
}
--初始化组件(用于子类重写)
function GiftPre:InitComponent()
self.upLayout = Util.GetGameObject(self.gameObject, "bg/upLayout")
self.middleLayout = Util.GetGameObject(self.gameObject, "bg/middleLayout")
self.tipImage = Util.GetGameObject(self.upLayout, "tipImage")
self.tipText = Util.GetGameObject(self.tipImage, "Text"):GetComponent("Text")
self.tagIma = Util.GetGameObject(self.upLayout, "tag")
self.tagText = Util.GetGameObject(self.tagIma, "tagTxt"):GetComponent("Text")
self.type1 = Util.GetGameObject(self.upLayout, "type1")
self.type1Text1 = Util.GetGameObject(self.type1, "text1"):GetComponent("Text")
self.type1Text3 = Util.GetGameObject(self.type1, "text3"):GetComponent("Text")
self.numGrid = Util.GetGameObject(self.type1, "NumTextPre")
self.numList = {}
for i = 1, self.numGrid.transform.childCount do
table.insert(self.numList,self.numGrid.transform:GetChild(i-1):GetComponent("Text"))
end
self.type2 = Util.GetGameObject(self.upLayout, "type2")
self.type2Ima = Util.GetGameObject(self.upLayout, "Image")
self.type2Icon1 = Util.GetGameObject(self.type2, "icon_1")
self.type2Text1 = Util.GetGameObject(self.type2, "text1"):GetComponent("Text")
self.type2Icon2 = Util.GetGameObject(self.type2, "icon_2")
self.type2Text2 = Util.GetGameObject(self.type2, "text2"):GetComponent("Text")
self.btnBuy = Util.GetGameObject(self.middleLayout, "btnBuy")
self.icon = Util.GetGameObject(self.btnBuy, "icon"):GetComponent("Image")
self.price = Util.GetGameObject(self.btnBuy, "price"):GetComponent("Text")
self.buyInfo = Util.GetGameObject(self.middleLayout, "buyInfo"):GetComponent("Text")
self.redPoint = Util.GetGameObject(self.btnBuy, "redPoint")
self.shadow=Util.GetGameObject(self.middleLayout,"shadow")
self.grid = Util.GetGameObject(self.middleLayout, "scrollView/grid")
self.redpot = Util.GetGameObject(self.gameObject, "bg/redpot")
self.UI_Effect_MianBan_LiBao_button_01 = Util.GetGameObject(self.gameObject, "UI_Effect_MianBan_LiBao_button_01")
self.isCanBuy = 0
self.itemList = {}
end
--绑定事件(用于子类重写)
function GiftPre:BindEvent()
Util.AddOnceClick(self.btnBuy, function()
if self.isCanBuy == 1 then -- 0 可购买 1购买条件不足 2已购买
PopupTipPanel.ShowTip(Language[11701])
elseif self.isCanBuy == 2 then
PopupTipPanel.ShowTip(Language[10515])
else
--道具商品
if self.data.DataType == DataType.Shop then
self:BuyAction(self.data.data.costId, self.data.data.finalNum, self.data.buyType, self.data.data.shopData.id)--特权商城
CheckRedPointStatus(RedPointType.GrowthPackage)
else
--直购商品
PayManager.Pay(self.data.data.shopData.goodsId, function(id)
FirstRechargeManager.RefreshAccumRechargeValue(self.data.data.shopData.goodsId)
PlayerPrefs.SetInt(PlayerManager.uid.."czlb", 0)
CheckRedPointStatus(RedPointType.DailyGift)
CheckRedPointStatus(RedPointType.WeekGiftPage)
CheckRedPointStatus(RedPointType.MonthGiftPage)
CheckRedPointStatus(RedPointType.GrowthPackage)
self.parent:RefreshData()
end)
end
end
end)
end
--购买点击事件
function GiftPre:BuyAction(costId, costNum, shopType, itemId)
local haveNum = BagManager.GetItemCountById(costId)
local costName = ConfigManager.GetConfigData(ConfigName.ItemConfig, costId).Name
--Log("需要消耗的道具ID" .. costId)
if haveNum < costNum then
NotEnoughPopup:Show(costId)
else
local func = function(shopType, itemId)
ShopManager.RequestBuyShopItem(shopType, itemId, 1, function()
self.parent:RefreshData()
CheckRedPointStatus(RedPointType.DailyGift)
CheckRedPointStatus(RedPointType.GrowthPackage)
end)
end
local isPopUp = RedPointManager.PlayerPrefsGetStr(PlayerManager.uid .. shopType)
local currentTime = os.date("%Y%m%d", PlayerManager.serverTime)
if (isPopUp ~= currentTime and costNum ~= 0) then
local str = string.format(Language[11360], 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 .. shopType, currentTime)
end
func(shopType, itemId)
end,
Language[10731],
Language[10732],
nil,
true)
else
func(shopType, itemId)
end
end
end
--添加事件监听(用于子类重写)
function GiftPre:AddListener()
end
--移除事件监听(用于子类重写)
function GiftPre:RemoveListener()
end
function GiftPre:OnOpen()
end
function GiftPre:SetData(data,_parent,_rechargeNum,sortingOrder)
rechargeNum = _rechargeNum
self.data = data
self.parent = _parent
if self.data.data.tagName and self.data.data.tagName ~= "" then
self.tagIma.gameObject:SetActive(true)
self.tagText.text = self.data.data.tagName
else
self.tagIma.gameObject:SetActive(false)
end
if not self.itemList then
self.itemList = {}
end
for i = 1, #self.itemList do
self.itemList[i].gameObject:SetActive(false)
end
for i = 1, #self.data.data.shows do
if not self.itemList[i] then
self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.grid.transform)
self.itemList[i].gameObject:SetActive(false)
end
self.itemList[i]:OnOpen(false, {self.data.data.shows[i][1],self.data.data.shows[i][2]}, 0.9,false,false,false,sortingOrder)
self.itemList[i].gameObject:SetActive(true)
end
if self.data.data.tipImageText and self.data.data.tagName and self.data.data.tagName ~= "" then
self.tipImage.gameObject:SetActive(true)
self.tipText.text = self.data.data.tipImageText
else
self.tipImage.gameObject:SetActive(false)
end
Util.SetParticleSortLayer(self.UI_Effect_MianBan_LiBao_button_01, sortingOrder or 0)
self:SetIcon(self.data)
self:SetContent1()
self:Effect()
end
function GiftPre:Effect()
local isshow = false
if self.data.DataType == DynamicActivityManager.selectIndex.dataType then
for i = 1 , #DynamicActivityManager.selectIndex.goodsId do
if (self.data.data.shopData.id or self.data.data.shopData.goodsId) == DynamicActivityManager.selectIndex.goodsId[i] then
isshow = true
break
end
end
end
if self.isCanBuy == 2 then
isshow = false
end
self.UI_Effect_MianBan_LiBao_button_01.gameObject:SetActive(isshow)
end
function GiftPre:SetContent1()
self.upLayout.gameObject:SetActive(true)
self.grid:GetComponent("RectTransform").anchoredPosition = offSetX[0].scroll
self.type1.gameObject:SetActive(false)
self.type2.gameObject:SetActive(false)
self.btnBuy:GetComponent("Image").sprite = Util.LoadSprite("s_slbz_1anniuhuangse")
if self.data.DataType == DataType.Direct and self.data.buyType == DirectBuyType.DAILY_GIFT then
self.type2.gameObject:SetActive(true)
self.tagIma.gameObject:SetActive(true)
self.type2Text1.text = self.data.data.shows[1][2]
self.type2Text2.text=self.data.data.shopItemData.Rebate
if GetCurLanguage() == 0 then
self.type2Text1.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[0].txt1
self.type2Icon1.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[0].icon1
self.type2Text2.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[0].txt
self.type2Icon2.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[0].icon
self.type2Ima.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[0].ima
elseif GetCurLanguage() == 1 then
self.type2Text1.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[1].txt1
self.type2Icon1.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[1].icon1
self.type2Text2.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[1].txt
self.type2Icon2.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[1].icon
self.type2Ima.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[1].ima
else
self.type2Text1.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[2].txt1
self.type2Icon1.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[2].icon1
self.type2Text2.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[2].txt
self.type2Icon2.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[2].icon
self.type2Ima.gameObject:GetComponent("RectTransform").anchoredPosition = offSetX[2].ima
end
elseif self.data.DataType == DataType.Direct and (self.data.buyType == DirectBuyType.WEEK_GIFT or self.data.buyType == DirectBuyType.MONTH_GIFT) then
self.grid:GetComponent("RectTransform").anchoredPosition = offSetX[1].scroll
self.upLayout.gameObject:SetActive(false)
elseif self.data.DataType == DataType.Shop and self.data.buyType == SHOP_TYPE.VIP_GIFT then
self.type1.gameObject:SetActive(true)
self.tagIma.gameObject:SetActive(false)
CreatNumberPrefab(tostring(self.data.data.shopItemData.BuyRule[2]),self.numList)
self.type1Text1.text = "累计充值"
self.type1Text3.text = ""..rechargeNum.."/"..self.data.data.shopItemData.BuyRule[2]..Language[11698]--资格进度条
end
LayoutRebuilder.ForceRebuildLayoutImmediate(self.upLayout.transform)
end
function GiftPre:SetIcon(_itemdata)
self.btnBuy.gameObject:SetActive(true)
self.isCanBuy = 0
if self.data.DataType == DataType.Shop and self.data.buyType == SHOP_TYPE.VIP_GIFT then
self.isCanBuy = (rechargeNum >= self.data.data.shopItemData.BuyRule[2] and 0 or 1)
self.btnBuy:GetComponent("Image").sprite = Util.LoadSprite(self.isCanBuy == 0 and "s_slbz_1anniuongse" or "s_slbz_1anniuhuangse")
end
if self.isCanBuy == 0 then
self.isCanBuy = (_itemdata.data.limitNum - _itemdata.data.boughtNum > 0) and 0 or 2
end
self.btnBuy:GetComponent("Button").interactable = (self.isCanBuy == 0 or self.isCanBuy == 1)
if _itemdata.DataType == DataType.Shop then
self.icon.gameObject:SetActive(true)
self.icon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[_itemdata.data.shopItemData.Cost[1][1]].ResourceID))
else
self.icon.gameObject:SetActive(false)
end
self.price.text = _itemdata.data.price
self.buyInfo.text = self.isCanBuy == 2 and "" or _itemdata.data.buyInfo
if self.isCanBuy == 2 then
self.icon.gameObject:SetActive(false)
self.price.text = "已购买"
if self.data.DataType == DataType.Direct and self.data.buyType == DirectBuyType.FINDTREASURE_GIFT then
if self.time then
self.time:Stop()
self.time = nil
end
local fresh = _itemdata.data.endTime - GetTimeStamp()
self.buyInfo.text = Language[10469]..self.parent:SpecialTime(fresh)
self.time = Timer.New(function()
if fresh <= 0 then
self.parent:RefreshData()
return
end
self.buyInfo.text = Language[10469]..self.parent:SpecialTime(fresh)
fresh = fresh - 1
end,1,-1,true)
self.time:Start()
end
end
if _itemdata.data.finalNum == 0 and self.isCanBuy == 0 then
self.redPoint.gameObject:SetActive(true)
else
self.redPoint.gameObject:SetActive(false)
end
Util.SetGray(self.btnBuy, (self.isCanBuy == 2))
LayoutRebuilder.ForceRebuildLayoutImmediate(self.btnBuy.transform)
end
function GiftPre:OnClose()
if self.time then
self.time:Stop()
self.time = nil
end
DynamicActivityManager.SetSelectIndex(0,{})
for k,v in pairs(self.itemList) do
SubUIManager.Close(v)
end
self.itemList = {}
end
return GiftPre