334 lines
13 KiB
Lua
334 lines
13 KiB
Lua
--[[
|
|
* @ClassName TreasureOfSomebodyRewardPageV2
|
|
* @Description 戒灵秘宝奖励Part
|
|
* @Date 2019/9/21 13:39
|
|
* @Author MagicianJoker, fengliudianshao@outlook.com
|
|
* @Copyright Copyright (c) 2019, MagicianJoker
|
|
--]]
|
|
---@class TreasureOfSomebodyRewardPageV2
|
|
local TreasureOfSomebodyRewardPageV2 = quick_class("TreasureOfSomebodyRewardPageV2")
|
|
|
|
function TreasureOfSomebodyRewardPageV2:ctor(mainPanel, gameObject)
|
|
self.mainPanel = mainPanel
|
|
self.gameObject = gameObject
|
|
|
|
self.treasureListContent = Util.GetGameObject(self.gameObject, "treasureList")
|
|
self.treasurePro = Util.GetGameObject(self.gameObject, "itemPro")
|
|
self.treasurePro:SetActive(false)
|
|
|
|
---- 创建循环列表
|
|
local v2 = self.treasureListContent:GetComponent("RectTransform").rect
|
|
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.treasureListContent.transform,
|
|
self.treasurePro, nil, Vector2.New(-v2.x * 2, -v2.y * 2), 1, 1, Vector2.New(0, 25))
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(0, 0)
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").anchorMin = Vector2.New(0.5, 0.5)
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").anchorMax = Vector2.New(0.5, 0.5)
|
|
self.ScrollView.gameObject:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5)
|
|
self.ScrollView.moveTween.MomentumAmount = 1
|
|
self.ScrollView.moveTween.Strength = 1
|
|
|
|
self.treasureFinalReward = {
|
|
level = Util.GetGameObject(self.gameObject, "finalReward/level"):GetComponent("Text"),
|
|
GiftItemList = {}
|
|
}
|
|
for i = 1, 4 do
|
|
self.treasureFinalReward.GiftItemList[i] = SubUIManager.Open(SubUIConfig.ItemView,
|
|
Util.GetGameObject(self.gameObject, "finalReward/itemPos_" .. i).transform)
|
|
end
|
|
|
|
self.finalBtnDeal = Util.GetGameObject(self.gameObject, "finalReward/btnDeal")
|
|
Util.AddClick(self.finalBtnDeal, function()
|
|
self:OnOneKeyDealBtnClicked()
|
|
end)
|
|
self.finalFinishFlag = Util.GetGameObject(self.gameObject, "finalReward/finished")
|
|
|
|
--Util.AddClick(Util.GetGameObject(self.gameObject, "gainScoreBtn"), function()
|
|
-- self.mainPanel:OnPageChanged(1)
|
|
--end)
|
|
|
|
--戒灵秘宝 查看宝藏界面购买点击
|
|
self.unlockBtn = Util.GetGameObject(self.gameObject, "unlockBtn")
|
|
self.unlockBtn:GetComponent("Button").onClick:AddListener(function()
|
|
if TreasureOfSomebodyManagerV2.hadBuyTreasure then
|
|
PopupTipPanel.ShowTip(Language[11927])
|
|
return
|
|
end
|
|
UIManager.OpenPanel(UIName.UnlockExtraRewardPanel,5001, {
|
|
callBack = function()
|
|
self:RefreshTreasureBuy()
|
|
end
|
|
})
|
|
end)
|
|
|
|
self.unlockCost = Util.GetGameObject(self.unlockBtn, "unlockCost")
|
|
-- self.unlockCostIcon = Util.GetGameObject(self.unlockCost, "icon"):GetComponent("Image")
|
|
self.unlockCostValue = Util.GetGameObject(self.unlockCost, "value"):GetComponent("Text")
|
|
|
|
self.unlock = Util.GetGameObject(self.unlockBtn, "unlock")
|
|
|
|
self:InitUnlockCost()
|
|
|
|
self.rewardItemList = {}
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:OnShow()
|
|
Game.GlobalEvent:AddEvent(GameEvent.TreasureOfSomeBody.OpenTreasureAward, self.OnOpenTreasure, self)
|
|
self.gameObject:SetActive(true)
|
|
self:RefreshPageStatus()
|
|
self:SetScrollViewIndexShow()
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:OnHide()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.TreasureOfSomeBody.OpenTreasureAward, self.OnOpenTreasure, self)
|
|
if self.index then
|
|
self.ScrollView:SetIndex(1)
|
|
end
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:OnDestroy()
|
|
self.ScrollView = nil
|
|
self.index = nil
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:RefreshPageStatus()
|
|
local treasureConfigs = TreasureOfSomebodyManagerV2.rewardConfigInfoList
|
|
self.ScrollView:SetData(treasureConfigs, function(index, rewardItem)
|
|
self:SetBottomRewardInfo(index, treasureConfigs)
|
|
local itemData = treasureConfigs[index]
|
|
self:SetScoreItemAdapter(rewardItem, itemData)
|
|
end)
|
|
self:SetFinalStatus()
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:SetScrollViewIndexShow()
|
|
local desireIndex
|
|
local treasureConfigs = TreasureOfSomebodyManagerV2.rewardConfigInfoList
|
|
for _, itemInfo in pairs(treasureConfigs) do
|
|
local activityIdInfo = ActivityGiftManager.GetActivityInfo(itemInfo.ActivityId, itemInfo.Level)
|
|
if TreasureOfSomebodyManagerV2.hadBuyTreasure then
|
|
if activityIdInfo.state == 0 or activityIdInfo.state == 1 then
|
|
if TreasureOfSomebodyManagerV2.currentLv >= itemInfo.Level then
|
|
desireIndex = itemInfo.Level
|
|
break
|
|
end
|
|
end
|
|
else
|
|
if activityIdInfo.state == 0 then
|
|
if TreasureOfSomebodyManagerV2.currentLv >= itemInfo.Level then
|
|
desireIndex = itemInfo.Level
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if desireIndex then
|
|
self.ScrollView:SetIndex(desireIndex)
|
|
end
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:SetBottomRewardInfo(index, configsInfo)
|
|
local dataIndex
|
|
if not self.index then
|
|
self.index = index
|
|
else
|
|
if index < self.index then
|
|
dataIndex = index + 8
|
|
else
|
|
dataIndex = index
|
|
end
|
|
self.index = index
|
|
end
|
|
if not dataIndex then
|
|
return
|
|
end
|
|
local maxLv = TreasureOfSomebodyManagerV2.treasureMaxLv
|
|
dataIndex = (math.floor((dataIndex - 1) / 10) + 1) * 10
|
|
dataIndex = dataIndex < maxLv and dataIndex or maxLv
|
|
local bottomRewardInfo = configsInfo[dataIndex]
|
|
self.treasureFinalReward.level.text = bottomRewardInfo.Level .. Language[10065]
|
|
self:HideFinalGiftRewards()
|
|
self:RefreshFinalGiftItem(bottomRewardInfo)
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:HideFinalGiftRewards()
|
|
table.walk(self.treasureFinalReward.GiftItemList, function(giftItem)
|
|
if giftItem.gameObject.activeSelf then
|
|
giftItem.gameObject:SetActive(false)
|
|
end
|
|
end)
|
|
end
|
|
function TreasureOfSomebodyRewardPageV2:RefreshFinalGiftItem(configInfo)
|
|
for i, v in ipairs(configInfo.Reward) do
|
|
local giftItem = self.treasureFinalReward.GiftItemList[i]
|
|
giftItem:OnOpen(false, v, 0.75)
|
|
giftItem.gameObject:SetActive(true)
|
|
end
|
|
for i, v in ipairs(configInfo.TreasureReward) do
|
|
local giftItem = self.treasureFinalReward.GiftItemList[i + 2]
|
|
giftItem:OnOpen(false, v, 0.75)
|
|
giftItem.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:OnDealBtnClicked()
|
|
if TreasureOfSomebodyManagerV2.hadBuyTreasure then
|
|
PopupTipPanel.ShowTip(Language[11931])
|
|
return
|
|
end
|
|
local gameSettingConfig = ConfigManager.GetConfigData(ConfigName.GameSetting, 1)
|
|
local ownValue = BagManager.GetItemCountById(gameSettingConfig.TreasurePrice[1])
|
|
if ownValue < gameSettingConfig.TreasurePrice[2] then
|
|
if not ShopManager.IsActive(SHOP_TYPE.SOUL_STONE_SHOP) then
|
|
PopupTipPanel.ShowTip(Language[10422])
|
|
return
|
|
end
|
|
JumpManager.GoJump(36008)
|
|
else
|
|
NetManager.BuyTreasureOfSomeBody()
|
|
end
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:SetScoreItemAdapter(rewardItem, itemInfo)
|
|
Util.GetGameObject(rewardItem, "level"):GetComponent("Text").text = itemInfo.Level .. Language[10065]
|
|
local activityIdInfo = ActivityGiftManager.GetActivityInfo(itemInfo.ActivityId, itemInfo.Level)
|
|
Util.GetGameObject(rewardItem, "finished"):SetActive(activityIdInfo.state == -1)
|
|
local btnDeal = Util.GetGameObject(rewardItem, "btnDeal")
|
|
btnDeal:SetActive(activityIdInfo.state ~= -1)
|
|
if btnDeal.activeSelf then
|
|
local hadBuyState = TreasureOfSomebodyManagerV2.hadBuyTreasure and -1 or 1
|
|
local ReceivedReward = function()
|
|
NetManager.GetActivityRewardRequest(itemInfo.Level, itemInfo.ActivityId, function(drop)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1)
|
|
ActivityGiftManager.SetActivityInfo(itemInfo.ActivityId, itemInfo.Level, hadBuyState)
|
|
self:SetScoreItemAdapter(rewardItem, itemInfo)
|
|
self.mainPanel:SetRewardRedPoint()
|
|
--RedpotManager.CheckRedPointStatus(RedPointType.TreasureOfSl)
|
|
self:SetFinalStatus()
|
|
end)
|
|
end
|
|
if activityIdInfo.state == 0 then
|
|
Util.GetGameObject(btnDeal, "Text"):GetComponent("Text").text = Language[10018]
|
|
local status = TreasureOfSomebodyManagerV2.currentLv >= itemInfo.Level
|
|
btnDeal:GetComponent("Button").enabled = status
|
|
Util.SetGray(btnDeal, not status)
|
|
if status then
|
|
Util.AddOnceClick(btnDeal, function()
|
|
ReceivedReward()
|
|
end)
|
|
end
|
|
elseif activityIdInfo.state == 1 then
|
|
Util.GetGameObject(btnDeal, "Text"):GetComponent("Text").text = Language[10739]
|
|
btnDeal:GetComponent("Button").enabled = true
|
|
Util.SetGray(btnDeal, false)
|
|
Util.AddOnceClick(btnDeal, function()
|
|
if TreasureOfSomebodyManagerV2.hadBuyTreasure then
|
|
ReceivedReward()
|
|
else
|
|
UIManager.OpenPanel(UIName.UnlockExtraRewardPanel, {
|
|
callBack = function()
|
|
self:RefreshTreasureBuy()
|
|
end
|
|
})
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
if self.rewardItemList[rewardItem] then
|
|
--已经创建过的奖励
|
|
self:HideAllGiftItem(rewardItem)
|
|
else
|
|
--没有创建过的奖励
|
|
self.rewardItemList[rewardItem] = {
|
|
rewardList = {}
|
|
}
|
|
for i = 1, 4 do
|
|
local giftItem = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(rewardItem, "itemPos_" .. i).transform)
|
|
giftItem.gameObject:SetActive(false)
|
|
giftItem.transform:SetAsFirstSibling()
|
|
self.rewardItemList[rewardItem].rewardList[i] = giftItem
|
|
end
|
|
end
|
|
self:RefreshGiftItem(rewardItem, itemInfo)
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:RefreshGiftItem(rewardItem, configInfo)
|
|
for i, v in ipairs(configInfo.Reward) do
|
|
local giftItem = self.rewardItemList[rewardItem].rewardList[i]
|
|
giftItem:OnOpen(false, v, 0.75)
|
|
giftItem.gameObject:SetActive(true)
|
|
end
|
|
for i, v in ipairs(configInfo.TreasureReward) do
|
|
local giftItem = self.rewardItemList[rewardItem].rewardList[i + 2]
|
|
giftItem:OnOpen(false, v, 0.75)
|
|
giftItem.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:HideAllGiftItem(rewardItem)
|
|
table.walk(self.rewardItemList[rewardItem].rewardList, function(giftItem)
|
|
if giftItem.gameObject.activeSelf then
|
|
giftItem.gameObject:SetActive(false)
|
|
end
|
|
end)
|
|
end
|
|
|
|
--初始化解锁按钮
|
|
function TreasureOfSomebodyRewardPageV2:InitUnlockCost()
|
|
self.unlockCost:SetActive(not TreasureOfSomebodyManagerV2.hadBuyTreasure)
|
|
self.unlock:SetActive(TreasureOfSomebodyManagerV2.hadBuyTreasure)
|
|
if not TreasureOfSomebodyManagerV2.hadBuyTreasure then
|
|
local gameSettingConfig = ConfigManager.GetConfigData(ConfigName.GameSetting, 1)
|
|
-- self.unlockCostIcon.sprite = SetIcon(self.spLoader, gameSettingConfig.TreasurePrice[1])
|
|
self.unlockCostValue.text = string.format(MoneyUtil.GetMoneyUnitName(), gameSettingConfig.TreasurePrice[2])--..MoneyUtil.GetMoneyUnitName()
|
|
end
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:OnOpenTreasure()
|
|
TreasureOfSomebodyManagerV2.SetTreasureBuyStatus(1)
|
|
self.unlockCost:SetActive(false)
|
|
--RedpotManager.CheckRedPointStatus(RedPointType.TreasureOfSl)
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:SetFinalStatus()
|
|
local allStatus = TreasureOfSomebodyManagerV2.GetFinalReceivedStatus()
|
|
self.finalFinishFlag:SetActive(allStatus == -1)
|
|
self.finalBtnDeal:SetActive(allStatus ~= -1)
|
|
if self.finalBtnDeal.activeSelf then
|
|
self.finalBtnDeal:GetComponent("Button").enabled = allStatus == 1
|
|
Util.SetGray(self.finalBtnDeal, allStatus ~= 1)
|
|
end
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:OnOneKeyDealBtnClicked()
|
|
local status = TreasureOfSomebodyManagerV2.GetFinalReceivedStatus()
|
|
if status == 0 then
|
|
PopupTipPanel.ShowTip(Language[11932])
|
|
return
|
|
end
|
|
local activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.TreasureOfSomeBody)
|
|
NetManager.GetActivityRewardRequest(-1, activityId, function(drop)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1)
|
|
self:RefreshRewardList()
|
|
self.mainPanel:SetRewardRedPoint()
|
|
--RedpotManager.CheckRedPointStatus(RedPointType.TreasureOfSl)
|
|
end)
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:RefreshRewardList()
|
|
local currentLevel = TreasureOfSomebodyManagerV2.currentLv
|
|
local activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.TreasureOfSomeBody)
|
|
local state = TreasureOfSomebodyManagerV2.hadBuyTreasure and -1 or 1
|
|
for i = 1, currentLevel do
|
|
ActivityGiftManager.SetActivityInfo(activityId, i, state)
|
|
end
|
|
self:RefreshPageStatus()
|
|
end
|
|
|
|
function TreasureOfSomebodyRewardPageV2:RefreshTreasureBuy()
|
|
self:InitUnlockCost()
|
|
self:RefreshPageStatus()
|
|
end
|
|
|
|
return TreasureOfSomebodyRewardPageV2
|
|
return TreasureOfSomebodyRewardPageV2 |