diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index 64215f3e6bf..1c5f5248713 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -13,6 +13,78 @@
#define JOB_DISPLAY_ORDER_DEFAULT 0
+//No department
+#define JOB_ASSISTANT "Assistant"
+#define JOB_PRISONER "Prisoner"
+//Command
+#define JOB_CAPTAIN "Captain"
+#define JOB_HEAD_OF_PERSONNEL "Head of Personnel"
+#define JOB_HEAD_OF_SECURITY "Head of Security"
+#define JOB_RESEARCH_DIRECTOR "Research Director"
+#define JOB_CHIEF_ENGINEER "Chief Engineer"
+#define JOB_CHIEF_MEDICAL_OFFICER "Chief Medical Officer"
+//Silicon
+#define JOB_AI "AI"
+#define JOB_CYBORG "Cyborg"
+//Security
+#define JOB_WARDEN "Warden"
+#define JOB_DETECTIVE "Detective"
+#define JOB_SECURITY_OFFICER "Security Officer"
+#define JOB_SECURITY_OFFICER_MEDICAL "Security Officer (Medical)"
+#define JOB_SECURITY_OFFICER_ENGINEERING "Security Officer (Engineering)"
+#define JOB_SECURITY_OFFICER_SCIENCE "Security Officer (Science)"
+#define JOB_SECURITY_OFFICER_SUPPLY "Security Officer (Cargo)"
+//Engineering
+#define JOB_STATION_ENGINEER "Station Engineer"
+#define JOB_ATMOSPHERIC_TECHNICIAN "Atmospheric Technician"
+//Medical
+#define JOB_MEDICAL_DOCTOR "Medical Doctor"
+#define JOB_PARAMEDIC "Paramedic"
+#define JOB_CHEMIST "Chemist"
+#define JOB_VIROLOGIST "Virologist"
+//Science
+#define JOB_SCIENTIST "Scientist"
+#define JOB_ROBOTICIST "Roboticist"
+#define JOB_GENETICIST "Geneticist"
+//Supply
+#define JOB_QUARTERMASTER "Quartermaster"
+#define JOB_CARGO_TECHNICIAN "Cargo Technician"
+#define JOB_SHAFT_MINER "Shaft Miner"
+//Service
+#define JOB_BARTENDER "Bartender"
+#define JOB_BOTANIST "Botanist"
+#define JOB_COOK "Cook"
+#define JOB_JANITOR "Janitor"
+#define JOB_CLOWN "Clown"
+#define JOB_MIME "Mime"
+#define JOB_CURATOR "Curator"
+#define JOB_LAWYER "Lawyer"
+#define JOB_CHAPLAIN "Chaplain"
+#define JOB_PSYCHOLOGIST "Psychologist"
+//ERTs
+#define JOB_ERT_COMMANDER "Emergency Response Team Commander"
+#define JOB_ERT_OFFICER "Security Response Officer"
+#define JOB_ERT_ENGINEER "Engineering Response Officer"
+#define JOB_ERT_MEDICAL_DOCTOR "Medical Response Officer"
+#define JOB_ERT_CLOWN "Entertainment Response Officer"
+#define JOB_ERT_CHAPLAIN "Religious Response Officer"
+#define JOB_ERT_JANITOR "Janitorial Response Officer"
+#define JOB_ERT_DEATHSQUAD "Death Commando"
+//CentCom
+#define JOB_CENTCOM "Central Command"
+#define JOB_CENTCOM_OFFICIAL "CentCom Official"
+#define JOB_CENTCOM_ADMIRAL "Admiral"
+#define JOB_CENTCOM_COMMANDER "CentCom Commander"
+#define JOB_CENTCOM_VIP "VIP Guest"
+#define JOB_CENTCOM_BARTENDER "CentCom Bartender"
+#define JOB_CENTCOM_CUSTODIAN "Custodian"
+#define JOB_CENTCOM_THUNDERDOME_OVERSEER "Thunderdome Overseer"
+#define JOB_CENTCOM_MEDICAL_DOCTOR "Medical Officer"
+#define JOB_CENTCOM_RESEARCH_OFFICER "Research Officer"
+#define JOB_CENTCOM_SPECIAL_OFFICER "Special Ops Officer"
+#define JOB_CENTCOM_PRIVATE_SECURITY "Private Security Force"
+
+
#define JOB_DISPLAY_ORDER_ASSISTANT 1
#define JOB_DISPLAY_ORDER_CAPTAIN 2
#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3
@@ -51,6 +123,7 @@
#define DEPARTMENT_UNASSIGNED "No department assigned"
+
#define DEPARTMENT_BITFLAG_SECURITY (1<<0)
#define DEPARTMENT_SECURITY "Security"
#define DEPARTMENT_BITFLAG_COMMAND (1<<1)
diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 083fe57846e..fc84b2b3048 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -56,8 +56,8 @@
#define SCALING_METHOD_BLUR "blur"
#define PARALLAX_DELAY_DEFAULT world.tick_lag
-#define PARALLAX_DELAY_MED 1
-#define PARALLAX_DELAY_LOW 2
+#define PARALLAX_DELAY_MED 1
+#define PARALLAX_DELAY_LOW 2
#define SEC_DEPT_NONE "None"
#define SEC_DEPT_ENGINEERING "Engineering"
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index ebf26629151..0fd85d07e4d 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -292,7 +292,7 @@
min_val = -1
/datum/config_entry/string/overflow_job
- default = "Assistant"
+ default = JOB_ASSISTANT
/datum/config_entry/flag/starlight
/datum/config_entry/flag/grey_assistants
diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm
index 8a3d516b973..e1683d42182 100644
--- a/code/controllers/subsystem/id_access.dm
+++ b/code/controllers/subsystem/id_access.dm
@@ -154,37 +154,37 @@ SUBSYSTEM_DEF(id_access)
sub_department_managers_tgui = list(
"[ACCESS_CAPTAIN]" = list(
"regions" = list(REGION_COMMAND),
- "head" = "Captain",
+ "head" = JOB_CAPTAIN,
"templates" = list(),
"pdas" = list(),
),
"[ACCESS_HOP]" = list(
"regions" = list(REGION_GENERAL, REGION_SUPPLY),
- "head" = "Head of Personnel",
+ "head" = JOB_HEAD_OF_PERSONNEL,
"templates" = list(),
"pdas" = list(),
),
"[ACCESS_HOS]" = list(
"regions" = list(REGION_SECURITY),
- "head" = "Head of Security",
+ "head" = JOB_HEAD_OF_SECURITY,
"templates" = list(),
"pdas" = list(),
),
"[ACCESS_CMO]" = list(
"regions" = list(REGION_MEDBAY),
- "head" = "Chief Medical Officer",
+ "head" = JOB_CHIEF_MEDICAL_OFFICER,
"templates" = list(),
"pdas" = list(),
),
"[ACCESS_RD]" = list(
"regions" = list(REGION_RESEARCH),
- "head" = "Research Director",
+ "head" = JOB_RESEARCH_DIRECTOR,
"templates" = list(),
"pdas" = list(),
),
"[ACCESS_CE]" = list(
"regions" = list(REGION_ENGINEERING),
- "head" = "Chief Engineer",
+ "head" = JOB_CHIEF_ENGINEER,
"templates" = list(),
"pdas" = list(),
),
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index dbdfaff1d6e..8826476555e 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -50,13 +50,14 @@ SUBSYSTEM_DEF(job)
* See [/datum/controller/subsystem/ticker/proc/equip_characters]
*/
var/list/chain_of_command = list(
- "Captain" = 1,
- "Head of Personnel" = 2,
- "Research Director" = 3,
- "Chief Engineer" = 4,
- "Chief Medical Officer" = 5,
- "Head of Security" = 6,
- "Quartermaster" = 7)
+ JOB_CAPTAIN = 1,
+ JOB_HEAD_OF_PERSONNEL = 2,
+ JOB_RESEARCH_DIRECTOR = 3,
+ JOB_CHIEF_ENGINEER = 4,
+ JOB_CHIEF_MEDICAL_OFFICER = 5,
+ JOB_HEAD_OF_SECURITY = 6,
+ JOB_QUARTERMASTER = 7,
+ )
/// If TRUE, some player has been assigned Captaincy or Acting Captaincy at some point during the shift and has been given the spare ID safe code.
var/assigned_captain = FALSE
@@ -326,7 +327,7 @@ SUBSYSTEM_DEF(job)
/// Attempts to fill out all available AI positions.
/datum/controller/subsystem/job/proc/fill_ai_positions()
- var/datum/job/ai_job = GetJob("AI")
+ var/datum/job/ai_job = GetJob(JOB_AI)
if(!ai_job)
return
// In byond for(in to) loops, the iteration is inclusive so we need to stop at ai_job.total_positions - 1
@@ -573,7 +574,7 @@ SUBSYSTEM_DEF(job)
return C.holder.auto_deadmin()
/datum/controller/subsystem/job/proc/setup_officer_positions()
- var/datum/job/J = SSjob.GetJob("Security Officer")
+ var/datum/job/J = SSjob.GetJob(JOB_SECURITY_OFFICER)
if(!J)
CRASH("setup_officer_positions(): Security officer job is missing")
@@ -787,19 +788,37 @@ SUBSYSTEM_DEF(job)
/// Builds various lists of jobs based on station, centcom and additional jobs with icons associated with them.
/datum/controller/subsystem/job/proc/setup_job_lists()
- station_jobs = list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", \
- "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", \
- "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Paramedic", "Chemist", "Geneticist", "Virologist", "Psychologist", \
- "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Prisoner")
+ station_jobs = list(
+ JOB_ASSISTANT, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BARTENDER, JOB_BOTANIST,
+ JOB_COOK, JOB_JANITOR, JOB_CLOWN, JOB_MIME, JOB_CURATOR, JOB_LAWYER, JOB_CHAPLAIN,
+ JOB_PSYCHOLOGIST, JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN,
+ JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_CHIEF_MEDICAL_OFFICER,
+ JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_RESEARCH_DIRECTOR,
+ JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST, JOB_HEAD_OF_SECURITY, JOB_WARDEN,
+ JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_PRISONER,
+ )
- head_of_staff_jobs = list("Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Head of Security", "Captain")
+ head_of_staff_jobs = list(
+ JOB_CAPTAIN,
+ JOB_HEAD_OF_PERSONNEL,
+ JOB_HEAD_OF_SECURITY,
+ JOB_RESEARCH_DIRECTOR,
+ JOB_CHIEF_ENGINEER,
+ JOB_CHIEF_MEDICAL_OFFICER,
+ )
- additional_jobs_with_icons = list("Emergency Response Team Commander", "Security Response Officer", "Engineering Response Officer", "Medical Response Officer", \
- "Entertainment Response Officer", "Religious Response Officer", "Janitorial Response Officer", "Death Commando", "Security Officer (Engineering)", \
- "Security Officer (Cargo)", "Security Officer (Medical)", "Security Officer (Science)")
+ additional_jobs_with_icons = list(
+ JOB_ERT_COMMANDER, JOB_ERT_OFFICER, JOB_ERT_ENGINEER, JOB_ERT_MEDICAL_DOCTOR,
+ JOB_ERT_CLOWN, JOB_ERT_CHAPLAIN, JOB_ERT_JANITOR, JOB_ERT_DEATHSQUAD,
+ JOB_SECURITY_OFFICER_MEDICAL, JOB_SECURITY_OFFICER_ENGINEERING, JOB_SECURITY_OFFICER_SCIENCE, JOB_SECURITY_OFFICER_SUPPLY,
+ )
+
+ centcom_jobs = list(
+ JOB_CENTCOM, JOB_CENTCOM_OFFICIAL, JOB_CENTCOM_ADMIRAL, JOB_CENTCOM_COMMANDER, JOB_CENTCOM_VIP,
+ JOB_CENTCOM_BARTENDER, JOB_CENTCOM_CUSTODIAN, JOB_CENTCOM_THUNDERDOME_OVERSEER, JOB_CENTCOM_MEDICAL_DOCTOR,
+ JOB_CENTCOM_RESEARCH_OFFICER, JOB_CENTCOM_SPECIAL_OFFICER, JOB_CENTCOM_PRIVATE_SECURITY,
+ )
- centcom_jobs = list("Central Command","VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Research Officer", \
- "Special Ops Officer","Admiral","CentCom Commander","CentCom Bartender","Private Security Force")
job_priorities_to_strings = list(
"[JP_LOW]" = "Low Priority",
diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm
index a7d217ce2ef..40eacab03c7 100644
--- a/code/controllers/subsystem/persistence.dm
+++ b/code/controllers/subsystem/persistence.dm
@@ -142,7 +142,7 @@ SUBSYSTEM_DEF(persistence)
if(json["version"] < TATTOO_PERSISTENCE_VERSION)
update_prisoner_tattoos(json)
- var/datum/job/prisoner_datum = SSjob.name_occupations["Prisoner"]
+ var/datum/job/prisoner_datum = SSjob.name_occupations[JOB_PRISONER]
if(!prisoner_datum)
return
var/iterations_allowed = prisoner_datum.spawn_positions
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 17a1d118394..ddee804e626 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -367,7 +367,7 @@ SUBSYSTEM_DEF(ticker)
// Find a suitable player to hold captaincy.
for(var/mob/dead/new_player/new_player_mob as anything in GLOB.new_player_list)
- if(is_banned_from(new_player_mob.ckey, list("Captain")))
+ if(is_banned_from(new_player_mob.ckey, list(JOB_CAPTAIN)))
CHECK_TICK
continue
if(!ishuman(new_player_mob.new_character))
diff --git a/code/datums/brain_damage/creepy_trauma.dm b/code/datums/brain_damage/creepy_trauma.dm
index 61093fb9dbd..a8e7fb33004 100644
--- a/code/datums/brain_damage/creepy_trauma.dm
+++ b/code/datums/brain_damage/creepy_trauma.dm
@@ -88,7 +88,7 @@
/datum/brain_trauma/special/obsessed/proc/on_failed_social_interaction()
if(QDELETED(owner) || owner.stat >= UNCONSCIOUS)
return
- switch(rand(1, 100))
+ switch(rand(1, 100))
if(1 to 40)
INVOKE_ASYNC(owner, /mob.proc/emote, pick("blink", "blink_r"))
owner.blur_eyes(10)
@@ -117,7 +117,11 @@
/datum/brain_trauma/special/obsessed/proc/find_obsession()
var/list/viable_minds = list() //The first list, which excludes hijinks
var/list/possible_targets = list() //The second list, which filters out silicons and simplemobs
- var/static/list/trait_obsessions = list("Mime" = TRAIT_MIME_FAN, "Clown" = TRAIT_CLOWN_ENJOYER, "Chaplain" = TRAIT_SPIRITUAL) //Jobs and their corresponding quirks
+ var/static/list/trait_obsessions = list(
+ JOB_MIME = TRAIT_MIME_FAN,
+ JOB_CLOWN = TRAIT_CLOWN_ENJOYER,
+ JOB_CHAPLAIN = TRAIT_SPIRITUAL,
+ ) // Jobs and their corresponding quirks
var/list/special_pool = list() //The special list, for quirk-based
var/chosen_victim //The obsession target
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index 8bb2124e7ce..cb571449f47 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -43,7 +43,7 @@
/datum/component/mood/proc/register_job_signals(datum/source, job)
SIGNAL_HANDLER
- if(job in list("Research Director", "Scientist", "Roboticist"))
+ if(job in list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST))
RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/add_event) //Mood events that are only for RnD members
/datum/component/mood/proc/print_mood(mob/user)
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index aaedc1e64c9..7ae90e3b01d 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -179,7 +179,7 @@
stage5 = list("Your skin feels as if it's about to burst off!")
new_form = /mob/living/silicon/robot
infectable_biotypes = MOB_ORGANIC|MOB_UNDEAD|MOB_ROBOTIC
- bantype = "Cyborg"
+ bantype = JOB_CYBORG
/datum/disease/transformation/robot/stage_act(delta_time, times_fired)
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
index fe1bbec406f..315aaf1e327 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
@@ -50,8 +50,8 @@
antag_datum = /datum/antagonist/traitor
antag_flag = ROLE_SYNDICATE_INFILTRATOR
antag_flag_override = ROLE_TRAITOR
- protected_roles = list("Security Officer", "Warden", "Head of Personnel", "Detective", "Head of Security", "Captain")
- restricted_roles = list("AI","Cyborg")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
+ restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 1
weight = 7
cost = 5
@@ -70,8 +70,8 @@
antag_datum = /datum/antagonist/rev/head
antag_flag = ROLE_PROVOCATEUR
antag_flag_override = ROLE_REV
- restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director")
- enemy_roles = list("AI", "Cyborg", "Security Officer","Detective","Head of Security", "Captain", "Warden")
+ restricted_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER)
+ enemy_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 2
@@ -137,7 +137,7 @@
//////////////////////////////////////////////
// //
-// HERETIC SMUGGLER //
+// HERETIC SMUGGLER //
// //
//////////////////////////////////////////////
@@ -146,8 +146,8 @@
antag_datum = /datum/antagonist/heretic
antag_flag = ROLE_HERETIC_SMUGGLER
antag_flag_override = ROLE_HERETIC
- protected_roles = list("Security Officer", "Warden", "Head of Personnel", "Detective", "Head of Security", "Captain","Prisoner")
- restricted_roles = list("AI","Cyborg")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 1
weight = 4
cost = 10
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index c818248fe70..f6b8e13bb71 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -184,8 +184,8 @@
antag_datum = /datum/antagonist/traitor
antag_flag = ROLE_SLEEPER_AGENT
antag_flag_override = ROLE_TRAITOR
- protected_roles = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain")
- restricted_roles = list("Cyborg", "AI", "Positronic Brain")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG, ROLE_POSITRONIC_BRAIN)
required_candidates = 1
weight = 7
cost = 10
@@ -250,8 +250,8 @@
antag_datum = /datum/antagonist/gang
antag_flag = ROLE_FAMILY_HEAD_ASPIRANT
antag_flag_override = ROLE_FAMILIES
- protected_roles = list("Prisoner", "Head of Personnel")
- restricted_roles = list("Cyborg", "AI", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Research Director")
+ protected_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_RESEARCH_DIRECTOR, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_candidates = 3
weight = 2
cost = 19
@@ -306,7 +306,7 @@
//////////////////////////////////////////////
// //
// Malfunctioning AI //
-// //
+// //
//////////////////////////////////////////////
/datum/dynamic_ruleset/midround/malf
@@ -314,8 +314,8 @@
antag_datum = /datum/antagonist/malf_ai
antag_flag = ROLE_MALF_MIDROUND
antag_flag_override = ROLE_MALF
- enemy_roles = list("Security Officer", "Warden","Detective","Head of Security", "Captain", "Scientist", "Chemist", "Research Director", "Chief Engineer")
- exclusive_roles = list("AI")
+ enemy_roles = list(JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_SCIENTIST, JOB_CHEMIST, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER)
+ exclusive_roles = list(JOB_AI)
required_enemies = list(4,4,4,4,4,4,2,2,2,0)
required_candidates = 1
weight = 3
@@ -366,7 +366,7 @@
antag_datum = /datum/antagonist/wizard
antag_flag = ROLE_WIZARD_MIDROUND
antag_flag_override = ROLE_WIZARD
- enemy_roles = list("Security Officer","Detective","Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 1
@@ -398,7 +398,7 @@
antag_flag = ROLE_OPERATIVE_MIDROUND
antag_flag_override = ROLE_OPERATIVE
antag_datum = /datum/antagonist/nukeop
- enemy_roles = list("AI", "Cyborg", "Security Officer", "Warden","Detective","Head of Security", "Captain")
+ enemy_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(3,3,3,3,3,2,1,1,0,0)
required_candidates = 5
weight = 5
@@ -440,7 +440,7 @@
name = "Blob"
antag_datum = /datum/antagonist/blob
antag_flag = ROLE_BLOB
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 2
@@ -458,9 +458,9 @@
antag_datum = /datum/antagonist/blob/infection
antag_flag = ROLE_BLOB_INFECTION
antag_flag_override = ROLE_BLOB
- protected_roles = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain")
- restricted_roles = list("Cyborg", "AI", "Positronic Brain")
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG, ROLE_POSITRONIC_BRAIN)
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 2
@@ -498,7 +498,7 @@
name = "Alien Infestation"
antag_datum = /datum/antagonist/xeno
antag_flag = ROLE_ALIEN
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 3
@@ -545,7 +545,7 @@
antag_datum = /datum/antagonist/nightmare
antag_flag = ROLE_NIGHTMARE
antag_flag_override = ROLE_ALIEN
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 3
@@ -591,7 +591,7 @@
antag_datum = /datum/antagonist/space_dragon
antag_flag = ROLE_SPACE_DRAGON
antag_flag_override = ROLE_SPACE_DRAGON
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 4
@@ -635,7 +635,7 @@
name = "Abductors"
antag_datum = /datum/antagonist/abductor
antag_flag = ROLE_ABDUCTOR
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 2
required_applicants = 2
@@ -674,7 +674,7 @@
antag_datum = /datum/antagonist/swarmer
antag_flag = ROLE_SWARMER
required_type = /mob/dead/observer
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 0
weight = 3
@@ -707,7 +707,7 @@
name = "Space Ninja"
antag_datum = /datum/antagonist/ninja
antag_flag = ROLE_NINJA
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 4
@@ -746,7 +746,7 @@
name = "Spiders"
antag_flag = ROLE_SPIDER
required_type = /mob/dead/observer
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 0
weight = 3
@@ -764,7 +764,7 @@
name = "Revenant"
antag_datum = /datum/antagonist/revenant
antag_flag = ROLE_REVENANT
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 4
@@ -829,7 +829,7 @@
name = "Space Pirates"
antag_flag = "Space Pirates"
required_type = /mob/dead/observer
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 0
weight = 4
@@ -851,8 +851,8 @@
name = "Obsessed"
antag_datum = /datum/antagonist/obsessed
antag_flag = ROLE_OBSESSED
- restricted_roles = list("Cyborg", "AI", "Positronic Brain")
- enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
+ restricted_roles = list(JOB_AI, JOB_CYBORG, ROLE_POSITRONIC_BRAIN)
+ enemy_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
weight = 4
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
index 09ff8256ec7..b94ddc65197 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
@@ -11,8 +11,8 @@
antag_flag = ROLE_TRAITOR
antag_datum = /datum/antagonist/traitor
minimum_required_age = 0
- protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain")
- restricted_roles = list("AI", "Cyborg")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 1
weight = 5
cost = 8 // Avoid raising traitor threat above this, as it is the default low cost ruleset.
@@ -53,7 +53,7 @@
antag_flag = ROLE_MALF
antag_datum = /datum/antagonist/malf_ai
minimum_required_age = 14
- exclusive_roles = list("AI")
+ exclusive_roles = list(JOB_AI)
required_candidates = 1
weight = 3
cost = 18
@@ -97,8 +97,8 @@
name = "Blood Brothers"
antag_flag = ROLE_BROTHER
antag_datum = /datum/antagonist/brother
- protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain")
- restricted_roles = list("Cyborg", "AI")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 2
weight = 4
cost = 15
@@ -146,8 +146,8 @@
name = "Changelings"
antag_flag = ROLE_CHANGELING
antag_datum = /datum/antagonist/changeling
- protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain")
- restricted_roles = list("AI", "Cyborg")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 1
weight = 3
cost = 16
@@ -185,8 +185,8 @@
name = "Heretics"
antag_flag = ROLE_HERETIC
antag_datum = /datum/antagonist/heretic
- protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain")
- restricted_roles = list("AI", "Cyborg")
+ protected_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG)
required_candidates = 1
weight = 3
cost = 15
@@ -233,7 +233,7 @@
antag_datum = /datum/antagonist/wizard
flags = HIGH_IMPACT_RULESET
minimum_required_age = 14
- restricted_roles = list("Head of Security", "Captain") // Just to be sure that a wizard getting picked won't ever imply a Captain or HoS not getting drafted
+ restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY) // Just to be sure that a wizard getting picked won't ever imply a Captain or HoS not getting drafted
required_candidates = 1
weight = 2
cost = 20
@@ -276,7 +276,7 @@
antag_flag = ROLE_CULTIST
antag_datum = /datum/antagonist/cult
minimum_required_age = 14
- restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel")
+ restricted_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_CHAPLAIN, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_candidates = 2
weight = 3
cost = 20
@@ -334,7 +334,7 @@
antag_datum = /datum/antagonist/nukeop
var/datum/antagonist/antag_leader_datum = /datum/antagonist/nukeop/leader
minimum_required_age = 14
- restricted_roles = list("Head of Security", "Captain") // Just to be sure that a nukie getting picked won't ever imply a Captain or HoS not getting drafted
+ restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_SECURITY) // Just to be sure that a nukie getting picked won't ever imply a Captain or HoS not getting drafted
required_candidates = 5
weight = 3
cost = 20
@@ -419,7 +419,7 @@
antag_flag_override = ROLE_REV
antag_datum = /datum/antagonist/rev/head
minimum_required_age = 14
- restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director")
+ restricted_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER)
required_candidates = 3
weight = 3
delay = 7 MINUTES
@@ -502,8 +502,8 @@
persistent = TRUE
antag_datum = /datum/antagonist/gang
antag_flag = ROLE_FAMILIES
- protected_roles = list("Prisoner", "Head of Personnel")
- restricted_roles = list("Cyborg", "AI", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Research Director")
+ protected_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_PRISONER)
+ restricted_roles = list(JOB_AI, JOB_CYBORG, JOB_CAPTAIN, JOB_RESEARCH_DIRECTOR, JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_SECURITY_OFFICER, JOB_DETECTIVE)
required_candidates = 3
weight = 1
cost = 19
@@ -598,7 +598,7 @@
name = "Monkey"
antag_flag = ROLE_MONKEY
antag_datum = /datum/antagonist/monkey/leader
- restricted_roles = list("Cyborg", "AI", "Prisoner")
+ restricted_roles = list(JOB_AI, JOB_CYBORG, JOB_PRISONER)
required_candidates = 1
weight = 3
cost = 0
diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm
index 0b56182d823..433d2a2a03a 100644
--- a/code/game/gamemodes/objective_items.dm
+++ b/code/game/gamemodes/objective_items.dm
@@ -29,49 +29,49 @@
name = "the captain's antique laser gun."
targetitem = /obj/item/gun/energy/laser/captain
difficulty = 5
- excludefromjob = list("Captain")
+ excludefromjob = list(JOB_CAPTAIN)
/datum/objective_item/steal/hoslaser
name = "the head of security's personal laser gun."
targetitem = /obj/item/gun/energy/e_gun/hos
difficulty = 10
- excludefromjob = list("Head Of Security")
+ excludefromjob = list(JOB_HEAD_OF_SECURITY)
/datum/objective_item/steal/handtele
name = "a hand teleporter."
targetitem = /obj/item/hand_tele
difficulty = 5
- excludefromjob = list("Captain", "Research Director")
+ excludefromjob = list(JOB_CAPTAIN, JOB_RESEARCH_DIRECTOR)
/datum/objective_item/steal/jetpack
name = "the Captain's jetpack."
targetitem = /obj/item/tank/jetpack/oxygen/captain
difficulty = 5
- excludefromjob = list("Captain")
+ excludefromjob = list(JOB_CAPTAIN)
/datum/objective_item/steal/magboots
name = "the chief engineer's advanced magnetic boots."
targetitem = /obj/item/clothing/shoes/magboots/advance
difficulty = 5
- excludefromjob = list("Chief Engineer")
+ excludefromjob = list(JOB_CHIEF_ENGINEER)
/datum/objective_item/steal/capmedal
name = "the medal of captaincy."
targetitem = /obj/item/clothing/accessory/medal/gold/captain
difficulty = 5
- excludefromjob = list("Captain")
+ excludefromjob = list(JOB_CAPTAIN)
/datum/objective_item/steal/hypo
name = "the hypospray."
targetitem = /obj/item/reagent_containers/hypospray/cmo
difficulty = 5
- excludefromjob = list("Chief Medical Officer")
+ excludefromjob = list(JOB_CHIEF_MEDICAL_OFFICER)
/datum/objective_item/steal/nukedisc
name = "the nuclear authentication disk."
targetitem = /obj/item/disk/nuclear
difficulty = 5
- excludefromjob = list("Captain")
+ excludefromjob = list(JOB_CAPTAIN)
/datum/objective_item/steal/nukedisc/check_special_completion(obj/item/disk/nuclear/N)
return !N.fake
@@ -80,13 +80,13 @@
name = "a reflector trenchcoat."
targetitem = /obj/item/clothing/suit/hooded/ablative
difficulty = 3
- excludefromjob = list("Head of Security", "Warden")
+ excludefromjob = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN)
/datum/objective_item/steal/reactive
name = "the reactive teleport armor."
targetitem = /obj/item/clothing/suit/armor/reactive/teleport
difficulty = 5
- excludefromjob = list("Research Director")
+ excludefromjob = list(JOB_RESEARCH_DIRECTOR)
/datum/objective_item/steal/documents
name = "any set of secret documents of any organization."
@@ -106,7 +106,7 @@
name = "the source code for Project Goon from the master R&D server mainframe."
targetitem = /obj/item/computer_hardware/hard_drive/cluster/hdd_theft
difficulty = 10
- excludefromjob = list("Research Director","Scientist", "Geneticist", "Roboticist")
+ excludefromjob = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST)
/datum/objective_item/steal/hdd_extraction/New()
special_equipment += /obj/item/paper/guides/antag/hdd_extraction
@@ -130,7 +130,10 @@
name = "28 moles of plasma (full tank)."
targetitem = /obj/item/tank
difficulty = 3
- excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician")
+ excludefromjob = list(
+ JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN,
+ JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST,
+ )
/datum/objective_item/steal/plasma/check_special_completion(obj/item/tank/T)
var/target_amount = text2num(name)
@@ -155,7 +158,7 @@
name = "the station blueprints."
targetitem = /obj/item/areaeditor/blueprints
difficulty = 10
- excludefromjob = list("Chief Engineer")
+ excludefromjob = list(JOB_CHIEF_ENGINEER)
altitems = list(/obj/item/photo)
/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I)
@@ -171,7 +174,7 @@
name = "an unused sample of slime extract."
targetitem = /obj/item/slime_extract
difficulty = 3
- excludefromjob = list("Research Director","Scientist")
+ excludefromjob = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST)
/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E)
if(E.Uses > 0)
@@ -182,7 +185,7 @@
name = "The Blackbox."
targetitem = /obj/item/blackbox
difficulty = 10
- excludefromjob = list("Chief Engineer","Station Engineer","Atmospheric Technician")
+ excludefromjob = list(JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN)
//Unique Objectives
/datum/objective_item/special/New()
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index 5c4579e1ab1..45b1d63f721 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -97,60 +97,67 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
var/list/jobs = list(
// Note that jobs divisible by 10 are considered heads of staff, and bolded
// 00: Captain
- "Captain" = 00,
+ JOB_CAPTAIN = 00,
// 10-19: Security
- "Head of Security" = 10,
- "Warden" = 11,
- "Security Officer" = 12,
- "Security Officer (Medical)" = 13,
- "Security Officer (Engineering)" = 14,
- "Security Officer (Science)" = 15,
- "Security Officer (Cargo)" = 16,
- "Detective" = 17,
+ JOB_HEAD_OF_SECURITY = 10,
+ JOB_WARDEN = 11,
+ JOB_SECURITY_OFFICER = 12,
+ JOB_SECURITY_OFFICER_MEDICAL = 13,
+ JOB_SECURITY_OFFICER_ENGINEERING = 14,
+ JOB_SECURITY_OFFICER_SCIENCE = 15,
+ JOB_SECURITY_OFFICER_SUPPLY = 16,
+ JOB_DETECTIVE = 17,
// 20-29: Medbay
- "Chief Medical Officer" = 20,
- "Chemist" = 21,
- "Virologist" = 22,
- "Medical Doctor" = 23,
- "Paramedic" = 24,
+ JOB_CHIEF_MEDICAL_OFFICER = 20,
+ JOB_CHEMIST = 21,
+ JOB_VIROLOGIST = 22,
+ JOB_MEDICAL_DOCTOR = 23,
+ JOB_PARAMEDIC = 24,
// 30-39: Science
- "Research Director" = 30,
- "Scientist" = 31,
- "Roboticist" = 32,
- "Geneticist" = 33,
+ JOB_RESEARCH_DIRECTOR = 30,
+ JOB_SCIENTIST = 31,
+ JOB_ROBOTICIST = 32,
+ JOB_GENETICIST = 33,
// 40-49: Engineering
- "Chief Engineer" = 40,
- "Station Engineer" = 41,
- "Atmospheric Technician" = 42,
+ JOB_CHIEF_ENGINEER = 40,
+ JOB_STATION_ENGINEER = 41,
+ JOB_ATMOSPHERIC_TECHNICIAN = 42,
// 50-59: Cargo
- "Head of Personnel" = 50,
- "Quartermaster" = 51,
- "Shaft Miner" = 52,
- "Cargo Technician" = 53,
+ JOB_HEAD_OF_PERSONNEL = 50,
+ JOB_QUARTERMASTER = 51,
+ JOB_SHAFT_MINER = 52,
+ JOB_CARGO_TECHNICIAN = 53,
// 60+: Civilian/other
- "Bartender" = 61,
- "Cook" = 62,
- "Botanist" = 63,
- "Curator" = 64,
- "Chaplain" = 65,
- "Clown" = 66,
- "Mime" = 67,
- "Janitor" = 68,
- "Lawyer" = 69,
- "Psychologist" = 71,
- // ANYTHING ELSE = UNKNOWN_JOB_ID, Unknowns/custom jobs will appear after civilians, and before assistants
- "Assistant" = 999,
-
+ JOB_BARTENDER = 61,
+ JOB_COOK = 62,
+ JOB_BOTANIST = 63,
+ JOB_CURATOR = 64,
+ JOB_CHAPLAIN = 65,
+ JOB_CLOWN = 66,
+ JOB_MIME = 67,
+ JOB_JANITOR = 68,
+ JOB_LAWYER = 69,
+ JOB_PSYCHOLOGIST = 71,
// 200-229: Centcom
- "Admiral" = 200,
- "CentCom Commander" = 210,
- "Custodian" = 211,
- "Medical Officer" = 212,
- "Research Officer" = 213,
- "Emergency Response Team Commander" = 220,
- "Security Response Officer" = 221,
- "Engineer Response Officer" = 222,
- "Medical Response Officer" = 223
+ JOB_CENTCOM_ADMIRAL = 200,
+ JOB_CENTCOM = 201,
+ JOB_CENTCOM_OFFICIAL = 210,
+ JOB_CENTCOM_COMMANDER = 211,
+ JOB_CENTCOM_BARTENDER = 212,
+ JOB_CENTCOM_CUSTODIAN = 213,
+ JOB_CENTCOM_MEDICAL_DOCTOR = 214,
+ JOB_CENTCOM_RESEARCH_OFFICER = 215,
+ JOB_ERT_COMMANDER = 220,
+ JOB_ERT_OFFICER = 221,
+ JOB_ERT_ENGINEER = 222,
+ JOB_ERT_MEDICAL_DOCTOR = 223,
+ JOB_ERT_CLOWN = 224,
+ JOB_ERT_CHAPLAIN = 225,
+ JOB_ERT_JANITOR = 226,
+ JOB_ERT_DEATHSQUAD = 227,
+
+ // ANYTHING ELSE = UNKNOWN_JOB_ID, Unknowns/custom jobs will appear after civilians, and before assistants
+ JOB_ASSISTANT = 999,
)
/datum/crewmonitor/ui_interact(mob/user, datum/tgui/ui)
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 87d1808f13c..89e829e713f 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -905,7 +905,12 @@ What a mess.*/
temp += "
Discharged"
temp += ""
if("rank")
- var/list/L = list( "Head of Personnel", "Captain", "AI", "Central Command" )
+ var/list/L = list(
+ JOB_CAPTAIN,
+ JOB_HEAD_OF_PERSONNEL,
+ JOB_AI,
+ JOB_CENTCOM,
+ )
//This was so silly before the change. Now it actually works without beating your head against the keyboard. /N
if((istype(active1, /datum/data/record) && L.Find(rank)))
temp = "Rank:
"
diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm
index 87085b1d8ab..b324341c9ba 100644
--- a/code/game/machinery/telecomms/computers/logbrowser.dm
+++ b/code/game/machinery/telecomms/computers/logbrowser.dm
@@ -77,7 +77,7 @@
race = "Slime"
// sometimes M gets deleted prematurely for AIs... just check the job
- else if(ispath(mobtype, /mob/living/silicon) || C.parameters["job"] == "AI")
+ else if(ispath(mobtype, /mob/living/silicon) || C.parameters["job"] == JOB_AI)
race = "Artificial Life"
else if(isobj(mobtype))
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 9ee9052aea8..75dc57d9fa3 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -255,7 +255,7 @@
return
var/mob/living/brain/brainmob = M.brainmob
- if(is_banned_from(brainmob.ckey, "Cyborg") || QDELETED(src) || QDELETED(brainmob) || QDELETED(user) || QDELETED(M) || !Adjacent(user))
+ if(is_banned_from(brainmob.ckey, JOB_CYBORG) || QDELETED(src) || QDELETED(brainmob) || QDELETED(user) || QDELETED(M) || !Adjacent(user))
if(!QDELETED(M))
to_chat(user, span_warning("This [M.name] does not seem to fit!"))
return
@@ -289,7 +289,7 @@
O.log_current_laws()
brainmob.mind?.remove_antags_for_borging()
- O.job = "Cyborg"
+ O.job = JOB_CYBORG
O.cell = chest.cell
chest.cell.forceMove(O)
@@ -348,7 +348,7 @@
chest.cell.forceMove(O)
chest.cell = null
O.locked = panel_locked
- O.job = "Cyborg"
+ O.job = JOB_CYBORG
forceMove(O)
O.robot_suit = src
if(!locomotion)
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 201f97b0940..324b5ed8e06 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -197,7 +197,7 @@
return
var/mob/living/brain/B = M.brainmob
- if(!CONFIG_GET(flag/allow_ai) || (is_banned_from(B.ckey, "AI") && !QDELETED(src) && !QDELETED(user) && !QDELETED(M) && !QDELETED(user) && Adjacent(user)))
+ if(!CONFIG_GET(flag/allow_ai) || (is_banned_from(B.ckey, JOB_AI) && !QDELETED(src) && !QDELETED(user) && !QDELETED(M) && !QDELETED(user) && Adjacent(user)))
if(!QDELETED(M))
to_chat(user, span_warning("This [M.name] does not seem to fit!"))
return
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index f7aad8f38a3..f601969520e 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -85,7 +85,7 @@
body += "VV - "
body += "SP - "
body += "TP - "
- if (job == "Cyborg")
+ if (job == JOB_CYBORG)
body += "BP - "
body += "PM - "
body += "SM - "
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 4015bfcdc19..8e182665292 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -298,9 +298,9 @@ GLOBAL_VAR_INIT(say_disabled, FALSE)
for(var/job in subtypesof(/datum/job))
var/datum/job/JB = new job
switch(JB.title)
- if("AI")
+ if(JOB_AI)
final.Insert(icon('icons/mob/ai.dmi', "ai", SOUTH, 1), "AI")
- if("Cyborg")
+ if(JOB_CYBORG)
final.Insert(icon('icons/mob/robots.dmi', "robot", SOUTH, 1), "Cyborg")
else
for(var/obj/item/I in D)
diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 4d70fecdafd..944c836a01b 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -21,7 +21,7 @@
var/font_color = "purple"
var/prayer_type = "PRAYER"
var/deity
- if(usr.job == "Chaplain")
+ if(usr.job == JOB_CHAPLAIN)
cross.icon_state = "kingyellow"
font_color = "blue"
prayer_type = "CHAPLAIN PRAYER"
@@ -40,7 +40,7 @@
prayer_type = "SPIRITUAL PRAYER"
var/msg_tmp = msg
- GLOB.requests.pray(usr.client, msg, usr.job == "Chaplain")
+ GLOB.requests.pray(usr.client, msg, usr.job == JOB_CHAPLAIN)
msg = span_adminnotice("[icon2html(cross, GLOB.admins)][prayer_type][deity ? " (to [deity])" : ""]: [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: [msg]")
for(var/client/C in GLOB.admins)
if(C.prefs.chat_toggles & CHAT_PRAYER)
diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm
index f3ed4a06a38..5c76e98585e 100644
--- a/code/modules/antagonists/abductor/abductor.dm
+++ b/code/modules/antagonists/abductor/abductor.dm
@@ -142,7 +142,7 @@ GLOBAL_LIST_INIT(possible_abductor_names, list("Alpha","Beta","Gamma","Delta","E
to_chat(admin, span_warning("This only works on humans!"))
return
var/mob/living/carbon/human/H = owner.current
- var/gear = tgui_alert(admin,"Agent or Scientist Gear","Gear",list("Agent","Scientist"))
+ var/gear = tgui_alert(admin,"Agent or Scientist Gear", "Gear", list("Agent", "Scientist"))
if(gear)
if(gear=="Agent")
H.equipOutfit(/datum/outfit/abductor/agent)
diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm
index 0ef4086f072..95383ce357e 100644
--- a/code/modules/events/wizard/departmentrevolt.dm
+++ b/code/modules/events/wizard/departmentrevolt.dm
@@ -56,7 +56,7 @@
switch(department)
if("Uprising of Assistants") //God help you
- jobs_to_revolt += "Assistant"
+ jobs_to_revolt += JOB_ASSISTANT
nation_name = pick("Assa", "Mainte", "Tunnel", "Gris", "Grey", "Liath", "Grigio", "Ass", "Assi")
if("Medical")
var/datum/job_department/job_department = SSjob.get_department_type(/datum/job_department/medical)
diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm
index b09357a34cb..0aad9b71509 100644
--- a/code/modules/jobs/job_types/ai.dm
+++ b/code/modules/jobs/job_types/ai.dm
@@ -1,5 +1,5 @@
/datum/job/ai
- title = "AI"
+ title = JOB_AI
description = "Assist the crew, follow your laws, coordinate your cyborgs."
auto_deadmin_role_flags = DEADMIN_POSITION_SILICON
faction = FACTION_STATION
diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm
index 17c9aff1ad1..b6c97419d60 100644
--- a/code/modules/jobs/job_types/assistant.dm
+++ b/code/modules/jobs/job_types/assistant.dm
@@ -4,7 +4,7 @@ GLOBAL_DATUM(colored_assistant, /datum/colored_assistant)
Assistant
*/
/datum/job/assistant
- title = "Assistant"
+ title = JOB_ASSISTANT
description = "Get your space legs, assist people, ask the HoP to give you a job."
faction = FACTION_STATION
total_positions = 5
diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm
index 5e0bcff7cc7..42b167e1b56 100644
--- a/code/modules/jobs/job_types/atmospheric_technician.dm
+++ b/code/modules/jobs/job_types/atmospheric_technician.dm
@@ -1,7 +1,7 @@
/datum/job/atmospheric_technician
- title = "Atmospheric Technician"
+ title = JOB_ATMOSPHERIC_TECHNICIAN
description = "Ensure the air is breathable on the station, fill oxygen tanks, fight fires, purify the air."
- department_head = list("Chief Engineer")
+ department_head = list(JOB_CHIEF_ENGINEER)
faction = FACTION_STATION
total_positions = 3
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm
index 24c1efbcdb9..7d6895a46fb 100644
--- a/code/modules/jobs/job_types/bartender.dm
+++ b/code/modules/jobs/job_types/bartender.dm
@@ -1,7 +1,7 @@
/datum/job/bartender
- title = "Bartender"
+ title = JOB_BARTENDER
description = "Serve booze, mix drinks, keep the crew drunk."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm
index c7417e6d9c5..4660a3c082f 100644
--- a/code/modules/jobs/job_types/botanist.dm
+++ b/code/modules/jobs/job_types/botanist.dm
@@ -1,7 +1,7 @@
/datum/job/botanist
- title = "Botanist"
+ title = JOB_BOTANIST
description = "Grow plants for the cook, for medicine, and for recreation."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 3
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index 7abe4b216e3..4fae7c9756b 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -1,5 +1,5 @@
/datum/job/captain
- title = "Captain"
+ title = JOB_CAPTAIN
description = "Be responsible for the station, manage your Heads of Staff, \
keep the crew alive, be prepared to do anything and everything or die \
horribly trying."
diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm
index befb99b5a62..00b2b3ed9b3 100644
--- a/code/modules/jobs/job_types/cargo_technician.dm
+++ b/code/modules/jobs/job_types/cargo_technician.dm
@@ -1,9 +1,9 @@
/datum/job/cargo_technician
- title = "Cargo Technician"
+ title = JOB_CARGO_TECHNICIAN
description = "Distribute supplies to the departments that ordered them, \
collect empty crates, load and unload the supply shuttle, \
ship bounty cubes."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 3
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm
index 2a7c9b3a32d..17211d7cac8 100644
--- a/code/modules/jobs/job_types/chaplain.dm
+++ b/code/modules/jobs/job_types/chaplain.dm
@@ -1,8 +1,8 @@
/datum/job/chaplain
- title = "Chaplain"
+ title = JOB_CHAPLAIN
description = "Hold services and funerals, cremate people, preach your \
religion, protect the crew against cults."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm
index 124d42df720..42b4a34f1b9 100644
--- a/code/modules/jobs/job_types/chemist.dm
+++ b/code/modules/jobs/job_types/chemist.dm
@@ -1,5 +1,5 @@
/datum/job/chemist
- title = "Chemist"
+ title = JOB_CHEMIST
description = "Supply the doctors with chemicals, make medicine, as well as \
less likable substances in the comfort of a fully reinforced room."
department_head = list("Chief Medical Officer")
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index c7cf4b62613..776004c0e41 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -1,9 +1,9 @@
/datum/job/chief_engineer
- title = "Chief Engineer"
+ title = JOB_CHIEF_ENGINEER
description = "Coordinate engineering, ensure equipment doesn't get stolen, \
make sure the Supermatter doesn't blow up, maintain telecommunications."
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD
- department_head = list("Captain")
+ department_head = list(JOB_CAPTAIN)
head_announce = list("Engineering")
faction = FACTION_STATION
total_positions = 1
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index 8c1f9046a0a..6fb21354df7 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -1,8 +1,8 @@
/datum/job/chief_medical_officer
- title = "Chief Medical Officer"
+ title = JOB_CHIEF_MEDICAL_OFFICER
description = "Coordinate doctors and other medbay employees, ensure they \
know how to save lives, check for injuries on the crew monitor."
- department_head = list("Captain")
+ department_head = list(JOB_CAPTAIN)
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD
head_announce = list(RADIO_CHANNEL_MEDICAL)
faction = FACTION_STATION
diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm
index 04391ad2e21..c656de730f6 100644
--- a/code/modules/jobs/job_types/clown.dm
+++ b/code/modules/jobs/job_types/clown.dm
@@ -1,7 +1,7 @@
/datum/job/clown
- title = "Clown"
+ title = JOB_CLOWN
description = "Entertain the crew, make bad jokes, go on a holy quest to find bananium, HONK!"
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm
index b90f5d84202..8f4cb6e7b6d 100644
--- a/code/modules/jobs/job_types/cook.dm
+++ b/code/modules/jobs/job_types/cook.dm
@@ -1,7 +1,7 @@
/datum/job/cook
- title = "Cook"
+ title = JOB_COOK
description = "Serve food, cook meat, keep the crew fed."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 2
spawn_positions = 1
@@ -38,7 +38,7 @@
if(!length(job_changes))
return
- var/list/cook_changes = job_changes["cook"]
+ var/list/cook_changes = job_changes[JOB_COOK]
if(!length(cook_changes))
return
diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm
index 3b41130afa5..8402778c934 100644
--- a/code/modules/jobs/job_types/curator.dm
+++ b/code/modules/jobs/job_types/curator.dm
@@ -1,8 +1,8 @@
/datum/job/curator
- title = "Curator"
+ title = JOB_CURATOR
description = "Read and write books and hand them to people, stock \
bookshelves, report on station news."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm
index 6c75dfa4698..1179ba9a49d 100644
--- a/code/modules/jobs/job_types/cyborg.dm
+++ b/code/modules/jobs/job_types/cyborg.dm
@@ -1,5 +1,5 @@
/datum/job/cyborg
- title = "Cyborg"
+ title = JOB_CYBORG
description = "Assist the crew, follow your laws, obey your AI."
auto_deadmin_role_flags = DEADMIN_POSITION_SILICON
faction = FACTION_STATION
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index 879d0fd901a..08fd556dead 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -1,9 +1,9 @@
/datum/job/detective
- title = "Detective"
+ title = JOB_DETECTIVE
description = "Investigate crimes, gather evidence, perform interrogations, \
look badass, smoke cigarettes."
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
- department_head = list("Head of Security")
+ department_head = list(JOB_HEAD_OF_SECURITY)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm
index dec3065b1f8..6403416d03d 100644
--- a/code/modules/jobs/job_types/geneticist.dm
+++ b/code/modules/jobs/job_types/geneticist.dm
@@ -1,7 +1,7 @@
/datum/job/geneticist
- title = "Geneticist"
+ title = JOB_GENETICIST
description = "Alter genomes, turn monkeys into humans (and vice-versa), and make DNA backups."
- department_head = list("Research Director")
+ department_head = list(JOB_RESEARCH_DIRECTOR)
faction = FACTION_STATION
total_positions = 2
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm
index 3aad3c51cef..c098d9237b1 100644
--- a/code/modules/jobs/job_types/head_of_personnel.dm
+++ b/code/modules/jobs/job_types/head_of_personnel.dm
@@ -1,9 +1,9 @@
/datum/job/head_of_personnel
- title = "Head of Personnel"
+ title = JOB_HEAD_OF_PERSONNEL
description = "Alter access on ID cards, manage civil and supply departments, \
protect Ian, run the station when the captain dies."
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD
- department_head = list("Captain")
+ department_head = list(JOB_CAPTAIN)
head_announce = list(RADIO_CHANNEL_SUPPLY, RADIO_CHANNEL_SERVICE)
faction = FACTION_STATION
total_positions = 1
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index c599c7e162d..e459e831264 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -1,9 +1,9 @@
/datum/job/head_of_security
- title = "Head of Security"
+ title = JOB_HEAD_OF_SECURITY
description = "Coordinate security personnel, ensure they are not corrupt, \
make sure every department is protected."
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD|DEADMIN_POSITION_SECURITY
- department_head = list("Captain")
+ department_head = list(JOB_CAPTAIN)
head_announce = list(RADIO_CHANNEL_SECURITY)
faction = FACTION_STATION
total_positions = 1
diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm
index 2d709cf41ba..6d0a95fe235 100644
--- a/code/modules/jobs/job_types/janitor.dm
+++ b/code/modules/jobs/job_types/janitor.dm
@@ -1,7 +1,7 @@
/datum/job/janitor
- title = "Janitor"
+ title = JOB_JANITOR
description = "Clean up trash and blood. Replace broken lights. Slip people over."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 2
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm
index be4ed72678a..23ffba8d643 100644
--- a/code/modules/jobs/job_types/lawyer.dm
+++ b/code/modules/jobs/job_types/lawyer.dm
@@ -1,8 +1,8 @@
/datum/job/lawyer
- title = "Lawyer"
+ title = JOB_LAWYER
description = "Advocate for prisoners, create law-binding contracts, \
ensure Security is following protocol and Space Law."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 2
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm
index 454895f1f26..a54bdd5fcf0 100644
--- a/code/modules/jobs/job_types/medical_doctor.dm
+++ b/code/modules/jobs/job_types/medical_doctor.dm
@@ -1,8 +1,8 @@
/datum/job/doctor
- title = "Medical Doctor"
+ title = JOB_MEDICAL_DOCTOR
description = "Save lives, run around the station looking for victims, \
scan everyone in sight"
- department_head = list("Chief Medical Officer")
+ department_head = list(JOB_CHIEF_MEDICAL_OFFICER)
faction = FACTION_STATION
total_positions = 5
spawn_positions = 3
diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm
index d12d518da6f..af8f67d522b 100644
--- a/code/modules/jobs/job_types/mime.dm
+++ b/code/modules/jobs/job_types/mime.dm
@@ -1,7 +1,7 @@
/datum/job/mime
- title = "Mime"
+ title = JOB_MIME
description = "..."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm
index 1be68a42344..223b15a5b8c 100644
--- a/code/modules/jobs/job_types/paramedic.dm
+++ b/code/modules/jobs/job_types/paramedic.dm
@@ -1,8 +1,8 @@
/datum/job/paramedic
- title = "Paramedic"
+ title = JOB_PARAMEDIC
description = "Run around the station looking for patients, respond to \
emergencies, give patients a roller bed ride to medbay."
- department_head = list("Chief Medical Officer")
+ department_head = list(JOB_CHIEF_MEDICAL_OFFICER)
faction = FACTION_STATION
total_positions = 2
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm
index 85518ff30b4..ed88f7bbcde 100644
--- a/code/modules/jobs/job_types/prisoner.dm
+++ b/code/modules/jobs/job_types/prisoner.dm
@@ -1,5 +1,5 @@
/datum/job/prisoner
- title = "Prisoner"
+ title = JOB_PRISONER
description = "Keep yourself occupied in permabrig."
department_head = list("The Security Team")
faction = FACTION_STATION
diff --git a/code/modules/jobs/job_types/psychologist.dm b/code/modules/jobs/job_types/psychologist.dm
index 16d6d81f5cd..0b31a67153d 100644
--- a/code/modules/jobs/job_types/psychologist.dm
+++ b/code/modules/jobs/job_types/psychologist.dm
@@ -1,8 +1,8 @@
/datum/job/psychologist
- title = "Psychologist"
+ title = JOB_PSYCHOLOGIST
description = "Advocate sanity, self-esteem, and teamwork in a station \
staffed with headcases."
- department_head = list("Head of Personnel","Chief Medical Officer")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm
index 52b6239feda..75c788587b6 100644
--- a/code/modules/jobs/job_types/quartermaster.dm
+++ b/code/modules/jobs/job_types/quartermaster.dm
@@ -1,8 +1,8 @@
/datum/job/quartermaster
- title = "Quartermaster"
+ title = JOB_QUARTERMASTER
description = "Coordinate cargo technicians and shaft miners, assist with \
economical purchasing."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index e14e4a9e0f0..c1c89f4891b 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -1,10 +1,10 @@
/datum/job/research_director
- title = "Research Director"
+ title = JOB_RESEARCH_DIRECTOR
description = "Supervise research efforts, ensure Robotics is in working \
order, make sure the AI and its Cyborgs aren't rogue, replacing them if \
they are"
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD
- department_head = list("Captain")
+ department_head = list(JOB_CAPTAIN)
head_announce = list("Science")
faction = FACTION_STATION
total_positions = 1
diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm
index d8a47cf62f7..2c712b103ed 100644
--- a/code/modules/jobs/job_types/roboticist.dm
+++ b/code/modules/jobs/job_types/roboticist.dm
@@ -1,7 +1,7 @@
/datum/job/roboticist
- title = "Roboticist"
+ title = JOB_ROBOTICIST
description = "Build and repair the AI and cyborgs, create mechs."
- department_head = list("Research Director")
+ department_head = list(JOB_RESEARCH_DIRECTOR)
faction = FACTION_STATION
total_positions = 2
spawn_positions = 2
diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm
index 53b19952c0c..846f5947a86 100644
--- a/code/modules/jobs/job_types/scientist.dm
+++ b/code/modules/jobs/job_types/scientist.dm
@@ -1,7 +1,7 @@
/datum/job/scientist
- title = "Scientist"
+ title = JOB_SCIENTIST
description = "Do experiments, perform research, feed the slimes, make bombs."
- department_head = list("Research Director")
+ department_head = list(JOB_RESEARCH_DIRECTOR)
faction = FACTION_STATION
total_positions = 5
spawn_positions = 3
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index 0edd741c173..1e3f055f475 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -1,9 +1,9 @@
/datum/job/security_officer
- title = "Security Officer"
+ title = JOB_SECURITY_OFFICER
description = "Protect company assets, follow the Standard Operating \
Procedure, eat donuts."
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
- department_head = list("Head of Security")
+ department_head = list(JOB_HEAD_OF_SECURITY)
faction = FACTION_STATION
total_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
spawn_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm
index 76c52cb15d9..45d1809e811 100644
--- a/code/modules/jobs/job_types/shaft_miner.dm
+++ b/code/modules/jobs/job_types/shaft_miner.dm
@@ -1,8 +1,8 @@
/datum/job/shaft_miner
- title = "Shaft Miner"
+ title = JOB_SHAFT_MINER
description = "Travel to strange lands. Mine ores. \
Meet strange creatures. Kill them for their gold."
- department_head = list("Head of Personnel")
+ department_head = list(JOB_HEAD_OF_PERSONNEL)
faction = FACTION_STATION
total_positions = 3
spawn_positions = 3
diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm
index 641dd93d17e..ba44eac06a0 100644
--- a/code/modules/jobs/job_types/station_engineer.dm
+++ b/code/modules/jobs/job_types/station_engineer.dm
@@ -1,8 +1,8 @@
/datum/job/station_engineer
- title = "Station Engineer"
+ title = JOB_STATION_ENGINEER
description = "Start the Supermatter, wire the solars, repair station hull \
and wiring damage."
- department_head = list("Chief Engineer")
+ department_head = list(JOB_CHIEF_ENGINEER)
faction = FACTION_STATION
total_positions = 5
spawn_positions = 5
diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm
index 6306ed17146..c2be2084c5a 100644
--- a/code/modules/jobs/job_types/virologist.dm
+++ b/code/modules/jobs/job_types/virologist.dm
@@ -1,8 +1,8 @@
/datum/job/virologist
- title = "Virologist"
+ title = JOB_VIROLOGIST
description = "Study the effects of various diseases and synthesize a \
vaccine for them. Engineer beneficial viruses."
- department_head = list("Chief Medical Officer")
+ department_head = list(JOB_CHIEF_MEDICAL_OFFICER)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
@@ -33,7 +33,7 @@
/obj/item/reagent_containers/glass/bottle/formaldehyde = 10,
/obj/item/reagent_containers/glass/bottle/synaptizine = 10,
/obj/item/stack/sheet/mineral/plasma = 10,
- /obj/item/stack/sheet/mineral/uranium = 5
+ /obj/item/stack/sheet/mineral/uranium = 5,
)
rpg_title = "Plague Doctor"
job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index 46d69c75d0f..53e78ee7cd7 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -1,10 +1,10 @@
/datum/job/warden
- title = "Warden"
+ title = JOB_WARDEN
description = "Watch over the Brig and Prison Wing, release prisoners when \
their time is up, issue equipment to security, be a security officer when \
they all eventually die."
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
- department_head = list("Head of Security")
+ department_head = list(JOB_HEAD_OF_SECURITY)
faction = FACTION_STATION
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index a0ac68eb703..4bc1be9d5c7 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -218,7 +218,7 @@
if(is_captain_job(job))
is_captain = IS_FULL_CAPTAIN
// If we don't have an assigned cap yet, check if this person qualifies for some from of captaincy.
- else if(!SSjob.assigned_captain && ishuman(character) && SSjob.chain_of_command[rank] && !is_banned_from(ckey, list("Captain")))
+ else if(!SSjob.assigned_captain && ishuman(character) && SSjob.chain_of_command[rank] && !is_banned_from(ckey, list(JOB_CAPTAIN)))
is_captain = IS_ACTING_CAPTAIN
if(is_captain != IS_NOT_CAPTAIN)
minor_announce(job.get_captaincy_announcement(character))
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b29a6948b09..2fab908f62c 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1166,7 +1166,7 @@
if(issilicon(new_mob))
new_mob.gender = gender
new_mob.invisibility = 0
- new_mob.job = "Cyborg"
+ new_mob.job = JOB_CYBORG
var/mob/living/silicon/robot/Robot = new_mob
Robot.lawupdate = FALSE
Robot.connected_ai = null
diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm
index 59aa05a6706..5ddbfe6fd65 100644
--- a/code/modules/mob/living/simple_animal/hostile/zombie.dm
+++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm
@@ -22,7 +22,7 @@
minbodytemp = 0
status_flags = CANPUSH
del_on_death = 1
- var/zombiejob = "Medical Doctor"
+ var/zombiejob = JOB_MEDICAL_DOCTOR
var/infection_chance = 0
/mob/living/simple_animal/hostile/zombie/Initialize(mapload)
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 5b81e921471..41d9ca5bb5c 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -145,11 +145,11 @@
R.mmi.brainmob.real_name = real_name //the name of the brain inside the cyborg is the robotized human's name.
R.mmi.brainmob.name = real_name
- R.job = "Cyborg"
+ R.job = JOB_CYBORG
R.notify_ai(AI_NOTIFICATION_NEW_BORG)
. = R
- if(R.ckey && is_banned_from(R.ckey, "Cyborg"))
+ if(R.ckey && is_banned_from(R.ckey, JOB_CYBORG))
INVOKE_ASYNC(R, /mob/living/silicon/robot.proc/replace_banned_cyborg)
qdel(src)
diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.dm b/code/modules/modular_computers/file_system/programs/jobmanagement.dm
index c2eedd51ec3..3c92dd6253b 100644
--- a/code/modules/modular_computers/file_system/programs/jobmanagement.dm
+++ b/code/modules/modular_computers/file_system/programs/jobmanagement.dm
@@ -16,15 +16,16 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
var/change_position_cooldown = 30
//Jobs you cannot open new positions for
var/list/blacklisted = list(
- "AI",
- "Assistant",
- "Cyborg",
- "Captain",
- "Head of Personnel",
- "Head of Security",
- "Chief Engineer",
- "Research Director",
- "Chief Medical Officer")
+ JOB_CAPTAIN,
+ JOB_HEAD_OF_PERSONNEL,
+ JOB_HEAD_OF_SECURITY,
+ JOB_RESEARCH_DIRECTOR,
+ JOB_CHIEF_MEDICAL_OFFICER,
+ JOB_CHIEF_MEDICAL_OFFICER,
+ JOB_AI,
+ JOB_CYBORG,
+ JOB_ASSISTANT,
+ )
//The scaling factor of max total positions in relation to the total amount of people on board the station in %
var/max_relative_positions = 30 //30%: Seems reasonable, limit of 6 @ 20 players
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 17d2b38bde1..7fe8c102ddb 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -1731,7 +1731,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "A tattered old jumpsuit that will provide absolutely no benefit to you."
item = /obj/item/clothing/under/color/grey/ancient
cost = 20
- restricted_roles = list("Assistant")
+ restricted_roles = list(JOB_ASSISTANT)
surplus = 0
/datum/uplink_item/role_restricted/oldtoolboxclean
@@ -1739,7 +1739,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included."
item = /obj/item/storage/toolbox/mechanical/old/clean
cost = 2
- restricted_roles = list("Assistant")
+ restricted_roles = list(JOB_ASSISTANT)
surplus = 0
/datum/uplink_item/role_restricted/pie_cannon
@@ -1747,7 +1747,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!"
cost = 10
item = /obj/item/pneumatic_cannon/pie/selfcharge
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
surplus = 0 //No fun unless you're the clown!
/datum/uplink_item/role_restricted/blastcannon
@@ -1758,7 +1758,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield. It's simple design makes it easy to conceal."
item = /obj/item/gun/blastcannon
cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist.
- restricted_roles = list("Research Director", "Scientist")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST)
/datum/uplink_item/role_restricted/gorillacubes
name = "Box of Gorilla Cubes"
@@ -1766,14 +1766,17 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
Caution: Product may rehydrate when exposed to water."
item = /obj/item/storage/box/gorillacubes
cost = 6
- restricted_roles = list("Geneticist", "Research Director")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_GENETICIST)
/datum/uplink_item/role_restricted/brainwash_disk
name = "Brainwashing Surgery Program"
desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \
Insert into an Operating Console to enable the procedure."
item = /obj/item/disk/surgery/brainwashing
- restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist")
+ restricted_roles = list(
+ JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR,
+ JOB_ROBOTICIST,
+ )
cost = 5
/datum/uplink_item/role_restricted/clown_bomb
@@ -1785,14 +1788,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
be defused, and some crew may attempt to do so."
item = /obj/item/sbeacondrop/clownbomb
cost = 15
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
/datum/uplink_item/role_restricted/clumsinessinjector //clown ops can buy this too, but it's in the pointless badassery section for them
name = "Clumsiness Injector"
desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clowns who wish to reconnect with their former clownish nature or for clowns who wish to torment and play with their prey before killing them."
item = /obj/item/dnainjector/clumsymut
cost = 1
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
illegal_tech = FALSE
/datum/uplink_item/role_restricted/spider_injector
@@ -1803,7 +1806,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
also give them a bit of sentience though."
item = /obj/item/reagent_containers/syringe/spider_extract
cost = 10
- restricted_roles = list("Research Director", "Scientist", "Roboticist")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST)
/datum/uplink_item/role_restricted/clowncar
name = "Clown Car"
@@ -1815,7 +1818,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
Premium features can be unlocked with a cryptographic sequencer!"
item = /obj/vehicle/sealed/car/clowncar
cost = 20
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
/datum/uplink_item/role_restricted/concealed_weapon_bay
name = "Concealed Weapon Bay"
@@ -1824,14 +1827,17 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
Only one can fit on a mecha."
item = /obj/item/mecha_parts/concealed_weapon_bay
cost = 3
- restricted_roles = list("Roboticist", "Research Director")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_ROBOTICIST)
/datum/uplink_item/role_restricted/syndimmi
name = "Syndicate Brand MMI"
desc = "An MMI modified to give cyborgs laws to serve the Syndicate without having their interface damaged by Cryptographic Sequencers, this will not unlock their hidden modules."
item = /obj/item/mmi/syndie
cost = 2
- restricted_roles = list("Roboticist", "Research Director", "Scientist", "Medical Doctor", "Chief Medical Officer")
+ restricted_roles = list(
+ JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST,
+ JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR,
+ )
surplus = 0
/datum/uplink_item/role_restricted/haunted_magic_eightball
@@ -1851,7 +1857,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
To activate His Grace, simply unlatch Him."
item = /obj/item/his_grace
cost = 20
- restricted_roles = list("Chaplain")
+ restricted_roles = list(JOB_CHAPLAIN)
surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain
/datum/uplink_item/role_restricted/explosive_hot_potato
@@ -1861,7 +1867,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/hot_potato/syndicate
cost = 4
surplus = 0
- restricted_roles = list("Cook", "Botanist", "Clown", "Mime")
+ restricted_roles = list(JOB_COOK, JOB_BOTANIST, JOB_CLOWN, JOB_MIME)
/datum/uplink_item/role_restricted/ez_clean_bundle
name = "EZ Clean Grenade Bundle"
@@ -1870,7 +1876,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/box/syndie_kit/ez_clean
cost = 6
surplus = 20
- restricted_roles = list("Janitor")
+ restricted_roles = list(JOB_JANITOR)
/datum/uplink_item/role_restricted/mimery
name = "Guide to Advanced Mimery Series"
@@ -1878,7 +1884,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
Obviously only works for Mimes."
cost = 12
item = /obj/item/storage/box/syndie_kit/mimery
- restricted_roles = list("Mime")
+ restricted_roles = list(JOB_MIME)
surplus = 0
/datum/uplink_item/role_restricted/pressure_mod
@@ -1888,7 +1894,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/borg/upgrade/modkit/indoors
cost = 5 //you need two for full damage, so total of 10 for maximum damage
limited_stock = 2 //you can't use more than two!
- restricted_roles = list("Shaft Miner")
+ restricted_roles = list(JOB_SHAFT_MINER)
/datum/uplink_item/role_restricted/magillitis_serum
name = "Magillitis Serum Autoinjector"
@@ -1896,21 +1902,24 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas."
item = /obj/item/reagent_containers/hypospray/medipen/magillitis
cost = 15
- restricted_roles = list("Geneticist", "Research Director")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_GENETICIST)
/datum/uplink_item/role_restricted/modified_syringe_gun
name = "Modified Compact Syringe Gun"
desc = "A compact version of the syringe gun that fires DNA injectors instead of normal syringes."
item = /obj/item/gun/syringe/dna
cost = 14
- restricted_roles = list("Geneticist", "Research Director")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_GENETICIST)
/datum/uplink_item/role_restricted/chemical_gun
name = "Reagent Dartgun"
desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents."
item = /obj/item/gun/chem
cost = 12
- restricted_roles = list("Chemist", "Chief Medical Officer", "Botanist")
+ restricted_roles = list(
+ JOB_CHIEF_MEDICAL_OFFICER, JOB_CHEMIST,
+ JOB_BOTANIST,
+ )
/datum/uplink_item/role_restricted/reverse_bear_trap
name = "Reverse Bear Trap"
@@ -1919,7 +1928,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
head after three seconds uninterrupted."
cost = 5
item = /obj/item/reverse_bear_trap
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
/datum/uplink_item/role_restricted/reverse_revolver
name = "Reverse Revolver"
@@ -1927,14 +1936,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk."
cost = 14
item = /obj/item/storage/box/hug/reverse_revolver
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
/datum/uplink_item/role_restricted/clownpin
name = "Ultra Hilarious Firing Pin"
desc = "A firing pin that, when inserted into a gun, makes that gun only usable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it."
cost = 4
item = /obj/item/firing_pin/clown/ultra
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
illegal_tech = FALSE
/datum/uplink_item/role_restricted/clownsuperpin
@@ -1942,7 +1951,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it."
cost = 7
item = /obj/item/firing_pin/clown/ultra/selfdestruct
- restricted_roles = list("Clown")
+ restricted_roles = list(JOB_CLOWN)
illegal_tech = FALSE
/datum/uplink_item/role_restricted/laser_arm
@@ -1950,7 +1959,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application."
cost = 10
item = /obj/item/autosurgeon/organ/syndicate/laser_arm
- restricted_roles = list("Roboticist", "Research Director")
+ restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_ROBOTICIST)
/datum/uplink_item/role_restricted/bureaucratic_error_remote
name = "Organic Resources Disturbance Inducer"
@@ -1958,21 +1967,21 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 2
limited_stock = 1
item = /obj/item/devices/bureaucratic_error_remote
- restricted_roles = list("Head of Personnel", "Quartermaster")
+ restricted_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_QUARTERMASTER)
/datum/uplink_item/role_restricted/meathook
name = "Butcher's Meat Hook"
desc = "A brutal cleaver on a long chain, it allows you to pull people to your location."
item = /obj/item/gun/magic/hook
cost = 11
- restricted_roles = list("Cook")
+ restricted_roles = list(JOB_COOK)
/datum/uplink_item/role_restricted/turretbox
name = "Disposable Sentry Gun"
desc = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality."
item = /obj/item/storage/toolbox/emergency/turret
cost = 11
- restricted_roles = list("Station Engineer")
+ restricted_roles = list(JOB_STATION_ENGINEER)
// Pointless
/datum/uplink_item/badass