mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Updated the mission menu generation and task menu maintenance
-- Added Mission Briefing menu showing the Mission Briefing. -- Mission menus are generated once for the groups when they belong to the SetGroup.
This commit is contained in:
parent
bb8eaf3f03
commit
7df1963de4
@ -201,7 +201,6 @@ do -- DESIGNATE
|
|||||||
self:SetStartState( "Designating" )
|
self:SetStartState( "Designating" )
|
||||||
|
|
||||||
self:AddTransition( "*", "Detect", "*" )
|
self:AddTransition( "*", "Detect", "*" )
|
||||||
|
|
||||||
--- Detect Handler OnBefore for DESIGNATE
|
--- Detect Handler OnBefore for DESIGNATE
|
||||||
-- @function [parent=#DESIGNATE] OnBeforeDetect
|
-- @function [parent=#DESIGNATE] OnBeforeDetect
|
||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
@ -226,9 +225,7 @@ do -- DESIGNATE
|
|||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
-- @param #number Delay
|
-- @param #number Delay
|
||||||
|
|
||||||
|
|
||||||
self:AddTransition( "*", "LaseOn", "Lasing" )
|
self:AddTransition( "*", "LaseOn", "Lasing" )
|
||||||
|
|
||||||
--- LaseOn Handler OnBefore for DESIGNATE
|
--- LaseOn Handler OnBefore for DESIGNATE
|
||||||
-- @function [parent=#DESIGNATE ] OnBeforeLaseOn
|
-- @function [parent=#DESIGNATE ] OnBeforeLaseOn
|
||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
@ -256,7 +253,6 @@ do -- DESIGNATE
|
|||||||
self:AddTransition( "Lasing", "Lasing", "Lasing" )
|
self:AddTransition( "Lasing", "Lasing", "Lasing" )
|
||||||
|
|
||||||
self:AddTransition( "*", "LaseOff", "Designate" )
|
self:AddTransition( "*", "LaseOff", "Designate" )
|
||||||
|
|
||||||
--- LaseOff Handler OnBefore for DESIGNATE
|
--- LaseOff Handler OnBefore for DESIGNATE
|
||||||
-- @function [parent=#DESIGNATE ] OnBeforeLaseOff
|
-- @function [parent=#DESIGNATE ] OnBeforeLaseOff
|
||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
@ -281,10 +277,7 @@ do -- DESIGNATE
|
|||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
-- @param #number Delay
|
-- @param #number Delay
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
self:AddTransition( "*", "Smoke", "*" )
|
self:AddTransition( "*", "Smoke", "*" )
|
||||||
|
|
||||||
--- Smoke Handler OnBefore for DESIGNATE
|
--- Smoke Handler OnBefore for DESIGNATE
|
||||||
-- @function [parent=#DESIGNATE ] OnBeforeSmoke
|
-- @function [parent=#DESIGNATE ] OnBeforeSmoke
|
||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
@ -310,7 +303,6 @@ do -- DESIGNATE
|
|||||||
-- @param #number Delay
|
-- @param #number Delay
|
||||||
|
|
||||||
self:AddTransition( "*", "Illuminate", "*" )
|
self:AddTransition( "*", "Illuminate", "*" )
|
||||||
|
|
||||||
--- Illuminate Handler OnBefore for DESIGNATE
|
--- Illuminate Handler OnBefore for DESIGNATE
|
||||||
-- @function [parent=#DESIGNATE] OnBeforeIlluminate
|
-- @function [parent=#DESIGNATE] OnBeforeIlluminate
|
||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
@ -338,7 +330,6 @@ do -- DESIGNATE
|
|||||||
self:AddTransition( "*", "Done", "*" )
|
self:AddTransition( "*", "Done", "*" )
|
||||||
|
|
||||||
self:AddTransition( "*", "Status", "*" )
|
self:AddTransition( "*", "Status", "*" )
|
||||||
|
|
||||||
--- Status Handler OnBefore for DESIGNATE
|
--- Status Handler OnBefore for DESIGNATE
|
||||||
-- @function [parent=#DESIGNATE ] OnBeforeStatus
|
-- @function [parent=#DESIGNATE ] OnBeforeStatus
|
||||||
-- @param #DESIGNATE self
|
-- @param #DESIGNATE self
|
||||||
@ -865,7 +856,6 @@ do -- DESIGNATE
|
|||||||
-- @return #DESIGNATE
|
-- @return #DESIGNATE
|
||||||
function DESIGNATE:onafterSmoke( From, Event, To, Index, Color )
|
function DESIGNATE:onafterSmoke( From, Event, To, Index, Color )
|
||||||
|
|
||||||
|
|
||||||
local TargetSetUnit = self.Detection:GetDetectedSet( Index )
|
local TargetSetUnit = self.Detection:GetDetectedSet( Index )
|
||||||
local TargetSetUnitCount = TargetSetUnit:Count()
|
local TargetSetUnitCount = TargetSetUnit:Count()
|
||||||
|
|
||||||
@ -900,7 +890,6 @@ do -- DESIGNATE
|
|||||||
function DESIGNATE:onafterIlluminate( From, Event, To, Index )
|
function DESIGNATE:onafterIlluminate( From, Event, To, Index )
|
||||||
|
|
||||||
local TargetSetUnit = self.Detection:GetDetectedSet( Index )
|
local TargetSetUnit = self.Detection:GetDetectedSet( Index )
|
||||||
|
|
||||||
local TargetUnit = TargetSetUnit:GetFirst()
|
local TargetUnit = TargetSetUnit:GetFirst()
|
||||||
|
|
||||||
if TargetUnit then
|
if TargetUnit then
|
||||||
|
|||||||
@ -220,7 +220,6 @@ function MISSION:New( CommandCenter, MissionName, MissionPriority, MissionBriefi
|
|||||||
-- @param #MISSION self
|
-- @param #MISSION self
|
||||||
-- @param #number Delay The delay in seconds.
|
-- @param #number Delay The delay in seconds.
|
||||||
|
|
||||||
|
|
||||||
-- Private implementations
|
-- Private implementations
|
||||||
|
|
||||||
CommandCenter:SetMenu()
|
CommandCenter:SetMenu()
|
||||||
@ -281,6 +280,8 @@ function MISSION:JoinUnit( PlayerUnit, PlayerGroup )
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self:GetCommandCenter():SetMenu()
|
||||||
|
|
||||||
return PlayerUnitAdded
|
return PlayerUnitAdded
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -384,6 +385,7 @@ function MISSION:RemoveMenu( MenuTime )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
do -- Group Assignment
|
do -- Group Assignment
|
||||||
|
|
||||||
--- Returns if the @{Mission} is assigned to the Group.
|
--- Returns if the @{Mission} is assigned to the Group.
|
||||||
@ -457,18 +459,36 @@ end
|
|||||||
--- Gets the mission menu for the coalition.
|
--- Gets the mission menu for the coalition.
|
||||||
-- @param #MISSION self
|
-- @param #MISSION self
|
||||||
-- @return Core.Menu#MENU_COALITION self
|
-- @return Core.Menu#MENU_COALITION self
|
||||||
function MISSION:GetMenu()
|
function MISSION:GetMenu( TaskGroup ) -- R2.1 -- Changed Menu Structure
|
||||||
|
|
||||||
local CommandCenter = self:GetCommandCenter()
|
local CommandCenter = self:GetCommandCenter()
|
||||||
local CommandCenterMenu = CommandCenter:GetMenu()
|
local CommandCenterMenu = CommandCenter:GetMenu()
|
||||||
|
|
||||||
local MissionName = self:GetName()
|
local MissionName = self:GetName()
|
||||||
local MissionMenu = CommandCenterMenu:GetMenu( MissionName )
|
--local MissionMenu = CommandCenterMenu:GetMenu( MissionName )
|
||||||
|
|
||||||
return MissionMenu
|
self.MissionMenu = self.MissionMenu or {}
|
||||||
|
self.MissionMenu[TaskGroup] = self.MissionMenu[TaskGroup] or {}
|
||||||
|
|
||||||
|
local Menu = self.MissionMenu[TaskGroup]
|
||||||
|
|
||||||
|
Menu.MainMenu = Menu.MainMenu or MENU_GROUP:New( TaskGroup, self:GetName(), CommandCenterMenu )
|
||||||
|
Menu.BriefingMenu = Menu.BriefingMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Mission Briefing", Menu.MainMenu, self.MenuReportBriefing, self, TaskGroup )
|
||||||
|
|
||||||
|
Menu.ReportsMenu = Menu.ReportsMenu or MENU_GROUP:New( TaskGroup, "Reports", Menu.MainMenu )
|
||||||
|
Menu.ReportTasksMenu = Menu.ReportTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Tasks", Menu.ReportsMenu, self.MenuReportSummary, self, TaskGroup )
|
||||||
|
Menu.ReportPlannedTasksMenu = Menu.ReportPlannedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Planned Tasks", Menu.ReportsMenu, self.MenuReportOverview, self, TaskGroup, "Planned" )
|
||||||
|
Menu.ReportAssignedTasksMenu = Menu.ReportAssignedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Assigned Tasks", Menu.ReportsMenu, self.MenuReportOverview, self, TaskGroup, "Assigned" )
|
||||||
|
Menu.ReportSuccessTasksMenu = Menu.ReportSuccessTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Successful Tasks", Menu.ReportsMenu, self.MenuReportOverview, self, TaskGroup, "Success" )
|
||||||
|
Menu.ReportFailedTasksMenu = Menu.ReportFailedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Failed Tasks", Menu.ReportsMenu, self.MenuReportOverview, self, TaskGroup, "Failed" )
|
||||||
|
Menu.ReportHeldTasksMenu = Menu.ReportHeldTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Held Tasks", Menu.ReportsMenu, self.MenuReportOverview, self, TaskGroup, "Hold" )
|
||||||
|
|
||||||
|
return Menu.MainMenu
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Get the TASK identified by the TaskNumber from the Mission. This function is useful in GoalFunctions.
|
--- Get the TASK identified by the TaskNumber from the Mission. This function is useful in GoalFunctions.
|
||||||
-- @param #string TaskName The Name of the @{Task} within the @{Mission}.
|
-- @param #string TaskName The Name of the @{Task} within the @{Mission}.
|
||||||
-- @return Tasking.Task#TASK The Task
|
-- @return Tasking.Task#TASK The Task
|
||||||
@ -620,6 +640,27 @@ function MISSION:GetTaskTypes()
|
|||||||
return TaskTypeList
|
return TaskTypeList
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Create a briefing report of the Mission.
|
||||||
|
-- @param #MISSION self
|
||||||
|
-- @return #string
|
||||||
|
function MISSION:ReportBriefing()
|
||||||
|
|
||||||
|
local Report = REPORT:New()
|
||||||
|
|
||||||
|
-- List the name of the mission.
|
||||||
|
local Name = self:GetName()
|
||||||
|
|
||||||
|
-- Determine the status of the mission.
|
||||||
|
local Status = self:GetState()
|
||||||
|
local TasksRemaining = self:GetTasksRemaining()
|
||||||
|
|
||||||
|
Report:Add( "Mission " .. Name .. " - " .. Status .. " - Briefing Report." )
|
||||||
|
|
||||||
|
Report:Add( self.MissionBriefing )
|
||||||
|
|
||||||
|
return Report:Text()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Create a status report of the Mission.
|
--- Create a status report of the Mission.
|
||||||
-- This reports provides a one liner of the mission status. It indicates how many players and how many Tasks.
|
-- This reports provides a one liner of the mission status. It indicates how many players and how many Tasks.
|
||||||
@ -806,6 +847,14 @@ function MISSION:GetTasks()
|
|||||||
return self.Tasks
|
return self.Tasks
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function MISSION:MenuReportBriefing( ReportGroup )
|
||||||
|
|
||||||
|
local Report = self:ReportBriefing()
|
||||||
|
|
||||||
|
self:GetCommandCenter():MessageToGroup( Report, ReportGroup )
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- @param #MISSION self
|
--- @param #MISSION self
|
||||||
-- @param Wrapper.Group#GROUP ReportGroup
|
-- @param Wrapper.Group#GROUP ReportGroup
|
||||||
function MISSION:MenuReportSummary( ReportGroup )
|
function MISSION:MenuReportSummary( ReportGroup )
|
||||||
|
|||||||
@ -653,20 +653,10 @@ function TASK:SetMenu( MenuTime ) --R2.1 Mission Reports and Task Reports added.
|
|||||||
-- Set Mission Menus
|
-- Set Mission Menus
|
||||||
|
|
||||||
local Mission = self:GetMission()
|
local Mission = self:GetMission()
|
||||||
local MissionMenu = Mission:GetMenu()
|
local MissionMenu = Mission:GetMenu( TaskGroup )
|
||||||
if MissionMenu then
|
if MissionMenu then
|
||||||
TaskGroup.MenuReports = MENU_GROUP:New( TaskGroup, "Reports", MissionMenu )
|
|
||||||
MENU_GROUP_COMMAND:New( TaskGroup, "Report Tasks", TaskGroup.MenuReports, Mission.MenuReportSummary, Mission, TaskGroup )
|
|
||||||
MENU_GROUP_COMMAND:New( TaskGroup, "Report Planned Tasks", TaskGroup.MenuReports, Mission.MenuReportOverview, Mission, TaskGroup, "Planned" )
|
|
||||||
MENU_GROUP_COMMAND:New( TaskGroup, "Report Assigned Tasks", TaskGroup.MenuReports, Mission.MenuReportOverview, Mission, TaskGroup, "Assigned" )
|
|
||||||
MENU_GROUP_COMMAND:New( TaskGroup, "Report Successful Tasks", TaskGroup.MenuReports, Mission.MenuReportOverview, Mission, TaskGroup, "Success" )
|
|
||||||
MENU_GROUP_COMMAND:New( TaskGroup, "Report Failed Tasks", TaskGroup.MenuReports, Mission.MenuReportOverview, Mission, TaskGroup, "Failed" )
|
|
||||||
MENU_GROUP_COMMAND:New( TaskGroup, "Report Held Tasks", TaskGroup.MenuReports, Mission.MenuReportOverview, Mission, TaskGroup, "Hold" )
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if self:IsStatePlanned() or self:IsStateReplanned() then
|
|
||||||
self:SetMenuForGroup( TaskGroup, MenuTime )
|
self:SetMenuForGroup( TaskGroup, MenuTime )
|
||||||
-- end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -708,9 +698,10 @@ function TASK:SetPlannedMenuForGroup( TaskGroup, MenuTime )
|
|||||||
local TaskText = string.format( "%s%s", self:GetName(), TaskPlayerString ) --, TaskThreatLevelString )
|
local TaskText = string.format( "%s%s", self:GetName(), TaskPlayerString ) --, TaskThreatLevelString )
|
||||||
local TaskName = string.format( "%s", self:GetName() )
|
local TaskName = string.format( "%s", self:GetName() )
|
||||||
|
|
||||||
local MissionMenu = MENU_GROUP:New( TaskGroup, MissionName, CommandCenterMenu ):SetTime( MenuTime )
|
|
||||||
|
|
||||||
local MissionMenu = Mission:GetMenu( TaskGroup )
|
local MissionMenu = Mission:GetMenu( TaskGroup )
|
||||||
|
--local MissionMenu = MENU_GROUP:New( TaskGroup, MissionName, CommandCenterMenu ):SetTime( MenuTime )
|
||||||
|
|
||||||
|
--local MissionMenu = Mission:GetMenu( TaskGroup )
|
||||||
|
|
||||||
local TaskPlannedMenu = MENU_GROUP:New( TaskGroup, "Planned Tasks", MissionMenu ):SetTime( MenuTime )
|
local TaskPlannedMenu = MENU_GROUP:New( TaskGroup, "Planned Tasks", MissionMenu ):SetTime( MenuTime )
|
||||||
local TaskTypeMenu = MENU_GROUP:New( TaskGroup, TaskType, TaskPlannedMenu ):SetTime( MenuTime ):SetRemoveParent( true )
|
local TaskTypeMenu = MENU_GROUP:New( TaskGroup, TaskType, TaskPlannedMenu ):SetTime( MenuTime ):SetRemoveParent( true )
|
||||||
@ -745,8 +736,9 @@ function TASK:SetAssignedMenuForGroup( TaskGroup, MenuTime )
|
|||||||
local TaskText = string.format( "%s%s", self:GetName(), TaskPlayerString ) --, TaskThreatLevelString )
|
local TaskText = string.format( "%s%s", self:GetName(), TaskPlayerString ) --, TaskThreatLevelString )
|
||||||
local TaskName = string.format( "%s", self:GetName() )
|
local TaskName = string.format( "%s", self:GetName() )
|
||||||
|
|
||||||
local MissionMenu = MENU_GROUP:New( TaskGroup, MissionName, CommandCenterMenu ):SetTime( MenuTime )
|
|
||||||
local MissionMenu = Mission:GetMenu( TaskGroup )
|
local MissionMenu = Mission:GetMenu( TaskGroup )
|
||||||
|
-- local MissionMenu = MENU_GROUP:New( TaskGroup, MissionName, CommandCenterMenu ):SetTime( MenuTime )
|
||||||
|
-- local MissionMenu = Mission:GetMenu( TaskGroup )
|
||||||
|
|
||||||
local TaskAssignedMenu = MENU_GROUP:New( TaskGroup, string.format( "Assigned Task %s", TaskName ), MissionMenu ):SetTime( MenuTime )
|
local TaskAssignedMenu = MENU_GROUP:New( TaskGroup, string.format( "Assigned Task %s", TaskName ), MissionMenu ):SetTime( MenuTime )
|
||||||
local TaskTypeMenu = MENU_GROUP_COMMAND:New( TaskGroup, string.format( "Report Task Status" ), TaskAssignedMenu, self.MenuTaskStatus, self, TaskGroup ):SetTime( MenuTime ):SetRemoveParent( true )
|
local TaskTypeMenu = MENU_GROUP_COMMAND:New( TaskGroup, string.format( "Report Task Status" ), TaskAssignedMenu, self.MenuTaskStatus, self, TaskGroup ):SetTime( MenuTime ):SetRemoveParent( true )
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user