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