diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 98d0fda4965..64215f3e6bf 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -67,6 +67,10 @@ #define DEPARTMENT_MEDICAL "Medical" #define DEPARTMENT_BITFLAG_SILICON (1<<7) #define DEPARTMENT_SILICON "Silicon" +#define DEPARTMENT_BITFLAG_ASSISTANT (1<<8) +#define DEPARTMENT_ASSISTANT "Assistant" +#define DEPARTMENT_BITFLAG_CAPTAIN (1<<9) +#define DEPARTMENT_CAPTAIN "Captain" /* Job datum job_flags */ /// Whether the mob is announced on arrival. diff --git a/code/modules/client/preferences/README.md b/code/modules/client/preferences/README.md index c2d238f34db..4ef49a74602 100644 --- a/code/modules/client/preferences/README.md +++ b/code/modules/client/preferences/README.md @@ -363,30 +363,6 @@ Middleware can inject its own data at several points, such as providing new UI a --- -## Jobs - -Every job must have an associated `.ts` file so that the UI knows where to place it. - -Create a file in `tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/`. - -This will specify the description and department of the job. Here is the details for the medical doctor: - -```ts -import { Job } from "../base"; -import { Service } from "../departments"; - -const Cook: Job = { - name: "Cook", - // If you need more room, use `multiline` - description: "Serve food, cook meat, keep the crew fed.", - department: Service, -}; - -export default Cook; -``` - ---- - ## Antagonists In order to make an antagonist selectable, you must do a few things: diff --git a/code/modules/client/preferences/middleware/jobs.dm b/code/modules/client/preferences/middleware/jobs.dm index 50e8b4b0d45..5812976218a 100644 --- a/code/modules/client/preferences/middleware/jobs.dm +++ b/code/modules/client/preferences/middleware/jobs.dm @@ -25,6 +25,40 @@ return TRUE +/datum/preference_middleware/jobs/get_constant_data() + var/list/data = list() + + var/list/departments = list() + var/list/jobs = list() + + for (var/datum/job/job as anything in SSjob.joinable_occupations) + var/datum/job_department/department_type = job.department_for_prefs || job.departments_list?[1] + if (isnull(department_type)) + stack_trace("[job] does not have a department set, yet is a joinable occupation!") + continue + + if (isnull(job.description)) + stack_trace("[job] does not have a description set, yet is a joinable occupation!") + continue + + var/department_name = initial(department_type.department_name) + if (isnull(departments[department_name])) + var/datum/job/department_head_type = initial(department_type.department_head) + + departments[department_name] = list( + "head" = department_head_type && initial(department_head_type.title), + ) + + jobs[job.title] = list( + "description" = job.description, + "department" = department_name, + ) + + data["departments"] = departments + data["jobs"] = jobs + + return data + /datum/preference_middleware/jobs/get_ui_data(mob/user) var/list/data = list() diff --git a/code/modules/jobs/departments/departments.dm b/code/modules/jobs/departments/departments.dm index a6c798c622a..ba7a0f8e5f5 100644 --- a/code/modules/jobs/departments/departments.dm +++ b/code/modules/jobs/departments/departments.dm @@ -23,6 +23,17 @@ department_jobs += job job.departments_bitflags |= department_bitflags +/// A special assistant only department, primarily for use by the preferences menu +/datum/job_department/assistant + department_name = DEPARTMENT_ASSISTANT + department_bitflags = DEPARTMENT_BITFLAG_ASSISTANT + // Don't add department_head! Assistants names should not be in bold. + +/// A special captain only department, for use by the preferences menu +/datum/job_department/captain + department_name = DEPARTMENT_CAPTAIN + department_bitflags = DEPARTMENT_BITFLAG_CAPTAIN + department_head = /datum/job/captain /datum/job_department/command department_name = DEPARTMENT_COMMAND diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index debc8e6bbe8..9d3a5cc628c 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -2,6 +2,10 @@ /// The name of the job , used for preferences, bans and more. Make sure you know what you're doing before changing this. var/title = "NOPE" + /// The description of the job, used for preferences menu. + /// Keep it short and useful. Avoid in-jokes, these are for new players. + var/description + /// Innate skill levels unlocked at roundstart. Based on config.jobs_have_minimal_access config setting, for example with a skeleton crew. Format is list(/datum/skill/foo = SKILL_EXP_NOVICE) with exp as an integer or as per code/_DEFINES/skills.dm var/list/skills /// Innate skill levels unlocked at roundstart. Based on config.jobs_have_minimal_access config setting, for example with a full crew. Format is list(/datum/skill/foo = SKILL_EXP_NOVICE) with exp as an integer or as per code/_DEFINES/skills.dm @@ -79,7 +83,14 @@ /// Bitfield of departments this job belongs to. These get setup when adding the job into the department, on job datum creation. var/departments_bitflags = NONE + + /// If specified, this department will be used for the preferences menu. + var/datum/job_department/department_for_prefs = null + /// Lazy list with the departments this job belongs to. + /// Required to be set for playable jobs. + /// The first department will be used in the preferences menu, + /// unless department_for_prefs is set. var/list/departments_list = null /// Should this job be allowed to be picked for the bureaucratic error event? diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index 11a5792c26d..b09357a34cb 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -1,5 +1,6 @@ /datum/job/ai title = "AI" + description = "Assist the crew, follow your laws, coordinate your cyborgs." auto_deadmin_role_flags = DEADMIN_POSITION_SILICON faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 47ee0c39771..d8274d48c12 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -5,6 +5,7 @@ Assistant */ /datum/job/assistant title = "Assistant" + description = "Get your space legs, assist people, ask the HoP to give you a job." faction = FACTION_STATION total_positions = 5 spawn_positions = 5 @@ -20,6 +21,8 @@ Assistant paycheck_department = ACCOUNT_CIV display_order = JOB_DISPLAY_ORDER_ASSISTANT + department_for_prefs = /datum/job_department/assistant + family_heirlooms = list(/obj/item/storage/toolbox/mechanical/old/heirloom, /obj/item/clothing/gloves/cut/heirloom) mail_goodies = list( diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index 6d541fce0dd..5e0bcff7cc7 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -1,5 +1,6 @@ /datum/job/atmospheric_technician title = "Atmospheric Technician" + description = "Ensure the air is breathable on the station, fill oxygen tanks, fight fires, purify the air." department_head = list("Chief Engineer") faction = FACTION_STATION total_positions = 3 diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm index 21ef624e673..24c1efbcdb9 100644 --- a/code/modules/jobs/job_types/bartender.dm +++ b/code/modules/jobs/job_types/bartender.dm @@ -1,5 +1,6 @@ /datum/job/bartender title = "Bartender" + description = "Serve booze, mix drinks, keep the crew drunk." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm index 45ecb044863..c7417e6d9c5 100644 --- a/code/modules/jobs/job_types/botanist.dm +++ b/code/modules/jobs/job_types/botanist.dm @@ -1,5 +1,6 @@ /datum/job/botanist title = "Botanist" + description = "Grow plants for the cook, for medicine, and for recreation." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 3 diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index 36a082fee5f..7abe4b216e3 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -1,5 +1,8 @@ /datum/job/captain title = "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." auto_deadmin_role_flags = DEADMIN_POSITION_HEAD|DEADMIN_POSITION_SECURITY department_head = list("CentCom") faction = FACTION_STATION @@ -23,9 +26,10 @@ liver_traits = list(TRAIT_ROYAL_METABOLISM) display_order = JOB_DISPLAY_ORDER_CAPTAIN + department_for_prefs = /datum/job_department/captain departments_list = list( /datum/job_department/command, - ) + ) family_heirlooms = list(/obj/item/reagent_containers/food/drinks/flask/gold) diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm index 0b902db0745..befb99b5a62 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -1,5 +1,8 @@ /datum/job/cargo_technician title = "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") faction = FACTION_STATION total_positions = 3 diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index d1f290d81d9..2a7c9b3a32d 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -1,5 +1,7 @@ /datum/job/chaplain title = "Chaplain" + description = "Hold services and funerals, cremate people, preach your \ + religion, protect the crew against cults." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index a2fec6f059e..124d42df720 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -1,5 +1,7 @@ /datum/job/chemist title = "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") faction = FACTION_STATION total_positions = 2 diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index ccfcd865598..c7cf4b62613 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -1,5 +1,7 @@ /datum/job/chief_engineer title = "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") head_announce = list("Engineering") diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 5bdd7138a05..8c1f9046a0a 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -1,5 +1,7 @@ /datum/job/chief_medical_officer title = "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") auto_deadmin_role_flags = DEADMIN_POSITION_HEAD head_announce = list(RADIO_CHANNEL_MEDICAL) diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index 21d2e00bd3b..a87c906380e 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -1,5 +1,6 @@ /datum/job/clown title = "Clown" + description = "Entertain the crew, make bad jokes, go on a holy quest to find bananium, HONK!" department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm index 90356bb4fdd..37ddab85974 100644 --- a/code/modules/jobs/job_types/cook.dm +++ b/code/modules/jobs/job_types/cook.dm @@ -1,5 +1,6 @@ /datum/job/cook title = "Cook" + description = "Serve food, cook meat, keep the crew fed." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 2 diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm index f9a93b05d61..3b41130afa5 100644 --- a/code/modules/jobs/job_types/curator.dm +++ b/code/modules/jobs/job_types/curator.dm @@ -1,5 +1,7 @@ /datum/job/curator title = "Curator" + description = "Read and write books and hand them to people, stock \ + bookshelves, report on station news." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm index 5faeaa79e52..6c75dfa4698 100644 --- a/code/modules/jobs/job_types/cyborg.dm +++ b/code/modules/jobs/job_types/cyborg.dm @@ -1,5 +1,6 @@ /datum/job/cyborg title = "Cyborg" + description = "Assist the crew, follow your laws, obey your AI." auto_deadmin_role_flags = DEADMIN_POSITION_SILICON faction = FACTION_STATION total_positions = 0 diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm index 1a213d76961..879d0fd901a 100644 --- a/code/modules/jobs/job_types/detective.dm +++ b/code/modules/jobs/job_types/detective.dm @@ -1,5 +1,7 @@ /datum/job/detective title = "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") faction = FACTION_STATION diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 0e7e271bf96..dec3065b1f8 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -1,5 +1,6 @@ /datum/job/geneticist title = "Geneticist" + description = "Alter genomes, turn monkeys into humans (and vice-versa), and make DNA backups." department_head = list("Research Director") faction = FACTION_STATION total_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 f778f98e0fc..3aad3c51cef 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -1,5 +1,7 @@ /datum/job/head_of_personnel title = "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") head_announce = list(RADIO_CHANNEL_SUPPLY, RADIO_CHANNEL_SERVICE) diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index f748338c720..c599c7e162d 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -1,5 +1,7 @@ /datum/job/head_of_security title = "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") head_announce = list(RADIO_CHANNEL_SECURITY) diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm index bb4e7792e5e..cc00c5cef5d 100644 --- a/code/modules/jobs/job_types/janitor.dm +++ b/code/modules/jobs/job_types/janitor.dm @@ -1,5 +1,6 @@ /datum/job/janitor title = "Janitor" + description = "Clean up trash and blood. Replace broken lights. Slip people over." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 2 diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm index 84240b07e85..1d9bfbff66a 100644 --- a/code/modules/jobs/job_types/lawyer.dm +++ b/code/modules/jobs/job_types/lawyer.dm @@ -1,5 +1,7 @@ /datum/job/lawyer title = "Lawyer" + description = "Advocate for prisoners, create law-binding contracts, \ + ensure Security is following protocol and Space Law." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 2 diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index b273536dd05..454895f1f26 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -1,5 +1,7 @@ /datum/job/doctor title = "Medical Doctor" + description = "Save lives, run around the station looking for victims, \ + scan everyone in sight" department_head = list("Chief Medical Officer") faction = FACTION_STATION total_positions = 5 diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm index e5c15cd3df7..d12d518da6f 100644 --- a/code/modules/jobs/job_types/mime.dm +++ b/code/modules/jobs/job_types/mime.dm @@ -1,5 +1,6 @@ /datum/job/mime title = "Mime" + description = "..." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 960799e0264..1be68a42344 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -1,5 +1,7 @@ /datum/job/paramedic title = "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") faction = FACTION_STATION total_positions = 2 diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index 41d6b18f2c5..85518ff30b4 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -1,5 +1,6 @@ /datum/job/prisoner title = "Prisoner" + description = "Keep yourself occupied in permabrig." department_head = list("The Security Team") faction = FACTION_STATION total_positions = 0 @@ -13,6 +14,7 @@ plasmaman_outfit = /datum/outfit/plasmaman/prisoner display_order = JOB_DISPLAY_ORDER_PRISONER + department_for_prefs = /datum/job_department/security exclusive_mail_goodies = TRUE mail_goodies = list ( diff --git a/code/modules/jobs/job_types/psychologist.dm b/code/modules/jobs/job_types/psychologist.dm index 99efa2af54b..16d6d81f5cd 100644 --- a/code/modules/jobs/job_types/psychologist.dm +++ b/code/modules/jobs/job_types/psychologist.dm @@ -1,5 +1,7 @@ /datum/job/psychologist title = "Psychologist" + description = "Advocate sanity, self-esteem, and teamwork in a station \ + staffed with headcases." department_head = list("Head of Personnel","Chief Medical Officer") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index 80705f5cf07..52b6239feda 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -1,5 +1,7 @@ /datum/job/quartermaster title = "Quartermaster" + description = "Coordinate cargo technicians and shaft miners, assist with \ + economical purchasing." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index 7ae43756273..e14e4a9e0f0 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -1,5 +1,8 @@ /datum/job/research_director title = "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") head_announce = list("Science") diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index a27dcb90751..d8a47cf62f7 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -1,5 +1,6 @@ /datum/job/roboticist title = "Roboticist" + description = "Build and repair the AI and cyborgs, create mechs." department_head = list("Research Director") faction = FACTION_STATION total_positions = 2 diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm index fc14488a15c..c198986badd 100644 --- a/code/modules/jobs/job_types/scientist.dm +++ b/code/modules/jobs/job_types/scientist.dm @@ -1,5 +1,6 @@ /datum/job/scientist title = "Scientist" + description = "Do experiments, perform research, feed the slimes, make bombs." department_head = list("Research Director") faction = FACTION_STATION total_positions = 5 diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 3605f5ab292..0edd741c173 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -1,5 +1,7 @@ /datum/job/security_officer title = "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") faction = FACTION_STATION diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index f97218b5a0d..76c52cb15d9 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -1,5 +1,7 @@ /datum/job/shaft_miner title = "Shaft Miner" + description = "Travel to strange lands. Mine ores. \ + Meet strange creatures. Kill them for their gold." department_head = list("Head of Personnel") faction = FACTION_STATION total_positions = 3 diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 755af20efc9..641dd93d17e 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -1,5 +1,7 @@ /datum/job/station_engineer title = "Station Engineer" + description = "Start the Supermatter, wire the solars, repair station hull \ + and wiring damage." department_head = list("Chief Engineer") faction = FACTION_STATION total_positions = 5 diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index cccfee73682..6306ed17146 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -1,5 +1,7 @@ /datum/job/virologist title = "Virologist" + description = "Study the effects of various diseases and synthesize a \ + vaccine for them. Engineer beneficial viruses." department_head = list("Chief Medical Officer") faction = FACTION_STATION total_positions = 1 diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index a8e21cb750b..46d69c75d0f 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -1,5 +1,8 @@ /datum/job/warden title = "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") faction = FACTION_STATION diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/JobsPage.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/JobsPage.tsx index 46f6fa2bf63..919e5c3876e 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/JobsPage.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/JobsPage.tsx @@ -1,51 +1,21 @@ -import { binaryInsertWith } from "common/collections"; +import { sortBy } from "common/collections"; import { classes } from "common/react"; -import { InfernoNode } from "inferno"; +import { InfernoNode, SFC } from "inferno"; import { useBackend } from "../../backend"; import { Box, Button, Dropdown, Stack, Tooltip } from "../../components"; -import { createSetPreference, JoblessRole, JobPriority, PreferencesMenuData } from "./data"; -import { Job } from "./jobs/base"; -import * as Departments from "./jobs/departments"; +import { createSetPreference, Job, JoblessRole, JobPriority, PreferencesMenuData } from "./data"; +import { ServerPreferencesFetcher } from "./ServerPreferencesFetcher"; -const requireJob = require.context("./jobs/jobs", false, /.ts$/); -const jobsByDepartment = new Map(); - -const binaryInsertJob = binaryInsertWith((job: Job) => { - return job.name; -}); +const sortJobs = ( + entries: [string, Job][], + head?: string, +) => sortBy<[string, Job]>( + ([key, _]) => key === head ? -1 : 1, + ([key, _]) => key, +)(entries); const PRIORITY_BUTTON_SIZE = "18px"; -for (const jobKey of requireJob.keys()) { - const job = requireJob<{ - default?: Job, - }>(jobKey).default; - - if (!job) { - continue; - } - - - let departmentInfo = jobsByDepartment.get(job.department); - if (departmentInfo === undefined) { - departmentInfo = { - jobs: [], - head: undefined, - }; - - jobsByDepartment.set(job.department, departmentInfo); - } - - if (job.department.head === job.name) { - departmentInfo.head = job; - } else { - departmentInfo.jobs = binaryInsertJob(departmentInfo.jobs, job); - } -} - const PriorityButton = (props: { name: string, color: string, @@ -210,18 +180,19 @@ const PriorityButtons = (props: { const JobRow = (props: { className?: string, job: Job, + name: string, }, context) => { const { data } = useBackend(context); - const { job } = props; + const { className, job, name } = props; - const isOverflow = data.overflow_role === job.name; - const priority = data.job_preferences[job.name]; + const isOverflow = data.overflow_role === name; + const priority = data.job_preferences[name]; - const createSetPriority = createCreateSetPriorityFromName(context, job.name); + const createSetPriority = createCreateSetPriorityFromName(context, name); const experienceNeeded = data.job_required_experience - && data.job_required_experience[job.name]; - const daysLeft = data.job_days_left ? data.job_days_left[job.name] : 0; + && data.job_required_experience[name]; + const daysLeft = data.job_days_left ? data.job_days_left[name] : 0; let rightSide: InfernoNode; @@ -244,7 +215,7 @@ const JobRow = (props: { ); - } else if (data.job_bans && data.job_bans.indexOf(job.name) !== -1) { + } else if (data.job_bans && data.job_bans.indexOf(name) !== -1) { rightSide = ( @@ -261,7 +232,7 @@ const JobRow = (props: { } return ( - @@ -273,7 +244,7 @@ const JobRow = (props: { "padding-left": "0.3em", }}> - {props.job.name} + {name} @@ -285,38 +256,55 @@ const JobRow = (props: { ); }; -const Department = (props: { - department: Departments.Department, - name: string, -}) => { - const { department, name } = props; - const jobs = jobsByDepartment.get(department); +const Department: SFC<{ department: string}> = (props) => { + const { children, department: name } = props; const className = `PreferencesMenu__Jobs__departments--${name}`; - if (!jobs) { - return ( - - ERROR: Department {name} could not be found! - - ); - } - return ( - - - {jobs.head - && } - {jobs.jobs.map((job) => { - if (job === jobs.head) { - return null; - } + { + if (!data) { + return null; + } - return ; - })} - - + const { departments, jobs } = data.jobs; + const department = departments[name]; + + // This isn't necessarily a bug, it's like this + // so that you can remove entire departments without + // having to edit the UI. + // This is used in events, for instance. + if (!department) { + return null; + } + + const jobsForDepartment = sortJobs( + Object.entries(jobs).filter( + ([_, job]) => job.department === name + ), + department.head + ); + + return ( + + + {jobsForDepartment.map(([name, job]) => { + return (); + })} + + + {children} + + ); + }} + /> ); }; @@ -386,36 +374,35 @@ export const JobsPage = () => { - + + + - + + + + + + + - - - - - - - - + department="Assistant" + /> - - - - - + + + + + + + + + + @@ -423,15 +410,13 @@ export const JobsPage = () => { - - - + + + + department="Medical" + /> diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts index 6fda3390816..05917bc9e0a 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts @@ -48,6 +48,15 @@ export type ServerSpeciesData = { toxic_food: Food[]; }; +export type Department = { + head?: string; +}; + +export type Job = { + description: string; + department: string; +}; + export type Quirk = { description: string; icon: string; @@ -145,6 +154,10 @@ export type PreferencesMenuData = { }; export type ServerData = { + jobs: { + departments: Record; + jobs: Record; + }; names: { types: Record; }; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/base.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/base.ts deleted file mode 100644 index ced244afee6..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/base.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Department } from "./departments"; - -export type Job = { - name: string; - description: string; - department: Department; -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/departments.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/departments.ts deleted file mode 100644 index bbd7aa9325f..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/departments.ts +++ /dev/null @@ -1,40 +0,0 @@ -export type Department = { - head?: string; -}; - -export const Assistant: Department = { - // "Assistant" is not the head of its own department, as otherwise - // it would show as large and bold. -}; - -export const Captain: Department = { - head: "Captain", -}; - -export const Cargo: Department = { - head: "Quartermaster", -}; - -export const Engineering: Department = { - head: "Chief Engineer", -}; - -export const Medical: Department = { - head: "Chief Medical Officer", -}; - -export const Security: Department = { - head: "Head of Security", -}; - -export const Service: Department = { - head: "Head of Personnel", -}; - -export const Science: Department = { - head: "Research Director", -}; - -export const Silicon: Department = { - head: "AI", -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/ai.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/ai.ts deleted file mode 100644 index eaf932b0b6d..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/ai.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Silicon } from "../departments"; - -const AI: Job = { - name: "AI", - description: "Assist the crew, follow your laws, coordinate your cyborgs.", - department: Silicon, -}; - -export default AI; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/assistant.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/assistant.ts deleted file mode 100644 index 66d034f1c3a..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/assistant.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Assistant as DepartmentAssistant } from "../departments"; - -const Assistant: Job = { - name: "Assistant", - description: "Get your space legs, assist people, ask the HoP to \ - give you a job.", - department: DepartmentAssistant, -}; - -export default Assistant; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/atmospheric_technician.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/atmospheric_technician.ts deleted file mode 100644 index 9b9f17199e2..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/atmospheric_technician.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Engineering } from "../departments"; - -const AtmosphericTechnician: Job = { - name: "Atmospheric Technician", - description: "Ensure the air is breathable on the station, fill oxygen \ - tanks, fight fires, purify the air.", - department: Engineering, -}; - -export default AtmosphericTechnician; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/bartender.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/bartender.ts deleted file mode 100644 index 0d5670f89f9..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/bartender.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Bartender: Job = { - name: "Bartender", - description: "Serve booze, mix drinks, keep the crew drunk.", - department: Service, -}; - -export default Bartender; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/botanist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/botanist.ts deleted file mode 100644 index 5f00a5faefa..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/botanist.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Botanist: Job = { - name: "Botanist", - description: "Grow plants for the cook, for medicine, and for recreation.", - department: Service, -}; - -export default Botanist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/captain.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/captain.ts deleted file mode 100644 index 893b7e4907c..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/captain.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Job } from "../base"; -import { Captain as DepartmentCaptain } from "../departments"; - -const Captain: Job = { - name: "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.", - department: DepartmentCaptain, -}; - -export default Captain; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cargo_technician.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cargo_technician.ts deleted file mode 100644 index 8666c6e1fe7..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cargo_technician.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Job } from "../base"; -import { Cargo } from "../departments"; - -const CargoTechnician: Job = { - name: "Cargo Technician", - description: "Distribute supplies to the departments that ordered them, \ - collect empty crates, load and unload the supply shuttle, \ - ship bounty cubes.", - department: Cargo, -}; - -export default CargoTechnician; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chaplain.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chaplain.ts deleted file mode 100644 index da105113c0c..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chaplain.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Chaplain: Job = { - name: "Chaplain", - description: "Hold services and funerals, cremate people, preach your \ - religion, protect the crew against cults.", - department: Service, -}; - -export default Chaplain; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chemist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chemist.ts deleted file mode 100644 index f53bed85525..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chemist.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Medical } from "../departments"; - -const Chemist: Job = { - name: "Chemist", - description: "Supply the doctors with chemicals, make medicine, as well as \ - less likable substances in the comfort of a fully reinforced room.", - department: Medical, -}; - -export default Chemist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chief_engineer.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chief_engineer.ts deleted file mode 100644 index 177c31bd63c..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chief_engineer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Engineering } from "../departments"; - -const ChiefEngineer: Job = { - name: "Chief Engineer", - description: "Coordinate engineering, ensure equipment doesn't get stolen, \ - make sure the Supermatter doesn't blow up, maintain telecommunications.", - department: Engineering, -}; - -export default ChiefEngineer; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chief_medical_officer.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chief_medical_officer.ts deleted file mode 100644 index 15a152ed6ac..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/chief_medical_officer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Medical } from "../departments"; - -const ChiefMedicalOfficer: Job = { - name: "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: Medical, -}; - -export default ChiefMedicalOfficer; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/clown.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/clown.ts deleted file mode 100644 index 253a6aa3c1b..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/clown.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Clown: Job = { - name: "Clown", - description: "Entertain the crew, make bad jokes, go on a holy quest to find \ - bananium, HONK!", - department: Service, -}; - -export default Clown; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cook.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cook.ts deleted file mode 100644 index d072cb193e4..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cook.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Cook: Job = { - name: "Cook", - description: "Serve food, cook meat, keep the crew fed.", - department: Service, -}; - -export default Cook; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/curator.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/curator.ts deleted file mode 100644 index 454c93fb426..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/curator.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Curator: Job = { - name: "Curator", - description: "Read and write books and hand them to people, stock \ - bookshelves, report on station news.", - department: Service, -}; - -export default Curator; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cyborg.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cyborg.ts deleted file mode 100644 index 4969aaa3199..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/cyborg.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Silicon } from "../departments"; - -const Cyborg: Job = { - name: "Cyborg", - description: "Assist the crew, follow your laws, obey your AI.", - department: Silicon, -}; - -export default Cyborg; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/detective.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/detective.ts deleted file mode 100644 index 408dcb0978f..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/detective.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Security } from "../departments"; - -const Detective: Job = { - name: "Detective", - description: "Investigate crimes, gather evidence, perform interrogations, \ - look badass, smoke cigarettes.", - department: Security, -}; - -export default Detective; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/geneticist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/geneticist.ts deleted file mode 100644 index e36e08c3116..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/geneticist.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Science } from "../departments"; - -const Geneticist: Job = { - name: "Geneticist", - description: "Alter genomes, turn monkeys into humans (and vice-versa), make \ - DNA backups so they can get stolen.", - department: Science, -}; - -export default Geneticist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/head_of_personnel.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/head_of_personnel.ts deleted file mode 100644 index 9f06282d346..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/head_of_personnel.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const HeadOfPersonnel: Job = { - name: "Head of Personnel", - description: "Alter access on ID cards, manage civil and supply departments, \ - protect Ian, run the station when the captain dies.", - department: Service, -}; - -export default HeadOfPersonnel; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/head_of_security.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/head_of_security.ts deleted file mode 100644 index 56a96e80470..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/head_of_security.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Job } from "../base"; -import { Security } from "../departments"; - -const HeadOfSecurity: Job = { - name: "Head of Security", - description: "Coordinate security personnel, ensure they are not corrupt, \ - make sure every department is protected, save the Virologist when he gets \ - mauled by monkeys.", - department: Security, -}; - -export default HeadOfSecurity; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/janitor.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/janitor.ts deleted file mode 100644 index aa64e0687c5..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/janitor.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Janitor: Job = { - name: "Janitor", - description: "Clean up trash and blood. Replace broken lights. \ - Slip people over.", - department: Service, -}; - -export default Janitor; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/lawyer.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/lawyer.ts deleted file mode 100644 index 559b82b37e0..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/lawyer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Security } from "../departments"; - -const Lawyer: Job = { - name: "Lawyer", - description: "Advocate for prisoners, create law-binding contracts, \ - ensure Security is following protocol and Space Law.", - department: Security, -}; - -export default Lawyer; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/medical_doctor.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/medical_doctor.ts deleted file mode 100644 index b248624b33a..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/medical_doctor.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Medical } from "../departments"; - -const MedicalDoctor: Job = { - name: "Medical Doctor", - description: "Save lives, run around the station looking for victims, \ - scan everyone in sight", - department: Medical, -}; - -export default MedicalDoctor; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/mime.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/mime.ts deleted file mode 100644 index 8eca6aa19a3..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/mime.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Service } from "../departments"; - -const Mime: Job = { - name: "Mime", - description: "...", - department: Service, -}; - -export default Mime; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/paramedic.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/paramedic.ts deleted file mode 100644 index 88a4450232a..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/paramedic.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Medical } from "../departments"; - -const Paramedic: Job = { - name: "Paramedic", - description: "Run around the station looking for patients, respond to \ - emergencies, give patients a roller bed ride to medbay.", - department: Medical, -}; - -export default Paramedic; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/prisoner.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/prisoner.ts deleted file mode 100644 index 82308a9b1b9..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/prisoner.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Security } from "../departments"; - -const Prisoner: Job = { - name: "Prisoner", - description: "Keep yourself occupied while in permabrig.", - department: Security, -}; - -export default Prisoner; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/psychologist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/psychologist.ts deleted file mode 100644 index f6233d82b09..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/psychologist.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Medical } from "../departments"; - -const Psychologist: Job = { - name: "Psychologist", - description: "Advocate sanity, self-esteem, and teamwork in a station \ - staffed with headcases.", - department: Medical, -}; - -export default Psychologist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/quartermaster.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/quartermaster.ts deleted file mode 100644 index 05f266fba6f..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/quartermaster.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Cargo } from "../departments"; - -const Quartermaster: Job = { - name: "Quartermaster", - description: "Coordinate cargo technicians and shaft miners, assist with \ - economical purchasing.", - department: Cargo, -}; - -export default Quartermaster; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/research_director.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/research_director.ts deleted file mode 100644 index 6ecce763ed8..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/research_director.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Job } from "../base"; -import { Science } from "../departments"; - -const ResearchDirector: Job = { - name: "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", - department: Science, -}; - -export default ResearchDirector; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/roboticist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/roboticist.ts deleted file mode 100644 index 64cf661eae9..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/roboticist.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Science } from "../departments"; - -const Roboticist: Job = { - name: "Roboticist", - description: "Build and repair the AI and cyborgs, create mechs.", - department: Science, -}; - -export default Roboticist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/scientist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/scientist.ts deleted file mode 100644 index 9f140ac954f..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/scientist.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Job } from "../base"; -import { Science } from "../departments"; - -const Scientist: Job = { - name: "Scientist", - description: "Do experiments, perform research, feed the slimes, make bombs.", - department: Science, -}; - -export default Scientist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/security_officer.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/security_officer.ts deleted file mode 100644 index 93117dd3b87..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/security_officer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Security } from "../departments"; - -const SecurityOfficer: Job = { - name: "Security Officer", - description: "Protect company assets, follow the Standard Operating \ - Procedure, eat donuts", - department: Security, -}; - -export default SecurityOfficer; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/shaft_miner.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/shaft_miner.ts deleted file mode 100644 index 474f81cd10c..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/shaft_miner.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Cargo } from "../departments"; - -const ShaftMiner: Job = { - name: "Shaft Miner", - description: "Travel to strange lands. Mine ores. \ - Meet strange creatures. Kill them for their gold.", - department: Cargo, -}; - -export default ShaftMiner; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/station_engineer.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/station_engineer.ts deleted file mode 100644 index 4280c833735..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/station_engineer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Engineering } from "../departments"; - -const StationEngineer: Job = { - name: "Station Engineer", - description: "Start the Supermatter, wire the solars, repair station hull \ - and wiring damage.", - department: Engineering, -}; - -export default StationEngineer; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/virologist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/virologist.ts deleted file mode 100644 index 13a5be66650..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/virologist.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Job } from "../base"; -import { Medical } from "../departments"; - -const Virologist: Job = { - name: "Virologist", - description: "Study the effects of various diseases and synthesize a \ - vaccine for them. Engineer beneficial viruses.", - department: Medical, -}; - -export default Virologist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/warden.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/warden.ts deleted file mode 100644 index e8ac63fe466..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/jobs/jobs/warden.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Job } from "../base"; -import { Security } from "../departments"; - -const Warden: Job = { - name: "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.", - department: Security, -}; - -export default Warden; diff --git a/tgui/packages/tgui/styles/interfaces/PreferencesMenu.scss b/tgui/packages/tgui/styles/interfaces/PreferencesMenu.scss index 6f936a1ce4c..e70d235e0e1 100644 --- a/tgui/packages/tgui/styles/interfaces/PreferencesMenu.scss +++ b/tgui/packages/tgui/styles/interfaces/PreferencesMenu.scss @@ -6,13 +6,12 @@ $department_map: ( 'Assistant': colors.$grey, 'Captain': colors.fg(colors.$blue), + 'Cargo': colors.$brown, 'Command': colors.$yellow, 'Security': colors.$red, 'Engineering': #f1a839, 'Medical': colors.$teal, - 'Misc': colors.$white, 'Science': colors.fg(colors.$purple), - 'Supply': colors.$brown, 'Service': colors.$green, 'Silicon': colors.$pink, );