sk-client/Assets/ManagedResources/~Lua/Modules/PrivilegeCard/PrivilegeCardPanel.lua

314 lines
13 KiB
Lua

local PrivilegeCardPanel = Inherit(BasePanel)
local this = PrivilegeCardPanel
local kMaxReward = 8
local cursortingOrder
local curIndex = 1
local selfRechargeID
local privilegeCardInfo ={}
local img = {
"bt_tequan_tianxuan_bg_02_zh",
"bt_tequan_weimian_bg_02_zh"
}
local contentWidth =
{
[1] = 1031,
[2] = 1300,
[3] = 1700,
[4] = 210, --高
}
local buyBtnState = false
function PrivilegeCardPanel:InitComponent()
cursortingOrder = 0
self.backBtn = Util.GetGameObject(self.transform, "btnBack")
--激活领取
self.rewardContent2 = {}
self.rewardContentEffect2 = {}
self.rewardList2 = {}
self.imageTitle = Util.GetGameObject(self.transform, "frame/bg/Image"):GetComponent("Image")
for i = 1, kMaxReward do
self.rewardContent2[i] = Util.GetGameObject(self.transform, "frame/bg/rewardView1/rewardContent1/itemPos_" .. i)
self.rewardContentEffect2[i] = Util.GetGameObject(self.rewardContent2[i], "Kuang")
effectAdapte(self.rewardContentEffect2[i])
self.rewardList2[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent2[i].transform)
Util.GetGameObject(self.rewardList2[i].gameObject,"item/num"):GetComponent("Text").color = Color.New(255/255,255/255,255/255,127/255)
end
self.tipList={}
-- for i = 1, 8 do
-- self.tipList[i] = Util.GetGameObject(self.transform, "frame/bg/Tips/Text_" .. i):GetComponent("Text")
-- self.tipList[i].gameObject:SetActive(false)
-- end
self.itemPrefab = Util.GetGameObject(self.transform, "frame/bg/Tips/TipsContent/ItemPrefab")
self.itemPrefab:SetActive(false)
self.tipsContent = Util.GetGameObject(self.transform, "frame/bg/Tips/TipsContent")
--每日领取
self.rewardContent = {}
self.rewardContentEffect = {}
self.rewardList = {}
for i = 1, kMaxReward do
self.rewardContent[i] = Util.GetGameObject(self.transform, "frame/bg/rewardView2/rewardContent2/itemPos_" .. i)
self.rewardContentEffect[i] = Util.GetGameObject(self.rewardContent[i], "Kuang")
effectAdapte(self.rewardContentEffect[i])
self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent[i].transform)
Util.GetGameObject(self.rewardList[i].gameObject,"item/num"):GetComponent("Text").color = Color.New(255/255,255/255,255/255,127/255)
end
self.dealBtn = Util.GetGameObject(self.transform, "frame/bg/dealBtn")--购买
self.dealBtnText = Util.GetGameObject(self.transform, "frame/bg/dealBtn/Text"):GetComponent("Text")--购买价格
self.getBtn = Util.GetGameObject(self.transform, "frame/bg/getBtn") --领取
self.receivedBtn = Util.GetGameObject(self.transform, "frame/bg/receivedBtn") --已领取
--self.UI_effect_DailyRechargePanel_particle = Util.GetGameObject(self.transform, "frame/UI_effect_DailyRechargePanel_particle")
self.smallAmount = Util.GetGameObject(self.transform, "frame/bg/choose/smallAmount")
self.smallAmountText = Util.GetGameObject(self.transform, "frame/bg/choose/smallAmount/Text"):GetComponent("Text")
self.smallAmountSelectText = Util.GetGameObject(self.transform, "frame/bg/choose/smallAmount/select/Text"):GetComponent("Text")
self.largeAmount = Util.GetGameObject(self.transform, "frame/bg/choose/largeAmount")
self.largeAmountText = Util.GetGameObject(self.transform, "frame/bg/choose/largeAmount/Text"):GetComponent("Text")
self.largeAmountSelectText = Util.GetGameObject(self.transform, "frame/bg/choose/largeAmount/select/Text"):GetComponent("Text")
self.content = Util.GetGameObject(self.transform, "frame/bg/rewardView1")
self.content2 = Util.GetGameObject(self.transform, "frame/bg/rewardView2")
end
function PrivilegeCardPanel:BindEvent()
Util.AddClick(self.backBtn, function()
self:ClosePanel()
end)
Util.AddClick(self.dealBtn, function()
local actRewardConfig = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, curIndex)
local buy = true
local nameData ={}
for index, value in ipairs(actRewardConfig.BuyRule) do
if value == 0 then
buy = true
break
else
local data = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, value)
if PrivilegeManager.GetPrivilegeOpenStatusById(data.PrivilegeID) == false then
local str = ""
str= GetLanguageStrById(data.Name)
table.insert(nameData,str)
buy = false
end
end
end
if buy then
--判断是否可购买
PayManager.Pay({Id = selfRechargeID}, function ()
-- FirstRechargeManager.RefreshAccumRechargeValue(data.Id)
this:OnShow()
end)
else
local str=""
for i = 1, #nameData do
str = str..nameData[i]
end
str = string.format(GetLanguageStrById(50405),str)
PopupTipPanel.ShowTip(str)
end
end)
Util.AddClick(self.getBtn, function()
NetManager.ReceivePrivilegeCardDailyRewardRequest(curIndex, function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function()
privilegeCardInfo = msg.privilegeCardInfo
PrivilegeManager.privilegeCardInfo = msg.privilegeCardInfo
self:RefreshPanel(curIndex)
--self:WarPowerRewardShow()
end)
end)
end)
Util.AddClick(self.smallAmount, function ()
Util.GetGameObject(self.largeAmount, "select"):SetActive(false)
Util.GetGameObject(self.smallAmount, "select"):SetActive(true)
self:RefreshPanel(1)
end)
Util.AddClick(self.largeAmount, function ()
self.imageTitle.sprite=Util.LoadSprite(img[2])
Util.GetGameObject(self.smallAmount, "select"):SetActive(false)
Util.GetGameObject(self.largeAmount, "select"):SetActive(true)
self:RefreshPanel(2)
end)
end
function PrivilegeCardPanel:OnOpen()
local name_1 = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.TequanCardConfig, 1).Name)
local name_2 = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.TequanCardConfig, 2).Name)
self.smallAmountText.text = name_1
self.smallAmountSelectText.text = name_1
self.largeAmountText.text = name_2
self.largeAmountSelectText.text = name_2
end
function PrivilegeCardPanel:OnShow()
NetManager.GetPrivilegeCardInfoResponse(function (msg)
privilegeCardInfo = msg.privilegeCardInfo
PrivilegeManager.privilegeCardInfo = msg.privilegeCardInfo
-- Util.GetGameObject(self.largeAmount, "select"):SetActive(false)
-- Util.GetGameObject(self.smallAmount, "select"):SetActive(true)
self:RefreshPanel(curIndex)
end)
end
function PrivilegeCardPanel:OnClose()
-- Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityOpenOrClose, self.RefreshPanel, self)
end
function PrivilegeCardPanel:SetContentWidth(index)
local content = Util.GetGameObject(self.content, "rewardContent1"):GetComponent("RectTransform")
local content2 = Util.GetGameObject(self.content2, "rewardContent2"):GetComponent("RectTransform")
if index == 1 then
content.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4])
content2.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4])
elseif index == 2 then
content.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4])
content2.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4])
elseif index == 3 then
content.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4])
content2.sizeDelta = Vector2.New(contentWidth[index], contentWidth[4])
end
end
--添加事件监听(用于子类重写)
function PrivilegeCardPanel:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.PrivilegeCardPanel.Refresh, this.NewDay)
end
--移除事件监听(用于子类重写)
function PrivilegeCardPanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.PrivilegeCardPanel.Refresh, this.NewDay)
end
function PrivilegeCardPanel.NewDay()
PrivilegeCardPanel:OnShow()
end
function PrivilegeCardPanel:RefreshPanel(index)
if #self.tipList>0 then
for i = 1, #self.tipList do
self.tipList[i]:SetActive(false)
end
end
curIndex = index
self.imageTitle.sprite=Util.LoadSprite(img[index])
-- CheckRedPointStatus(RedPointType.DailyRecharge)
CheckRedPointStatus(RedPointType.PrivilegeCardPage)
Util.GetGameObject(self.smallAmount, "redpoint"):SetActive(PrivilegeManager.GetPrivilegeCardRedState(1))
Util.GetGameObject(self.largeAmount, "redpoint"):SetActive(PrivilegeManager.GetPrivilegeCardRedState(2))
PrivilegeCardPanel:SetContentWidth(curIndex)
self.content:SetActive(true)
self.content2:SetActive(true)
--每日奖励表
local actRewardConfig = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, curIndex)
selfRechargeID = actRewardConfig.RechargeID
for index, value in ipairs(privilegeCardInfo) do
if value.cardId == selfRechargeID then
buyBtnState = value.takeDailyReward
end
end
table.walk(self.rewardContent, function(rewardPosItem)
rewardPosItem:SetActive(false)
end)
for i = 1, #self.rewardContent do
if #actRewardConfig.DailyReward < i then
self.rewardContent[i]:SetActive(false)
end
end
table.walk(self.rewardContent2, function(rewardPosItem2)
rewardPosItem2:SetActive(false)
end)
local configData = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, curIndex)
local RewardConfig = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, configData.RechargeID)
local buyPrivilegeState = PrivilegeManager.GetPrivilegeOpenStatusById(actRewardConfig.PrivilegeID)
for i, rewardInfo in ipairs(actRewardConfig.DailyReward) do
self.rewardList[i]:OnOpen(false, rewardInfo, 0.8)
self.rewardContent[i]:SetActive(true)
if buyPrivilegeState then
local Data ={}
for index, value in ipairs(privilegeCardInfo) do
if value.cardId == curIndex then
Data = value
end
end
if Data.takeDailyReward then
self.rewardList[i]:SetDuiImageShow(true)
else
self.rewardList[i]:SetDuiImageShow(false)
end
else
self.rewardList[i]:SetDuiImageShow(false)
end
end
for i = 1, #self.rewardContent2 do
if #RewardConfig.RewardShow < i then
self.rewardContent2[i]:SetActive(false)
end
end
for i, rewardInfo in ipairs(RewardConfig.RewardShow) do
if i<=kMaxReward then
self.rewardList2[i]:OnOpen(false, rewardInfo, 0.8)
if buyPrivilegeState then
self.rewardList2[i]:SetDuiImageShow(true)
else
self.rewardList2[i]:SetDuiImageShow(false)
end
self.rewardContent2[i]:SetActive(true)
end
end
PrivilegeCardPanel:SetDesc(curIndex)
PrivilegeCardPanel:SetBtnState(curIndex)
end
function PrivilegeCardPanel:SetDesc(cIndex)
local desData = PrivilegeTurnManager.GetPrivilegeCardDes(cIndex)
for i = 1, #desData do
if self.tipList[i] == nil then
local go = newObjToParent(self.itemPrefab,self.tipsContent.transform)
--go.transform:SetParent(self.tipsContent.transform)
go:GetComponent("Text").text = desData[i].des
go:SetActive(true)
self.tipList[i] = go
else
self.tipList[i]:GetComponent("Text").text = desData[i].des
self.tipList[i]:SetActive(true)
end
end
end
function PrivilegeCardPanel:SetBtnState(cindex)
self.dealBtn:SetActive(false)
self.getBtn:SetActive(false)
self.receivedBtn:SetActive(false)
local actRewardConfig = ConfigManager.GetConfigData(ConfigName.TequanCardConfig, cindex)
local itemPrice = ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig, actRewardConfig.RechargeID).Price
local buyPrivilegeState = PrivilegeManager.GetPrivilegeOpenStatusById(actRewardConfig.PrivilegeID)
if buyPrivilegeState then
local Data ={}
for index, value in ipairs(privilegeCardInfo) do
if value.cardId == cindex then
Data = value
end
end
if Data.takeDailyReward then
self.receivedBtn:SetActive(true)
else
self.getBtn:SetActive(true)
end
else
self.dealBtn:SetActive(true)
self.dealBtnText.text = GetLanguageStrById(50202)..MoneyUtil.GetMoney(itemPrice)
end
end
return PrivilegeCardPanel