FindFairyManager = {};
local this = FindFairyManager
--本地表数据
this.rankRewardData={}--排名大奖数据
this.loginScore=0--登陆时的免费次数
this.myScore=0--我的积分
this.tempScore=0--临时积分
local index={39,40,41}--寻仙限时豪礼表索引(rechargeCommodityConfig没字段,暂时写死)
this.NoticeState=0--预告状态 0活动状态 1预告状态
--是否处于出海状态
this.isGoToSea=false
--是否是活动结束返回this.isOver=false
this.isOver=false
function this.Initialize()
end
-- 设置排名大奖数据
function this.SetRankRewardData()
local curActivityId=ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy)
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityRankingReward)) do
if(v.ActivityId==curActivityId) then
table.insert(this.rankRewardData,v)
end
end
end
--设置一些数据
function this.SetActivityData()
local activitData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FindFairy)
if activitData then
this.myScore = activitData.value
this.tempScore = activitData.value % 150
this.loginScore =PrivilegeManager.GetPrivilegeRemainValue(32)
end
--Log("获取数据后 我的积分"..this.myScore.." 免费次数 "..this.loginScore.." 临时积分"..this.tempScore.." ")
end
--设置免费抽取次数
function this.SetFreeExtract(num)
this.myScore = this.myScore + num * 10
this.tempScore = this.tempScore + num * 10
if num == 1 then--单抽
if PrivilegeManager.GetPrivilegeRemainValue(32) > 0 then
PrivilegeManager.RefreshPrivilegeUsedTimes(32,num)
end
else--十连
if PrivilegeManager.GetPrivilegeRemainValue(32) >= 10 then
PrivilegeManager.RefreshPrivilegeUsedTimes(32, num)
end
end
local addScore = math.floor(this.tempScore / 150)
if addScore > 0 then
this.tempScore = this.tempScore - addScore * 150
if PrivilegeManager.GetPrivilegeRemainValue(32)>=0 then
PrivilegeManager.RefreshPrivilegeUsedTimes(32, -addScore)
end
end
--local activitData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FindFairy)
--if activitData then
-- Log("我的积分"..activitData.value.." 临时积分"..(activitData.value % 150).." 免费次数".. PrivilegeManager.GetPrivilegeRemainValue(32).." ")
--end
end
--获取当前期活动Id
function this.GetCurActivityId()
local curActivityId=ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy)
return curActivityId
end
--获取英雄信息
function this.GetHeroData(activityId)
local scoreRewardData={}
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)) do
if(v.ActivityId==tonumber(activityId)) then
table.insert(scoreRewardData,v)
end
end
local heroLiveId = scoreRewardData[1].Drawing
local heroData= ConfigManager.GetConfigData(ConfigName.HeroConfig,heroLiveId)
return heroData
end
--获取按钮数据并重新排序数据(操作数据包含value) 寻仙积分奖励、寻仙盛典用
function this.GetBtnDataState(curActivityId)
local state={}
for i, v in pairs(ActivityGiftManager.mission) do
for i = 1, #v.mission do
if v.activityId==curActivityId then
table.insert(state,{missionId=v.mission[i].missionId,state=v.mission[i].state,value=v.value}) --插入领取状态 当前积分 对应表Id
end
end
end
local lingqu={}--领取(请忽略LowB的命名方式)
local weidacheng={}--未达成
local yilingqu={}--已领取
local newData={}
for i, v in ipairs(state) do
local data=ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig,v.missionId)
if v.value>= data.Values[1][1] and v.state==0 then
lingqu[#lingqu+1]=v
end
if v.value< data.Values[1][1] then
weidacheng[#weidacheng+1]=v
end
if v.value>= data.Values[1][1] and v.state==1 then
yilingqu[#yilingqu+1]=v
end
end
table.sort(lingqu, function (a, b) return a.missionId < b.missionId end)
table.sort(weidacheng, function (a, b) return a.missionId < b.missionId end)
table.sort(yilingqu, function (a, b) return a.missionId < b.missionId end)
for i = 1, #lingqu do
newData[#newData + 1] = lingqu[i]
end
for i = 1, #weidacheng do
newData[#newData + 1] = weidacheng[i]
end
for i = 1, #yilingqu do
newData[#newData + 1] = yilingqu[i]
end
return newData,#lingqu--返回重新排序后的数据,返回可领取的数量
end
--获取寻仙限时豪礼数据 并数据重组 寻仙限时豪礼用
function this.GetGiftBtnState()
local config={}
local data={}
local allConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig, "ShowType", DirectBuyType.XSHL)
for k,v in pairs(allConfigs) do
table.insert(config,ConfigManager.GetConfigData(ConfigName.RechargeCommodityConfig,v.Id))
local _data=OperatingManager.GetGiftGoodsInfo(config[k].Type,config[k].Id)
if _data then
table.insert(data,{server=_data,native=config[k]})--data由服务器数据与本地表数据组成
end
end
local notPurchas={} local purchased={} local newData={}
for k,v in pairs(data) do
if v.server.buyTimes< v.native.Limit then
table.insert(notPurchas,v)
else
table.insert(purchased,v)
end
end
table.sort(notPurchas,function(a,b) return a.native.Id0
return open
end
--检测奖励按钮红点
function this.CheckRewardBtn()
local open
local data,num =this.GetBtnDataState(ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy))
open = num>0
return open
end
-- --检测进阶礼的红点
-- function this.CheckFindFairyUpStarRedPoint()
-- --ActivityTypeDef.FindFairyUpStar
-- local activeData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.ShengXingYouLi)
-- if activeData then
-- for i = 1, #activeData.mission do
-- local sConFigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, activeData.mission[i].missionId)
-- if sConFigData then
-- local value = sConFigData.Values[1][1]
-- if activeData.mission[i].state == 0 and activeData.mission[i].progress >= value then
-- return true
-- end
-- end
-- end
-- end
-- return false
-- end
--检测寻仙盛典的红点
function this.CheckFindFairyCeremonyRedPoint()
--ActivityTypeDef.FindFairyUpStar
local activeData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FindFairyCeremony)
if activeData then
for i = 1, #activeData.mission do
local sConFigData = ConfigManager.GetConfigData(ConfigName.ActivityRewardConfig, activeData.mission[i].missionId)
if sConFigData then
local value = sConFigData.Values[1][1]
if activeData.mission[i].state == 0 and activeData.value >= value then
return true
end
end
end
end
return false
end
--获取寻仙天官赐福 and 每日仙缘礼
function this.GetGiftActiveBtnState(DirectBuyTypeVal)
local RechargeCommodityConfigIds = {}
local allConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.RechargeCommodityConfig, "ShowType", DirectBuyTypeVal)
for k,v in pairs(allConfigs) do
local _data=OperatingManager.GetGiftGoodsInfo(v.Type,v.Id)
if _data then
table.insert(RechargeCommodityConfigIds,v.Id)
end
end
return RechargeCommodityConfigIds
end
return this