miduo_client/Assets/ManagedResources/~Lua/Modules/Pray/PraySelectRewardPanel.lua

171 lines
6.5 KiB
Lua
Raw Normal View History

2025-03-14 11:58:20 +08:00
require("Base/BasePanel")
2020-05-09 13:31:21 +08:00
PraySelectRewardPanel = Inherit(BasePanel)
local chuanShuoGridList = {}
local zhiZunGridList = {}
local chuanShuoItemVList = {}
local zhiZunItemVList = {}
local selectItemData = {}
local openPanel
local curchaunShuoSelectNum = 0
local curzhiZunSelectNum = 0
--初始化组件(用于子类重写)
function PraySelectRewardPanel:InitComponent()
2021-04-21 13:12:04 +08:00
self.spLoader = SpriteLoader.New()
2020-05-09 13:31:21 +08:00
self.btnBack = Util.GetGameObject(self.transform, "btnBack")
self.btnSure = Util.GetGameObject(self.transform, "btnSure")
self.itemPre = Util.GetGameObject(self.transform, "itemPre")
self.chuanShuoGrid = Util.GetGameObject(self.transform, "grid/chuanShuoGrid")
self.zhiZunGrid = Util.GetGameObject(self.transform, "grid/zhiZunGrid")
self.chuanShuoNum = Util.GetGameObject(self.transform, "grid/chuanShuoNum/selectNumText"):GetComponent("Text")
self.zhiZunNum = Util.GetGameObject(self.transform, "grid/zhiZunNum/selectNumText"):GetComponent("Text")
chuanShuoGridList = {}
zhiZunGridList = {}
for i = 1, 6 do
2024-09-19 20:14:12 +08:00
chuanShuoGridList[i] = Util.GetGameObject(self.transform, "grid/chuanShuoGrid/itemPre (" .. i .. ")")
chuanShuoItemVList[i] = SubUIManager.Open(SubUIConfig.ItemView,
Util.GetGameObject(chuanShuoGridList[i].transform, "parent").transform)
zhiZunGridList[i] = Util.GetGameObject(self.transform, "grid/zhiZunGrid/itemPre (" .. i .. ")")
zhiZunItemVList[i] = SubUIManager.Open(SubUIConfig.ItemView,
Util.GetGameObject(zhiZunGridList[i].transform, "parent").transform)
2020-05-09 13:31:21 +08:00
end
end
--绑定事件(用于子类重写)
function PraySelectRewardPanel:BindEvent()
Util.AddClick(self.btnBack, function()
self:ClosePanel()
end)
Util.AddClick(self.btnSure, function()
2024-09-19 20:14:12 +08:00
if LengthOfTable(selectItemData) < 16 - ConfigManager.GetConfigData(ConfigName.BlessingConfig, 1).RandomNum then
2024-08-29 21:36:51 +08:00
PopupTipPanel.ShowTip(Language[12479])
2020-05-09 13:31:21 +08:00
else
if openPanel then
--更新本地数据
local selectRewardIds = {}
for i, v in pairs(selectItemData) do
2024-09-19 20:14:12 +08:00
table.insert(selectRewardIds, v.rewardId)
2020-05-09 13:31:21 +08:00
end
2024-09-19 20:14:12 +08:00
NetManager.SavePraySelectRewardRequest(selectRewardIds, function()
2020-05-09 13:31:21 +08:00
PrayManager.SetPatyRewardData(selectItemData)
openPanel.ShowAnimationAndRefreshData()
self:ClosePanel()
end)
end
end
end)
end
--添加事件监听(用于子类重写)
function PraySelectRewardPanel:AddListener()
end
--移除事件监听(用于子类重写)
function PraySelectRewardPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
function PraySelectRewardPanel:OnOpen(_openPanel)
openPanel = _openPanel
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function PraySelectRewardPanel:OnShow()
selectItemData = {}
self:OnShowItemFun()
end
2024-09-19 20:14:12 +08:00
2020-05-09 13:31:21 +08:00
--展示
function PraySelectRewardPanel:OnShowItemFun()
2024-09-19 20:14:12 +08:00
curchaunShuoSelectNum = ConfigManager.GetConfigData(ConfigName.BlessingConfig, 1).LegendChooseNum
curzhiZunSelectNum = ConfigManager.GetConfigData(ConfigName.BlessingConfig, 1).SupremePoolIdChooseNum
self.chuanShuoNum.text = Language[12480] .. curchaunShuoSelectNum .. Language[10227]
self.zhiZunNum.text = Language[12480] .. curzhiZunSelectNum .. Language[10227]
2020-05-09 13:31:21 +08:00
--传说
if PrayManager.legendReward and #PrayManager.legendReward > 0 then
for i = 1, #PrayManager.legendReward do
2024-09-19 20:14:12 +08:00
self:OnShowSingleItemData(chuanShuoGridList[i], chuanShuoItemVList[i], PrayManager.legendReward[i])
2020-05-09 13:31:21 +08:00
end
end
--至尊
if PrayManager.supremeReward and #PrayManager.supremeReward > 0 then
for i = 1, #PrayManager.supremeReward do
2024-09-19 20:14:12 +08:00
self:OnShowSingleItemData(zhiZunGridList[i], zhiZunItemVList[i], PrayManager.supremeReward[i])
2020-05-09 13:31:21 +08:00
end
end
end
2024-09-19 20:14:12 +08:00
function PraySelectRewardPanel:OnShowSingleItemData(_parent, _go, _reward)
2020-05-09 13:31:21 +08:00
local PreciousShow = 0
if _reward.rewardId > 0 then
2024-09-19 20:14:12 +08:00
local BlessingRewardPoolData = ConfigManager.GetConfigData(ConfigName.BlessingRewardPool, _reward.rewardId)
2020-05-09 13:31:21 +08:00
if BlessingRewardPoolData then
PreciousShow = BlessingRewardPoolData.PreciousShow
end
end
2024-09-19 20:14:12 +08:00
local reward = { _reward.itemId, _reward.num, PreciousShow }
_go:OnOpen(false, reward, 1.2, true)
local choosed = Util.GetGameObject(_parent.transform, "choosed")
2020-05-09 13:31:21 +08:00
choosed:SetActive(false)
if selectItemData[_reward.rewardId] then
choosed:SetActive(true)
end
local cardclickBtn = Util.GetGameObject(_parent.transform, "click")
Util.AddLongPressClick(cardclickBtn, function()
_go:OnBtnCkickEvent(_reward.itemId)
2024-09-19 20:14:12 +08:00
end, 0.5)
2020-05-09 13:31:21 +08:00
Util.AddOnceClick(cardclickBtn, function()
if selectItemData[_reward.rewardId] then
choosed:SetActive(false)
selectItemData[_reward.rewardId] = nil
--this.UpdataPanelRewardAndSelectText()
return
end
2024-09-19 20:14:12 +08:00
if LengthOfTable(selectItemData) >= 16 - ConfigManager.GetConfigData(ConfigName.BlessingConfig, 1).RandomNum then
2024-08-29 21:36:51 +08:00
PopupTipPanel.ShowTip(Language[12481])
2020-05-09 13:31:21 +08:00
return
end
if _reward.type == 3 then --传说
local curChuanShuoNum = 0
for i, v in pairs(selectItemData) do
if v.type == 3 then
2024-09-19 20:14:12 +08:00
curChuanShuoNum = curChuanShuoNum + 1
2020-05-09 13:31:21 +08:00
end
end
if curChuanShuoNum >= curchaunShuoSelectNum then
2024-09-19 20:14:12 +08:00
PopupTipPanel.ShowTip(Language[12482] .. curchaunShuoSelectNum .. Language[10227])
2020-05-09 13:31:21 +08:00
return
end
2024-09-19 20:14:12 +08:00
elseif _reward.type == 4 then --至尊
2020-05-09 13:31:21 +08:00
local curZhiZunNum = 0
for i, v in pairs(selectItemData) do
if v.type == 4 then
2024-09-19 20:14:12 +08:00
curZhiZunNum = curZhiZunNum + 1
2020-05-09 13:31:21 +08:00
end
end
if curZhiZunNum >= curzhiZunSelectNum then
2024-09-19 20:14:12 +08:00
PopupTipPanel.ShowTip(Language[12483] .. curzhiZunSelectNum .. Language[10227])
2020-05-09 13:31:21 +08:00
return
end
end
2024-09-19 20:14:12 +08:00
selectItemData[_reward.rewardId] = _reward
2020-05-09 13:31:21 +08:00
choosed:SetActive(true)
--this.UpdataPanelRewardAndSelectText()
end)
end
2024-09-19 20:14:12 +08:00
2020-05-09 13:31:21 +08:00
--界面关闭时调用(用于子类重写)
function PraySelectRewardPanel:OnClose()
end
--界面销毁时调用(用于子类重写)
function PraySelectRewardPanel:OnDestroy()
2021-04-21 13:12:04 +08:00
self.spLoader:Destroy()
2020-05-09 13:31:21 +08:00
end
2024-09-19 20:14:12 +08:00
return PraySelectRewardPanel