Zone configuration (#62)

* wip

* updates on trigger zone labels, mgrs fix, mission briefings

---------

Co-authored-by: ex61wi <tim.rorije@ing.com>
Co-authored-by: dutchie032 <dutchie032>
This commit is contained in:
2025-09-03 11:58:48 +02:00
committed by GitHub
co-authored by ex61wi dutchie032 <dutchie032>
parent 1d4c0a8313
commit bd023b46ac
10 changed files with 195 additions and 184 deletions
@@ -5,6 +5,7 @@
---| "GRAY"
--- @class StageData
--- @field stageBriefing string?
--- @field missionsByCode table<string, Mission>
--- @field missionsByName table<string, Mission>
--- @field missions Array<ZoneMission>
@@ -29,6 +30,7 @@
--- @field zoneName string
--- @field stageName string?
--- @field stageNumber number
--- @field protected _missionCommandsHelper MissionCommandsHelper
--- @field protected _isActive boolean
--- @field protected _isComplete boolean
--- @field protected _missionPriority MissionPriority
@@ -83,6 +85,7 @@ function Stage:superNew(database, stageConfig, logger, initData, missionPriority
self._database = database
self._logger = logger
self._db = {
stageBriefing = nil,
missionsByCode = {},
missions = {},
sams ={},
@@ -98,6 +101,7 @@ function Stage:superNew(database, stageConfig, logger, initData, missionPriority
self._activeStage = -99
self._preActivated = false
self._stageConfig = stageConfig or {}
self._missionCommandsHelper = Spearhead.classes.stageClasses.helpers.MissionCommandsHelper.getOrCreate(logger.LogLevel)
local zone = Spearhead.DcsUtil.getZoneByName(self.zoneName)
if zone then
@@ -120,6 +124,7 @@ function Stage:superNew(database, stageConfig, logger, initData, missionPriority
table.insert(self._db.supplyHubs, supplyHub)
end
self._db.stageBriefing = database:getStageBriefingForStage(self.zoneName)
self._logger:info("Initiating new Stage with name: " .. self.zoneName)
---comment
@@ -238,7 +243,7 @@ function Stage:superNew(database, stageConfig, logger, initData, missionPriority
end
Spearhead.Events.AddStageNumberChangedListener(self)
return self
end
@@ -453,6 +458,10 @@ function Stage:OnStageNumberChanged(number)
if number == self.stageNumber then
self:ActivateStage()
if self._db and self._db.stageBriefing then
self._missionCommandsHelper:AddStageBriefing(self.zoneName, self._db.stageBriefing)
end
end
if previousActive <= self.stageNumber then
@@ -460,6 +469,10 @@ function Stage:OnStageNumberChanged(number)
self:ActivateBlueStage()
end
end
if number > self.stageNumber then
self._missionCommandsHelper:RemoveStageBriefing(self.zoneName)
end
end
function Stage:GetBriefing()