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