miduo_client/Assets/ManagedResources/~Lua/Modules/Expert/DiffMonsterBuy.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