PGRData/Script/matrix/xentity/xexpedition/XExpeditionChapter.lua

95 lines
2.5 KiB
Lua
Raw Normal View History

-- 虚像地平线章节对象
local XExpeditionChapter = XClass(nil, "XExpeditionChapter")
local XStage = require("XEntity/XExpedition/XExpeditionStage")
--================
--构造函数
--================
function XExpeditionChapter:Ctor(chapterId)
self:Init(chapterId)
end
--================
--初始化
--================
function XExpeditionChapter:Init(chapterId)
self.ChapterId = chapterId
self.ChapterCfg = XExpeditionConfig.GetChapterCfgById(chapterId)
self.NightMareWave = 0
self.InfinityStageId = 0
self:InitStages()
self:InitInfinityStageId()
end
--================
--初始化关卡
--================
function XExpeditionChapter:InitStages()
local stageIds = XExpeditionConfig.GetEStageIdsByChapterId(self:GetChapterId())
self.Stages = {}
self.StageId2EStageDic = {}
for _, stageId in pairs(stageIds) do
local eStage = XStage.New(stageId)
table.insert(self.Stages, eStage)
self.StageId2EStageDic[eStage:GetStageId()] = eStage
end
end
function XExpeditionChapter:InitInfinityStageId()
for _, stage in pairs(self.Stages) do
if stage:GetIsInfinity() then
self.InfinityStageId = stage:GetStageId()
end
end
end
function XExpeditionChapter:SetScore(score)
self.Score = score
end
--================
--根据关卡表Id获取活动关卡对象
--@param stageId:Stage表Id
--================
function XExpeditionChapter:GetEStageByStageId(stageId)
return self.StageId2EStageDic and self.StageId2EStageDic[stageId]
end
--================
--获取章节ID
--================
function XExpeditionChapter:GetChapterId()
return self.ChapterId
end
--================
--获取章节时间ID
--================
function XExpeditionChapter:GetChapterTimeId()
return self.ChapterCfg and self.ChapterCfg.TimeId or 0
end
--================
--获取关卡对象列表
--================
function XExpeditionChapter:GetStages()
return self.Stages
end
--================
--获取无尽关卡当前波数
--================
function XExpeditionChapter:GetNightMareWave()
if XTool.IsNumberValid(self.NightMareWave) then
return self.NightMareWave
end
return 0
end
--================
--设置无尽关卡当前波数
--@param wave:波数
--================
function XExpeditionChapter:SetNightMareWave(wave)
self.NightMareWave = wave
end
--================
--获取无线关关卡Id
--================
function XExpeditionChapter:GetInfinityStageId()
return self.InfinityStageId
end
return XExpeditionChapter