Refactored Persistance managed by SpawnManager for groups, and added … (#53)

* Refactored Persistance managed by SpawnManager for groups, and added Persistence for buildables
* get last file based on the iteration number
* Working persistence of everything as a MVP version
This commit is contained in:
2025-07-11 20:06:09 +02:00
committed by GitHub
parent 3d19137970
commit b6a1285bde
30 changed files with 994 additions and 763 deletions
@@ -155,7 +155,7 @@ function BuildableMission:SpawnActive()
self._logger:debug("Spawning buildable mission: " .. self.code)
if self._noLandingZone == nil then
self._logger:error("No no landing zone found for mission: " .. self.code)
self._logger:error("No nolanding zone found for mission: " .. self.code)
return
end
@@ -65,8 +65,9 @@ MINIMAL_UNITS_ALIVE_RATIO = 0.21
---@param database Database
---@param logger Logger
---@param parentStage Stage
---@param spawnManager SpawnManager
---@return ZoneMission?
function ZoneMission.new(zoneName, priority, database, logger, parentStage)
function ZoneMission.new(zoneName, priority, database, logger, parentStage, spawnManager)
local Mission = Spearhead.classes.stageClasses.missions.baseMissions.Mission
ZoneMission.__index = ZoneMission
setmetatable(ZoneMission, Mission)
@@ -128,7 +129,7 @@ function ZoneMission.new(zoneName, priority, database, logger, parentStage)
if not missionData then return end
for _, groupName in pairs(missionData.BlueGroups) do
local spearheadGroup = SpearheadGroup.New(groupName)
local spearheadGroup = SpearheadGroup.New(groupName, spawnManager, true)
if spearheadGroup then
table.insert(self._missionGroups.blueGroups, spearheadGroup)
end
@@ -136,7 +137,7 @@ function ZoneMission.new(zoneName, priority, database, logger, parentStage)
end
for _, groupName in pairs(missionData.RedGroups) do
local spearheadGroup = SpearheadGroup.New(groupName)
local spearheadGroup = SpearheadGroup.New(groupName, spawnManager, true)
table.insert(self._missionGroups.redGroups, spearheadGroup)
local isGroupTarget = Spearhead.Util.startswith(string.lower(groupName), "tgt_")