miduo_client/Assets/ManagedResources/~Lua/Modules/NewActivity/CommonActPageManager.lua

201 lines
8.9 KiB
Lua
Raw Normal View History

2021-04-16 14:58:40 +08:00
CommonActPageManager = {}
local this = CommonActPageManager
2021-04-16 16:21:34 +08:00
local dataList = {}
2021-04-16 14:58:40 +08:00
function this.Initialize()
end
2021-04-20 11:17:50 +08:00
--初始化活动的特殊数据
local TypeInitFunc = {
[ActivityTypeDef.YunYouShangRen] = function ()
local curData = dataList[ActivityTypeDef.YunYouShangRen]
local configData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ComposeActivity,"ActivityId",curData.activityId)
for i = 1, #curData.rewards do
for j = 1, #configData do
if curData.rewards[i].missionId == configData[j].Id then
curData.rewards[i].otherData.needItems = configData[j].NeedItems
curData.rewards[i].otherData.count = configData[j].Count
curData.rewards[i].otherData.composeType = configData[j].ComposeType
curData.rewards[i].otherData.selectId = 0
end
end
end
2021-04-20 20:32:36 +08:00
end,
[ActivityTypeDef.ContinuityRecharge] = function ()
this.GetExpertData(3,ActivityTypeDef.ContinuityRecharge)
end,
[ActivityTypeDef.UpStarExper] = function ()--进阶达人
this.GetExpertData(1,ActivityTypeDef.UpStarExper)
end,
[ActivityTypeDef.Talisman] = function ()--法宝达人
this.GetExpertData(1,ActivityTypeDef.Talisman)
end,
[ActivityTypeDef.SoulPrint] = function ()--魂印达人
this.GetExpertData(1,ActivityTypeDef.SoulPrint)
end,
[ActivityTypeDef.EquipExper] = function ()--装备达人
this.GetExpertData(1,ActivityTypeDef.EquipExper)
end,
[ActivityTypeDef.EnergyExper] = function ()--体力达人
this.GetExpertData(2,ActivityTypeDef.EnergyExper)
end,
[ActivityTypeDef.FindTreasureExper] = function ()--寻宝达人
this.GetExpertData(1,ActivityTypeDef.FindTreasureExper)
end,
[ActivityTypeDef.ExpeditionExper] = function ()--天宫达人
this.GetExpertData(1,ActivityTypeDef.ExpeditionExper)
end,
[ActivityTypeDef.FastExplore] = function ()--极速达人
this.GetExpertData(2,ActivityTypeDef.FastExplore)
end,
[ActivityTypeDef.GoldExper] = function ()--点金达人
this.GetExpertData(2,ActivityTypeDef.GoldExper)
end,
[ActivityTypeDef.FightExper] = function ()--副本达人
this.GetExpertData(2,ActivityTypeDef.FightExper)
end,
[ActivityTypeDef.AreaExper] = function ()
this.GetExpertData(2,ActivityTypeDef.AreaExper)
end,
[ActivityTypeDef.slhjExper] = function ()--森罗幻境达人
this.GetExpertData(2,ActivityTypeDef.slhjExper)
end,
[ActivityTypeDef.LuckyTurnExper] = function ()--探宝达人
this.GetExpertData(2,ActivityTypeDef.LuckyTurnExper)
end,
[ActivityTypeDef.RecruitExper] = function ()--征募达人
this.GetExpertData(2,ActivityTypeDef.RecruitExper)
end,
[ActivityTypeDef.SecretBoxExper] = function ()--秘宝达人
this.GetExpertData(2,ActivityTypeDef.SecretBoxExper)
end,
[ActivityTypeDef.AccumulativeRechargeExper] = function ()---日累计充值
this.GetExpertData(2,ActivityTypeDef.AccumulativeRechargeExper)
end,
[ActivityTypeDef.UpLvAct] = function ()---日累计充值
this.GetExpertData(2,ActivityTypeDef.UpLvAct)
end,
2021-04-20 11:17:50 +08:00
}
2021-04-20 20:32:36 +08:00
function this.GetExpertData(indexType,actType)
local curData = dataList[actType]
local actRewardConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId", actType)
for i = 1, #curData.rewards do
for j = 1, #actRewardConfigs do
if curData.rewards[i].missionId == actRewardConfigs[j].Id then
if indexType == 3 then -- 3 积天豪礼
curData.rewards[i].otherData.Values = actRewardConfigs[j].Values[1][2]
if curData.rewards[i].state == 1 then
curData.rewards[i].otherData.state = 2
elseif curData.rewards[i].progress == 1 then
curData.rewards[i].otherData.state = 1
else
curData.rewards[i].otherData.state = 0
end
curData.rewards[i].otherData.info = string.format("%s/%s",curData.rewards[i].progress,curData.rewards[i].otherData.Values)
else --日累计充值 达人
if actType == ActivityTypeDef.AccumulativeRechargeExper then
curData.rewards[i].otherData.Values = actRewardConfigs[j].Values[1][1]
elseif actType == ActivityTypeDef.ContinuityRecharge then
curData.rewards[i].otherData.Values = actRewardConfigs[j].Values[2][1]
end
if curData.rewards[i].state == 1 then
curData.rewards[i].otherData.state = 2
else
if indexType == 1 then
if curData.rewards[i].progress < curData.rewards[i].otherData.Values then
curData.rewards[i].otherData.state = 0
else
curData.rewards[i].otherData.state = 1
end
curData.rewardends[i].otherData.info = string.format("%s/%s",curData.rewards[i].progress,curData.rewards[i].otherData.Values)
elseif indexType == 2 then
if curData.value < curData.rewards[i].otherData.Values then
curData.rewards[i].otherData.state = 0
else
curData.rewards[i].otherData.state = 1
end
curData.rewards[i].otherData.info = string.format("%s/%s",curData.value,curData.rewards[i].otherData.Values)
end
end
end
curData.rewards[i].otherData.Reward = actRewardConfigs[j].Reward
curData.rewards[i].otherData.ContentsShow = actRewardConfigs[j].ContentsShow
curData.rewards[i].otherData.Sort = actRewardConfigs[j].Sort
end
end
end
end
2021-04-20 11:17:50 +08:00
--数据刷新时是否需要前端自己刷新,如果有就写里面
local TypeUpdateFunc = {
[ActivityTypeDef.YunYouShangRen] = function ()
local curData = dataList[ActivityTypeDef.YunYouShangRen]
for i = 1, #curData.rewards do
curData.rewards[i].otherData.selectId = 0
end
end
}
2021-04-16 14:58:40 +08:00
function this.GetData(actType)
2021-04-16 16:21:34 +08:00
if not dataList[actType] then
dataList[actType] = this.InitSingleTypeData(actType)
2021-04-20 16:43:16 +08:00
if TypeInitFunc[actType] then
TypeInitFunc[actType]()
2021-04-20 20:32:36 +08:00
else
TypeInitFunc[-1]()
2021-04-20 16:43:16 +08:00
end
2021-04-16 14:58:40 +08:00
end
2021-04-16 16:21:34 +08:00
this.UpdateSingleTypeData(actType)
2021-04-20 16:43:16 +08:00
if TypeUpdateFunc[actType] then
TypeUpdateFunc[actType]()
end
2021-04-17 14:01:12 +08:00
return dataList[actType]
2021-04-16 14:58:40 +08:00
end
2021-04-16 16:21:34 +08:00
function this.InitSingleTypeData(actType)
local singleTypeData = {}
2021-04-17 14:01:12 +08:00
local data = ActivityGiftManager.GetActivityTypeInfo(actType)
2021-04-20 11:17:50 +08:00
-- LogYellow("InitData activityId:"..tostring(data.activityId).." value:"..tostring(data.value).." startTime:"..tostring(data.startTime).." endTime:"..tostring(data.endTime))
2021-04-16 16:21:34 +08:00
singleTypeData.activityId = data.activityId
singleTypeData.value = data.value
singleTypeData.startTime = data.startTime
singleTypeData.endTime = data.endTime
singleTypeData.rewards = {}
2021-04-20 11:17:50 +08:00
for i = 1, #data.mission do
2021-04-16 16:21:34 +08:00
local reward = {}
2021-04-20 11:17:50 +08:00
reward.missionId = data.mission[i].missionId or 0
reward.progress = data.mission[i].progress or 0
reward.state = data.mission[i].state or 0
reward.otherData = {}
table.insert(singleTypeData.rewards,reward)
2021-04-16 16:21:34 +08:00
end
return singleTypeData
end
function this.UpdateSingleTypeData(actType)
2021-04-17 14:01:12 +08:00
local data = ActivityGiftManager.GetActivityTypeInfo(actType)
2021-04-19 19:44:54 +08:00
-- LogPink("Update".." activityId:"..tostring(data.activityId).." value:"..tostring(data.value).." startTime:"..tostring(data.startTime).." endTime:"..tostring(data.endTime))
2021-04-16 16:21:34 +08:00
dataList[actType].activityId = data.activityId--应该无变化
dataList[actType].value = data.value
dataList[actType].startTime = data.startTime--应该无变化
dataList[actType].endTime = data.endTime--应该无变化
for i = 1, #data.mission do
2021-04-19 19:44:54 +08:00
for j = 1, #dataList[actType].rewards do
if data.mission[i].missionId == dataList[actType].rewards[j].missionId then
dataList[actType].rewards[j].missionId = data.mission[i].missionId or 0--应该无变化
dataList[actType].rewards[j].progress = data.mission[i].progress or 0
dataList[actType].rewards[j].state = data.mission[i].state or 0
end
2021-04-17 14:01:12 +08:00
end
2021-04-16 16:21:34 +08:00
end
2021-04-19 19:44:54 +08:00
table.sort(dataList[actType].rewards,function (a,b)
if a.progress == b.progress then
return a.missionId < b.missionId
else
return a.progress > b.progress
end
end)
2021-04-16 14:58:40 +08:00
end
return CommonActPageManager