350 lines
14 KiB
Lua
350 lines
14 KiB
Lua
DynamicActivityManager = {}
|
|
local this = DynamicActivityManager
|
|
local globalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
|
|
local rechargeCommodityConfig = ConfigManager.GetConfig(ConfigName.RechargeCommodityConfig)
|
|
local storeConfig = ConfigManager.GetConfig(ConfigName.StoreConfig)
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
|
|
this.ZhenQiBaoGeIndex = 0
|
|
this.curLevel = 0--次元殷勤等级
|
|
this.curActivityType = 0
|
|
this.OpenUIList = {}
|
|
this.selectIndex = {dataType = 0,goodsId = {}}
|
|
|
|
function this.SetSelectIndex(dataType,goodsId)
|
|
this.selectIndex.dataType = dataType
|
|
this.selectIndex.goodsId = goodsId
|
|
end
|
|
|
|
function this.Initialize()
|
|
end
|
|
|
|
function this.SheJiGetRankData(type,activityId,fun)
|
|
-- local allRankData,myRankData
|
|
-- RankingManager.InitData(type,function ()
|
|
-- allRankData,myRankData = RankingManager.GetRankingInfo()
|
|
-- if fun then
|
|
-- fun(allRankData,myRankData)
|
|
-- end
|
|
-- end,activityId)
|
|
|
|
RankingManager.GetRankingInfo(type, function(allRankData, myRankData)
|
|
if fun then
|
|
fun(allRankData,myRankData)
|
|
end
|
|
end, activityId)
|
|
end
|
|
|
|
--设置次元引擎等级
|
|
function this.SetCurLevel(level)
|
|
this.curLevel = level
|
|
end
|
|
|
|
--命运魔镜
|
|
function this.GetBaoKuData()
|
|
local actData = {}--全部数据
|
|
local initCardDatas = {}--35个矿坑的初始数据
|
|
local finalCardDatas = {}--35个矿坑抽取后的数据
|
|
local allData = {}--总奖励数据
|
|
local curBasicPool = 0
|
|
local curFinalPool = 0
|
|
|
|
local ActInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.YiJingBaoKu)--活动数据
|
|
local BlessingConfigNew = ConfigManager.GetConfigDataByKey(ConfigName.BlessingConfigNew,"ActivityId",ActInfo.activityId)
|
|
local RewardAllConfig = ConfigManager.GetConfig(ConfigName.BlessingRewardPoolNew)
|
|
--领取过的35条数据
|
|
for i = 1, 99 do
|
|
if ActInfo.mission[i] then
|
|
local v = ActInfo.mission[i]
|
|
if v.missionId < 100 then
|
|
local data = {}
|
|
data.Id = v.missionId
|
|
data.rewardId = v.progress
|
|
data.reward = {}
|
|
if v.progress ~= 0 then
|
|
data.reward = RewardAllConfig[v.progress].Reward
|
|
data.configId = RewardAllConfig[v.progress].Id
|
|
end
|
|
table.insert(finalCardDatas,data)
|
|
end
|
|
end
|
|
end
|
|
|
|
--大奖和当前层数数据
|
|
for i = 1, 1100 do
|
|
if ActInfo.mission[i] then
|
|
local v = ActInfo.mission[i]
|
|
if v.missionId == 100 then
|
|
actData.curLevel = v.progress
|
|
curBasicPool = BlessingConfigNew.BasicPoolId[v.progress]
|
|
curFinalPool = BlessingConfigNew.FinalPoolId
|
|
elseif v.missionId > 1000 then
|
|
local data = {}
|
|
data.rewardId = v.missionId-1000
|
|
data.progress = v.progress
|
|
data.configId = RewardAllConfig[data.rewardId].Id
|
|
table.insert(allData,data)
|
|
end
|
|
end
|
|
end
|
|
--初始的坑的35条数据
|
|
local RewardConfig = ConfigManager.GetAllConfigsDataByKey(ConfigName.BlessingRewardPoolNew,"PoolId",curBasicPool)
|
|
local index = 1
|
|
for i = 1, #RewardConfig do
|
|
local j = 1
|
|
while(j <= RewardConfig[i].InitializeNum) do
|
|
local data = {}
|
|
if index ~= 18 then
|
|
data.rewardId = RewardConfig[i].Id
|
|
data.reward = {}
|
|
data.reward = RewardConfig[i].Reward
|
|
j = j + 1
|
|
else
|
|
data.rewardId = 0
|
|
data.reward = nil
|
|
end
|
|
table.insert(initCardDatas,data)
|
|
index = index + 1
|
|
end
|
|
end
|
|
|
|
actData.activityId = ActInfo.activityId
|
|
actData.curBasicPool = curBasicPool
|
|
actData.curFinalPool = curFinalPool
|
|
actData.selectId = ActInfo.value
|
|
actData.endTime = ActInfo.endTime
|
|
actData.initCardDatas = initCardDatas
|
|
actData.finalCardDatas = finalCardDatas
|
|
actData.allData = allData
|
|
|
|
return actData
|
|
end
|
|
|
|
--命运魔镜奖励的剩余数据
|
|
function this.GetLeftRewardData()
|
|
local actData = this.GetBaoKuData()
|
|
local finalCardDatas = actData.finalCardDatas
|
|
local RewardConfig = ConfigManager.GetAllConfigsDataByKey(ConfigName.BlessingRewardPoolNew,"PoolId",actData.curLevel)--初始所有奖励数据
|
|
local data={}
|
|
for i = 1, #RewardConfig do
|
|
data[RewardConfig[i].Id] = {}
|
|
data[RewardConfig[i].Id].id = RewardConfig[i].Id
|
|
data[RewardConfig[i].Id].reward = RewardConfig[i].Reward
|
|
data[RewardConfig[i].Id].progress = RewardConfig[i].InitializeNum
|
|
data[RewardConfig[i].Id].limit = RewardConfig[i].InitializeNum
|
|
end
|
|
|
|
for i = 1, #finalCardDatas do
|
|
if finalCardDatas[i].rewardId and finalCardDatas[i].rewardId ~= 0 and finalCardDatas[i].rewardId ~= actData.selectId then
|
|
data[finalCardDatas[i].rewardId].progress = data[finalCardDatas[i].rewardId].progress - 1
|
|
end
|
|
end
|
|
return data
|
|
end
|
|
|
|
function this.GetActivityTableDataByPageInde(pageIndex)
|
|
local activityDic = {}
|
|
local functionDic = {}
|
|
local activityGroupsData = {}
|
|
local activityDatas = {}
|
|
local configs = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityGroups,"PageType",pageIndex)
|
|
for i = 1 , #configs do
|
|
if configs[i].ActiveType > 0 then
|
|
if not activityDic[configs[i].ActiveType] then
|
|
if configs[i].ShopData and configs[i].ShopData[1][1] == -9999 then
|
|
local id = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.DynamicAct)
|
|
if id and id > 0 and ActivityGiftManager.IsQualifiled(ActivityTypeDef.DynamicAct) and globalActivity[id].ShowArt == configs[i].ActId then
|
|
activityDic[configs[i].ActiveType] = configs[i]
|
|
table.insert(activityGroupsData,configs[i])
|
|
end
|
|
elseif configs[i].ShopData and configs[i].ShopData[1][1] == -6666 then
|
|
local id = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FestivalActivity)
|
|
if id and id > 0 and ActivityGiftManager.IsQualifiled(ActivityTypeDef.FestivalActivity) and globalActivity[id].ShowArt == configs[i].ActId then
|
|
activityDic[configs[i].ActiveType] = configs[i]
|
|
table.insert(activityGroupsData,configs[i])
|
|
end
|
|
else
|
|
activityDic[configs[i].ActiveType] = configs[i]
|
|
table.insert(activityGroupsData,configs[i])
|
|
end
|
|
end
|
|
elseif configs[i].FunType > 0 then
|
|
if not activityDic[configs[i].FunType] or configs[i].Id == 2006 then
|
|
functionDic[configs[i].FunType] = configs[i]
|
|
table.insert(activityGroupsData,configs[i])
|
|
end
|
|
elseif configs[i].ShopData and configs[i].ShopData[1][1] == -9999 then
|
|
local id = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.DynamicAct)
|
|
if id and id > 0 and ActivityGiftManager.IsQualifiled(ActivityTypeDef.DynamicAct) and globalActivity[id].ShowArt == configs[i].ActId then
|
|
table.insert(activityGroupsData,configs[i])
|
|
end
|
|
elseif configs[i].ActiveType == 0 and configs[i].FunType == 0 then
|
|
table.insert(activityGroupsData,configs[i])
|
|
end
|
|
end
|
|
table.sort(activityGroupsData,function(a,b)
|
|
if a.Sort == b.Sort then
|
|
return a.ActId > b.ActId
|
|
else
|
|
return a.Sort < b.Sort
|
|
end
|
|
end)
|
|
return activityGroupsData
|
|
end
|
|
|
|
-- 判段跳转index活动是否开启
|
|
function this.IsActivityOpenByJumpIndex(pageIndex, jumpIndex)
|
|
local tb = this.GetActivityTableDataByPageInde(pageIndex)
|
|
for i = 1, #tb do
|
|
if tb[i].Sort == jumpIndex then
|
|
if tb[i].IfBack then
|
|
if tb[i].ActiveType > 0 then
|
|
local id = ActivityGiftManager.IsActivityTypeOpen(tb[i].ActiveType)
|
|
return id and id > 0 and ActivityGiftManager.IsQualifiled(tb[i].ActiveType)
|
|
elseif tb[i].FunType > 0 then
|
|
return ActTimeCtrlManager.SingleFuncState(tb[i].FunType)
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
|
|
-- 玩家是否有资格开启
|
|
function this.IsQualifiled(id)
|
|
-- 相同类型活动解锁类型相同,所以只判断第一个
|
|
local data = ConfigManager.GetConfigData(ConfigName.ActivityGroups,id)
|
|
if not data then return true end
|
|
-- 当前玩家等级
|
|
local qualifiled = false
|
|
local playerLv = PlayerManager.level
|
|
local openRule = data.OpenRules
|
|
if not openRule or #openRule < 1 then
|
|
return true
|
|
end
|
|
if openRule[1] == 1 then -- 关卡开启
|
|
qualifiled = FightPointPassManager.IsFightPointPass(openRule[2])
|
|
elseif openRule[1] == 2 then -- 等级开启
|
|
qualifiled = playerLv >= openRule[2]
|
|
elseif openRule[1] == 3 then -- 工坊等级开启
|
|
qualifiled = WorkShopManager.WorkShopData.lv >= openRule[2]
|
|
end
|
|
return qualifiled
|
|
end
|
|
|
|
--成长手册
|
|
function this.CreatSingleData(shopData, DataTypeIndex, buyType)
|
|
local _data = {}
|
|
local data = {}
|
|
local curSortId = 0--临时一个数值 只用做排序用
|
|
if DataTypeIndex == DataType.Shop then
|
|
data.shopData = shopData
|
|
data.shopItemData = storeConfig[shopData.id]
|
|
data.shows = data.shopItemData.Goods
|
|
data.tipImageText = GetLanguageStrById(11356)
|
|
data.tagName = GetLanguageStrById(itemConfig[data.shows[1][1]].Name)
|
|
data.boughtNum = ShopManager.GetShopItemHadBuyTimes(buyType, shopData.id)
|
|
data.limitNum = ShopManager.GetShopItemLimitBuyCount(shopData.id)
|
|
if data.limitNum == -1 then
|
|
curSortId = 3
|
|
elseif data.limitNum - data.boughtNum > 0 then
|
|
curSortId = 2
|
|
end
|
|
data.costId,data.finalNum,data.oriCostNum = ShopManager.calculateBuyCost(buyType, shopData.id, 1)
|
|
data.price = data.finalNum
|
|
elseif DataTypeIndex == DataType.Direct and rechargeCommodityConfig[shopData.goodsId].ShowType == buyType then
|
|
data.shopData = shopData
|
|
data.shopItemData = rechargeCommodityConfig[shopData.goodsId]
|
|
data.shows = data.shopItemData.RewardShow
|
|
data.tagName = GetLanguageStrById(data.shopItemData.Name)
|
|
data.boughtNum = OperatingManager.GetGoodsBuyTime(GoodsTypeDef.DirectPurchaseGift,shopData.goodsId)
|
|
data.limitNum = rechargeCommodityConfig[shopData.goodsId].Limit
|
|
if data.limitNum == -1 then
|
|
curSortId = 2
|
|
elseif data.limitNum - data.boughtNum > 0 then
|
|
curSortId = 1
|
|
end
|
|
data.costId = nil
|
|
data.finalNum = MoneyUtil.GetMoney(data.shopItemData.Price)
|
|
data.oriCostNum = nil
|
|
if data.shopItemData.DailyUpdate == 7 then
|
|
data.tipImageText = GetLanguageStrById(11699)
|
|
elseif data.shopItemData.DailyUpdate == 15 then
|
|
data.tipImageText = GetLanguageStrById(11700)
|
|
elseif data.shopItemData.DailyUpdate == 30 then
|
|
data.tipImageText = GetLanguageStrById(11357)
|
|
else
|
|
data.tipImageText = nil
|
|
end
|
|
data.price = MoneyUtil.GetMoney(data.finalNum)
|
|
data.endTime = shopData.endTime
|
|
else
|
|
return nil
|
|
end
|
|
data.buyInfo = GetLanguageStrById(10580)..data.limitNum - data.boughtNum..GetLanguageStrById(10048)
|
|
_data.data = data
|
|
_data.DataType = DataTypeIndex
|
|
_data.sortId = curSortId
|
|
_data.buyType = buyType
|
|
return _data
|
|
end
|
|
|
|
-- local stateSort = {
|
|
-- [1] = 1,
|
|
-- [2] = 4,
|
|
-- [0] = 3,
|
|
-- [-1] = 2,
|
|
-- }
|
|
|
|
-- function this.GetMissionDataByActId(activityId)
|
|
-- local actiInfo = ActivityGiftManager.GetActivityInfoByType(activityId)
|
|
-- local havaBought = OperatingManager.GetGiftGoodsInfo(GoodsTypeDef.GrowthReward, GlobalActivity[activityId].CanBuyRechargeId[1])--当前礼包ID(101\102\103\104\105)
|
|
-- local data = {}
|
|
-- for k,v in ipairs(actiInfo.mission) do
|
|
-- table.insert(data,this.CreatSingleMissionData(v,havaBought))
|
|
-- end
|
|
-- table.sort(data, function(a, b)
|
|
-- if stateSort[a.state] == stateSort[b.state] then
|
|
-- return a.missionId < b.missionId
|
|
-- else
|
|
-- return stateSort[a.state] > stateSort[b.state]
|
|
-- end
|
|
-- end)
|
|
-- return data
|
|
-- end
|
|
|
|
-- function this.CreatSingleMissionData(missionData,havaBought)
|
|
-- local data = {}
|
|
-- data.missionId = missionData.missionId
|
|
-- data.shows = actRewardConfig[missionData.missionId].Reward
|
|
-- data.itemName = GetLanguageStrById(itemConfig[data.shows[1][1]].Name)
|
|
-- data.content = GetLanguageStrById(11367)..actRewardConfig[data.missionId].Values[1][2]..GetLanguageStrById(11368)
|
|
-- data.isCanGetReward = PlayerManager.level >= actRewardConfig[data.missionId].Values[1][2]
|
|
-- --0 未领取(等级已达到,未购买基金) 1 已领取 -1 未达到等级 2可领取
|
|
-- if missionData.state == 0 then
|
|
-- if PlayerManager.level < actRewardConfig[data.missionId].Values[1][2] then
|
|
-- data.state = -1
|
|
-- elseif havaBought.buyTimes > 0 then
|
|
-- data.state = 2
|
|
-- else
|
|
-- data.state = 0
|
|
-- end
|
|
-- else
|
|
-- data.state = missionData.state
|
|
-- end
|
|
|
|
-- return data
|
|
-- end
|
|
|
|
-- function this.RecrutDetailData(actType)
|
|
-- if actType == ActivityTypeDef.LingShouBaoGe then
|
|
-- return DynamicActivityManager.LingShouBuildData()
|
|
-- elseif actType == ActivityTypeDef.XiangYaoDuoBao then
|
|
-- return DynamicActivityManager.XiangYaoBuildData()
|
|
-- else
|
|
-- return nil,nil,nil
|
|
-- end
|
|
-- end
|
|
|
|
return this |