diff --git a/code/game/gamemodes/abduction/abduction.dm b/code/game/gamemodes/abduction/abduction.dm
index eef2b6f6db2..9623e545f3d 100644
--- a/code/game/gamemodes/abduction/abduction.dm
+++ b/code/game/gamemodes/abduction/abduction.dm
@@ -267,6 +267,7 @@
return ..()
/datum/game_mode/abduction/declare_completion()
+ world << "
The Abductors were:"
for(var/team_number=1,team_number<=teams,team_number++)
var/obj/machinery/abductor/console/console = get_team_console(team_number)
var/datum/objective/objective = team_objectives[team_number]
@@ -282,7 +283,7 @@
world << "[team_name] team failed its mission! "
world << "Team Members: [agent.name]([agent.ckey])
[scientist.name]([scientist.ckey])"
- world << "Abductees:"
+ world << "
The Abductees were:"
display_abductees(console)
..()
@@ -293,20 +294,24 @@
for(var/mob/living/abductee in abductees)
if(!abductee.mind)
continue
- world << "[abductee.name]([abductee.ckey]))"
- var/count = 1
- for(var/datum/objective/objective in abductee.mind.objectives)
- if(objective.check_completion())
- world << "
Objective #[count]: [objective.explanation_text] Success!"
- else
- world << "
Objective #[count]: [objective.explanation_text] Fail."
- count++
+ world << printplayer(abductee.mind)
+ world << printobjectives(abductee.mind)
/datum/game_mode/proc/auto_declare_completion_abduction()
if(abductors.len)
- world << "Abductors:"
+ world << "
The Abductors were:"
for(var/datum/mind/M in abductors)
world << "Abductor [M.current ? M.current.name : "Abductor"]([M.key])"
+ world << printobjectives(M)
+ world << "
The Abductees were:"
+ var/list/full_history = list()
+ for(var/obj/machinery/abductor/console/C in machines)
+ full_history |= C.experiment.history
+ for(var/mob/living/abductee in full_history)
+ if(!abductee.mind)
+ continue
+ world << printplayer(abductee.mind)
+ world << printobjectives(abductee.mind)
return
//Landmarks
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 1dea0f2834d..83c10f02e99 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -487,6 +487,17 @@ proc/display_roundstart_logout_report()
return text
+/datum/game_mode/proc/printobjectives(var/datum/mind/ply)
+ var/text = ""
+ var/count = 1
+ for(var/datum/objective/objective in ply.objectives)
+ if(objective.check_completion())
+ text += "
Objective #[count]: [objective.explanation_text] Success!"
+ else
+ text += "
Objective #[count]: [objective.explanation_text] Fail."
+ count++
+ return text
+
//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1
/datum/game_mode/proc/age_check(client/C)
if(get_remaining_days(C) == 0)