144 lines
6.2 KiB
Lua
144 lines
6.2 KiB
Lua
local DiffMonsterBuy = quick_class("DiffMonsterBuy")
|
|
local this = DiffMonsterBuy
|
|
|
|
local diffMonsterBuyData = {}--异妖直购数据
|
|
local peijianTabs = {}--异妖直购
|
|
local diffItemTabs = {}--天恩神赐异妖获得物品
|
|
local rechargeCommodityConfig
|
|
function DiffMonsterBuy:ctor(mainPanel, gameObject)
|
|
self.mainPanel = mainPanel
|
|
self.gameObject = gameObject
|
|
self:InitComponent(gameObject)
|
|
self:BindEvent()
|
|
end
|
|
local thisGo = nil
|
|
--初始化组件(用于子类重写)
|
|
function DiffMonsterBuy:InitComponent(gameObject)
|
|
this.spLoader = SpriteLoader.New()
|
|
|
|
thisGo = gameObject
|
|
this.diffMonsteIcon = Util.GetGameObject(gameObject, "activityIcon"):GetComponent("Image")
|
|
this.diffMonsteTextIcon = Util.GetGameObject(gameObject, "activityTextIcon"):GetComponent("Image")
|
|
this.diffMonsteNameBtn = Util.GetGameObject(gameObject, "nameBtn")
|
|
this.diffMonsterNameBtnText = Util.GetGameObject(gameObject, "nameBtn/Text"):GetComponent("Text")
|
|
this.diffMonsterBuyBtn = Util.GetGameObject(gameObject, "goJumpBtn")
|
|
this.diffMonsterBuyBtnText = Util.GetGameObject(gameObject, "goJumpBtn/Text"):GetComponent("Text")
|
|
this.diffMonsterTitleText = Util.GetGameObject(gameObject, "titleTextAndTime/Text"):GetComponent("Text")
|
|
this.diffMonsterTimeText = Util.GetGameObject(gameObject, "titleTextAndTime/time"):GetComponent("Text")
|
|
for i = 1, 4 do
|
|
peijianTabs[i] = Util.GetGameObject(gameObject, "peijians/peijianFrame (" .. i .. ")")
|
|
end
|
|
diffItemTabs = {}
|
|
for i = 1, 5 do
|
|
diffItemTabs[i] = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(gameObject, "rect/grid").transform)
|
|
end
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function DiffMonsterBuy:BindEvent()
|
|
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function DiffMonsterBuy:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function DiffMonsterBuy:RemoveListener()
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function DiffMonsterBuy:OnOpen(...)
|
|
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function DiffMonsterBuy:OnShow()
|
|
|
|
this:DiffMonsterBuy()
|
|
end
|
|
function DiffMonsterBuy:DiffMonsterBuy()
|
|
--拍脸 异妖直购
|
|
diffMonsterBuyData = nil
|
|
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.LoginPosterConfig)) do
|
|
if v.Type == 2 then--异妖直购特殊处理
|
|
if v.OpenRules[1] == 1 then
|
|
if PlayerManager.level >= v.OpenRules[2] and PlayerManager.level <= v.CloseRules[2] then
|
|
local conFigData = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, v.ShopId)
|
|
local shopItemData = OperatingManager.GetGiftGoodsInfo(conFigData.Type,v.ShopId)
|
|
if shopItemData and diffMonsterBuyData == nil then
|
|
diffMonsterBuyData = v
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if diffMonsterBuyData == nil then return end
|
|
this.diffMonsteIcon.sprite = this.spLoader:LoadSprite(GetResourcePath(diffMonsterBuyData.Background))
|
|
this.diffMonsteTextIcon.sprite = this.spLoader:LoadSprite(GetResourcePath(diffMonsterBuyData.BackgroundString))
|
|
|
|
local differDemonsConFig = ConfigManager.GetConfigData(ConfigName.DifferDemonsConfig,diffMonsterBuyData.Values)
|
|
rechargeCommodityConfig = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig,diffMonsterBuyData.ShopId)
|
|
if rechargeCommodityConfig == nil or differDemonsConFig == nil then return end
|
|
local shopItemData = OperatingManager.GetGiftGoodsInfo(rechargeCommodityConfig.Type,rechargeCommodityConfig.Id)
|
|
this.diffMonsterNameBtnText.text = GetLanguageStrById(differDemonsConFig.Name)
|
|
this.diffMonsterTitleText.text = GetLanguageStrById(diffMonsterBuyData.Desc)
|
|
this.diffMonsterTimeText.text = Language[10572]..PatFaceManager.GetTimeStrBySeconds(shopItemData.startTime).."-"..PatFaceManager.GetTimeStrBySeconds(shopItemData.endTime)
|
|
if shopItemData.buyTimes <= 0 then
|
|
Log("diffMonsterBuyData.Btn "..diffMonsterBuyData.Btn)
|
|
this.diffMonsterBuyBtnText.text ="¥ " .. diffMonsterBuyData.Btn
|
|
else
|
|
this.diffMonsterBuyBtnText.text = Language[10514]
|
|
end
|
|
for i = 1, 4 do
|
|
if #rechargeCommodityConfig.RewardShow >= i then
|
|
peijianTabs[i]:SetActive(true)
|
|
local itemSId = rechargeCommodityConfig.RewardShow[i][1]
|
|
local itemConfigData = ConfigManager.GetConfigData(ConfigName.ItemConfig,itemSId)
|
|
Util.GetGameObject(peijianTabs[i].transform, "peijianIcon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfigData.ResourceID))
|
|
Util.AddOnceClick(peijianTabs[i], function()
|
|
UIManager.OpenPanel(UIName.RewardItemSingleShowPopup, itemSId,nil)
|
|
end)
|
|
else
|
|
peijianTabs[i]:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, math.max(#diffItemTabs, #rechargeCommodityConfig.BaseReward) do
|
|
local go = diffItemTabs[i]
|
|
if not go then
|
|
go = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(thisGo, "rect/grid").transform)
|
|
diffItemTabs[i] = go
|
|
end
|
|
go.gameObject:SetActive(false)
|
|
end
|
|
for i = 1, #rechargeCommodityConfig.BaseReward do
|
|
diffItemTabs[i].gameObject:SetActive(true)
|
|
diffItemTabs[i]:OnOpen(false,rechargeCommodityConfig.BaseReward[i],1,false,false,false,self.sortingOrder)
|
|
end
|
|
Util.AddOnceClick(this.diffMonsterBuyBtn, function()
|
|
if shopItemData.buyTimes <= 0 then
|
|
PayManager.Pay(rechargeCommodityConfig.Id, function(id)
|
|
FirstRechargeManager.RefreshAccumRechargeValue(rechargeCommodityConfig.Id)
|
|
OperatingManager.RefreshGiftGoodsBuyTimes(GoodsTypeDef.DirectPurchaseGift, rechargeCommodityConfig.Id)
|
|
this:DiffMonsterBuy()
|
|
end)
|
|
end
|
|
end)
|
|
Util.AddOnceClick(this.diffMonsteNameBtn, function()
|
|
UIManager.OpenPanel(UIName.PatFaceDiffMonsterInfoPanel,diffMonsterBuyData.Values)
|
|
end)
|
|
end
|
|
--界面关闭时调用(用于子类重写)
|
|
function DiffMonsterBuy:OnClose()
|
|
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function DiffMonsterBuy:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
|
|
end
|
|
|
|
return DiffMonsterBuy |