PGRData/Script/matrix/xentity/xmoewar/XMoeWarPreparationBaseData.lua

289 lines
8.3 KiB
Lua
Raw Normal View History

--萌战赛事筹备--基本数据
local type = type
local tableInsert = table.insert
local XMoeWarPreparationHelper = require("XEntity/XMoeWar/XMoeWarPreparationHelper")
local XMoeWarPreparationAssistance = require("XEntity/XMoeWar/XMoeWarPreparationAssistance")
local XMoeWarPreparationVoteItem = require("XEntity/XMoeWar/XMoeWarPreparationVoteItem")
local XMoeWarPreparationStage = require("XEntity/XMoeWar/XMoeWarPreparationStage")
local XMoeWarPreparationBaseData = XClass(nil, "XMoeWarPreparationBaseData")
local DefaultMain = {
ActivityId = 0, --活动id
MatchId = 0, --赛事阶段id
Stage = {}, --关卡对象
GetRewardGears = {}, --已领取奖励的档位字典
HelpersDic = {}, --帮手字典(服务端是列表)
Assistance = {}, --援助数据
VoteItemsDic = {}, --应援道具
}
function XMoeWarPreparationBaseData:Ctor()
for key, value in pairs(DefaultMain) do
if type(value) == "table" then
self[key] = {}
else
self[key] = value
end
end
self.Assistance = XMoeWarPreparationAssistance.New()
self.Stage = XMoeWarPreparationStage.New()
end
function XMoeWarPreparationBaseData:UpdateData(data)
if not data then return end
self.ActivityId = data.ActivityId
self.MatchId = data.MatchId
self.GetRewardGears = data.GetRewardGears
self:UpdateAssistance(data.Assistance)
self:UpdateHelper(data.Helpers)
self:UpdateVoteItems(data.VoteItems)
self:UpdateStage(data.Stage)
end
------关卡对象 begin----------
function XMoeWarPreparationBaseData:UpdateStage(stage)
self.Stage:UpdateData(stage)
end
function XMoeWarPreparationBaseData:GetStages()
return self.Stage:GetStages()
end
function XMoeWarPreparationBaseData:GetStagesAndOneReserveStage()
return self.Stage:GetStagesAndOneReserveStage()
end
function XMoeWarPreparationBaseData:GetReserveStageTimeByIndex(index)
return self.Stage:GetReserveStageTimeByIndex(index)
end
function XMoeWarPreparationBaseData:GetAllOpenStageIdList()
return self.Stage:GetAllOpenStageIdList()
end
function XMoeWarPreparationBaseData:GetAllOpenStageCount()
return self.Stage:GetAllOpenStageCount()
end
------关卡对象 end----------
------应援数据 begin----------
function XMoeWarPreparationBaseData:UpdateVoteItems(voteItems)
for _, voteItem in pairs(voteItems) do
self:UpdateVoteItem(voteItem)
end
end
function XMoeWarPreparationBaseData:UpdateVoteItem(voteItem)
if not self.VoteItemsDic[voteItem.ItemId] then
self.VoteItemsDic[voteItem.ItemId] = XMoeWarPreparationVoteItem.New()
end
self.VoteItemsDic[voteItem.ItemId]:UpdateData(voteItem)
end
function XMoeWarPreparationBaseData:GetVoteItemCount(itemId)
return self.VoteItemsDic[itemId] and self.VoteItemsDic[itemId]:GetItemCount() or 0
end
------应援数据 end----------
--------帮手 begin----------
function XMoeWarPreparationBaseData:GetHelper(helperId)
if not self.HelpersDic[helperId] then
self.HelpersDic[helperId] = XMoeWarPreparationHelper.New()
self.HelpersDic[helperId]:SetId(helperId)
end
return self.HelpersDic[helperId]
end
function XMoeWarPreparationBaseData:UpdateHelper(helpers)
self.HelpersDic = {}
for _, helperData in ipairs(helpers) do
local helper = self:GetHelper(helperData.Id)
helper:UpdateData(helperData)
end
end
function XMoeWarPreparationBaseData:GetHelperStatus(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetStatus()
end
function XMoeWarPreparationBaseData:GetHelperExpirationTime(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetExpirationTime()
end
function XMoeWarPreparationBaseData:GetTotalQuestionCount(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetTotalQuestionCount()
end
function XMoeWarPreparationBaseData:GetAnswerRecords(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetAnswerRecords()
end
function XMoeWarPreparationBaseData:GetFinishQuestionCount(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetFinishQuestionCount()
end
function XMoeWarPreparationBaseData:GetAllHelpersDic()
return self.HelpersDic
end
function XMoeWarPreparationBaseData:InsertQuestion(helperId, questionId)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:InsertQuestion(questionId)
end
function XMoeWarPreparationBaseData:UpdateAnswerRecord(helperId, answerId, isRight)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:UpdateAnswerRecord(answerId, isRight)
end
function XMoeWarPreparationBaseData:SetCurrQuestionId(helperId, questionId)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:SetCurrQuestionId(questionId)
end
function XMoeWarPreparationBaseData:GetCurrQuestionId(helperId)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
return helper:GetCurrQuestionId()
end
function XMoeWarPreparationBaseData:SetHelperStatus(helperId, status)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:SetStatus(status)
end
function XMoeWarPreparationBaseData:SetHelperExpirationTime(helperId, expirationTime)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:SetExpirationTime(expirationTime)
end
function XMoeWarPreparationBaseData:ClearAnswerRecords(helperId)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:ClearAnswerRecords()
end
function XMoeWarPreparationBaseData:AddOnceFinishQuestionCount(helperId)
if not XTool.IsNumberValid(helperId) then
return
end
local helper = self:GetHelper(helperId)
helper:AddOnceFinishQuestionCount()
end
function XMoeWarPreparationBaseData:QuestionIsRight(helperId, questionId)
if not XTool.IsNumberValid(helperId) or not XTool.IsNumberValid(questionId) then
return false
end
local helper = self:GetHelper(helperId)
return helper:QuestionIsRight(questionId)
end
function XMoeWarPreparationBaseData:GetAnswerId(helperId, questionId)
if not XTool.IsNumberValid(helperId) or not XTool.IsNumberValid(questionId) then
return false
end
local helper = self:GetHelper(helperId)
return helper:GetAnswerId(questionId)
end
function XMoeWarPreparationBaseData:GetMoodValue(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetMoodValue()
end
function XMoeWarPreparationBaseData:GetLastMoodValue(helperId)
if not XTool.IsNumberValid(helperId) then
return 0
end
local helper = self:GetHelper(helperId)
return helper:GetLastMoodValue()
end
--------帮手 end-----------
------援助数据 begin----------
function XMoeWarPreparationBaseData:UpdateAssistance(assistance)
self.Assistance:UpdateData(assistance)
end
function XMoeWarPreparationBaseData:GetAssistanceCount()
return self.Assistance:GetAssistanceCount()
end
function XMoeWarPreparationBaseData:GetAssistanceRecoveryTime()
return self.Assistance:GetRecoveryTime()
end
------援助数据 end----------
function XMoeWarPreparationBaseData:GetMatchId()
return self.MatchId
end
function XMoeWarPreparationBaseData:GetActivityId()
return self.ActivityId
end
function XMoeWarPreparationBaseData:SetOverReceiveRewardGear(gearId)
tableInsert(self.GetRewardGears, gearId)
end
function XMoeWarPreparationBaseData:IsGetRewardGears(gear)
for _, gearId in pairs(self.GetRewardGears) do
if gear == gearId then
return true
end
end
return false
end
function XMoeWarPreparationBaseData:ClearGetRewardGears()
self.GetRewardGears = {}
end
return XMoeWarPreparationBaseData