From 8157d7a8d0016a15a2238a89c127cc45e1f077a9 Mon Sep 17 00:00:00 2001 From: FlightControl Date: Sat, 27 May 2017 09:57:38 +0200 Subject: [PATCH] Player reports --- .../Moose/Tasking/CommandCenter.lua | 4 +- Moose Development/Moose/Tasking/Mission.lua | 63 +++++++++++++------ Moose Development/Moose/Tasking/Task.lua | 6 +- 3 files changed, 49 insertions(+), 24 deletions(-) diff --git a/Moose Development/Moose/Tasking/CommandCenter.lua b/Moose Development/Moose/Tasking/CommandCenter.lua index 1c03860e8..fcedca865 100644 --- a/Moose Development/Moose/Tasking/CommandCenter.lua +++ b/Moose Development/Moose/Tasking/CommandCenter.lua @@ -146,7 +146,9 @@ function COMMANDCENTER:New( CommandCenterPositionable, CommandCenterName ) local Mission = Mission -- Tasking.Mission#MISSION local PlayerGroup = EventData.IniGroup -- The GROUP object should be filled! Mission:JoinUnit( PlayerUnit, PlayerGroup ) - Mission:ReportDetails( PlayerGroup ) + local MissionReport = Mission:ReportDetails( PlayerGroup ) + self:MessageToGroup( MissionReport, PlayerGroup ) + end end ) diff --git a/Moose Development/Moose/Tasking/Mission.lua b/Moose Development/Moose/Tasking/Mission.lua index 27da36054..01711fd48 100644 --- a/Moose Development/Moose/Tasking/Mission.lua +++ b/Moose Development/Moose/Tasking/Mission.lua @@ -485,13 +485,17 @@ function MISSION:GetMenu( TaskGroup ) -- R2.1 -- Changed Menu Structure 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" ) + Menu.TaskReportsMenu = Menu.TaskReportsMenu or MENU_GROUP:New( TaskGroup, "Task Reports", Menu.MainMenu ) + Menu.ReportTasksMenu = Menu.ReportTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Tasks", Menu.TaskReportsMenu, self.MenuReportTasksSummary, self, TaskGroup ) + Menu.ReportPlannedTasksMenu = Menu.ReportPlannedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Planned Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Planned" ) + Menu.ReportAssignedTasksMenu = Menu.ReportAssignedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Assigned Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Assigned" ) + Menu.ReportSuccessTasksMenu = Menu.ReportSuccessTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Successful Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Success" ) + Menu.ReportFailedTasksMenu = Menu.ReportFailedTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Failed Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Failed" ) + Menu.ReportHeldTasksMenu = Menu.ReportHeldTasksMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Held Tasks", Menu.TaskReportsMenu, self.MenuReportTasksPerStatus, self, TaskGroup, "Hold" ) + + Menu.PlayerReportsMenu = Menu.PlayerReportsMenu or MENU_GROUP:New( TaskGroup, "Player Reports", Menu.MainMenu ) + Menu.ReportActivePlayersMenu = Menu.ReportActivePlayersMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Active Players", Menu.PlayerReportsMenu, self.MenuReportActivePlayers, self, TaskGroup ) + Menu.ReportJoinedPlayersMenu = Menu.ReportJoinedPlayersMenu or MENU_GROUP_COMMAND:New( TaskGroup, "Report Joined Players", Menu.PlayerReportsMenu, self.MenuReportJoinedPlayers, self, TaskGroup ) return Menu.MainMenu end @@ -725,10 +729,10 @@ function MISSION:ReportStatus() return Report:Text() end ---- Create a player report of the Mission. +--- Create an active player report of the Mission. -- This reports provides a one liner of the mission status. It indicates how many players and how many Tasks. -- --- Mission "" - Status "" +-- Mission "" - - Active Players Report -- - Player ": Task , Task -- - Player : Task , Task -- - .. @@ -744,9 +748,8 @@ function MISSION:ReportPlayers() -- Determine the status of the mission. local Status = self:GetState() - local TasksRemaining = self:GetTasksRemaining() - Report:Add( string.format( '%s - Status "%s"', Name, Status ) ) + Report:Add( string.format( '%s - %s - Active Players Report', Name, Status ) ) local PlayerList = {} @@ -780,9 +783,8 @@ function MISSION:ReportSummary() -- Determine the status of the mission. local Status = self:GetState() - local TasksRemaining = self:GetTasksRemaining() - Report:Add( "Mission " .. Name .. " - " .. Status .. " - " .. TasksRemaining .. " tasks remaining." ) + Report:Add( string.format( '%s - %s - Task Overview Report', Name, Status ) ) -- Determine how many tasks are remaining. for TaskID, Task in pairs( self:GetTasks() ) do @@ -805,9 +807,8 @@ function MISSION:ReportOverview( ReportGroup, TaskStatus ) -- Determine the status of the mission. local Status = self:GetState() - local TasksRemaining = self:GetTasksRemaining() - Report:Add( string.format( '%s - %s - %s Tasks', Name, Status, TaskStatus ) ) + Report:Add( string.format( '%s - %s - %s Tasks Report', Name, Status, TaskStatus ) ) -- Determine how many tasks are remaining. local TasksRemaining = 0 @@ -824,7 +825,7 @@ end --- Create a detailed report of the Mission, listing all the details of the Task. -- @param #MISSION self -- @return #string -function MISSION:ReportDetails() +function MISSION:ReportDetails( ReportGroup ) local Report = REPORT:New() @@ -834,13 +835,13 @@ function MISSION:ReportDetails() -- Determine the status of the mission. local Status = self:GetState() - Report:Add( string.format( '%s - Status "%s"', Name, Status ) ) + Report:Add( string.format( '%s - %s - Task Detailed Report', Name, Status ) ) -- Determine how many tasks are remaining. local TasksRemaining = 0 for TaskID, Task in pairs( self:GetTasks() ) do local Task = Task -- Tasking.Task#TASK - Report:Add( Task:ReportDetails() ) + Report:Add( Task:ReportDetails( ReportGroup ) ) end return Report:Text() @@ -867,7 +868,7 @@ end --- @param #MISSION self -- @param Wrapper.Group#GROUP ReportGroup -function MISSION:MenuReportSummary( ReportGroup ) +function MISSION:MenuReportTasksSummary( ReportGroup ) local Report = self:ReportSummary() @@ -877,9 +878,31 @@ end --- @param #MISSION self -- @param #string TaskStatus The status -- @param Wrapper.Group#GROUP ReportGroup -function MISSION:MenuReportOverview( ReportGroup, TaskStatus ) +function MISSION:MenuReportTasksPerStatus( ReportGroup, TaskStatus ) local Report = self:ReportOverview( ReportGroup, TaskStatus ) self:GetCommandCenter():MessageToGroup( Report, ReportGroup ) end + +--- @param #MISSION self +-- @param Wrapper.Group#GROUP ReportGroup +function MISSION:MenuReportActivePlayers( ReportGroup ) + + local Report = self:ReportPlayers() + + self:GetCommandCenter():MessageToGroup( Report, ReportGroup ) +end + +--- @param #MISSION self +-- @param Wrapper.Group#GROUP ReportGroup +function MISSION:MenuReportJoinedPlayers( ReportGroup ) + + local Report = self:ReportPlayers() + + self:GetCommandCenter():MessageToGroup( Report, ReportGroup ) +end + + + + diff --git a/Moose Development/Moose/Tasking/Task.lua b/Moose Development/Moose/Tasking/Task.lua index 2a6bc2a2f..f1e444c66 100644 --- a/Moose Development/Moose/Tasking/Task.lua +++ b/Moose Development/Moose/Tasking/Task.lua @@ -1385,7 +1385,7 @@ end -- @param #TASK self -- @param Wrapper.Group#GROUP TaskGroup -- @return #string -function TASK:ReportDetails( TaskGroup ) --R2.1 fixed report. Now nicely formatted and contains the info required. +function TASK:ReportDetails( ReportGroup ) local Report = REPORT:New():SetIndent( 3 ) @@ -1416,11 +1416,11 @@ function TASK:ReportDetails( TaskGroup ) --R2.1 fixed report. Now nicely formatt Report:Add( TaskInfoIDText .. TaskInfo ) elseif type(TaskInfo) == "table" then if TaskInfoID == "Coordinates" then - local FromCoordinate = TaskGroup:GetUnit(1):GetCoordinate() + local FromCoordinate = ReportGroup:GetUnit(1):GetCoordinate() local ToCoordinate = TaskInfo -- Core.Point#COORDINATE Report:Add( TaskInfoIDText ) Report:AddIndent( ToCoordinate:ToStringBRA( FromCoordinate ) .. ", " .. TaskInfo:ToStringAspect( FromCoordinate ) ) - Report:AddIndent( ToCoordinate:ToStringBULLS( TaskGroup:GetCoalition() ) ) + Report:AddIndent( ToCoordinate:ToStringBULLS( ReportGroup:GetCoalition() ) ) else end end