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

461 lines
21 KiB
Lua

-- require("Base/BasePanel")
-- PrayMainPanel = Inherit(BasePanel)
-- local this = PrayMainPanel
-- local blessingConfig = ConfigManager.GetConfig(ConfigName.BlessingConfig)
-- --16个祈福奖励
-- local RewardParentGrid = {}
-- local RewardItemGrid = {}
-- --16个祈福奖励预览
-- local yunLanRewardParentGrid = {}
-- local yunLanRewardItemGrid = {}
-- --当前祈福完成的个数
-- local allGetFinishRewardNum = 0
-- local allGetRewardNum = 0
-- local blessingConFigData = {}
-- local itemId = 0
-- local itemNum = 0
-- local itemData = {}
-- --累计奖励
-- local extraRewardParentGrid = {}
-- local extraRewardItemGrid = {}
-- --是否在刷新时间范围内
-- local isRefresh = true
-- local orginLayer = 0
-- --初始化组件(用于子类重写)
-- function PrayMainPanel:InitComponent()
-- this.spLoader = SpriteLoader.New()
-- orginLayer = 0
-- self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft })
-- self.BtnBack = Util.GetGameObject(self.transform, "btnBack")
-- self.bg = Util.GetGameObject(self.transform, "bg")
-- screenAdapte(self.bg)
-- self.tishiText = Util.GetGameObject(self.gameObject, "downGo/name/tishiText")
-- self.tishiText2 = Util.GetGameObject(self.gameObject, "downGo/name/tishiText2")
-- self.tishiText3 = Util.GetGameObject(self.gameObject, "downGo/name/tishiText3")
-- self.tishiText2Text = Util.GetGameObject(self.gameObject, "downGo/name/tishiText2/tishiText1"):GetComponent("Text")
-- self.tishiText2Image = Util.GetGameObject(self.gameObject, "downGo/name/tishiText2/itemImage"):GetComponent("Image")
-- self.refreshBtn = Util.GetGameObject(self.gameObject, "upGo/refreshBtn")
-- self.yulanBtn = Util.GetGameObject(self.gameObject, "upGo/yulanBtn")
-- self.extraRewardGo = Util.GetGameObject(self.gameObject, "upGo/extraRewardPre")
-- self.extraRewardParent = Util.GetGameObject(self.gameObject, "upGo/extraRewardPre/parent")
-- self.allPrayNum = Util.GetGameObject(self.gameObject, "upGo/extraRewardPre/getNumText"):GetComponent("Text")
-- self.extraRewardExp = Util.GetGameObject(self.transform, "upGo/extraRewardPre/exp"):GetComponent("Slider")
-- self.extraRewardExpText = Util.GetGameObject(self.gameObject, "upGo/extraRewardPre/exp/Text"):GetComponent("Text")
-- self.extraRewardNameText = Util.GetGameObject(self.gameObject, "upGo/extraRewardPre/nameText"):GetComponent("Text")
-- this.RewardGrid = Util.GetGameObject(self.gameObject, "downGo/RewardGrid")
-- for i = 1, 16 do
-- RewardParentGrid[i] = Util.GetGameObject(self.gameObject, "downGo/RewardGrid/ItemView ("..i..")")
-- RewardItemGrid[i] = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(RewardParentGrid[i].transform, "itemParent").transform)
-- yunLanRewardParentGrid[i] = Util.GetGameObject(self.gameObject, "previewRewardLayout/RewardGrid/ItemView ("..i..")")
-- yunLanRewardItemGrid[i] = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(yunLanRewardParentGrid[i].transform, "itemParent").transform)
-- end
-- --奖励预览
-- self.previewRewardLayout = Util.GetGameObject(self.gameObject, "previewRewardLayout")
-- self.previewRewardLayout:SetActive(false)
-- self.yulanMaskBtn = Util.GetGameObject(self.gameObject, "previewRewardLayout/maskBtn")
-- --累计奖励预览
-- self.extraRewardBtn = Util.GetGameObject(self.gameObject, "upGo/extraRewardPre/extraRewardBtn")
-- self.extraRewardLayout = Util.GetGameObject(self.gameObject, "extraRewardLayout")
-- self.extraRewardLayout:SetActive(false)
-- self.extraMaskBtn = Util.GetGameObject(self.gameObject, "extraRewardLayout/maskBtn")
-- for i = 1, 6 do
-- extraRewardParentGrid[i] = Util.GetGameObject(self.gameObject, "extraRewardLayout/RewardRect/RewardGrid/ItemView ("..i..")")
-- extraRewardItemGrid[i] = SubUIManager.Open(SubUIConfig.ItemView, Util.GetGameObject(extraRewardParentGrid[i].transform, "itemParent").transform)
-- end
-- --时间
-- self.activeTimeText = Util.GetGameObject(self.gameObject, "upGo/name/time/timeImage/timeText"):GetComponent("Text")
-- self.activeRefreshTimeText = Util.GetGameObject(self.gameObject, "upGo/refreshTimeBg/refreshTimeText")
-- self.refreshTimeBg = Util.GetGameObject(self.gameObject, "upGo/refreshTimeBg")
-- self.effect = Util.GetGameObject(self.gameObject, "effect")
-- effectAdapte(Util.GetGameObject(self.effect, "Partical/ziti mask (1)"))
-- end
-- --绑定事件(用于子类重写)
-- function PrayMainPanel:BindEvent()
-- Util.AddClick(self.BtnBack, function()
-- self:ClosePanel()
-- end)
-- Util.AddClick(self.refreshBtn, function()
-- self:RefreshBtnClick()
-- end)
-- Util.AddClick(self.yulanMaskBtn, function()
-- self.previewRewardLayout:SetActive(false)
-- end)
-- Util.AddClick(self.yulanBtn, function()
-- for i = 1, #PrayManager.patyPreviewRewardData do
-- if allGetRewardNum > 0 then
-- local patyPreviewRewardData = PrayManager.patyPreviewRewardData[i]
-- this:ShowSingleRewardData(false,yunLanRewardParentGrid[i],yunLanRewardItemGrid[i],patyPreviewRewardData,false)
-- end
-- end
-- self.previewRewardLayout:SetActive(true)
-- end)
-- Util.AddClick(self.extraMaskBtn, function()
-- self.extraRewardLayout:SetActive(false)
-- end)
-- Util.AddClick(self.extraRewardBtn, function()
-- --累计奖励
-- for i = 1, 6 do
-- if i <= #PrayManager.extraRewardData then
-- extraRewardParentGrid[i]:SetActive(true)
-- local patyRewardData = PrayManager.extraRewardData[i]
-- this:ShowSingleExtraRewardData(false,extraRewardParentGrid[i],extraRewardItemGrid[i],patyRewardData)
-- else
-- extraRewardParentGrid[i]:SetActive(false)
-- end
-- end
-- self.extraRewardLayout:SetActive(true)
-- end)
-- end
-- --添加事件监听(用于子类重写)
-- function PrayMainPanel:AddListener()
-- end
-- --移除事件监听(用于子类重写)
-- function PrayMainPanel:RemoveListener()
-- end
-- --界面打开时调用(用于子类重写)
-- function PrayMainPanel:OnOpen(...)
-- Util.GetGameObject(self.gameObject, "upGo/name/time/timeImage/Text"):GetComponent("Text").text = Language[11637]..tostring(16)..Language[11638]
-- SetTextVerTial(Util.GetGameObject(self.gameObject, "upGo/name/time/timeImage/Text"),Vector3.New(0,-6.4,0),"MiddleLeft")
-- end
-- local isPlayAinEnd = true
-- --界面打开或者重新打开后,界面刷新时调用(用于子类重写)
-- function PrayMainPanel:OnShow()
-- isPlayAinEnd = true
-- self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.LightRing })
-- blessingConFigData = blessingConfig[1].Cost
-- this.ShowRewardDataList()
-- end
-- function PrayMainPanel:OnSortingOrderChange()
-- -- 设置特效
-- Util.AddParticleSortLayer(self.effect, self.sortingOrder - orginLayer)
-- orginLayer = self.sortingOrder
-- self.previewRewardLayout.transform:GetComponent("Canvas").sortingOrder = self.sortingOrder + 50
-- self.extraRewardLayout.transform:GetComponent("Canvas").sortingOrder = self.sortingOrder + 50
-- end
-- --获取活动时间 和 刷新倒计时显示
-- function PrayMainPanel:SetRemainTime()
-- -- local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.Pray)--Pray
-- -- if activityInfo then
-- -- if activityInfo.endTime ~= 0 then
-- -- Log("活动时间: "..activityInfo.startTime.." "..activityInfo.endTime)
-- -- self.activeTimeText.text = Language[10584]..self:TimeStampToDateStr2(activityInfo.startTime).."~"..self:TimeStampToDateStr2(activityInfo.endTime)
-- -- end
-- -- end
-- -- local privilegeId = blessingConfig[1].RefreshCd
-- -- local maxResreshNum = PrivilegeManager.GetPrivilegeNumber(privilegeId)
-- -- -- Log("sssssssssssssssss "..PrayManager.lastRefreshTime.." "..maxResreshNum.." "..GetTimeStamp())
-- -- self:RemainTimeDown(PrayManager.lastRefreshTime+(maxResreshNum) - GetTimeStamp())
-- end
-- --刷新倒计时显示
-- function PrayMainPanel:RemainTimeDown(timeDown)
-- if timeDown > 0 then
-- self.refreshTimeBg:SetActive(true)
-- self.activeRefreshTimeText:GetComponent("Text").text = TimeStampToDateStr3(timeDown)
-- isRefresh = false
-- Util.SetGray(self.refreshBtn, true)
-- if self.timer then
-- self.timer:Stop()
-- self.timer = nil
-- end
-- self.timer = Timer.New(function()
-- self.activeRefreshTimeText:GetComponent("Text").text = TimeStampToDateStr3(timeDown)
-- if timeDown < 0 then
-- isRefresh = true
-- self.refreshTimeBg:SetActive(false)
-- Util.SetGray(self.refreshBtn, false)
-- self.timer:Stop()
-- self.timer = nil
-- end
-- timeDown = timeDown - 1
-- end, 1, -1, true)
-- self.timer:Start()
-- else
-- isRefresh = true
-- Util.SetGray(self.refreshBtn, false)
-- self.refreshTimeBg:SetActive(false)
-- end
-- end
-- --展示所有祈福奖励
-- function this.ShowRewardDataList()
-- this:OnShowExtraRewar()
-- this:SetRemainTime()
-- for i = 1, #PrayManager.patyRewardData do
-- local patyRewardData = PrayManager.patyRewardData[i]
-- this:ShowSingleRewardData(false,RewardParentGrid[i],RewardItemGrid[i],patyRewardData,true)
-- --if allGetRewardNum > 0 then
-- -- local patyPreviewRewardData = PrayManager.patyPreviewRewardData[i]
-- -- this:ShowSingleRewardData(false,yunLanRewardParentGrid[i],yunLanRewardItemGrid[i],patyPreviewRewardData,false)
-- --end
-- end
-- --累计奖励
-- --for i = 1, #PrayManager.extraRewardData do
-- -- local patyRewardData = PrayManager.extraRewardData[i]
-- -- this:ShowSingleExtraRewardData(false,extraRewardParentGrid[i],extraRewardItemGrid[i],patyRewardData)
-- --end
-- end
-- --展示单个祈福奖励
-- function PrayMainPanel:ShowSingleRewardData(_isGet,_parentGo,_go,patyRewardData,isClick)
-- local PreciousShow = 0
-- if patyRewardData.rewardId > 0 then
-- local BlessingRewardPoolData = ConfigManager.GetConfigData(ConfigName.BlessingRewardPool,patyRewardData.rewardId)
-- if BlessingRewardPoolData then
-- PreciousShow = BlessingRewardPoolData.PreciousShow
-- end
-- end
-- local _reward = {patyRewardData.itemId,patyRewardData.num,PreciousShow}
-- --Log("item 信息 "..patyRewardData.itemId.." "..patyRewardData.num)
-- local _state = patyRewardData.state
-- local itemParent = Util.GetGameObject(_parentGo.transform, "itemParent")
-- local getBtn = Util.GetGameObject(_parentGo.transform, "getBtn")
-- local wenhaoBtn
-- local addImage
-- if isClick then
-- wenhaoBtn = Util.GetGameObject(_parentGo.transform, "wenhaoBtn")
-- addImage = Util.GetGameObject(_parentGo.transform, "addImage")
-- wenhaoBtn:SetActive(false)
-- addImage:SetActive(false)
-- end
-- getBtn:SetActive(false)
-- itemParent:SetActive(false)
-- if _state == 0 then--0未保存无物品 1 未保存有物品 2 已选择 3 已祈福
-- if isClick then
-- addImage:SetActive(true)
-- end
-- elseif _state == 1 then
-- itemParent:SetActive(true)
-- if isClick then
-- _go:OnOpen(_isGet,_reward,1)
-- else
-- _go:OnOpen(_isGet,_reward,1,true)
-- end
-- elseif _state == 2 then
-- if isClick then
-- wenhaoBtn:SetActive(true)
-- else
-- itemParent:SetActive(true)
-- if isClick then
-- _go:OnOpen(_isGet,_reward,1)
-- else
-- _go:OnOpen(_isGet,_reward,1,true)
-- end
-- end
-- elseif _state == 3 then
-- itemParent:SetActive(true)
-- if isClick then
-- _go:OnOpen(_isGet,_reward,1)
-- else
-- _go:OnOpen(_isGet,_reward,1,true)
-- end
-- getBtn:SetActive(true)
-- end
-- Util.AddOnceClick(addImage, function()
-- if isPlayAinEnd == false then
-- return
-- end
-- if isClick then
-- UIManager.OpenPanel(UIName.PraySelectRewardPanel,this)
-- end
-- end)
-- if isClick then
-- Util.AddOnceClick(wenhaoBtn, function()
-- if BagManager.GetItemCountById(itemData.Id) < itemNum then
-- --PopupTipPanel.ShowTip("材料不足")
-- --功能快捷购买
-- UIManager.OpenPanel(UIName.QuickPurchasePanel, { type = UpViewRechargeType.LightRing })
-- return
-- end
-- if isPlayAinEnd == false then
-- return
-- end
-- MsgPanel.ShowTwo(Language[11639]..itemNum..Language[10200]..GetLanguageStrById(itemData.Name), nil ,function ()
-- NetManager.GetSinglePrayRewardRequest(patyRewardData.id, function (_msg)
-- isPlayAinEnd = false
-- PrayManager.SetPatySingleRewardData(patyRewardData.id,_msg.chooseRewardId)
-- PlayUIAnim(_parentGo)
-- Timer.New(function ()
-- this.ShowRewardDataList()
-- end, 0.2):Start()
-- Timer.New(function ()
-- UIManager.OpenPanel(UIName.PrayRewardItemPopup,_msg.reward,allGetFinishRewardNum,_msg.chooseRewardId,function()
-- -- self:CheckGetMaxReward()
-- end)
-- isPlayAinEnd = true
-- end, 0.4):Start()
-- end)
-- end)
-- end)
-- end
-- end
-- --检测祈福是否满16 满会自动刷新
-- -- function PrayMainPanel:CheckGetMaxReward()
-- -- local allGetFinishRewardNums = 0
-- -- for i = 1, #PrayManager.patyRewardData do
-- -- if PrayManager.patyRewardData[i].state >= 3 then
-- -- allGetFinishRewardNums = allGetFinishRewardNums + 1
-- -- end
-- -- end
-- -- LogYellow("allGetFinishRewardNums "..allGetFinishRewardNums)
-- -- if allGetFinishRewardNums >= 16 then
-- -- local isRefreshConFig = blessingConfig[1].IsRefresh
-- -- if isRefreshConFig == 1 then
-- -- MsgPanel.ShowOne("本轮祈福已全部完成,奖池刷新并重置开启次数。", function ()
-- -- NetManager.InitPrayDataRequest(function (_msg)
-- -- PrayManager.ResetPatyRewardData(_msg)
-- -- this.ShowRewardDataList()
-- -- end)
-- -- end)
-- -- return
-- -- end
-- -- end
-- -- end
-- --展示额外奖励
-- function PrayMainPanel:OnShowExtraRewar()
-- --额外奖励赋值
-- allGetFinishRewardNum = PrayManager.GetCount()
-- allGetRewardNum = 0
-- for i = 1, #PrayManager.patyRewardData do
-- -- if PrayManager.patyRewardData[i].state >= 3 then
-- -- allGetFinishRewardNum = allGetFinishRewardNum + 1
-- -- end
-- if PrayManager.patyRewardData[i].state >= 2 then
-- allGetRewardNum = allGetRewardNum + 1
-- end
-- end
-- local curGetExtraRewarData = {}
-- local upGetExtraRewarData = 0
-- for i = 1, #PrayManager.extraRewardData do
-- if allGetFinishRewardNum < PrayManager.extraRewardData[i].extraRewardCount then
-- curGetExtraRewarData = PrayManager.extraRewardData[i]
-- break
-- end
-- end
-- for i = 1, #PrayManager.extraRewardData do
-- if allGetFinishRewardNum >= PrayManager.extraRewardData[i].extraRewardCount then
-- upGetExtraRewarData = PrayManager.extraRewardData[i].extraRewardCount
-- end
-- end
-- --抽取消耗的材料赋值
-- itemId = blessingConFigData[1][1]
-- itemNum = CalculateCostCount(allGetFinishRewardNum + 1, blessingConFigData[2])
-- itemData = ConfigManager.GetConfigData(ConfigName.ItemConfig,itemId)
-- self.tishiText3:SetActive(false)
-- self.tishiText:SetActive(false)
-- self.tishiText2:SetActive(false)
-- --Log("allGetFinishRewardNum "..allGetFinishRewardNum)
-- self.allPrayNum.text = Language[11640]..allGetFinishRewardNum
-- if allGetRewardNum > 0 then
-- self.yulanBtn:SetActive(true)
-- self.tishiText:SetActive(false)
-- if allGetFinishRewardNum >= 16 then
-- self.tishiText3:SetActive(true)
-- else
-- self.tishiText2:SetActive(true)
-- self.tishiText2Text.text = Language[11641]..itemNum..Language[10200]
-- self.tishiText2Image.sprite = this.spLoader:LoadSprite(GetResourcePath(itemData.ResourceID))
-- end
-- else
-- self.yulanBtn:SetActive(false)
-- self.tishiText2:SetActive(false)
-- self.tishiText3:SetActive(false)
-- self.tishiText:SetActive(true)
-- end
-- if curGetExtraRewarData and curGetExtraRewarData.itemId then
-- self.extraRewardGo:SetActive(true)
-- Util.ClearChild(self.extraRewardParent.transform)
-- SubUIManager.Open(SubUIConfig.ItemView, self.extraRewardParent.transform,false,{curGetExtraRewarData.itemId,curGetExtraRewarData.num},1,false)
-- self.extraRewardNameText.text = GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.ItemConfig,curGetExtraRewarData.itemId).Name)
-- self.extraRewardExp.value= (allGetFinishRewardNum)/(curGetExtraRewarData.extraRewardCount)
-- self.extraRewardExpText.text =(allGetFinishRewardNum).."/"..(curGetExtraRewarData.extraRewardCount)
-- else
-- self.extraRewardGo:SetActive(false)
-- end
-- end
-- --展示单个额外奖励
-- function PrayMainPanel:ShowSingleExtraRewardData(_isGet,_parentGo,_go,patyRewardData)
-- local numText = Util.GetGameObject(_parentGo.transform, "numText/Text"):GetComponent("Text")
-- local _reward = {patyRewardData.itemId,patyRewardData.num}
-- _go:OnOpen(_isGet,_reward,0.9)
-- numText.text = patyRewardData.extraRewardCount
-- end
-- --刷新按钮事件
-- function PrayMainPanel:RefreshBtnClick()
-- local allGetFinishRewardNums = 0
-- for i = 1, #PrayManager.patyRewardData do
-- if PrayManager.patyRewardData[i].state >= 3 then
-- allGetFinishRewardNums = allGetFinishRewardNums + 1
-- end
-- end
-- if allGetFinishRewardNums == 16 then
-- NetManager.ResetAllPrayRewardRequest(function (_msg)
-- PrayManager.ResetPatyRewardData(_msg)
-- -- PrivilegeManager.RefreshPrivilegeUsedTimes(privilegeId, 1)
-- this.ShowRewardDataList()
-- end)
-- else
-- MsgPanel.ShowTwo(Language[11642], nil ,function ()
-- NetManager.ResetAllPrayRewardRequest(function (_msg)
-- PrayManager.ResetPatyRewardData(_msg)
-- -- PrivilegeManager.RefreshPrivilegeUsedTimes(privilegeId, 1)
-- this.ShowRewardDataList()
-- end)
-- end)
-- end
-- -- local isRefreshConFig = blessingConfig[1].IsRefresh
-- -- local privilegeId = blessingConfig[1].RefreshCd
-- -- if isRefreshConFig == 0 then
-- -- PopupTipPanel.ShowTip("活动不可刷新")
-- -- return
-- -- end
-- -- if isRefresh == false then
-- -- PopupTipPanel.ShowTip("当前时间不可刷新")
-- -- return
-- -- end
-- end
-- --界面关闭时调用(用于子类重写)
-- function PrayMainPanel:OnClose()
-- if self.timer then
-- self.timer:Stop()
-- self.timer = nil
-- end
-- end
-- -- 将时间戳转换为用于显示的日期字符串(年月日)
-- function PrayMainPanel:TimeStampToDateStr2(timestamp)
-- local date = os.date("*t", timestamp)
-- --local year = string.sub(date.year,3,4)
-- return string.format(Language[11643], date.year, date.month, date.day)
-- end
-- function this.ShowAnimationAndRefreshData()
-- PlayUIAnim(this.RewardGrid)
-- Timer.New(function ()
-- this.ShowRewardDataList()
-- PlayUIAnimBack(this.RewardGrid)
-- end, 0.8):Start()
-- end
-- --界面销毁时调用(用于子类重写)
-- function PrayMainPanel:OnDestroy()
-- this.spLoader:Destroy()
-- SubUIManager.Close(self.UpView)
-- end
-- return PrayMainPanel