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 |