diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index c7ac587725..3fd6117332 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -81,7 +81,7 @@
try
getFlatIcon(A,defdir=4)
catch
- return 0
+ return FALSE
return TRUE
/obj/structure/displaycase/proc/get_flat_icon_directional(atom/A)
@@ -255,6 +255,8 @@
var/trophy_message = ""
var/placer_key = ""
var/added_roundstart = TRUE
+ var/is_locked = TRUE
+
alert = TRUE
integrity_failure = 0
@@ -277,8 +279,16 @@
if(!user.Adjacent(src)) //no TK museology
return
- if(!(user.mind && user.mind.assigned_role == "Curator"))
- to_chat(user, "You're not sure how to work this. Maybe you should ask the curator for help.")
+ if(user.is_holding_item_of_type(/obj/item/key/displaycase))
+ if(added_roundstart)
+ is_locked = !is_locked
+ to_chat(user, "You [!is_locked ? "un" : ""]lock the case.")
+ else
+ to_chat(user, "The lock is stuck shut!")
+ return
+
+ if(is_locked)
+ to_chat(user, "The case is shut tight with an old fashioned physical lock. Maybe you should ask the curator for the key?")
return
if(!added_roundstart)
@@ -318,6 +328,7 @@
to_chat(user, "You are too far to set the plaque's text.")
SSpersistence.SaveTrophy(src)
+ return TRUE
else
to_chat(user, "\The [W] is stuck to your hand, you can't put it in the [src.name]!")
@@ -333,6 +344,10 @@
else
..()
+/obj/item/key/displaycase
+ name = "display case key"
+ desc = "The key to the curator's display cases."
+
/obj/item/showpiece_dummy
name = "Cheap replica"
diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm
index 45b8562e8c..467f0194d2 100644
--- a/code/modules/jobs/job_types/civilian.dm
+++ b/code/modules/jobs/job_types/civilian.dm
@@ -112,11 +112,11 @@ Mime
H.mind.miming = 1
/*
-Curator
+Curator
*/
-/datum/job/curator
- title = "Curator"
- flag = CURATOR
+/datum/job/curator
+ title = "Curator"
+ flag = CURATOR
department_head = list("Head of Personnel")
department_flag = CIVILIAN
faction = "Station"
@@ -125,34 +125,35 @@ Curator
supervisors = "the head of personnel"
selection_color = "#dddddd"
- outfit = /datum/outfit/job/curator
+ outfit = /datum/outfit/job/curator
access = list(GLOB.access_library)
minimal_access = list(GLOB.access_library)
-/datum/outfit/job/curator
- name = "Curator"
- jobtype = /datum/job/curator
+/datum/outfit/job/curator
+ name = "Curator"
+ jobtype = /datum/job/curator
- belt = /obj/item/device/pda/curator
- uniform = /obj/item/clothing/under/rank/curator
- l_hand = /obj/item/weapon/storage/bag/books
- r_pocket = /obj/item/weapon/barcodescanner
+ belt = /obj/item/device/pda/curator
+ uniform = /obj/item/clothing/under/rank/curator
+ l_hand = /obj/item/weapon/storage/bag/books
+ r_pocket = /obj/item/key/displaycase
l_pocket = /obj/item/device/laser_pointer
backpack_contents = list(
- /obj/item/weapon/melee/curator_whip = 1,
- /obj/item/soapstone = 1
+ /obj/item/weapon/melee/curator_whip = 1,
+ /obj/item/soapstone = 1,
+ /obj/item/weapon/barcodescanner = 1
)
-
-/datum/outfit/job/curator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- H.grant_all_languages(omnitongue=TRUE)
-
+
+/datum/outfit/job/curator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ ..()
+
+ if(visualsOnly)
+ return
+
+ H.grant_all_languages(omnitongue=TRUE)
+
/*
Lawyer
*/