【挚礼月卡】月卡功能数据剥离到MonthCardManager

dev_chengFeng
gaoxin 2021-10-18 16:22:11 +08:00
parent 334090870d
commit 3a559c912c
13 changed files with 205 additions and 206 deletions

View File

@ -2456,6 +2456,7 @@ DirectBuyType = {
MONTH_CARD_TYPE = {
MONTHCARD = 1,
LUXURYMONTHCARD = 2,
GIFT = 3,
}
--战力类型
WarPowerTypeAllNum = 3--战力类型总数量 下边结构加一种类型 此数值 + 1

View File

@ -307,7 +307,7 @@ function this.RefreshUpdateIndication(buffer)
ActivityGiftManager.isFirstForSupremeHero=false
BindPhoneNumberManager.InitBindInfo(msg.playerBindPhone)
LuckyTurnTableManager.ReceiveServerDataForFive(msg.posInfos,msg.posInfosAdvance)
OperatingManager.BackSetMonthCardGetStateData(msg.MonthDailyTake)
MonthCardManager.BackSetMonthCardGetStateData(msg.MonthDailyTake)
MyGuildManager.SetMyFeteInfo_FiveRefresh(msg)
MyGuildManager.SetGuildHelpInfo_FiveRefresh(msg)
-- CarbonManager.dailyChallengeInfo=msg.dailyChallengeInfo
@ -843,7 +843,7 @@ function this.RefreshAccuMoneyNum(buffer)
local msg=PlayerInfoProto_pb.RefreshRechargeIndication()
msg:ParseFromString(data)
VipManager.RefreshChargeMoney(msg.amount, false)
OperatingManager.RefreshMonthCardChargeMoney(msg)
MonthCardManager.RefreshMonthCardChargeMoney(msg)
end
-- 巅峰战阶段更新
@ -901,7 +901,7 @@ function this.RefreshMonthCardData(buffer)
local data = buffer:DataByte()
local msg = PlayerInfoProto_pb.MonthCardIndication()
msg:ParseFromString(data)
OperatingManager.UpdateMonthCardData(msg)
MonthCardManager.UpdateMonthCardData(msg)
end
function this.RefreshGuildCarDelayProgressData(buffer)
local data = buffer:DataByte()

View File

@ -201,7 +201,7 @@ function this.PlayerInfoRequest(func)
OperatingManager.SetSignInData(msg.SignInInfo)
--月卡初始化数据
OperatingManager.InitMonthCardData(msg.monthinfos)
MonthCardManager.InitMonthCardData(msg.monthinfos)
--每日副本数据
CarbonManager.dailyChallengeInfo=msg.dailyChallengeInfo

View File

@ -63,8 +63,10 @@ end
function this.UpdateStatus()
local temp = TaskManager.GetTypeTaskList(TaskTypeDef.NiuQiChongTian)
for k,v in pairs(this.rewardData) do
v.state = temp[v.id].state
v.progress = temp[v.id].progress
if temp[v.id] then
v.state = temp[v.id].state
v.progress = temp[v.id].progress
end
end
CheckRedPointStatus(RedPointType.NiuQiChongTian_1)
CheckRedPointStatus(RedPointType.NiuQiChongTian_2)

View File

@ -210,7 +210,7 @@ function GrowthGiftPage:RequestBuy()
local giftGoodsInfo = OperatingManager.GetGiftGoodsInfo(GoodsTypeDef.GrowthReward, self.curGiftsId)
PayManager.Pay(giftGoodsInfo.goodsId, function(id)
-- 检测月卡激活是否需要拍脸
OperatingManager.CheckMonthCardPatFace()
MonthCardManager.CheckMonthCardPatFace()
self:RefreshStatus()
end)
end

View File

@ -0,0 +1,172 @@
MonthCardManager = {}
local this = MonthCardManager
--初始化月卡数据
local monthCardData = {}
function this.InitMonthCardData(data)
monthCardData = {}
--LogError("月卡信息初始化 "..#data)
for i = 1, #data do
--LogError("月卡信息初始化 "..data[i].id.." "..data[i].endingTime.." "..data[i].state)
local singleMonthCard = {}
singleMonthCard.id = data[i].id
singleMonthCard.endingTime = data[i].endingTime
singleMonthCard.state = data[i].state
singleMonthCard.totleAmt = data[i].totleAmt
-- LogError("月卡信息初始化 "..i.." 月卡累计充值 "..data[i].totleAmt)
table.insert(monthCardData,singleMonthCard)
end
CheckRedPointStatus(RedPointType.MonthCard)
end
--推送更新月卡数据
function this.UpdateMonthCardData(msg)
--LogError("月卡信息推送 "..#msg.monthinfos)
--当我数据没有 后端推过来的有数据 此时需要弹窗
this.showStr = ""
for i = 1, #msg.monthinfos do
if monthCardData[i].endingTime <= 0 then
this.showStr = Language[11384]
end
end
monthCardData = {}
local _CurActive = {}
for i = 1, #msg.monthinfos do
--LogError("月卡信息推送 "..msg.monthinfos[i].id.." "..msg.monthinfos[i].endingTime.." "..msg.monthinfos[i].state)
local singleMonthCard = {}
singleMonthCard.id = msg.monthinfos[i].id
singleMonthCard.endingTime = msg.monthinfos[i].endingTime
singleMonthCard.state = msg.monthinfos[i].state--0 未领取 1 已领取
singleMonthCard.totleAmt = msg.monthinfos[i].totleAmt
_CurActive[i] = true
table.insert(monthCardData,singleMonthCard)
end
-- 检测红点
CheckRedPointStatus(RedPointType.MonthCard)
-- 判断是否需要发送埋点数据
if this.showStr ~= "" then
if ActTimeCtrlManager.SingleFuncState(JumpType.Welfare) then
if _CurActive[MONTH_CARD_TYPE.MONTHCARD] then
--发送埋点数据
CustomEventManager.SendCustomEvents(FBSDKCustomEventType.FirstBuyMonthCard,0)
end
if _CurActive[MONTH_CARD_TYPE.LUXURYMONTHCARD] then
--发送埋点数据
CustomEventManager.SendCustomEvents(FBSDKCustomEventType.FirstBuyHeightMonthCard,0)
end
end
end
end
-- 检测月卡激活提示是否需要拍脸
function this.CheckMonthCardPatFace()
if this.showStr and this.showStr ~= "" then
MsgPanel.ShowTwo(this.showStr, function()
JumpManager.GoJump(36004)
end,
function()
UIManager.ClosePanel()
end,Language[10586],Language[11385])
-- 拍过后不再提示
this.showStr = ""
return true
end
end
function this.RefreshMonthCardChargeMoney(msg)
-- LogError("月卡金额信息推送 "..msg.monthSaveAmt.." "..msg.smonthSaveAmt)
monthCardData[MONTH_CARD_TYPE.MONTHCARD].totleAmt = msg.monthSaveAmt--月卡累计总额
monthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD].totleAmt = msg.smonthSaveAmt--豪华月卡累计总额
-- monthCardData[MONTH_CARD_TYPE.GIFT].totleAmt = msg.smonthSaveAmt--挚礼月卡累计总额
end
-- 月卡累计总额
function this.GetmonthSaveAmt(index)
if monthCardData[index] and monthCardData[index].totleAmt then
return monthCardData[index].totleAmt
end
return 0
end
-- 豪华月卡累计总额
function this.GetsmonthSaveAmt()
return smonthSaveAmt
end
--前端设置月卡领取状态数据
function this.SetMonthCardGetStateData(type,state)
if monthCardData[type] then
monthCardData[type].state = state--0 未领取 1 已领取
end
CheckRedPointStatus(RedPointType.MonthCard)
end
--后端设置月卡领取状态数据 datas已领取的月卡id 五点刷新
function this.BackSetMonthCardGetStateData(datas)
for i = 1, #monthCardData do
if monthCardData[i] then--0 未领取 1 已领取
if datas[i] then
monthCardData[i].state = 1
else
monthCardData[i].state = 0
end
end
end
--事件
CheckRedPointStatus(RedPointType.MonthCard)
Game.GlobalEvent:DispatchEvent(GameEvent.MonthCard.OnMonthCardUpdate)
end
--获取月卡数据
function this.GetMonthCardData()
if monthCardData then
return monthCardData
else
return nil
end
end
function this.IsMonthCardActive()
local curAllMonthCardData = this.GetMonthCardData()
local curMonthCardOpenState = curAllMonthCardData[MONTH_CARD_TYPE.MONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.MONTHCARD].endingTime ~= 0
local curLuxuryMonthCardOpenState = curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD].endingTime ~= 0
local isMonthCardActive = curLuxuryMonthCardOpenState
return isMonthCardActive
end
--月卡到期
local addTimeNum = 30 * 24 * 60 * 60
function this.RefreshMonthCardEnd()
for i = 1, #monthCardData do
if monthCardData[i] and monthCardData[i].endingTime > 0 then--0 未领取 1 已领取
local dayLuxuryNum = math.floor((monthCardData[i].endingTime + addTimeNum - GetTimeStamp()) / (24 * 3600))
if dayLuxuryNum < 0 then
monthCardData[i].endingTime = 0
monthCardData[i].state = 0 --0 未领取 1 已领取
monthCardData[i].totleAmt = 0
end
end
end
CheckRedPointStatus(RedPointType.MonthCard)
end
--单种月卡红点检测
function this.RefreshMonthCardRedPoint(type)
if monthCardData[type] then
if monthCardData[type].endingTime ~= 0 and monthCardData[type].state == 0 then
return true
end
end
return false
end
--所有月卡红点检测
function this.AllRefreshMonthCardRedPoint()
for i = 1, #monthCardData do
if monthCardData[i].endingTime ~= 0 and monthCardData[i].state == 0 then
return true
end
end
return false
end
--所有月卡激活状态
function this.GetMonthCardIsOpen(type)
if monthCardData[type] then
if monthCardData[type].endingTime ~= 0 then
return true
end
end
return false
end

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 90a140eb9bf35094e85451e9475ee861
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2,7 +2,8 @@
local MonthCardPage = {}
local cardData = {
[1] = { curState = 0 ,cardType = MONTH_CARD_TYPE.MONTHCARD},
[2] = { curState = 0 ,cardType = MONTH_CARD_TYPE.LUXURYMONTHCARD}
[2] = { curState = 0 ,cardType = MONTH_CARD_TYPE.LUXURYMONTHCARD},
[3] = { curState = 0 ,cardType = MONTH_CARD_TYPE.GIFT}
}
local sortingOrder = 0
local addTimeNum = 30 * 24 * 60 * 60
@ -52,8 +53,8 @@ function MonthCardPage:BindEvent()
else
if self.curAllMonthCardData[cardData[i].cardType].state == 0 then
NetManager.MonthCardTakeDailyRequest(cardData[i].cardType, function(drop)
OperatingManager.SetMonthCardGetStateData(cardData[i].cardType,1)
self.curAllMonthCardData = OperatingManager.GetMonthCardData()
MonthCardManager.SetMonthCardGetStateData(cardData[i].cardType,1)
self.curAllMonthCardData = MonthCardManager.GetMonthCardData()
UIManager.OpenPanel(UIName.RewardItemPopup,drop,1,function()
self:SetCardShow(i)
end)
@ -89,13 +90,13 @@ function MonthCardPage:OnShow(_sortingOrder)
self.gameObject:SetActive(true)
sortingOrder = _sortingOrder
OperatingManager.RefreshMonthCardEnd()
MonthCardManager.RefreshMonthCardEnd()
self:RefreshStoneShow()
end
-- 妖晶数量显示
function MonthCardPage:RefreshStoneShow(index)
self.curAllMonthCardData = OperatingManager.GetMonthCardData()
self.curAllMonthCardData = MonthCardManager.GetMonthCardData()
--月卡
for i = 1, #self.cardPres do
self:SetCardShow(i)
@ -108,10 +109,10 @@ function MonthCardPage:SetCardShow(i)
self.cardPres[i].day2.text = Language[11380]..monthCardConFig[cardData[i].cardType].BaseReward[1][2] .."</color>"
self.cardPres[i].icon.sprite = self.spLoader:LoadSprite(GetResourcePath(ConfigManager.GetConfigData(ConfigName.ItemConfig,monthCardConFig[cardData[i].cardType].BaseReward[1][1]).ResourceID))
self.cardPres[i].progress:SetActive(not cardData[i].curState)
self.cardPres[i].progress:GetComponent("Text").text = "("..OperatingManager.GetmonthSaveAmt(i).."/"..monthCardConFig[cardData[i].cardType].Price..")"
self.cardPres[i].progress:GetComponent("Text").text = "("..MonthCardManager.GetmonthSaveAmt(i).."/"..monthCardConFig[cardData[i].cardType].Price..")"
self.cardPres[i].dayRightUpText = monthCardConFig[cardData[i].cardType].ContiueDays * monthCardConFig[cardData[i].cardType].BaseReward[1][2]
self.cardPres[i].dayRightUpIcon = SetIcon(self.spLoader, monthCardConFig[cardData[i].cardType].BaseReward[1][1])
self.cardPres[i].monthRedPot:SetActive(OperatingManager.RefreshMonthCardRedPoint(cardData[i].cardType))
self.cardPres[i].monthRedPot:SetActive(MonthCardManager.RefreshMonthCardRedPoint(cardData[i].cardType))
self.cardPres[i].btnText = Language[11381]
if not cardData[i].curState then
self.cardPres[i].time:SetActive(false)
@ -147,8 +148,8 @@ function MonthCardPage:SetMonthCardTimes(timeNums,timeCom,index)
self.timerList[index] = Timer.New(function()
timeCom:GetComponent("Text").text = Language[10023]..TimeStampToDateStr3(timeNums)
if timeNums < 0 then
OperatingManager.RefreshMonthCardEnd()
self.curAllMonthCardData = OperatingManager.GetMonthCardData()
MonthCardManager.RefreshMonthCardEnd()
self.curAllMonthCardData = MonthCardManager.GetMonthCardData()
self:SetCardShow(index)
self.timerList[index]:Stop()
self.timerList[index] = nil

View File

@ -5,6 +5,7 @@
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
require("Modules.Operating.MonthCardManager")
OperatingManager = {}
local this = OperatingManager
@ -593,191 +594,6 @@ function this.GetShowTime(endTime)
end
--月卡开始
--初始化月卡数据
local monthSaveAmt = 0--月卡累计总额
local smonthSaveAmt = 0--豪华月卡累计总额
local monthCardData = {}
function this.InitMonthCardData(data)
monthCardData = {}
--LogError("月卡信息初始化 "..#data)
for i = 1, #data do
--LogError("月卡信息初始化 "..data[i].id.." "..data[i].endingTime.." "..data[i].state)
local singleMonthCard = {}
singleMonthCard.id = data[i].id
singleMonthCard.endingTime = data[i].endingTime
singleMonthCard.state = data[i].state
if i == MONTH_CARD_TYPE.MONTHCARD then
--LogError("月卡信息初始化 月卡累计充值 "..data[i].totleAmt)
monthSaveAmt = data[i].totleAmt
elseif i == MONTH_CARD_TYPE.LUXURYMONTHCARD then
--LogError("月卡信息初始化 豪华月卡累计充值 "..data[i].totleAmt)
smonthSaveAmt = data[i].totleAmt
end
table.insert(monthCardData,singleMonthCard)
end
CheckRedPointStatus(RedPointType.MonthCard)
end
--推送更新月卡数据
function this.UpdateMonthCardData(msg)
--LogError("月卡信息推送 "..#msg.monthinfos)
--当我数据没有 后端推过来的有数据 此时需要弹窗
this.showStr = ""
for i = 1, #msg.monthinfos do
if monthCardData[i].endingTime <= 0 then
this.showStr = Language[11384]
end
end
monthCardData = {}
local curActiveMONTHCARD = false
local curActiveLUXURYMONTHCARD = false
for i = 1, #msg.monthinfos do
--LogError("月卡信息推送 "..msg.monthinfos[i].id.." "..msg.monthinfos[i].endingTime.." "..msg.monthinfos[i].state)
local singleMonthCard = {}
singleMonthCard.id = msg.monthinfos[i].id
singleMonthCard.endingTime = msg.monthinfos[i].endingTime
singleMonthCard.state = msg.monthinfos[i].state--0 未领取 1 已领取
if i == MONTH_CARD_TYPE.MONTHCARD then
monthSaveAmt = msg.monthinfos[i].totleAmt
curActiveMONTHCARD = true
elseif i == MONTH_CARD_TYPE.LUXURYMONTHCARD then
smonthSaveAmt = msg.monthinfos[i].totleAmt
curActiveLUXURYMONTHCARD = true
end
table.insert(monthCardData,singleMonthCard)
end
CheckRedPointStatus(RedPointType.MonthCard)
if this.showStr ~= "" then
if ActTimeCtrlManager.SingleFuncState(JumpType.Welfare) then
if curActiveMONTHCARD then
--发送埋点数据
CustomEventManager.SendCustomEvents(FBSDKCustomEventType.FirstBuyMonthCard,0)
end
if curActiveLUXURYMONTHCARD then
--发送埋点数据
CustomEventManager.SendCustomEvents(FBSDKCustomEventType.FirstBuyHeightMonthCard,0)
end
end
end
end
-- 检测月卡激活提示是否需要拍脸
function this.CheckMonthCardPatFace()
if this.showStr and this.showStr ~= "" then
MsgPanel.ShowTwo(this.showStr, function()
JumpManager.GoJump(36004)
end,
function()
UIManager.ClosePanel()
end,Language[10586],Language[11385])
-- 拍过后不再提示
this.showStr = ""
return true
end
end
function this.RefreshMonthCardChargeMoney(msg)
-- LogError("月卡金额信息推送 "..msg.monthSaveAmt.." "..msg.smonthSaveAmt)
monthSaveAmt = msg.monthSaveAmt--月卡累计总额
smonthSaveAmt = msg.smonthSaveAmt--豪华月卡累计总额
end
-- 月卡累计总额
function this.GetmonthSaveAmt(index)
if index == MONTH_CARD_TYPE.MONTHCARD then
return monthSaveAmt
else
return smonthSaveAmt
end
end
-- 豪华月卡累计总额
function this.GetsmonthSaveAmt()
return smonthSaveAmt
end
--前端设置月卡领取状态数据
function this.SetMonthCardGetStateData(type,state)
if monthCardData[type] then
monthCardData[type].state = state--0 未领取 1 已领取
end
CheckRedPointStatus(RedPointType.MonthCard)
end
--后端设置月卡领取状态数据 datas已领取的月卡id 五点刷新
function this.BackSetMonthCardGetStateData(datas)
for i = 1, #monthCardData do
if monthCardData[i] then--0 未领取 1 已领取
if datas[i] then
monthCardData[i].state = 1
else
monthCardData[i].state = 0
end
end
end
--事件
CheckRedPointStatus(RedPointType.MonthCard)
Game.GlobalEvent:DispatchEvent(GameEvent.MonthCard.OnMonthCardUpdate)
end
--获取月卡数据
function this.GetMonthCardData()
if monthCardData then
return monthCardData
else
return nil
end
end
function this.IsMonthCardActive()
local curAllMonthCardData = this.GetMonthCardData()
local curMonthCardOpenState = curAllMonthCardData[MONTH_CARD_TYPE.MONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.MONTHCARD].endingTime ~= 0
local curLuxuryMonthCardOpenState = curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD].endingTime ~= 0
local isMonthCardActive = curLuxuryMonthCardOpenState
return isMonthCardActive
end
--月卡到期
local addTimeNum = 30 * 24 * 60 * 60
function this.RefreshMonthCardEnd()
for i = 1, #monthCardData do
if monthCardData[i] and monthCardData[i].endingTime > 0 then--0 未领取 1 已领取
local dayLuxuryNum = math.floor((monthCardData[i].endingTime + addTimeNum - GetTimeStamp()) / (24 * 3600))
if dayLuxuryNum < 0 then
monthCardData[i].endingTime = 0
monthCardData[i].state = 0--0 未领取 1 已领取
if i == MONTH_CARD_TYPE.MONTHCARD then
monthSaveAmt = 0--月卡累计总额
else
smonthSaveAmt = 0--豪华月卡累计总额
end
end
end
end
CheckRedPointStatus(RedPointType.MonthCard)
end
--单种月卡红点检测
function this.RefreshMonthCardRedPoint(type)
if monthCardData[type] then
if monthCardData[type].endingTime ~= 0 and monthCardData[type].state == 0 then
return true
end
end
return false
end
--所有月卡红点检测
function this.AllRefreshMonthCardRedPoint()
for i = 1, #monthCardData do
if monthCardData[i].endingTime ~= 0 and monthCardData[i].state == 0 then
return true
end
end
return false
end
--所有月卡激活状态
function this.GetMonthCardIsOpen(type)
if monthCardData[type] then
if monthCardData[type].endingTime ~= 0 then
return true
end
end
return false
end
--月卡结束
--礼包抢购是否开启
function this.IsGiftBuyActive()
local activeNum = 0

View File

@ -400,7 +400,7 @@ function this.RegisterRedCheckFunc()
RPData:AddCheckFunc(RedPointType.Setting_Title,PlayerManager.GetPlayerTitleRedPoint)
--月卡
--24暂时关闭放开这里就行
RPData:AddCheckFunc(RedPointType.MonthCard,OperatingManager.AllRefreshMonthCardRedPoint)
RPData:AddCheckFunc(RedPointType.MonthCard,MonthCardManager.AllRefreshMonthCardRedPoint)
--连续充值
RPData:AddCheckFunc(RedPointType.ContinuityRecharge,ActivityGiftManager.GetContinuityRechargeRedPoint)
-- 头像红点

View File

@ -571,7 +571,7 @@ function RewardItemPopup:RedCheckFuns()
--检测是否需要弹每日任务飘窗
TaskManager.RefreshShowDailyMissionTipPanel()
-- 检测月卡激活是否需要拍脸
OperatingManager.CheckMonthCardPatFace()
MonthCardManager.CheckMonthCardPatFace()
--寻宝迷踪红点检测
CheckRedPointStatus(RedPointType.XunBaoMiZong)
end

View File

@ -277,7 +277,7 @@ function this.GetMonthCardOpenState()
--else
-- isActive = false
--end
local curAllMonthCardData = OperatingManager.GetMonthCardData()
local curAllMonthCardData = MonthCardManager.GetMonthCardData()
isActive = curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD] and curAllMonthCardData[MONTH_CARD_TYPE.LUXURYMONTHCARD].endingTime ~= 0
return isActive
end

View File

@ -283,7 +283,7 @@ end
-- 点击领取按钮
function VipPanel:BtnRewardClick()
-- 豪华月卡的激活状态
local isActive = OperatingManager.GetMonthCardIsOpen(MONTH_CARD_TYPE.LUXURYMONTHCARD)--VipManager.GetMonthCardOpenState()
local isActive = MonthCardManager.GetMonthCardIsOpen(MONTH_CARD_TYPE.LUXURYMONTHCARD)--VipManager.GetMonthCardOpenState()
local getState = VipManager.GetRewardState()
if not isActive then
JumpManager.GoJump(36004)
@ -307,7 +307,7 @@ end
-- 设置领取按钮显示状态
function VipPanel:RefreshBtnState()
local isActive = OperatingManager.GetMonthCardIsOpen(MONTH_CARD_TYPE.LUXURYMONTHCARD)--VipManager.GetMonthCardOpenState()
local isActive = MonthCardManager.GetMonthCardIsOpen(MONTH_CARD_TYPE.LUXURYMONTHCARD)--VipManager.GetMonthCardOpenState()
Log("豪华月卡是否激活 -- " .. tostring(isActive))
local getState = VipManager.GetRewardState()
local str = ""