Improved menu interaction and added pinning functionality (#23)

* Improved menu interaction
* Added Overview message
* Added Pinning functionality. 
   Pinning a mission so you can easily pull up the briefing again.
* Added "Clear View" command to get rid of the message on the screen.
This commit is contained in:
2025-05-02 23:54:27 +02:00
committed by GitHub
parent ec859a4ff8
commit 3ed55f7aeb
13 changed files with 342 additions and 127 deletions
@@ -47,6 +47,13 @@ Stage.__index = Stage
local stageDrawingId = 100
---comment
---@param database Database
---@param stageConfig StageConfig
---@param logger Logger
---@param initData StageInitData
---@param missionPriority MissionPriority
---@return Stage
function Stage:superNew(database, stageConfig, logger, initData, missionPriority)
logger:debug("[BaseStage] Initiating stage with name: " .. initData.stageZoneName)
@@ -116,7 +123,7 @@ function Stage:superNew(database, stageConfig, logger, initData, missionPriority
local randomMissionNames = database:getRandomMissionsForStage(self.zoneName)
local randomMissionByName = {}
for _, missionZoneName in pairs(randomMissionNames) do
local mission = Spearhead.classes.stageClasses.Missions.Mission.New(missionZoneName, "primary", database, logger)
local mission = Spearhead.classes.stageClasses.Missions.Mission.New(missionZoneName, self._missionPriority, database, logger)
if mission then
if randomMissionByName[mission.name] == nil then
randomMissionByName[mission.name] = {}
+1 -1
View File
@@ -15,7 +15,7 @@ setmetatable(ExtraStage, Stage)
function ExtraStage.New(database, stageConfig, logger, initData)
local self = setmetatable({}, { __index = ExtraStage }) --[[@as ExtraStage]]
self:superNew(database, stageConfig, logger, initData)
self:superNew(database, stageConfig, logger, initData, "secondary")
self.OnPostBlueActivated = function (selfStage)
selfStage:MarkStage("GRAY")
+1 -1
View File
@@ -15,7 +15,7 @@ setmetatable(PrimaryStage, Stage)
function PrimaryStage.New(database, stageConfig, logger, initData)
local self = setmetatable({}, { __index = PrimaryStage }) --[[@as PrimaryStage]]
self:superNew(database, stageConfig, logger, initData)
self:superNew(database, stageConfig, logger, initData, "primary")
return self
end
+1 -1
View File
@@ -21,7 +21,7 @@ local WaitingStageInitData = {}
function WaitingStage.New(database, stageConfig, logger, initData)
local self = setmetatable({}, { __index = WaitingStage }) --[[@as WaitingStage]]
self:superNew(database, stageConfig, logger, initData)
self:superNew(database, stageConfig, logger, initData, "none")
self._waitTimeSeconds = 5
if initData.waitingSeconds and initData.waitingSeconds > 5 then self._waitTimeSeconds = initData.waitingSeconds end