diff --git a/code/citadel/cit_crewobjectives.dm b/code/citadel/cit_crewobjectives.dm index b3b8c4be26..6935106ed6 100644 --- a/code/citadel/cit_crewobjectives.dm +++ b/code/citadel/cit_crewobjectives.dm @@ -33,6 +33,8 @@ /datum/objective/crew/proc/setup() +/* COMMAND OBJECTIVES */ + /datum/objective/crew/captain/ /datum/objective/crew/captain/hat @@ -43,3 +45,66 @@ return 1 else return 0 + +/datum/objective/crew/captain/datfukkendisk + explanation_text = "Defend the nuclear authentication disk at all costs, and personally deliver it to Centcom." + +/datum/objective/crew/captain/datfukkendisk/check_completion() + if(owner.current && owner.current.check_contents_for(/obj/item/disk/nuclear) && SSshuttle.emergency.shuttle_areas[get_area(owner.current)]) + return 1 + else + return 0 + +/* SECURITY OBJECTIVES */ + +/datum/objective/crew/headofsecurity/ + +/datum/objective/crew/headofsecurity/justicecrew + explanation_text = "Ensure there are no innocent crew members in the brig when the shift ends." + +/datum/objective/crew/headofsecurity/justicecrew/check_completion() + if(owner.current) + for(var/datum/mind/M in SSticker.minds) + if(M.current && isliving(owner)) + if(!M.special_role && !M.assigned_role = "Security Officer" && !M.assigned_role = "Detective" && !M.assigned_role = "Head of Security" && !M.assigned_role = "Lawyer" && get_area(M.current) != typesof(/area/security)) + return 0 + return 1 + +/datum/objective/crew/securityofficer/ + +/datum/objective/crew/securityofficer/justicecrew + explanation_text = "Ensure there are no innocent crew members in the brig when the shift ends." + +/datum/objective/crew/securityofficer/justicecrew/check_completion() + if(owner.current) + for(var/datum/mind/M in SSticker.minds) + if(M.current && isliving(owner)) + if(!M.special_role && !M.assigned_role = "Security Officer" && !M.assigned_role = "Detective" && !M.assigned_role = "Head of Security" && !M.assigned_role = "Lawyer" && get_area(M.current) != typesof(/area/security)) + return 0 + return 1 + +/datum/objective/crew/detective/ + +/datum/objective/crew/detective/justicecrew + explanation_text = "Ensure there are no innocent crew members in the brig when the shift ends." + +/datum/objective/crew/detective/justicecrew/check_completion() + if(owner.current) + for(var/datum/mind/M in SSticker.minds) + if(M.current && isliving(owner)) + if(!M.special_role && !M.assigned_role = "Security Officer" && !M.assigned_role = "Detective" && !M.assigned_role = "Head of Security" && !M.assigned_role = "Lawyer" && get_area(M.current) != typesof(/area/security)) + return 0 + return 1 + +/datum/objective/crew/lawyer/ + +/datum/objective/crew/lawyer/justicecrew + explanation_text = "Ensure there are no innocent crew members in the brig when the shift ends." + +/datum/objective/crew/lawyer/justicecrew/check_completion() + if(owner.current) + for(var/datum/mind/M in SSticker.minds) + if(M.current && isliving(owner)) + if(!M.special_role && !M.assigned_role = "Security Officer" && !M.assigned_role = "Detective" && !M.assigned_role = "Head of Security" && !M.assigned_role = "Lawyer" && get_area(M.current) != typesof(/area/security)) + return 0 + return 1 diff --git a/code/citadel/cit_miscreants.dm b/code/citadel/cit_miscreants.dm index e383dfbb51..dcfe4b4b26 100644 --- a/code/citadel/cit_miscreants.dm +++ b/code/citadel/cit_miscreants.dm @@ -50,3 +50,6 @@ /datum/objective/miscreant/whiny explanation_text = "Complain incessantly about every minor issue you find." + +/datum/objective/miscreant/immersions + explanation_text = "Act as out of character as you possibly can." diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 5ad749836b..d288a7fe58 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -615,6 +615,7 @@ SUBSYSTEM_DEF(ticker) to_chat(world, " The following crew members were miscreants:") for(var/i in miscreants) to_chat(world, "[i]") + to_chat(world, "
") CHECK_TICK