diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm
index 2e6f2e7ff39..71fe686c9bb 100644
--- a/code/__DEFINES/atom_hud.dm
+++ b/code/__DEFINES/atom_hud.dm
@@ -72,3 +72,56 @@
/// cooldown for being shown the images for any particular data hud
#define ADD_HUD_TO_COOLDOWN 20
+
+
+// Security HUD icon_state defines
+
+#define SECHUD_NO_ID "hudno_id"
+#define SECHUD_UNKNOWN "hudunknown"
+#define SECHUD_CENTCOM "hudcentcom"
+
+#define SECHUD_ASSISTANT "hudassistant"
+#define SECHUD_ATMOSPHERIC_TECHNICIAN "hudatmospherictechnician"
+#define SECHUD_BARTENDER "hudbartender"
+#define SECHUD_BOTANIST "hudbotanist"
+#define SECHUD_CAPTAIN "hudcaptain"
+#define SECHUD_CARGO_TECHNICIAN "hudcargotechnician"
+#define SECHUD_CHAPLAIN "hudchaplain"
+#define SECHUD_CHEMIST "hudchemist"
+#define SECHUD_CHIEF_ENGINEER "hudchiefengineer"
+#define SECHUD_CHIEF_MEDICAL_OFFICER "hudchiefmedicalofficer"
+#define SECHUD_CLOWN "hudclown"
+#define SECHUD_COOK "hudcook"
+#define SECHUD_CURATOR "hudcurator"
+#define SECHUD_DETECTIVE "huddetective"
+#define SECHUD_GENETICIST "hudgeneticist"
+#define SECHUD_HEAD_OF_PERSONNEL "hudheadofpersonnel"
+#define SECHUD_HEAD_OF_SECURITY "hudheadofsecurity"
+#define SECHUD_JANITOR "hudjanitor"
+#define SECHUD_LAWYER "hudlawyer"
+#define SECHUD_MEDICAL_DOCTOR "hudmedicaldoctor"
+#define SECHUD_MIME "hudmime"
+#define SECHUD_PARAMEDIC "hudparamedic"
+#define SECHUD_PRISONER "hudprisoner"
+#define SECHUD_PSYCHOLOGIST "hudpsychologist"
+#define SECHUD_QUARTERMASTER "hudquartermaster"
+#define SECHUD_RESEARCH_DIRECTOR "hudresearchdirector"
+#define SECHUD_ROBOTICIST "hudroboticist"
+#define SECHUD_SECURITY_OFFICER "hudsecurityofficer"
+#define SECHUD_SCIENTIST "hudscientist"
+#define SECHUD_SHAFT_MINER "hudshaftminer"
+#define SECHUD_STATION_ENGINEER "hudstationengineer"
+#define SECHUD_VIROLOGIST "hudvirologist"
+#define SECHUD_WARDEN "hudwarden"
+
+#define SECHUD_CHEF "hudchef"
+
+#define SECHUD_DEATH_COMMANDO "huddeathcommando"
+
+#define SECHUD_EMERGENCY_RESPONSE_TEAM_COMMANDER "hudemergencyresponseteamcommander"
+#define SECHUD_SECURITY_RESPONSE_OFFICER "hudsecurityresponseofficer"
+#define SECHUD_ENGINEERING_RESPONSE_OFFICER "hudengineeringresponseofficer"
+#define SECHUD_MEDICAL_RESPONSE_OFFICER "hudmedicalresponseofficer"
+#define SECHUD_RELIGIOUS_RESPONSE_OFFICER "hudreligiousresponseofficer"
+#define SECHUD_JANITORIAL_RESPONSE_OFFICER "hudjanitorialresponseofficer"
+#define SECHUD_ENTERTAINMENT_RESPONSE_OFFICER "hudentertainmentresponseofficer"
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index 24680725286..2d7826b98ee 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -87,14 +87,14 @@
#define JOB_BARBER "Barber" // SKYRAT EDIT ADDITION
#define JOB_BOUNCER "Bouncer" // SKYRAT EDIT ADDITION
//ERTs
+#define JOB_ERT_DEATHSQUAD "Death Commando"
#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"
+#define JOB_ERT_CLOWN "Entertainment Response Officer"
//CentCom
#define JOB_CENTCOM "Central Command"
#define JOB_CENTCOM_OFFICIAL "CentCom Official"
@@ -208,12 +208,8 @@
#define JOB_REOPEN_ON_ROUNDSTART_LOSS (1<<6)
/// If the player with this job can have quirks assigned to him or not. Relevant for new player joinable jobs and roundstart antags.
#define JOB_ASSIGN_QUIRKS (1<<7)
-
-/* Job type datum job_type_flags */
-/// Stating this job is a station job
-#define JOB_STATION_JOB (1<<0)
-/// Stating this job is a Command/Head of staff job
-#define JOB_HEAD_JOB (1<<1)
+/// Whether this job can be an intern.
+#define JOB_CAN_BE_INTERN (1<<8)
#define FACTION_NONE "None"
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 4c6e6992a53..128a1b8ca85 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -198,7 +198,12 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex)
new_name += pick(GLOB.last_names)
. += new_name
if(2)
- . += pick(SSjob.station_jobs)//Returns a job.
+ var/datum/job/job = pick(SSjob.joinable_occupations)
+ if(job)
+ . += job.title //Returns a job.
+ else
+ stack_trace("Failed to pick(SSjob.joinable_occupations) on generate_code_phrase()")
+ . += "Bug"
safety -= 1
if(2)
switch(rand(1,3))//Food, drinks, or places. Only selectable once.
diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm
index 3b8bb3e035c..2dfa80669bb 100644
--- a/code/controllers/subsystem/id_access.dm
+++ b/code/controllers/subsystem/id_access.dm
@@ -439,6 +439,7 @@ SUBSYSTEM_DEF(id_access)
id_card.trim_icon_override = trim.trim_icon
id_card.trim_state_override = trim.trim_state
id_card.trim_assignment_override = trim.assignment
+ id_card.sechud_icon_state_override = trim.sechud_icon_state
if(!check_forged || !id_card.forged)
id_card.assignment = trim.assignment
@@ -455,6 +456,7 @@ SUBSYSTEM_DEF(id_access)
id_card.trim_icon_override = null
id_card.trim_state_override = null
id_card.trim_assignment_override = null
+ id_card.sechud_icon_state_override = null
/**
* Adds the accesses associated with a trim to an ID card.
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index 48b01faa293..467f9b34512 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -33,15 +33,6 @@ SUBSYSTEM_DEF(job)
/// Lazylist of mob:occupation_string pairs.
var/list/dynamic_forced_occupations
- /// A list of all jobs associated with the station. These jobs also have various icons associated with them including sechud and card trims.
- var/list/station_jobs = list()
- /// A list of all Head of Staff jobs.
- var/list/head_of_staff_jobs = list()
- /// A list of additional jobs that have various icons associated with them including sechud and card trims.
- var/list/additional_jobs_with_icons = list()
- /// A list of jobs associed with Centcom and should use the standard NT Centcom icons.
- var/list/centcom_jobs = list()
-
/**
* Keys should be assigned job roles. Values should be >= 1.
* Represents the chain of command on the station. Lower numbers mean higher priority.
@@ -807,29 +798,6 @@ 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()
- for(var/datum/job/job as anything in subtypesof(/datum/job))
- if(initial(job.job_type_flags) & JOB_STATION_JOB)
- station_jobs |= initial(job.title)
- if(initial(job.job_type_flags) & JOB_HEAD_JOB)
- head_of_staff_jobs |= initial(job.title)
-
- 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,
- JOB_SECURITY_MEDIC, JOB_SECURITY_SERGEANT, JOB_CIVIL_DISPUTES_OFFICER,
- JOB_BOUNCER, JOB_ORDERLY, JOB_SCIENCE_GUARD, JOB_ENGINEERING_GUARD, JOB_CUSTOMS_AGENT,
- JOB_BLUESHIELD, JOB_NT_REP, JOB_VANGUARD_OPERATIVE,
- JOB_SPACE_POLICE, JOB_SOLGOV, JOB_SOLGOV_LIASON,
- JOB_BARBER,
- )
-
- 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,
- )
-
job_priorities_to_strings = list(
"[JP_LOW]" = "Low Priority",
"[JP_MEDIUM]" = "Medium Priority",
diff --git a/code/datums/id_trim/_id_trim.dm b/code/datums/id_trim/_id_trim.dm
index 9fec9deacea..bce3f2b906b 100644
--- a/code/datums/id_trim/_id_trim.dm
+++ b/code/datums/id_trim/_id_trim.dm
@@ -4,8 +4,12 @@
var/trim_icon = 'icons/obj/card.dmi'
/// Icon state for this trim. Overlayed on advanced ID cards.
var/trim_state
- /// Job/assignment associated with this trim. Can be transferred to ID cards holding this trim. Decides the card's HUD icon.
+ /// Job/assignment associated with this trim. Can be transferred to ID cards holding this trim.
var/assignment
+ /// The name of the job for interns. If unset it will default to "[assignment] (Intern)".
+ var/intern_alt_name = null
+ /// The icon_state associated with this trim, as it will show on the security HUD.
+ var/sechud_icon_state = SECHUD_UNKNOWN
/// Accesses that this trim unlocks on a card it is imprinted on. These accesses never take wildcard slots and can be added and removed at will.
var/list/access = list()
diff --git a/code/datums/id_trim/centcom.dm b/code/datums/id_trim/centcom.dm
index 971045671f6..de807c9513c 100644
--- a/code/datums/id_trim/centcom.dm
+++ b/code/datums/id_trim/centcom.dm
@@ -1,28 +1,29 @@
/// Trim for basic Centcom cards.
/datum/id_trim/centcom
access = list(ACCESS_CENT_GENERAL)
- assignment = "Central Command"
+ assignment = JOB_CENTCOM
trim_state = "trim_centcom"
+ sechud_icon_state = SECHUD_CENTCOM
/// Trim for Centcom VIPs
/datum/id_trim/centcom/vip
access = list(ACCESS_CENT_GENERAL)
- assignment = "VIP Guest"
+ assignment = JOB_CENTCOM_VIP
/// Trim for Centcom Custodians.
/datum/id_trim/centcom/custodian
access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE)
- assignment = "Custodian"
+ assignment = JOB_CENTCOM_CUSTODIAN
/// Trim for Centcom Thunderdome Overseers.
/datum/id_trim/centcom/thunderdome_overseer
access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER)
- assignment = "Thunderdome Overseer"
+ assignment = JOB_CENTCOM_THUNDERDOME_OVERSEER
/// Trim for Centcom Officials.
/datum/id_trim/centcom/official
access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_WEAPONS)
- assignment = "CentCom Official"
+ assignment = JOB_CENTCOM_OFFICIAL
/// Trim for Centcom Interns.
/datum/id_trim/centcom/intern
@@ -46,21 +47,21 @@
/// Trim for Centcom Bartenders.
/datum/id_trim/centcom/bartender
access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_BAR)
- assignment = "CentCom Bartender"
+ assignment = JOB_CENTCOM_BARTENDER
/// Trim for Centcom Medical Officers.
/datum/id_trim/centcom/medical_officer
access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_MEDICAL)
- assignment = "Medical Officer"
+ assignment = JOB_CENTCOM_MEDICAL_DOCTOR
/// Trim for Centcom Research Officers.
/datum/id_trim/centcom/research_officer
access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_TELEPORTER, ACCESS_CENT_STORAGE)
- assignment = "Research Officer"
+ assignment = JOB_CENTCOM_RESEARCH_OFFICER
/// Trim for Centcom Specops Officers. All Centcom and Station Access.
/datum/id_trim/centcom/specops_officer
- assignment = "Special Ops Officer"
+ assignment = JOB_CENTCOM_SPECIAL_OFFICER
/datum/id_trim/centcom/specops_officer/New()
. = ..()
@@ -69,7 +70,7 @@
/// Trim for Centcom (Soviet) Admirals. All Centcom and Station Access.
/datum/id_trim/centcom/admiral
- assignment = "Admiral"
+ assignment = JOB_CENTCOM_ADMIRAL
/datum/id_trim/centcom/admiral/New()
. = ..()
@@ -78,7 +79,7 @@
/// Trim for Centcom Commanders. All Centcom and Station Access.
/datum/id_trim/centcom/commander
- assignment = "CentCom Commander"
+ assignment = JOB_CENTCOM_COMMANDER
/datum/id_trim/centcom/commander/New()
. = ..()
@@ -87,8 +88,9 @@
/// Trim for Deathsquad officers. All Centcom and Station Access.
/datum/id_trim/centcom/deathsquad
- assignment = "Death Commando"
+ assignment = JOB_ERT_DEATHSQUAD
trim_state = "trim_ert_commander"
+ sechud_icon_state = SECHUD_DEATH_COMMANDO
/datum/id_trim/centcom/deathsquad/New()
. = ..()
@@ -106,8 +108,9 @@
/// Trim for ERT Commanders. All station and centcom access.
/datum/id_trim/centcom/ert/commander
- assignment = "Emergency Response Team Commander"
+ assignment = JOB_ERT_COMMANDER
trim_state = "trim_ert_commander"
+ sechud_icon_state = SECHUD_EMERGENCY_RESPONSE_TEAM_COMMANDER
/datum/id_trim/centcom/ert/commander/New()
. = ..()
@@ -116,8 +119,9 @@
/// Trim for generic ERT seccies. No universal ID card changing access.
/datum/id_trim/centcom/ert/security
- assignment = "Security Response Officer"
+ assignment = JOB_ERT_OFFICER
trim_state = "trim_ert_security"
+ sechud_icon_state = SECHUD_SECURITY_RESPONSE_OFFICER
/datum/id_trim/centcom/ert/security/New()
. = ..()
@@ -126,8 +130,9 @@
/// Trim for generic ERT engineers. No universal ID card changing access.
/datum/id_trim/centcom/ert/engineer
- assignment = "Engineering Response Officer"
+ assignment = JOB_ERT_ENGINEER
trim_state = "trim_ert_engineering"
+ sechud_icon_state = SECHUD_ENGINEERING_RESPONSE_OFFICER
/datum/id_trim/centcom/ert/engineer/New()
. = ..()
@@ -136,8 +141,9 @@
/// Trim for generic ERT medics. No universal ID card changing access.
/datum/id_trim/centcom/ert/medical
- assignment = "Medical Response Officer"
+ assignment = JOB_ERT_MEDICAL_DOCTOR
trim_state = "trim_ert_medical"
+ sechud_icon_state = SECHUD_MEDICAL_RESPONSE_OFFICER
/datum/id_trim/centcom/ert/medical/New()
. = ..()
@@ -146,8 +152,9 @@
/// Trim for generic ERT chaplains. No universal ID card changing access.
/datum/id_trim/centcom/ert/chaplain
- assignment = "Religious Response Officer"
+ assignment = JOB_ERT_CHAPLAIN
trim_state = "trim_ert_religious"
+ sechud_icon_state = SECHUD_RELIGIOUS_RESPONSE_OFFICER
/datum/id_trim/centcom/ert/chaplain/New()
. = ..()
@@ -156,8 +163,9 @@
/// Trim for generic ERT janitors. No universal ID card changing access.
/datum/id_trim/centcom/ert/janitor
- assignment = "Janitorial Response Officer"
+ assignment = JOB_ERT_JANITOR
trim_state = "trim_ert_janitor"
+ sechud_icon_state = SECHUD_JANITORIAL_RESPONSE_OFFICER
/datum/id_trim/centcom/ert/janitor/New()
. = ..()
@@ -166,8 +174,9 @@
/// Trim for generic ERT clowns. No universal ID card changing access.
/datum/id_trim/centcom/ert/clown
- assignment = "Entertainment Response Officer"
+ assignment = JOB_ERT_CLOWN
trim_state = "trim_ert_entertainment"
+ sechud_icon_state = SECHUD_ENTERTAINMENT_RESPONSE_OFFICER
/datum/id_trim/centcom/ert/clown/New()
. = ..()
diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm
index 5af46ec4432..bf0d6e52098 100644
--- a/code/datums/id_trim/jobs.dm
+++ b/code/datums/id_trim/jobs.dm
@@ -81,6 +81,7 @@
/datum/id_trim/job/assistant
assignment = "Assistant"
trim_state = "trim_assistant"
+ sechud_icon_state = SECHUD_ASSISTANT
extra_access = list(ACCESS_MAINT_TUNNELS)
minimal_access = list()
config_job = "assistant"
@@ -100,6 +101,7 @@
/datum/id_trim/job/atmospheric_technician //SKYRAT EDIT: ID TRIM ACCESS OVERRIDEN IN MODULAR JOBS.DM
assignment = "Atmospheric Technician"
trim_state = "trim_atmospherictechnician"
+ sechud_icon_state = SECHUD_ATMOSPHERIC_TECHNICIAN
extra_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE)
minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_AUX_BASE, ACCESS_CONSTRUCTION, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_MAINT_TUNNELS, ACCESS_MECH_ENGINE,
ACCESS_MINERAL_STOREROOM)
@@ -110,6 +112,7 @@
/datum/id_trim/job/bartender
assignment = "Bartender"
trim_state = "trim_bartender"
+ sechud_icon_state = SECHUD_BARTENDER
extra_access = list(ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_MORGUE)
minimal_access = list(ACCESS_BAR, ACCESS_MINERAL_STOREROOM, ACCESS_THEATRE, ACCESS_WEAPONS, ACCESS_SERVICE)
config_job = "bartender"
@@ -119,6 +122,7 @@
/datum/id_trim/job/botanist
assignment = "Botanist"
trim_state = "trim_botanist"
+ sechud_icon_state = SECHUD_BOTANIST
extra_access = list(ACCESS_BAR, ACCESS_KITCHEN)
minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_SERVICE)
config_job = "botanist"
@@ -127,7 +131,9 @@
/datum/id_trim/job/captain
assignment = "Captain"
+ intern_alt_name = "Captain-in-Training"
trim_state = "trim_captain"
+ sechud_icon_state = SECHUD_CAPTAIN
config_job = "captain"
template_access = list(ACCESS_CAPTAIN, ACCESS_CHANGE_IDS)
job = /datum/job/captain
@@ -144,6 +150,7 @@
/datum/id_trim/job/cargo_technician
assignment = "Cargo Technician"
trim_state = "trim_cargotechnician"
+ sechud_icon_state = SECHUD_CARGO_TECHNICIAN
extra_access = list(ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION)
minimal_access = list(ACCESS_CARGO, ACCESS_MAILSORTING, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MINING, ACCESS_MINERAL_STOREROOM)
config_job = "cargo_technician"
@@ -153,6 +160,7 @@
/datum/id_trim/job/chaplain
assignment = "Chaplain"
trim_state = "trim_chaplain"
+ sechud_icon_state = SECHUD_CHAPLAIN
extra_access = list()
minimal_access = list(ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_MORGUE, ACCESS_THEATRE, ACCESS_SERVICE)
config_job = "chaplain"
@@ -162,6 +170,7 @@
/datum/id_trim/job/chemist
assignment = "Chemist"
trim_state = "trim_chemist"
+ sechud_icon_state = SECHUD_CHEMIST
extra_access = list(ACCESS_SURGERY, ACCESS_VIROLOGY)
minimal_access = list(ACCESS_CHEMISTRY, ACCESS_MECH_MEDICAL, ACCESS_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_PHARMACY)
config_job = "chemist"
@@ -170,7 +179,9 @@
/datum/id_trim/job/chief_engineer
assignment = "Chief Engineer"
+ intern_alt_name = "Chief Engineer-in-Training"
trim_state = "trim_chiefengineer"
+ sechud_icon_state = SECHUD_CHIEF_ENGINEER
extra_access = list(ACCESS_TELEPORTER)
extra_wildcard_access = list()
minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_AUX_BASE, ACCESS_CE, ACCESS_CONSTRUCTION, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_EVA,
@@ -183,7 +194,9 @@
/datum/id_trim/job/chief_medical_officer
assignment = "Chief Medical Officer"
+ intern_alt_name = "Chief Medical Officer-in-Training"
trim_state = "trim_chiefmedicalofficer"
+ sechud_icon_state = SECHUD_CHIEF_MEDICAL_OFFICER
extra_access = list(ACCESS_TELEPORTER)
extra_wildcard_access = list()
minimal_access = list(ACCESS_CHEMISTRY, ACCESS_EVA, ACCESS_HEADS, ACCESS_KEYCARD_AUTH, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MEDICAL,
@@ -197,6 +210,7 @@
/datum/id_trim/job/clown
assignment = "Clown"
trim_state = "trim_clown"
+ sechud_icon_state = SECHUD_CLOWN
extra_access = list()
minimal_access = list(ACCESS_THEATRE, ACCESS_SERVICE)
config_job = "clown"
@@ -206,15 +220,21 @@
/datum/id_trim/job/cook
assignment = "Cook"
trim_state = "trim_cook"
+ sechud_icon_state = SECHUD_COOK
extra_access = list(ACCESS_BAR, ACCESS_HYDROPONICS)
minimal_access = list(ACCESS_KITCHEN, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_SERVICE)
config_job = "cook"
template_access = list(ACCESS_CAPTAIN, ACCESS_HOP, ACCESS_CHANGE_IDS)
job = /datum/job/cook
+/datum/id_trim/job/cook/chef
+ assignment = "Chef"
+ sechud_icon_state = SECHUD_CHEF
+
/datum/id_trim/job/curator
assignment = "Curator"
trim_state = "trim_curator"
+ sechud_icon_state = SECHUD_CURATOR
extra_access = list()
minimal_access = list(ACCESS_AUX_BASE, ACCESS_LIBRARY, ACCESS_MINING_STATION, ACCESS_SERVICE)
config_job = "curator"
@@ -224,6 +244,7 @@
/datum/id_trim/job/detective
assignment = "Detective"
trim_state = "trim_detective"
+ sechud_icon_state = SECHUD_DETECTIVE
extra_access = list()
minimal_access = list(ACCESS_BRIG, ACCESS_COURT, ACCESS_FORENSICS_LOCKERS, ACCESS_SEC_DOORS,ACCESS_MAINT_TUNNELS, ACCESS_MORGUE,
ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM, ACCESS_WEAPONS)
@@ -244,6 +265,7 @@
/datum/id_trim/job/geneticist
assignment = "Geneticist"
trim_state = "trim_geneticist"
+ sechud_icon_state = SECHUD_GENETICIST
extra_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_XENOBIOLOGY)
minimal_access = list(ACCESS_GENETICS, ACCESS_MECH_SCIENCE, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_RND)
config_job = "geneticist"
@@ -252,7 +274,9 @@
/datum/id_trim/job/head_of_personnel //SKYRAT EDIT: ID TRIM ACCESS OVERRIDEN IN MODULAR JOBS.DM
assignment = "Head of Personnel"
+ intern_alt_name = "Head of Personnel-in-Training"
trim_state = "trim_headofpersonnel"
+ sechud_icon_state = SECHUD_HEAD_OF_PERSONNEL
extra_access = list()
extra_wildcard_access = list()
minimal_access = list(ACCESS_AI_UPLOAD, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_AUX_BASE, ACCESS_BAR, ACCESS_CARGO, ACCESS_CHAPEL_OFFICE,
@@ -268,7 +292,9 @@
/datum/id_trim/job/head_of_security //SKYRAT EDIT: ID TRIM ACCESS OVERRIDEN IN MODULAR JOBS.DM
assignment = "Head of Security"
+ intern_alt_name = "Head of Security-in-Training"
trim_state = "trim_headofsecurity"
+ sechud_icon_state = SECHUD_HEAD_OF_SECURITY
extra_access = list(ACCESS_TELEPORTER)
extra_wildcard_access = list()
minimal_access = list(ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_ARMORY, ACCESS_AUX_BASE, ACCESS_BRIG, ACCESS_CONSTRUCTION, ACCESS_COURT,
@@ -293,6 +319,7 @@
/datum/id_trim/job/janitor
assignment = "Janitor"
trim_state = "trim_janitor"
+ sechud_icon_state = SECHUD_JANITOR
extra_access = list()
minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM, ACCESS_SERVICE)
config_job = "janitor"
@@ -302,6 +329,7 @@
/datum/id_trim/job/lawyer
assignment = "Lawyer"
trim_state = "trim_lawyer"
+ sechud_icon_state = SECHUD_LAWYER
extra_access = list()
minimal_access = list(ACCESS_COURT, ACCESS_LAWYER, ACCESS_SEC_DOORS, ACCESS_SERVICE)
config_job = "lawyer"
@@ -311,6 +339,7 @@
/datum/id_trim/job/medical_doctor
assignment = "Medical Doctor"
trim_state = "trim_medicaldoctor"
+ sechud_icon_state = SECHUD_MEDICAL_DOCTOR
extra_access = list(ACCESS_CHEMISTRY, ACCESS_VIROLOGY)
minimal_access = list(ACCESS_MECH_MEDICAL, ACCESS_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_PHARMACY, ACCESS_SURGERY)
config_job = "medical_doctor"
@@ -320,6 +349,7 @@
/datum/id_trim/job/mime
assignment = "Mime"
trim_state = "trim_mime"
+ sechud_icon_state = SECHUD_MIME
extra_access = list()
minimal_access = list(ACCESS_THEATRE, ACCESS_SERVICE)
config_job = "mime"
@@ -329,6 +359,7 @@
/datum/id_trim/job/paramedic
assignment = "Paramedic"
trim_state = "trim_paramedic"
+ sechud_icon_state = SECHUD_PARAMEDIC
extra_access = list(ACCESS_SURGERY)
minimal_access = list(ACCESS_AUX_BASE, ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_ENGINE, ACCESS_EVA, ACCESS_HYDROPONICS,
ACCESS_MAINT_TUNNELS, ACCESS_MECH_MEDICAL, ACCESS_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_RESEARCH)
@@ -339,6 +370,7 @@
/datum/id_trim/job/prisoner
assignment = "Prisoner"
trim_state = "trim_prisoner"
+ sechud_icon_state = SECHUD_PRISONER
config_job = "prisoner"
template_access = list(ACCESS_CAPTAIN, ACCESS_HOP, ACCESS_HOS, ACCESS_CHANGE_IDS)
job = /datum/job/prisoner
@@ -374,6 +406,7 @@
/datum/id_trim/job/psychologist
assignment = "Psychologist"
trim_state = "trim_psychologist"
+ sechud_icon_state = SECHUD_PSYCHOLOGIST
extra_access = list()
minimal_access = list(ACCESS_MEDICAL, ACCESS_PSYCHOLOGY, ACCESS_SERVICE)
config_job = "psychologist"
@@ -383,6 +416,7 @@
/datum/id_trim/job/quartermaster //SKYRAT EDIT: ID TRIM ACCESS OVERRIDEN IN MODULAR JOBS.DM
assignment = "Quartermaster"
trim_state = "trim_quartermaster"
+ sechud_icon_state = SECHUD_QUARTERMASTER
extra_access = list()
minimal_access = list(ACCESS_AUX_BASE, ACCESS_CARGO, ACCESS_MAILSORTING, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MINING, ACCESS_MINING_STATION,
ACCESS_MINERAL_STOREROOM, ACCESS_MINING, ACCESS_QM, ACCESS_RC_ANNOUNCE, ACCESS_VAULT)
@@ -392,7 +426,9 @@
/datum/id_trim/job/research_director
assignment = "Research Director"
+ intern_alt_name = "Research Director-in-Training"
trim_state = "trim_researchdirector"
+ sechud_icon_state = SECHUD_RESEARCH_DIRECTOR
extra_access = list()
extra_wildcard_access = list()
minimal_access = list(ACCESS_AI_UPLOAD, ACCESS_AUX_BASE, ACCESS_EVA, ACCESS_GATEWAY, ACCESS_GENETICS, ACCESS_HEADS, ACCESS_KEYCARD_AUTH,
@@ -408,6 +444,7 @@
/datum/id_trim/job/roboticist
assignment = "Roboticist"
trim_state = "trim_roboticist"
+ sechud_icon_state = SECHUD_ROBOTICIST
extra_access = list(ACCESS_GENETICS, ACCESS_ORDNANCE, ACCESS_ORDNANCE_STORAGE, ACCESS_XENOBIOLOGY)
minimal_access = list(ACCESS_AUX_BASE, ACCESS_MECH_SCIENCE, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_RND,
ACCESS_ROBOTICS, ACCESS_TECH_STORAGE)
@@ -418,6 +455,7 @@
/datum/id_trim/job/scientist
assignment = "Scientist"
trim_state = "trim_scientist"
+ sechud_icon_state = SECHUD_SCIENTIST
extra_access = list(ACCESS_GENETICS, ACCESS_ROBOTICS)
minimal_access = list(ACCESS_AUX_BASE, ACCESS_MECH_SCIENCE, ACCESS_MINERAL_STOREROOM, ACCESS_ORDNANCE, ACCESS_ORDNANCE_STORAGE,
ACCESS_RESEARCH, ACCESS_RND, ACCESS_XENOBIOLOGY)
@@ -429,6 +467,7 @@
/datum/id_trim/job/security_officer //SKYRAT EDIT: ID TRIM ACCESS OVERRIDEN IN MODULAR JOBS.DM
assignment = "Security Officer"
trim_state = "trim_securityofficer"
+ sechud_icon_state = SECHUD_SECURITY_OFFICER
extra_access = list(ACCESS_FORENSICS_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE)
minimal_access = list(ACCESS_BRIG, ACCESS_COURT, ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_MECH_SECURITY,
ACCESS_MINERAL_STOREROOM, ACCESS_WEAPONS)
@@ -473,6 +512,7 @@
/datum/id_trim/job/shaft_miner
assignment = "Shaft Miner"
trim_state = "trim_shaftminer"
+ sechud_icon_state = SECHUD_SHAFT_MINER
extra_access = list(ACCESS_CARGO, ACCESS_MAINT_TUNNELS, ACCESS_QM)
minimal_access = list(ACCESS_AUX_BASE, ACCESS_MAILSORTING, ACCESS_MECH_MINING, ACCESS_MINERAL_STOREROOM, ACCESS_MINING,
ACCESS_MINING_STATION)
@@ -489,6 +529,7 @@
/datum/id_trim/job/station_engineer
assignment = "Station Engineer"
trim_state = "trim_stationengineer"
+ sechud_icon_state = SECHUD_STATION_ENGINEER
extra_access = list(ACCESS_ATMOSPHERICS)
minimal_access = list(ACCESS_AUX_BASE, ACCESS_CONSTRUCTION, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_EXTERNAL_AIRLOCKS,
ACCESS_MAINT_TUNNELS, ACCESS_MECH_ENGINE, ACCESS_MINERAL_STOREROOM, ACCESS_TCOMSAT, ACCESS_TECH_STORAGE)
@@ -499,6 +540,7 @@
/datum/id_trim/job/virologist
assignment = "Virologist"
trim_state = "trim_virologist"
+ sechud_icon_state = SECHUD_VIROLOGIST
extra_access = list(ACCESS_CHEMISTRY, ACCESS_MORGUE, ACCESS_SURGERY)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_VIROLOGY)
config_job = "virologist"
diff --git a/code/datums/id_trim/ruins.dm b/code/datums/id_trim/ruins.dm
index 8fb944cffd8..67fdee55f7f 100644
--- a/code/datums/id_trim/ruins.dm
+++ b/code/datums/id_trim/ruins.dm
@@ -63,7 +63,7 @@
/// Trim for various Centcom corpses.
/datum/id_trim/centcom/corpse/private_security
- assignment = "Private Security Force"
+ assignment = JOB_CENTCOM_PRIVATE_SECURITY
access = list(ACCESS_CENT_CAPTAIN, ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_STORAGE, ACCESS_SECURITY, ACCESS_MECH_SECURITY)
/// Trim for various Centcom corpses.
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index f1e7033ab8d..7f7467f0e0c 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -501,7 +501,7 @@
A.admin_remove(usr)
if (href_list["role_edit"])
- var/new_role = input("Select new role", "Assigned role", assigned_role.title) as null|anything in sort_list(SSjob.station_jobs)
+ var/new_role = input("Select new role", "Assigned role", assigned_role.title) as null|anything in sort_list(SSjob.name_occupations)
if(isnull(new_role))
return
var/datum/job/new_job = SSjob.GetJob(new_role)
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 1971bbd684b..b22363891f9 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -936,8 +936,10 @@ What a mess.*/
if((istype(active1, /datum/data/record) && L.Find(rank)))
temp = "
Rank:
"
temp += ""
- for(var/rank in SSjob.station_jobs)
- temp += "- [rank]
"
+ var/list/station_job_templates = SSid_access.station_job_templates
+ for(var/path in station_job_templates)
+ var/rank = station_job_templates[path]
+ temp += "- [rank]
"
temp += "
"
else
tgui_alert(usr, "You do not have the required rank to do this!")
@@ -947,8 +949,19 @@ What a mess.*/
switch(href_list["choice"])
if("Change Rank")
if(active1)
- active1.fields["rank"] = strip_html(href_list["rank"])
- active1.fields["trim"] = active1.fields["rank"]
+ var/text = strip_html(href_list["rank"])
+ var/path = text2path(text)
+ if(ispath(path))
+ var/rank = SSid_access.station_job_templates[path]
+ if(rank)
+ active1.fields["rank"] = rank
+ active1.fields["trim"] = active1.fields["rank"]
+ else
+ message_admins("Warning: possible href exploit by [key_name(usr)] - attempted to set change a crew member rank to an invalid path: [path]")
+ log_game("Warning: possible href exploit by [key_name(usr)] - attempted to set change a crew member rank to an invalid path: [path]")
+ else if(!isnull(text))
+ message_admins("Warning: possible href exploit by [key_name(usr)] - attempted to set change a crew member rank to an invalid value: [text]")
+ log_game("Warning: possible href exploit by [key_name(usr)] - attempted to set change a crew member rank to an invalid value: [text]")
if("Change Criminal Status")
if(active2)
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 65a3ea27051..e9cf05b6f51 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -715,18 +715,22 @@
if(is_intern)
if(assignment)
- assignment_string = (assignment in SSjob.head_of_staff_jobs) ? " ([assignment]-in-Training)" : " (Intern [assignment])"
+ assignment_string = trim?.intern_alt_name || "Intern [assignment]"
else
- assignment_string = " (Intern)"
+ assignment_string = "Intern"
else
- assignment_string = " ([assignment])"
+ assignment_string = assignment
- name = "[name_string][assignment_string]"
+ name = "[name_string] ([assignment_string])"
/// Returns the trim assignment name.
/obj/item/card/id/proc/get_trim_assignment()
return trim?.assignment || assignment
+/// Returns the trim sechud icon state.
+/obj/item/card/id/proc/get_trim_sechud_icon_state()
+ return trim?.sechud_icon_state || SECHUD_UNKNOWN
+
/obj/item/card/id/away
name = "\proper a perfectly generic identification card"
desc = "A perfectly generic identification card. Looks like it could use some flavor."
@@ -819,8 +823,10 @@
var/trim_icon_override
/// If this is set, will manually override the icon state for the trim. Intended for admins to VV edit and chameleon ID cards.
var/trim_state_override
- /// If this is set, will manually override the trim's assignmment for SecHUDs. Intended for admins to VV edit and chameleon ID cards.
+ /// If this is set, will manually override the trim's assignmment as it appears in the crew monitor and elsewhere. Intended for admins to VV edit and chameleon ID cards.
var/trim_assignment_override
+ /// If this is set, will manually override the trim shown for SecHUDs. Intended for admins to VV edit and chameleon ID cards.
+ var/sechud_icon_state_override = null
/obj/item/card/id/advanced/Initialize(mapload)
. = ..()
@@ -847,7 +853,7 @@
var/intern_threshold = (CONFIG_GET(number/use_low_living_hour_intern_hours) * 60) || (CONFIG_GET(number/use_exp_restrictions_heads_hours) * 60) || INTERN_THRESHOLD_FALLBACK_HOURS * 60
var/playtime = user.client.get_exp_living(pure_numeric = TRUE)
- if((intern_threshold >= playtime) && (user.mind?.assigned_role.title in SSjob.station_jobs))
+ if((intern_threshold >= playtime) && (user.mind?.assigned_role.job_flags & JOB_CAN_BE_INTERN))
is_intern = TRUE
update_label()
return
@@ -922,12 +928,17 @@
/obj/item/card/id/advanced/get_trim_assignment()
if(trim_assignment_override)
return trim_assignment_override
- else if(ispath(trim))
+
+ if(ispath(trim))
var/datum/id_trim/trim_singleton = SSid_access.trim_singletons_by_path[trim]
return trim_singleton.assignment
return ..()
+/// Returns the trim sechud icon state.
+/obj/item/card/id/advanced/get_trim_sechud_icon_state()
+ return sechud_icon_state_override || ..()
+
/obj/item/card/id/advanced/silver
name = "silver identification card"
desc = "A silver card which shows honour and dedication."
@@ -974,7 +985,7 @@
icon_state = "card_centcom"
worn_icon_state = "card_centcom"
assigned_icon_state = "assigned_centcom"
- registered_name = "Central Command"
+ registered_name = JOB_CENTCOM
registered_age = null
trim = /datum/id_trim/centcom
wildcard_slots = WILDCARD_LIMIT_CENTCOM
@@ -987,31 +998,31 @@
trim = /datum/id_trim/centcom/ert
/obj/item/card/id/advanced/centcom/ert
- registered_name = "Emergency Response Team Commander"
+ registered_name = JOB_ERT_COMMANDER
trim = /datum/id_trim/centcom/ert/commander
/obj/item/card/id/advanced/centcom/ert/security
- registered_name = "Security Response Officer"
+ registered_name = JOB_ERT_OFFICER
trim = /datum/id_trim/centcom/ert/security
/obj/item/card/id/advanced/centcom/ert/engineer
- registered_name = "Engineering Response Officer"
+ registered_name = JOB_ERT_ENGINEER
trim = /datum/id_trim/centcom/ert/engineer
/obj/item/card/id/advanced/centcom/ert/medical
- registered_name = "Medical Response Officer"
+ registered_name = JOB_ERT_MEDICAL_DOCTOR
trim = /datum/id_trim/centcom/ert/medical
/obj/item/card/id/advanced/centcom/ert/chaplain
- registered_name = "Religious Response Officer"
+ registered_name = JOB_ERT_CHAPLAIN
trim = /datum/id_trim/centcom/ert/chaplain
/obj/item/card/id/advanced/centcom/ert/janitor
- registered_name = "Janitorial Response Officer"
+ registered_name = JOB_ERT_JANITOR
trim = /datum/id_trim/centcom/ert/janitor
/obj/item/card/id/advanced/centcom/ert/clown
- registered_name = "Entertainment Response Officer"
+ registered_name = JOB_ERT_CLOWN
trim = /datum/id_trim/centcom/ert/clown
/obj/item/card/id/advanced/black
@@ -1025,7 +1036,7 @@
/obj/item/card/id/advanced/black/deathsquad
name = "\improper Death Squad ID"
desc = "A Death Squad ID card."
- registered_name = "Death Commando"
+ registered_name = JOB_ERT_DEATHSQUAD
trim = /datum/id_trim/centcom/deathsquad
wildcard_slots = WILDCARD_LIMIT_DEATHSQUAD
diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm
index a1834860472..96aeee268fe 100644
--- a/code/modules/jobs/access.dm
+++ b/code/modules/jobs/access.dm
@@ -107,20 +107,4 @@
/obj/item/proc/get_sechud_job_icon_state()
var/obj/item/card/id/id_card = GetID()
- if(!id_card)
- return "hudno_id"
-
- var/card_assignment = id_card.get_trim_assignment()
-
- // Is this one of the jobs with dedicated HUD icons?
- if(card_assignment in SSjob.station_jobs)
- return "hud[ckey(card_assignment)]"
- if(card_assignment in SSjob.additional_jobs_with_icons)
- return "hud[ckey(card_assignment)]"
-
- // If not, is it one of the jobs that should use the NT logo?
- if(card_assignment in SSjob.centcom_jobs)
- return "hudcentcom"
-
- // If none of the above apply, job name is unknown.
- return "hudunknown"
+ return id_card?.get_trim_sechud_icon_state() || SECHUD_NO_ID
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index f8bcced39da..8613979302c 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -102,10 +102,7 @@
/// List of family heirlooms this job can get with the family heirloom quirk. List of types.
var/list/family_heirlooms
- /// All values = (JOB_STATION_JOB | JOB_HEAD_JOB)
- var/job_type_flags = NONE
-
- /// All values = (JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_ASSIGN_QUIRKS)
+ /// All values = (JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN)
var/job_flags = NONE
/// Multiplier for general usage of the voice of god.
diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm
index 28f7333b926..fa477917b44 100644
--- a/code/modules/jobs/job_types/assistant.dm
+++ b/code/modules/jobs/job_types/assistant.dm
@@ -34,8 +34,7 @@ Assistant
/obj/item/crowbar/large = 1
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
rpg_title = "Lout"
/datum/outfit/job/assistant
diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm
index 33ade274535..894cd1c708d 100644
--- a/code/modules/jobs/job_types/atmospheric_technician.dm
+++ b/code/modules/jobs/job_types/atmospheric_technician.dm
@@ -35,8 +35,7 @@
/obj/item/grenade/gas_crystal/nitrous_oxide_crystal = 5,
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
rpg_title = "Aeromancer"
/datum/outfit/job/atmos
diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm
index 665858906d0..03eef61755e 100644
--- a/code/modules/jobs/job_types/bartender.dm
+++ b/code/modules/jobs/job_types/bartender.dm
@@ -29,8 +29,7 @@
/obj/item/stack/sheet/mineral/uranium = 10,
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
rpg_title = "Tavernkeeper"
/datum/job/bartender/award_service(client/winner, award)
diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm
index d64eb302773..43893211cb6 100644
--- a/code/modules/jobs/job_types/botanist.dm
+++ b/code/modules/jobs/job_types/botanist.dm
@@ -31,8 +31,7 @@
/obj/item/food/monkeycube/bee = 2
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
rpg_title = "Gardener"
/datum/outfit/job/botanist
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index 1b2bed38d68..d32e0bc75fe 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -40,8 +40,7 @@
/obj/item/toy/captainsaid/collector = 20
)
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
rpg_title = "Star Duke"
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm
index c15e885844b..2c424c1f2be 100644
--- a/code/modules/jobs/job_types/cargo_technician.dm
+++ b/code/modules/jobs/job_types/cargo_technician.dm
@@ -33,8 +33,7 @@
/obj/item/gun/ballistic/rifle/boltaction = 1
)
rpg_title = "Merchantman"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN | JOB_CAN_BE_INTERN
/datum/outfit/job/cargo_tech
diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm
index 5c93e436d58..ff901d2fd4d 100644
--- a/code/modules/jobs/job_types/chaplain.dm
+++ b/code/modules/jobs/job_types/chaplain.dm
@@ -31,8 +31,7 @@
/obj/item/toy/plush/ratplush = 1
)
rpg_title = "Paladin"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN | JOB_CAN_BE_INTERN
voice_of_god_power = 2 //Chaplains are very good at speaking with the voice of god
diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm
index 799de25a287..0670eea63c6 100644
--- a/code/modules/jobs/job_types/chemist.dm
+++ b/code/modules/jobs/job_types/chemist.dm
@@ -35,8 +35,7 @@
/obj/item/paper/secretrecipe = 1
)
rpg_title = "Alchemist"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/chemist
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index b5f6662d465..cdf6117c44d 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -43,8 +43,7 @@
/obj/effect/spawner/random/engineering/tool_advanced = 3
)
rpg_title = "Head Crystallomancer"
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index 56f76dbd4f8..b886a3a8f5a 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -40,8 +40,7 @@
)
family_heirlooms = list(/obj/item/storage/firstaid/ancient/heirloom)
rpg_title = "High Cleric"
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm
index a0f0e70a8fd..d8ca846f6bb 100644
--- a/code/modules/jobs/job_types/clown.dm
+++ b/code/modules/jobs/job_types/clown.dm
@@ -32,8 +32,7 @@
family_heirlooms = list(/obj/item/bikehorn/golden)
rpg_title = "Jester"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
veteran_only = TRUE // SKYRAT EDIT ADDITION
diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm
index 0da4460827f..8cbeada5cc4 100644
--- a/code/modules/jobs/job_types/cook.dm
+++ b/code/modules/jobs/job_types/cook.dm
@@ -28,8 +28,7 @@
family_heirlooms = list(/obj/item/reagent_containers/food/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat)
rpg_title = "Tavern Chef"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/job/cook/New()
@@ -88,7 +87,7 @@
name = "Cook"
jobtype = /datum/job/cook
- id_trim = /datum/id_trim/job/cook
+ id_trim = /datum/id_trim/job/cook/chef
uniform = /obj/item/clothing/under/rank/civilian/chef
suit = /obj/item/clothing/suit/toggle/chef
backpack_contents = list(
@@ -107,6 +106,7 @@
var/datum/job/cook/J = SSjob.GetJobType(jobtype)
if(J) // Fix for runtime caused by invalid job being passed
if(J.cooks>0)//Cooks
+ id_trim = /datum/id_trim/job/cook
suit = /obj/item/clothing/suit/apron/chef
head = /obj/item/clothing/head/soft/mime
if(!visualsOnly)
diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm
index 23e79d9ca3b..8318ac8e537 100644
--- a/code/modules/jobs/job_types/curator.dm
+++ b/code/modules/jobs/job_types/curator.dm
@@ -23,8 +23,7 @@
family_heirlooms = list(/obj/item/pen/fountain, /obj/item/storage/dice)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
voice_of_god_silence_power = 3
rpg_title = "Veteran Adventurer"
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index 4113a9f4476..6d9eb1a3808 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -41,8 +41,7 @@
family_heirlooms = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey)
rpg_title = "Thiefcatcher"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/detective
diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm
index 5ab3a3162a9..76e3628bde0 100644
--- a/code/modules/jobs/job_types/geneticist.dm
+++ b/code/modules/jobs/job_types/geneticist.dm
@@ -29,8 +29,7 @@
family_heirlooms = list(/obj/item/clothing/under/shorts/purple)
rpg_title = "Genemancer"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/geneticist
diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm
index aa109f7f136..b93bc59fc4e 100644
--- a/code/modules/jobs/job_types/head_of_personnel.dm
+++ b/code/modules/jobs/job_types/head_of_personnel.dm
@@ -40,8 +40,7 @@
family_heirlooms = list(/obj/item/reagent_containers/food/drinks/trophy/silver_cup)
rpg_title = "Guild Questgiver"
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index 2c16950d368..05a1bf1fa97 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -35,8 +35,7 @@
family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law)
rpg_title = "Guard Leader"
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm
index d29ab0533ab..6da67c51043 100644
--- a/code/modules/jobs/job_types/janitor.dm
+++ b/code/modules/jobs/job_types/janitor.dm
@@ -28,8 +28,7 @@
/obj/item/lightreplacer = 10
)
rpg_title = "Groundskeeper"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/janitor
diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm
index 8b1317a09cb..bb58f241dce 100644
--- a/code/modules/jobs/job_types/lawyer.dm
+++ b/code/modules/jobs/job_types/lawyer.dm
@@ -26,8 +26,7 @@
rpg_title = "Magistrate"
family_heirlooms = list(/obj/item/gavelhammer, /obj/item/book/manual/wiki/security_space_law)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/lawyer
diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm
index 6cfe125a564..0d6910b2392 100644
--- a/code/modules/jobs/job_types/medical_doctor.dm
+++ b/code/modules/jobs/job_types/medical_doctor.dm
@@ -36,8 +36,7 @@
/obj/effect/spawner/random/medical/memeorgans = 1
)
rpg_title = "Cleric"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/doctor
diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm
index bccee757f01..71956c5e300 100644
--- a/code/modules/jobs/job_types/mime.dm
+++ b/code/modules/jobs/job_types/mime.dm
@@ -29,8 +29,7 @@
/obj/item/book/mimery = 1,
)
rpg_title = "Fool"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
voice_of_god_power = 0.5 //Why are you speaking
voice_of_god_silence_power = 3
diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm
index dd082a31160..33dfda64ab8 100644
--- a/code/modules/jobs/job_types/paramedic.dm
+++ b/code/modules/jobs/job_types/paramedic.dm
@@ -35,8 +35,7 @@
/obj/item/reagent_containers/hypospray/medipen/survival/luxury = 5
)
rpg_title = "Corpse Runner"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/paramedic
diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm
index 1fe60778b87..dcc82868553 100644
--- a/code/modules/jobs/job_types/prisoner.dm
+++ b/code/modules/jobs/job_types/prisoner.dm
@@ -23,8 +23,7 @@
family_heirlooms = list(/obj/item/pen/blue)
rpg_title = "Defeated Miniboss"
- job_type_flags = JOB_STATION_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
/datum/outfit/job/prisoner
diff --git a/code/modules/jobs/job_types/psychologist.dm b/code/modules/jobs/job_types/psychologist.dm
index 79491f8ba6d..b8c51861940 100644
--- a/code/modules/jobs/job_types/psychologist.dm
+++ b/code/modules/jobs/job_types/psychologist.dm
@@ -31,8 +31,7 @@
/obj/item/gun/syringe = 1
)
rpg_title = "Snake Oil Salesman"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/psychologist
diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm
index f0c0f466473..e5506c1767e 100644
--- a/code/modules/jobs/job_types/quartermaster.dm
+++ b/code/modules/jobs/job_types/quartermaster.dm
@@ -35,8 +35,7 @@
/obj/item/circuitboard/machine/emitter = 3
)
rpg_title = "Steward"
- job_type_flags = JOB_STATION_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
/datum/job/quartermaster/after_spawn(mob/living/carbon/human/H, mob/M) //SKYRAT EDIT - Gubman 3.1
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index 724f6d52bc5..7625ce1edfe 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -41,8 +41,7 @@
family_heirlooms = list(/obj/item/toy/plush/slimeplushie)
rpg_title = "Archmagister"
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
voice_of_god_power = 1.4 //Command staff has authority
diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm
index 9011b0ac546..9c5d69013cd 100644
--- a/code/modules/jobs/job_types/roboticist.dm
+++ b/code/modules/jobs/job_types/roboticist.dm
@@ -31,8 +31,7 @@
family_heirlooms = list(/obj/item/toy/plush/pkplush)
rpg_title = "Necromancer"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/job/roboticist/New()
diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm
index be164f6e952..e0c67d36669 100644
--- a/code/modules/jobs/job_types/scientist.dm
+++ b/code/modules/jobs/job_types/scientist.dm
@@ -31,8 +31,7 @@
/obj/item/camera_bug = 1
)
rpg_title = "Thaumaturgist"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/scientist
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index 51a0f29b9a7..657544c5ce7 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -39,8 +39,7 @@
/obj/item/melee/baton/security/boomerang/loaded = 1
)
rpg_title = "Guard"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY))
diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm
index d6907f64743..5d7b303e0c2 100644
--- a/code/modules/jobs/job_types/shaft_miner.dm
+++ b/code/modules/jobs/job_types/shaft_miner.dm
@@ -24,8 +24,7 @@
family_heirlooms = list(/obj/item/pickaxe/mini, /obj/item/shovel)
rpg_title = "Adventurer"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/miner
diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm
index 326829d87d9..6be9573da74 100644
--- a/code/modules/jobs/job_types/station_engineer.dm
+++ b/code/modules/jobs/job_types/station_engineer.dm
@@ -35,8 +35,7 @@
/obj/item/clothing/head/hardhat/red/upgraded = 1
)
rpg_title = "Crystallomancer"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/engineer
diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm
index adb55bfb621..1b874b20ff3 100644
--- a/code/modules/jobs/job_types/virologist.dm
+++ b/code/modules/jobs/job_types/virologist.dm
@@ -36,8 +36,7 @@
/obj/item/stack/sheet/mineral/uranium = 5,
)
rpg_title = "Plague Doctor"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/virologist
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index be84fbe629a..09dee9ccb83 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -40,8 +40,7 @@
/obj/item/storage/box/rubbershot = 10
)
rpg_title = "Jailor"
- job_type_flags = JOB_STATION_JOB
- job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
+ job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN
/datum/outfit/job/warden
diff --git a/code/modules/unit_tests/traitor.dm b/code/modules/unit_tests/traitor.dm
index 4c08001dc19..850e315e28d 100644
--- a/code/modules/unit_tests/traitor.dm
+++ b/code/modules/unit_tests/traitor.dm
@@ -1,8 +1,14 @@
/datum/unit_test/traitor/Run()
var/datum/dynamic_ruleset/roundstart/traitor/traitor_ruleset = allocate(/datum/dynamic_ruleset/roundstart/traitor)
- var/list/possible_jobs = SSjob.station_jobs.Copy()
- possible_jobs -= traitor_ruleset.protected_roles
- possible_jobs -= traitor_ruleset.restricted_roles
+ var/list/possible_jobs = list()
+ var/list/restricted_roles = traitor_ruleset.restricted_roles
+ for(var/datum/job/job as anything in SSjob.joinable_occupations)
+ if(!(job.job_flags & JOB_CREW_MEMBER))
+ continue
+ var/rank = job.title
+ if(rank in restricted_roles)
+ continue
+ possible_jobs += rank
for(var/job_name in possible_jobs)
var/datum/job/job = SSjob.GetJob(job_name)
diff --git a/icons/mob/huds/hud.dmi b/icons/mob/huds/hud.dmi
index 592c7594730..e8fdb47d2b0 100644
Binary files a/icons/mob/huds/hud.dmi and b/icons/mob/huds/hud.dmi differ
diff --git a/modular_skyrat/modules/blueshield/code/blueshield.dm b/modular_skyrat/modules/blueshield/code/blueshield.dm
index 19756cf5ba9..df05ea001c6 100644
--- a/modular_skyrat/modules/blueshield/code/blueshield.dm
+++ b/modular_skyrat/modules/blueshield/code/blueshield.dm
@@ -41,7 +41,6 @@
)
veteran_only = TRUE
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
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
/datum/outfit/job/blueshield
diff --git a/modular_skyrat/modules/brigoff/code/brigoff.dm b/modular_skyrat/modules/brigoff/code/brigoff.dm
index c84d8c9e395..1e4302afb04 100644
--- a/modular_skyrat/modules/brigoff/code/brigoff.dm
+++ b/modular_skyrat/modules/brigoff/code/brigoff.dm
@@ -35,8 +35,8 @@
)
rpg_title = "Bailiff"
family_heirlooms = list(/obj/item/book/manual/wiki/security_space_law, /obj/item/clothing/head/beret/sec)
- job_type_flags = JOB_STATION_JOB
- 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
+
+ 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 | JOB_CAN_BE_INTERN
/datum/job/brigoff/after_spawn(mob/living/carbon/human/H, mob/M)
. = ..()
diff --git a/modular_skyrat/modules/exp_corps/code/expeditionary_trooper.dm b/modular_skyrat/modules/exp_corps/code/expeditionary_trooper.dm
index 78819399f29..05901df4c42 100644
--- a/modular_skyrat/modules/exp_corps/code/expeditionary_trooper.dm
+++ b/modular_skyrat/modules/exp_corps/code/expeditionary_trooper.dm
@@ -29,7 +29,7 @@
family_heirlooms = list(/obj/item/binoculars)
veteran_only = TRUE
- job_type_flags = JOB_STATION_JOB
+
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
/datum/job/expeditionary_trooper/after_spawn(mob/living/carbon/human/H, mob/M)
diff --git a/modular_skyrat/modules/goofsec/code/department_guards.dm b/modular_skyrat/modules/goofsec/code/department_guards.dm
index 01639a7bd0c..de5b7ee4280 100644
--- a/modular_skyrat/modules/goofsec/code/department_guards.dm
+++ b/modular_skyrat/modules/goofsec/code/department_guards.dm
@@ -99,8 +99,8 @@
/obj/item/clothing/mask/whistle = 5,
/obj/item/melee/baton/security/boomerang/loaded = 1
)
- job_type_flags = JOB_STATION_JOB
- 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
+
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/orderly
name = "Orderly" // You forgot your vaccine *flexes muscles*
@@ -167,8 +167,7 @@
/obj/item/clothing/mask/whistle = 5,
/obj/item/melee/baton/security/boomerang/loaded = 1
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/science_guard
name = "Science Guard"
@@ -237,8 +236,7 @@
/obj/item/clothing/mask/whistle = 5,
/obj/item/melee/baton/security/boomerang/loaded = 1
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/bouncer
name = "Bouncer" // That ID looks a little suspect, pal. You ain't on the list, beat it.
@@ -311,8 +309,7 @@
/obj/item/clothing/mask/whistle = 5,
/obj/item/melee/baton/security/boomerang/loaded = 1
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/customs_agent
name = "Customs Agent"
@@ -379,8 +376,7 @@
/obj/item/clothing/mask/whistle = 5,
/obj/item/melee/baton/security/boomerang/loaded = 1
)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/engineering_guard
name = "Engineering Guard"
diff --git a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_representative.dm b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_representative.dm
index 42e569d3085..094dac30161 100644
--- a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_representative.dm
+++ b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_representative.dm
@@ -38,7 +38,6 @@
)
veteran_only = TRUE
- job_type_flags = JOB_STATION_JOB | JOB_HEAD_JOB
job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_BOLD_SELECT_TEXT | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS
/datum/job/nanotrasen_representative/after_spawn(mob/living/H, mob/M, latejoin)
diff --git a/modular_skyrat/modules/salon/code/barber.dm b/modular_skyrat/modules/salon/code/barber.dm
index 57a82dd03c8..3d0b0c27df4 100644
--- a/modular_skyrat/modules/salon/code/barber.dm
+++ b/modular_skyrat/modules/salon/code/barber.dm
@@ -21,8 +21,7 @@
)
family_heirlooms = list(/obj/item/hairbrush/comb, /obj/item/razor)
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/outfit/job/barber
diff --git a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
index 901c07568a5..6fb7cad8676 100644
--- a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
+++ b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
@@ -42,8 +42,7 @@
/obj/item/reagent_containers/hypospray/medipen/survival/luxury = 5
)
rpg_title = "Battle Cleric"
- job_type_flags = JOB_STATION_JOB
- 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
+ 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 | JOB_CAN_BE_INTERN
/datum/job/security_medic/after_spawn(mob/living/carbon/human/H, mob/M)
. = ..()