miduo_client/Assets/ManagedResources/~Lua/Modules/NewActivity/ExChangePage.lua

190 lines
7.5 KiB
Lua

local ExChangePage = {}
local GlobalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
function ExChangePage:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = ExChangePage })
return b
end
--初始化组件(用于子类重写)
function ExChangePage:InitComponent()
self.spLoader = SpriteLoader.New()
self.exChangeInfoGrid = {}--限时兑换内容
self.heroConfig = {}
self.itemList = {} --itemView优化
self.cursortingOrder = 0
self.timeTextExChangeGo = Util.GetGameObject(self.gameObject, "timeText")
self.timeTextExChange = Util.GetGameObject(self.gameObject, "timeText"):GetComponent("Text")
self.exChangeRewardIcon = Util.GetGameObject(self.gameObject, "downbg1/info/itemViewParent/icon"):GetComponent("Image")
self.exChangeRewardParent = Util.GetGameObject(self.gameObject, "downbg2/itemRewardParent")
self.exChangeBuyNum = Util.GetGameObject(self.gameObject, "downbg2/buyInfo/buyNum"):GetComponent("Text")
self.exChangeBuyIcon = Util.GetGameObject(self.gameObject, "downbg2/buyInfo/icon"):GetComponent("Image")
self.exChangeBuyBtn = Util.GetGameObject(self.gameObject, "downbg2/buyInfo/addBtn")
for i = 1, 4 do
self.exChangeInfoGrid[i] = Util.GetGameObject(self.gameObject, "downbg1/info/infoTextGrid/infoText ("..i..")")
end
self.exChangeGoBtn = Util.GetGameObject(self.gameObject, "downbg2/goBtn")
self.goBtnRedpot = Util.GetGameObject(self.gameObject, "downbg2/goBtn/redpot")
self.click = Util.GetGameObject(self.gameObject, "leftUpGO/click")
self.live2dRoot = Util.GetGameObject(self.gameObject, "bg/live")
self.proImage = Util.GetGameObject(self.gameObject, "leftUpGO/proImage"):GetComponent("Image")
self.heroName = Util.GetGameObject(self.gameObject, "leftUpGO/heroName"):GetComponent("Text")
self.liveNode=nil
self.liveName=nil
self.zhenqibaogeBtn = Util.GetGameObject(self.gameObject,"rightUp/zhenqibaogeBtn")
self.zqbgEffect = Util.GetGameObject(self.zhenqibaogeBtn,"Fx_Circle 1")
end
--绑定事件(用于子类重写)
function ExChangePage:BindEvent()
Util.AddOnceClick(self.zhenqibaogeBtn, function()
JumpManager.GoJump(40011)
end)
Util.AddClick(self.click, function()
UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, self.heroConfig.Id, self.heroConfig.Star)
end)
-- 前往兑换红点
BindRedPointObject(RedPointType.LimitExchange_GoExchange, self.goBtnRedpot)
end
--添加事件监听(用于子类重写)
function ExChangePage:AddListener()
end
--移除事件监听(用于子类重写)
function ExChangePage:RemoveListener()
end
--界面打开时调用(用于子类重写)
function ExChangePage:OnOpen(_activityConfig,_index,parent)
self.actConfig = _activityConfig
self.pageIndex = _index
self.parent = parent
end
function ExChangePage:OnSortingOrderChange()
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function ExChangePage:OnShow(_sortingOrder)
self.gameObject:SetActive(true)
self.cursortingOrder = _sortingOrder or self.cursortingOrder
Util.SetParticleSortLayer(self.zqbgEffect, self.cursortingOrder + 1)
local id = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.LimitExchange)
if id and id > 0 then
if GlobalActivity[id].ShowArt == ActivityTypeDef.DynamicAct then
self.zhenqibaogeBtn.gameObject:SetActive(true)
else
self.zhenqibaogeBtn.gameObject:SetActive(false)
end
end
self:ExChangeShow()
end
function ExChangePage:OnSortingOrderChange(_cursortingOrder)
self.cursortingOrder = _cursortingOrder
for i, v in pairs(self.itemList) do
v:SetEffectLayer(self.cursortingOrder)
end
end
--限时兑换活动
function ExChangePage:ExChangeShow()
local LimitExchange = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.LimitExchange)
if LimitExchange then
local str = Language[10573]
-- Log("LimitExchange "..LimitExchange.endTime)
PatFaceManager.RemainTimeDown(self.timeTextExChangeGo,self.timeTextExChange,LimitExchange.endTime - GetTimeStamp(),str)
else
self.timeTextExChangeGo:SetActive(false)
end
local exChangeConFig = ConfigManager.GetConfigDataByKey(ConfigName.ExchangeActivityConfig, "ActivityId", LimitExchange.activityId)
self.heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig,exChangeConFig.AwardHeroId)
if self.liveNode then
poolManager:UnLoadLive(self.liveName, self.liveNode)
self.liveName=nil
end
self.liveName = GetResourcePath(self.heroConfig.Live)
self.liveNode = poolManager:LoadLive(self.liveName, self.live2dRoot.transform,
Vector3.one * exChangeConFig.HeroShowScale, Vector3.New(exChangeConFig.HeroShowLocation[1], exChangeConFig.HeroShowLocation[2],0))
SetHEeroLiveToward(self.liveNode,self.heroConfig.Toward)
self.proImage.sprite =self.spLoader:LoadSprite(GetProStrImageByProNum(self.heroConfig.PropertyName))
self.heroName.text =GetLanguageStrById(self.heroConfig.ReadingName)
SetTextVerTial(self.heroName,Vector3.New(129.9,3.7,0))
--Util.ClearChild(self.exChangeRewardParent.transform)
for i = 1, #exChangeConFig.ShowItem do
local rewardInfo = {exChangeConFig.ShowItem[i],0}
if self.itemList[i] then
self.itemList[i]:OnOpen(false,rewardInfo,1.1,false,false,false,self.cursortingOrder)
else
self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.exChangeRewardParent.transform)
self.itemList[i]:OnOpen(false,rewardInfo,1.1,false,false,false,self.cursortingOrder)
end
end
local itemConFig = ConfigManager.GetConfigData(ConfigName.ItemConfig,exChangeConFig.ActivityItem)
self.exChangeRewardIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConFig.ResourceID))
self.exChangeBuyNum.text = PrintWanNum(BagManager.GetItemCountById(exChangeConFig.ActivityItem))
self.exChangeBuyIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConFig.ResourceID))
local descTabs = string.split( GetLanguageStrById(exChangeConFig.Desc),"#")
for i = 1, #self.exChangeInfoGrid do
if #descTabs >= i then
self.exChangeInfoGrid[i]:SetActive(true)
self.exChangeInfoGrid[i]:GetComponent("Text").text = "·"..descTabs[i]
else
self.exChangeInfoGrid[i]:SetActive(false)
end
end
Util.AddOnceClick(self.exChangeBuyBtn, function()
JumpManager.GoJump(exChangeConFig.ItemJump)
end)
Util.AddOnceClick(self.exChangeGoBtn, function()
local exChangeConFig = ConfigManager.GetConfigData(ConfigName.ExchangeActivityConfig,1)
if not ShopManager.IsActive(exChangeConFig.ShopId) then
PopupTipPanel.ShowTip(Language[10574])
return
end
UIManager.OpenPanel(UIName.MainShopPanel,exChangeConFig.ShopId)
-- 关闭红点儿显示
ActivityGiftManager.SetExchangeRedStatus(false)
CheckRedPointStatus(RedPointType.LimitExchange_GoExchange)
end)
end
function ExChangePage:OnClose()
self.gameObject:SetActive(false)
if self.liveNode then
poolManager:UnLoadLive(self.liveName, self.liveNode)
self.liveNode = nil
self.liveName = nil
end
end
function ExChangePage:OnDestroy()
self.spLoader:Destroy()
for k,v in pairs(self.itemList) do
SubUIManager.Close(v)
end
self.itemList = {}
ClearRedPointObject(RedPointType.LimitExchange_GoExchange, self.goBtnRedpot)
end
return ExChangePage