203 lines
8.0 KiB
Lua
203 lines
8.0 KiB
Lua
PrayManager = {};
|
|
local this = PrayManager
|
|
local blessingRewardPool = ConfigManager.GetConfig(ConfigName.BlessingRewardPool)
|
|
this.patyRewardData = {}--16 个奖励 祈祷用
|
|
this.patyPreviewRewardData = {}--16 个奖励 预览用
|
|
--12 个奖励 选择库
|
|
this.legendReward = {}--传说奖励
|
|
this.supremeReward = {}--至尊奖励
|
|
|
|
this.extraRewardData = {}--额外奖励 抽到一定次数会有额外奖励 3#5#7#10#13#16
|
|
this.lastRefreshTime = 0
|
|
local count = 0--抽取过的总次数
|
|
function this.Initialize(_msg)
|
|
end
|
|
function this.InitializeData(_msg)
|
|
this.SetCount(_msg.count)
|
|
this.patyRewardData = {}
|
|
this.patyPreviewRewardData = {}
|
|
this.legendReward = {}
|
|
this.supremeReward = {}
|
|
this.extraRewardData = {}
|
|
if _msg == nil then
|
|
--Log("后端返回的云梦数据为空")
|
|
return
|
|
end
|
|
--Log("后端返回的云梦数据lastRefreshTime ".._msg.lastRefreshTime)
|
|
this.lastRefreshTime = 0
|
|
if _msg.lastRefreshTime and _msg.lastRefreshTime > 0 then
|
|
this.lastRefreshTime = _msg.lastRefreshTime
|
|
end
|
|
--16 个奖励 祈祷用
|
|
for i = 1, #_msg.fixReward do
|
|
local reward ={}
|
|
reward.id = _msg.fixReward[i].locationId
|
|
--Log("16 个奖励 祈福用 "..reward.id.." ".._msg.fixReward[i].rewardId.." ".._msg.fixReward[i].state)
|
|
reward.rewardId = _msg.fixReward[i].rewardId
|
|
if _msg.fixReward[i].rewardId > 0 then
|
|
reward.itemId = blessingRewardPool[_msg.fixReward[i].rewardId].Reward[1]
|
|
reward.num = blessingRewardPool[_msg.fixReward[i].rewardId].Reward[2]
|
|
else
|
|
reward.itemId = 0
|
|
reward.num = 0
|
|
end
|
|
-- 0未保存无物品 1 未保存有物品 2 已选择 3 已祈福
|
|
-- _msg.fixReward[i].state 0 时 选择保存之前 itemId<0 0未保存无物品 反之 1 未保存有物品
|
|
-- 1 时 选择保存之后 itemId<0 2 已选择 反之 3 已祈福
|
|
if _msg.fixReward[i].state == 0 then
|
|
if reward.itemId <= 0 then
|
|
reward.state = 0
|
|
else
|
|
reward.state = 1
|
|
end
|
|
elseif _msg.fixReward[i].state == 1 then
|
|
if reward.itemId <= 0 then
|
|
reward.state = 2
|
|
else
|
|
reward.state = 3
|
|
end
|
|
end
|
|
this.patyRewardData[reward.id] = reward
|
|
end
|
|
--16 个奖励 预览用
|
|
if _msg.rewardView then
|
|
for i = 1, #_msg.rewardView do
|
|
local reward ={}
|
|
reward.id = _msg.rewardView[i].locationId
|
|
--Log("16 个奖励 预览用 "..reward.id.." ".._msg.rewardView[i].rewardId)
|
|
reward.rewardId = _msg.rewardView[i].rewardId
|
|
if _msg.rewardView[i].rewardId > 0 then
|
|
reward.itemId = blessingRewardPool[_msg.rewardView[i].rewardId].Reward[1]
|
|
reward.num = blessingRewardPool[_msg.rewardView[i].rewardId].Reward[2]
|
|
end
|
|
reward.state = 2
|
|
for i = 1, #this.patyRewardData do
|
|
if this.patyRewardData[i].rewardId == reward.rewardId then
|
|
reward.state = 3
|
|
break
|
|
end
|
|
end
|
|
this.patyPreviewRewardData[reward.id] = reward
|
|
end
|
|
end
|
|
--12 个奖励 选择用
|
|
for i = 1, #_msg.legendReward do
|
|
local reward ={}
|
|
reward.id = _msg.legendReward[i].locationId
|
|
reward.rewardId = _msg.legendReward[i].rewardId
|
|
if _msg.legendReward[i].rewardId > 0 then
|
|
reward.itemId = blessingRewardPool[_msg.legendReward[i].rewardId].Reward[1]
|
|
reward.num = blessingRewardPool[_msg.legendReward[i].rewardId].Reward[2]
|
|
else
|
|
reward.itemId = 0
|
|
reward.num = 0
|
|
end
|
|
reward.type = 3
|
|
table.insert(this.legendReward,reward)
|
|
end
|
|
--for i = 1, #this.legendReward do
|
|
-- Log("传说奖励 选择用 "..this.legendReward[i].rewardId.." "..this.legendReward[i].itemId.." "..this.legendReward[i].type)
|
|
--end
|
|
for i = 1, #_msg.supremeReward do
|
|
local reward ={}
|
|
reward.id = _msg.supremeReward[i].locationId
|
|
reward.rewardId = _msg.supremeReward[i].rewardId
|
|
if _msg.supremeReward[i].rewardId > 0 then
|
|
reward.itemId = blessingRewardPool[_msg.supremeReward[i].rewardId].Reward[1]
|
|
reward.num = blessingRewardPool[_msg.supremeReward[i].rewardId].Reward[2]
|
|
else
|
|
reward.itemId = 0
|
|
reward.num = 0
|
|
end
|
|
reward.type = 4
|
|
table.insert(this.supremeReward,reward)
|
|
end
|
|
--for i = 1, #this.supremeReward do
|
|
-- Log("至尊奖励 选择用 "..this.supremeReward[i].rewardId.." "..this.supremeReward[i].itemId.." "..this.supremeReward[i].type)
|
|
--end
|
|
--6 个奖励 额外获得
|
|
local extraRewardCounts = ConfigManager.GetConfigData(ConfigName.BlessingConfig,1).Counts
|
|
for i = 1, #_msg.countReward do
|
|
local reward ={}
|
|
reward.id = _msg.countReward[i].locationId
|
|
reward.rewardId = _msg.countReward[i].rewardId
|
|
if _msg.countReward[i].rewardId > 0 then
|
|
reward.itemId = blessingRewardPool[_msg.countReward[i].rewardId].Reward[1]
|
|
reward.num = blessingRewardPool[_msg.countReward[i].rewardId].Reward[2]
|
|
else
|
|
reward.itemId = 0
|
|
reward.num = 0
|
|
end
|
|
reward.extraRewardCount = _msg.countReward[i].locationId
|
|
table.insert(this.extraRewardData,reward)
|
|
end
|
|
table.sort(this.extraRewardData, function(a,b) return a.extraRewardCount < b.extraRewardCount end)
|
|
--for i = 1, #this.extraRewardData do
|
|
-- Log("额外获得 "..this.extraRewardData[i].rewardId.." "..this.extraRewardData[i].itemId.." "..this.extraRewardData[i].extraRewardCount)
|
|
--end
|
|
--this.patyRewardData = _msgPatyList
|
|
end
|
|
--设置云梦祈祷自选奖励
|
|
function this.SetPatyRewardData(rewardListData)
|
|
local index = 1
|
|
for i, v in pairs(rewardListData) do
|
|
local reward ={}
|
|
reward.id = index
|
|
reward.rewardId = v.rewardId
|
|
reward.itemId = v.itemId
|
|
reward.num = v.num
|
|
reward.state = 1
|
|
this.patyRewardData[index] = reward
|
|
index = index+1
|
|
end
|
|
this.patyPreviewRewardData = {}
|
|
for i = 1, #this.patyRewardData do
|
|
this.patyRewardData[i].state = 2
|
|
|
|
--保存时 创建预览列表
|
|
local reward ={}
|
|
reward.id = this.patyRewardData[i].id
|
|
reward.rewardId = this.patyRewardData[i].rewardId
|
|
if this.patyRewardData[i].rewardId > 0 then
|
|
reward.itemId = blessingRewardPool[this.patyRewardData[i].rewardId].Reward[1]
|
|
reward.num = blessingRewardPool[this.patyRewardData[i].rewardId].Reward[2]
|
|
else
|
|
reward.itemId = 0
|
|
reward.num = 0
|
|
end
|
|
reward.state = 2
|
|
table.insert(this.patyPreviewRewardData,reward)
|
|
end
|
|
end
|
|
--设置云梦祈祷翻牌
|
|
function this.SetPatySingleRewardData(rewardId,chooseRewardId)
|
|
for i = 1, #this.patyRewardData do
|
|
if this.patyRewardData[i].id == rewardId then
|
|
this.patyRewardData[i].rewardId = chooseRewardId
|
|
if blessingRewardPool[chooseRewardId] then
|
|
this.patyRewardData[i].itemId = blessingRewardPool[chooseRewardId].Reward[1]
|
|
this.patyRewardData[i].num = blessingRewardPool[chooseRewardId].Reward[2]
|
|
--Log("设置云梦祈福翻牌 "..this.patyRewardData[i].itemId.." "..this.patyRewardData[i].num)
|
|
end
|
|
this.patyRewardData[i].state = 3
|
|
end
|
|
end
|
|
for i = 1, #this.patyPreviewRewardData do
|
|
if this.patyPreviewRewardData[i].rewardId == chooseRewardId then
|
|
this.patyPreviewRewardData[i].state = 3
|
|
end
|
|
end
|
|
this.SetCount(this.GetCount() + 1)
|
|
end
|
|
--重置云梦祈祷
|
|
function this.ResetPatyRewardData(_msg)
|
|
this.InitializeData(_msg)
|
|
end
|
|
|
|
function this.GetCount()
|
|
return count
|
|
end
|
|
function this.SetCount(_count)
|
|
count = _count
|
|
end
|
|
return this |