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
+10 -4
View File
@@ -3,8 +3,10 @@
---@class Mission : OnUnitLostListener
---@field name string
---@field missionType missionType
---@field displayMissionType string
---@field code string
---@field priority MissionPriority
---@field location Vec2?
---@field private _state MissionState
---@field private _zoneName string
---@field private _database Database
@@ -12,10 +14,9 @@
---@field private _missionBriefing string?
---@field private _missionGroups MissionGroups
---@field private _completeListeners Array<MissionCompleteListener>
---@field private _missionCommandsHelper MissionCommandsHelper
local Mission = {}
--- @class MissionCompleteListener
--- @field OnMissionComplete fun(self: any, mission:Mission)
@@ -78,12 +79,16 @@ function Mission.New(zoneName, priority, database, logger)
self._zoneName = zoneName
self.name = parsed.missionName
self.missionType = parsed.type
self.displayMissionType = self.missionType or "unknown"
if self.missionType == "SAM" then self.displayMissionType = "DEAD" end
self.location = database:GetLocationForMissionZone(zoneName)
self.code = tostring(database:GetNewMissionCode())
self.priority = priority
self._state = "NEW"
self._logger = logger
self._database = database
self._missionCommandsHelper = Spearhead.classes.stageClasses.helpers.MissionCommandsHelper.getOrCreate(logger.LogLevel)
self._completeListeners = {}
self._missionBriefing = database:getMissionBriefingForMissionZone(zoneName)
@@ -154,7 +159,7 @@ function Mission:SpawnActive()
group:Spawn()
end
Spearhead.classes.stageClasses.helpers.MissionCommandsHelper.AddMissionToCommands(self)
self._missionCommandsHelper:AddMissionToCommands(self)
self:StartCheckingContinuous()
end
@@ -345,7 +350,8 @@ end
---private usage advised
function Mission:NotifyMissionComplete()
Spearhead.classes.stageClasses.helpers.MissionCommandsHelper.RemoveMissionToCommands(self)
self._missionCommandsHelper:RemoveMissionToCommands(self)
self._logger:info("Mission Completed: " .. self._zoneName)
trigger.action.outText("Mission " .. self.name .. " [" .. self.code .. "] was completed succesfully" , 20)