diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 6aa97533523..e3eca95cd38 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -57,3 +57,118 @@ title_blurb = "A " + JOB_ALT_RESIDENT + " is an individual who resides on the station, frequently in a different part of the station than what is seen. \ They are considered to be part of the crew for most purposes, but have no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/resident + +////////////////////////////////// +// Intern +////////////////////////////////// + +/datum/job/intern + title = JOB_INTERN + flag = INTERN + departments = list(DEPARTMENT_CIVILIAN) + department_flag = ENGSEC // Ran out of bits + faction = FACTION_STATION + total_positions = -1 + spawn_positions = -1 + supervisors = "the staff from the department you're interning in" + selection_color = "#555555" + economic_modifier = 2 + access = list() //See /datum/job/intern/get_access() + minimal_access = list() //See /datum/job/intern/get_access() + outfit_type = /decl/hierarchy/outfit/job/assistant/intern + alt_titles = list(JOB_ALT_APPRENTICE_ENGINEER = /datum/alt_title/intern_eng, + JOB_ALT_MEDICAL_INTERN = /datum/alt_title/intern_med, + JOB_ALT_RESEARCH_INTERN = /datum/alt_title/intern_sci, + JOB_ALT_SECURITY_CADET = /datum/alt_title/intern_sec, + JOB_ALT_JR_CARGO_TECH = /datum/alt_title/intern_crg, + JOB_ALT_SERVER = /datum/alt_title/server, + JOB_ALT_ASSISTANT = /datum/alt_title/assistant) + job_description = "An " + JOB_INTERN + " does whatever is requested of them, often doing so in process of learning \ + another job. Though they are part of the crew, they have no real authority." + timeoff_factor = 0 // Interns, noh + requestable = FALSE + +/datum/alt_title/intern_eng + title = JOB_ALT_APPRENTICE_ENGINEER + title_blurb = "An " + JOB_ALT_APPRENTICE_ENGINEER + " attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ + often in training to become an Engineer. An " + JOB_ALT_APPRENTICE_ENGINEER + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/engineer + +/datum/alt_title/intern_med + title = JOB_ALT_MEDICAL_INTERN + title_blurb = "A " + JOB_ALT_MEDICAL_INTERN + " attempts to provide whatever the Medical department needs. They are not proper Doctors, and are \ + often in training to become a Doctor. A " + JOB_ALT_MEDICAL_INTERN + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/medic + +/datum/alt_title/intern_sci + title = JOB_ALT_RESEARCH_INTERN + title_blurb = "A " + JOB_ALT_RESEARCH_INTERN + " attempts to provide whatever the Research department needs. They are not proper " + JOB_SCIENTIST + "s, and are \ + often in training to become a " + JOB_SCIENTIST + ". A " + JOB_ALT_RESEARCH_INTERN + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/scientist + +/datum/alt_title/intern_sec + title = JOB_ALT_SECURITY_CADET + title_blurb = "A " + JOB_ALT_SECURITY_CADET + " attempts to provide whatever the Security department needs. They are not proper Officers, and are \ + often in training to become an Officer. A " + JOB_ALT_SECURITY_CADET + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/officer + +/datum/alt_title/intern_crg + title = JOB_ALT_JR_CARGO_TECH + title_blurb = "A " + JOB_ALT_JR_CARGO_TECH + " attempts to provide whatever the Cargo department needs. They are not proper Cargo Technicians, and are \ + often in training to become a " + JOB_CARGO_TECHNICIAN + ". A " + JOB_ALT_JR_CARGO_TECH + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/cargo +/* +/datum/alt_title/intern_exp + title = "Jr. " + JOB_EXPLORER + "" + title_blurb = "A Jr. " + JOB_EXPLORER + " attempts to provide whatever the Exploration department needs. They are not proper " + JOB_EXPLORER + "s, and are \ + often in training to become an " + JOB_EXPLORER + ". A Jr. " + JOB_EXPLORER + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/explorer +*/ +/datum/alt_title/server + title = JOB_ALT_SERVER + title_blurb = "A " + JOB_ALT_SERVER + " helps out kitchen and diner staff with various tasks, primarily food delivery. A " + JOB_ALT_SERVER + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/service/server + +/datum/alt_title/assistant + title = JOB_ALT_ASSISTANT + title_blurb = "An " + JOB_ALT_ASSISTANT + " helps out wherever they might be needed. They have no authority, but can volunteer to help if help is needed." + title_outfit = /decl/hierarchy/outfit/job/service/server + +/datum/job/intern/New() + ..() + if(config) + total_positions = CONFIG_GET(number/limit_interns) + spawn_positions = CONFIG_GET(number/limit_interns) + +/datum/job/intern/get_access() + if(CONFIG_GET(flag/assistant_maint)) + return list(access_maint_tunnels) + else + return list() + +////////////////////////////////// +// Visitor +////////////////////////////////// + +/datum/job/assistant // Visitor + title = JOB_ALT_VISITOR + supervisors = "nobody! You don't work here" + job_description = "A " + JOB_ALT_VISITOR + " is just there to visit the place. They have no real authority or responsibility." + timeoff_factor = 0 + requestable = FALSE + alt_titles = list("Guest" = /datum/alt_title/guest, "Traveler" = /datum/alt_title/traveler) + +/datum/job/assistant/New() + ..() + if(config) + total_positions = CONFIG_GET(number/limit_visitors) + spawn_positions = CONFIG_GET(number/limit_visitors) + +/datum/job/assistant/get_access() + return list() + +/datum/alt_title/guest + title = "Guest" + +/datum/alt_title/traveler + title = "Traveler" diff --git a/code/game/jobs/job/assistant_vr.dm b/code/game/jobs/job/assistant_vr.dm deleted file mode 100644 index c28d801acbd..00000000000 --- a/code/game/jobs/job/assistant_vr.dm +++ /dev/null @@ -1,115 +0,0 @@ -////////////////////////////////// -// Intern -////////////////////////////////// - -/datum/job/intern - title = JOB_INTERN - flag = INTERN - departments = list(DEPARTMENT_CIVILIAN) - department_flag = ENGSEC // Ran out of bits - faction = FACTION_STATION - total_positions = -1 - spawn_positions = -1 - supervisors = "the staff from the department you're interning in" - selection_color = "#555555" - economic_modifier = 2 - access = list() //See /datum/job/intern/get_access() - minimal_access = list() //See /datum/job/intern/get_access() - outfit_type = /decl/hierarchy/outfit/job/assistant/intern - alt_titles = list(JOB_ALT_APPRENTICE_ENGINEER = /datum/alt_title/intern_eng, - JOB_ALT_MEDICAL_INTERN = /datum/alt_title/intern_med, - JOB_ALT_RESEARCH_INTERN = /datum/alt_title/intern_sci, - JOB_ALT_SECURITY_CADET = /datum/alt_title/intern_sec, - JOB_ALT_JR_CARGO_TECH = /datum/alt_title/intern_crg, - JOB_ALT_SERVER = /datum/alt_title/server, - JOB_ALT_ASSISTANT = /datum/alt_title/assistant) - job_description = "An " + JOB_INTERN + " does whatever is requested of them, often doing so in process of learning \ - another job. Though they are part of the crew, they have no real authority." - timeoff_factor = 0 // Interns, noh - requestable = FALSE - -/datum/alt_title/intern_eng - title = JOB_ALT_APPRENTICE_ENGINEER - title_blurb = "An " + JOB_ALT_APPRENTICE_ENGINEER + " attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ - often in training to become an Engineer. An " + JOB_ALT_APPRENTICE_ENGINEER + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/engineer - -/datum/alt_title/intern_med - title = JOB_ALT_MEDICAL_INTERN - title_blurb = "A " + JOB_ALT_MEDICAL_INTERN + " attempts to provide whatever the Medical department needs. They are not proper Doctors, and are \ - often in training to become a Doctor. A " + JOB_ALT_MEDICAL_INTERN + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/medic - -/datum/alt_title/intern_sci - title = JOB_ALT_RESEARCH_INTERN - title_blurb = "A " + JOB_ALT_RESEARCH_INTERN + " attempts to provide whatever the Research department needs. They are not proper " + JOB_SCIENTIST + "s, and are \ - often in training to become a " + JOB_SCIENTIST + ". A " + JOB_ALT_RESEARCH_INTERN + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/scientist - -/datum/alt_title/intern_sec - title = JOB_ALT_SECURITY_CADET - title_blurb = "A " + JOB_ALT_SECURITY_CADET + " attempts to provide whatever the Security department needs. They are not proper Officers, and are \ - often in training to become an Officer. A " + JOB_ALT_SECURITY_CADET + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/officer - -/datum/alt_title/intern_crg - title = JOB_ALT_JR_CARGO_TECH - title_blurb = "A " + JOB_ALT_JR_CARGO_TECH + " attempts to provide whatever the Cargo department needs. They are not proper Cargo Technicians, and are \ - often in training to become a " + JOB_CARGO_TECHNICIAN + ". A " + JOB_ALT_JR_CARGO_TECH + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/cargo -/* -/datum/alt_title/intern_exp - title = "Jr. " + JOB_EXPLORER + "" - title_blurb = "A Jr. " + JOB_EXPLORER + " attempts to provide whatever the Exploration department needs. They are not proper " + JOB_EXPLORER + "s, and are \ - often in training to become an " + JOB_EXPLORER + ". A Jr. " + JOB_EXPLORER + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/explorer -*/ -/datum/alt_title/server - title = JOB_ALT_SERVER - title_blurb = "A " + JOB_ALT_SERVER + " helps out kitchen and diner staff with various tasks, primarily food delivery. A " + JOB_ALT_SERVER + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/service/server - -/datum/alt_title/assistant - title = JOB_ALT_ASSISTANT - title_blurb = "An " + JOB_ALT_ASSISTANT + " helps out wherever they might be needed. They have no authority, but can volunteer to help if help is needed." - title_outfit = /decl/hierarchy/outfit/job/service/server - -/datum/job/intern/New() - ..() - if(config) - total_positions = CONFIG_GET(number/limit_interns) - spawn_positions = CONFIG_GET(number/limit_interns) - -/datum/job/intern/get_access() - if(CONFIG_GET(flag/assistant_maint)) - return list(access_maint_tunnels) - else - return list() - - -////////////////////////////////// -// Visitor -////////////////////////////////// - -/datum/job/assistant // Visitor - title = JOB_ALT_VISITOR - supervisors = "nobody! You don't work here" - job_description = "A " + JOB_ALT_VISITOR + " is just there to visit the place. They have no real authority or responsibility." - timeoff_factor = 0 - requestable = FALSE - alt_titles = list("Guest" = /datum/alt_title/guest, "Traveler" = /datum/alt_title/traveler) - -/datum/job/assistant/New() - ..() - if(config) - total_positions = CONFIG_GET(number/limit_visitors) - spawn_positions = CONFIG_GET(number/limit_visitors) - -/datum/job/assistant/get_access() - return list() - -/datum/alt_title/guest - title = "Guest" - -/datum/alt_title/traveler - title = "Traveler" diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 6c16ac43760..767ac329236 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -28,11 +28,16 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 55) /// Vatborn live shorter, no other race eligible for captain besides human/skrell banned_job_species = list(SPECIES_UNATHI, SPECIES_TAJ, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "mechanical", "digital") + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN + dept_time_required = 80 //Pending something more complicated + outfit_type = /decl/hierarchy/outfit/job/captain job_description = "The " + JOB_SITE_MANAGER + " manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \ they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The " + JOB_SITE_MANAGER + " is expected to \ have an understanding of Standard Operating Procedure, and is subject to it, and legal action, in the same way as every other crew member." - alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer) + alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer, JOB_ALT_FACILITY_DIRECTOR = /datum/alt_title/facility_director, JOB_ALT_CHIEF_SUPERVISOR = /datum/alt_title/chief_supervisor, + JOB_ALT_CAPTAIN = /datum/alt_title/captain) /* @@ -45,11 +50,22 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) /datum/job/captain/get_access() return get_all_station_access().Copy() +/datum/job/captain/get_request_reasons() + return list("Training crew", "Assembling expedition team") // Captain Alt Titles /datum/alt_title/overseer title = JOB_ALT_OVERSEER +/datum/alt_title/facility_director + title = JOB_ALT_FACILITY_DIRECTOR + +/datum/alt_title/chief_supervisor + title = JOB_ALT_CHIEF_SUPERVISOR + +/datum/alt_title/captain + title = JOB_ALT_CAPTAIN + ////////////////////////////////// // Head of Personnel ////////////////////////////////// @@ -75,29 +91,42 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) ideal_age_by_species = list(SPECIES_UNATHI = 140, SPECIES_TESHARI = 27, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital", SPECIES_DIONA) + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN + departments = list(DEPARTMENT_COMMAND, DEPARTMENT_CIVILIAN) + departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) + dept_time_required = 60 + outfit_type = /decl/hierarchy/outfit/job/hop job_description = "The " + JOB_HEAD_OF_PERSONNEL + " manages the Service department, the Exploration team, and most other civilians. They also \ manage the Supply department, through the " + JOB_QUARTERMASTER + ". In addition, the " + JOB_HEAD_OF_PERSONNEL + " oversees the personal accounts \ of the crew, including their money and access. If necessary, the " + JOB_HEAD_OF_PERSONNEL + " is first in line to assume Acting Command." - alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro) - access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_keycard_auth, access_gateway) - minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_keycard_auth, access_gateway) + access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) + minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers,access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) + + alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro, JOB_ALT_DEPUTY_MANAGER = /datum/alt_title/deputy_manager, JOB_ALT_STAFF_MANAGER = /datum/alt_title/staff_manager, + JOB_ALT_FACILITY_STEWARD = /datum/alt_title/facility_steward, JOB_ALT_FIRST_MATE = /datum/alt_title/first_mate) + +/datum/job/hop/get_request_reasons() + return list("ID modification", "Training crew", "Assembling expedition team") // HOP Alt Titles /datum/alt_title/cro title = JOB_ALT_CREW_RESOURCE_OFFICER +/datum/alt_title/deputy_manager + title = JOB_ALT_DEPUTY_MANAGER + +/datum/alt_title/staff_manager + title = JOB_ALT_STAFF_MANAGER + +/datum/alt_title/facility_steward + title = JOB_ALT_FACILITY_STEWARD + +/datum/alt_title/first_mate + title = JOB_ALT_FIRST_MATE + ////////////////////////////////// // Command Secretary ////////////////////////////////// @@ -116,9 +145,29 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) minimal_player_age = 5 economic_modifier = 7 + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN + alt_titles = list(JOB_ALT_COMMAND_LIAISON = /datum/alt_title/command_liaison, JOB_ALT_COMMAND_ASSISTANT = /datum/alt_title/command_assistant, JOB_ALT_COMMAND_INTERN = /datum/alt_title/command_intern, + JOB_ALT_BRIDGE_SECRETARY = /datum/alt_title/bridge_secretary, JOB_ALT_BRIDGE_ASSISTANT = /datum/alt_title/bridge_assistant) + access = list(access_heads, access_keycard_auth) minimal_access = list(access_heads, access_keycard_auth) outfit_type = /decl/hierarchy/outfit/job/secretary job_description = "A " + JOB_COMMAND_SECRETARY + " handles paperwork duty for the Heads of Staff, so they can better focus on managing their departments. \ They are not Heads of Staff, and have no real authority." + +/datum/alt_title/command_liaison + title = JOB_ALT_COMMAND_LIAISON + +/datum/alt_title/command_assistant + title = JOB_ALT_COMMAND_ASSISTANT + +/datum/alt_title/command_intern + title = JOB_ALT_COMMAND_INTERN + +/datum/alt_title/bridge_secretary + title = JOB_ALT_BRIDGE_SECRETARY + +/datum/alt_title/bridge_assistant + title = JOB_ALT_BRIDGE_ASSISTANT diff --git a/code/game/jobs/job/captain_vr.dm b/code/game/jobs/job/captain_vr.dm deleted file mode 100644 index c127d8dfd43..00000000000 --- a/code/game/jobs/job/captain_vr.dm +++ /dev/null @@ -1,78 +0,0 @@ -/datum/job/captain - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - dept_time_required = 80 //Pending something more complicated - alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer, JOB_ALT_FACILITY_DIRECTOR = /datum/alt_title/facility_director, JOB_ALT_CHIEF_SUPERVISOR = /datum/alt_title/chief_supervisor, - JOB_ALT_CAPTAIN = /datum/alt_title/captain) - -/datum/alt_title/facility_director - title = JOB_ALT_FACILITY_DIRECTOR - -/datum/alt_title/chief_supervisor - title = JOB_ALT_CHIEF_SUPERVISOR - -/datum/alt_title/captain - title = JOB_ALT_CAPTAIN - -/datum/job/captain/get_request_reasons() - return list("Training crew", "Assembling expedition team") - -/datum/job/hop - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - departments = list(DEPARTMENT_COMMAND, DEPARTMENT_CIVILIAN) - departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) - dept_time_required = 60 - - alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro, JOB_ALT_DEPUTY_MANAGER = /datum/alt_title/deputy_manager, JOB_ALT_STAFF_MANAGER = /datum/alt_title/staff_manager, - JOB_ALT_FACILITY_STEWARD = /datum/alt_title/facility_steward, JOB_ALT_FIRST_MATE = /datum/alt_title/first_mate) - - access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) - minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) - -/datum/alt_title/deputy_manager - title = JOB_ALT_DEPUTY_MANAGER - -/datum/alt_title/staff_manager - title = JOB_ALT_STAFF_MANAGER - -/datum/alt_title/facility_steward - title = JOB_ALT_FACILITY_STEWARD - -/datum/alt_title/first_mate - title = JOB_ALT_FIRST_MATE - -/datum/job/hop/get_request_reasons() - return list("ID modification", "Training crew", "Assembling expedition team") - - -/datum/job/secretary - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_COMMAND_LIAISON = /datum/alt_title/command_liaison, JOB_ALT_COMMAND_ASSISTANT = /datum/alt_title/command_assistant, JOB_ALT_COMMAND_INTERN = /datum/alt_title/command_intern, - JOB_ALT_BRIDGE_SECRETARY = /datum/alt_title/bridge_secretary, JOB_ALT_BRIDGE_ASSISTANT = /datum/alt_title/bridge_assistant) - -/datum/alt_title/command_liaison - title = JOB_ALT_COMMAND_LIAISON - -/datum/alt_title/command_assistant - title = JOB_ALT_COMMAND_ASSISTANT - -/datum/alt_title/command_intern - title = JOB_ALT_COMMAND_INTERN - -/datum/alt_title/bridge_secretary - title = JOB_ALT_BRIDGE_SECRETARY - -/datum/alt_title/bridge_assistant - title = JOB_ALT_BRIDGE_ASSISTANT diff --git a/code/game/jobs/job/cargo.dm b/code/game/jobs/job/cargo.dm new file mode 100644 index 00000000000..ad56749de66 --- /dev/null +++ b/code/game/jobs/job/cargo.dm @@ -0,0 +1,122 @@ +//Cargo +////////////////////////////////// +// Quartermaster +////////////////////////////////// +/datum/job/qm + title = JOB_QUARTERMASTER + flag = QUARTERMASTER + departments = list(DEPARTMENT_CARGO) + sorting_order = 1 // QM is above the cargo techs, but below the HoP. + departments_managed = list(DEPARTMENT_CARGO) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 1 + spawn_positions = 1 + pto_type = PTO_CARGO + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#9b633e" + economic_modifier = 5 + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) + minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) + banned_job_species = list("digital", SPECIES_PROMETHEAN) + + ideal_character_age = 40 + dept_time_required = 20 + + outfit_type = /decl/hierarchy/outfit/job/cargo/qm + job_description = "The " + JOB_QUARTERMASTER + " manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed." + alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief, JOB_ALT_LOGISTICS_MANAGER = /datum/alt_title/logistics_manager, JOB_ALT_CARGO_SUPERVISOR = /datum/alt_title/cargo_supervisor) + +/datum/job/qm/get_request_reasons() + return list("Training crew") + +// Quartermaster Alt Titles +/datum/alt_title/supply_chief + title = JOB_ALT_SUPPLY_CHIEF + +/datum/alt_title/logistics_manager + title = JOB_ALT_LOGISTICS_MANAGER + +/datum/alt_title/cargo_supervisor + title = JOB_ALT_CARGO_SUPERVISOR + +////////////////////////////////// +// Cargo Tech +////////////////////////////////// +/datum/job/cargo_tech + title = JOB_CARGO_TECHNICIAN + flag = CARGOTECH + departments = list(DEPARTMENT_CARGO) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_CARGO + supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#7a4f33" + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) + minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) + + outfit_type = /decl/hierarchy/outfit/job/cargo/cargo_tech + job_description = "A " + JOB_CARGO_TECHNICIAN + " fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \ + because Central Command gives a partial refund." + + alt_titles = list(JOB_ALT_CARGO_LOADER = /datum/alt_title/cargo_loader, JOB_ALT_CARGO_HANDLER = /datum/alt_title/cargo_handler, JOB_ALT_SUPPLY_COURIER = /datum/alt_title/supply_courier, + JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter) + +/datum/alt_title/supply_courier + title = JOB_ALT_SUPPLY_COURIER + title_blurb = "A " + JOB_ALT_SUPPLY_COURIER + " is usually tasked with delivering packages or cargo directly to whoever requires it." + +/datum/alt_title/cargo_loader + title = JOB_ALT_CARGO_LOADER + title_blurb = "A " + JOB_ALT_CARGO_LOADER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + +/datum/alt_title/cargo_handler + title = JOB_ALT_CARGO_HANDLER + title_blurb = "A " + JOB_ALT_CARGO_HANDLER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + +/datum/alt_title/disposal_sorter + title = JOB_ALT_DISPOSALS_SORTER + title_blurb = "A " + JOB_ALT_DISPOSALS_SORTER + " is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." + +////////////////////////////////// +// Shaft Miner +////////////////////////////////// + +/datum/job/mining + title = JOB_SHAFT_MINER + flag = MINER + departments = list(DEPARTMENT_CARGO) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 4 + spawn_positions = 4 + pto_type = PTO_CARGO + supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#7a4f33" + economic_modifier = 5 + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) + minimal_access = list(access_mining, access_mining_station, access_mailsorting) + + outfit_type = /decl/hierarchy/outfit/job/cargo/mining + job_description = "A " + JOB_SHAFT_MINER + " mines and processes minerals to be delivered to departments that need them." + alt_titles = list(JOB_ALT_DEEP_SPACE_MINER = /datum/alt_title/deep_space_miner, JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech, JOB_ALT_PROSPECTOR = /datum/alt_title/prospector, + JOB_ALT_EXCAVATOR = /datum/alt_title/excavator) + +/datum/job/mining/get_request_reasons() + return list("Assembling expedition team") + +/datum/alt_title/drill_tech + title = JOB_ALT_DRILL_TECHNICIAN + title_blurb = "A " + JOB_ALT_DRILL_TECHNICIAN + " specializes in operating and maintaining the machinery needed to extract ore from veins deep below the surface." + +/datum/alt_title/deep_space_miner + title = JOB_ALT_DEEP_SPACE_MINER + title_blurb = "A " + JOB_ALT_DEEP_SPACE_MINER + " specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." + +/datum/alt_title/prospector + title = JOB_ALT_PROSPECTOR + +/datum/alt_title/excavator + title = JOB_ALT_EXCAVATOR diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 663edab0a45..0604b872e4e 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -12,6 +12,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) @@ -19,7 +20,7 @@ outfit_type = /decl/hierarchy/outfit/job/service/bartender job_description = "A " + JOB_BARTENDER + " mixes drinks for the crew. They generally have permission to charge for drinks or deny service to unruly patrons." - alt_titles = list(JOB_ALT_BARISTA = /datum/alt_title/barista) + alt_titles = list(JOB_ALT_BARKEEPR = /datum/alt_title/barkeeper, JOB_ALT_BARMAID = /datum/alt_title/barmaid, JOB_ALT_BARISTA = /datum/alt_title/barista, JOB_ALT_MIXOLOGIST = /datum/alt_title/mixologist) // Bartender Alt Titles /datum/alt_title/barista @@ -28,6 +29,15 @@ or deny service to unruly patrons." title_outfit = /decl/hierarchy/outfit/job/service/bartender/barista +/datum/alt_title/barkeeper + title = JOB_ALT_BARKEEPR + +/datum/alt_title/barmaid + title = JOB_ALT_BARMAID + +/datum/alt_title/mixologist + title = JOB_ALT_MIXOLOGIST + ////////////////////////////////// // Chef ////////////////////////////////// @@ -40,6 +50,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the "+ JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) @@ -47,13 +58,20 @@ outfit_type = /decl/hierarchy/outfit/job/service/chef job_description = "A " + JOB_CHEF + " cooks food for the crew. They generally have permission to charge for food or deny service to unruly diners." - alt_titles = list(JOB_ALT_COOK = /datum/alt_title/cook) + alt_titles = list(JOB_ALT_SOUSCHEF = /datum/alt_title/souschef, JOB_ALT_COOK = /datum/alt_title/cook, JOB_ALT_KITCHEN_WORKER = /datum/alt_title/kitchen_worker) // Chef Alt Titles /datum/alt_title/cook title = JOB_ALT_COOK title_blurb = "A " + JOB_ALT_COOK + " has the same duties, though they may be less experienced." +/datum/alt_title/souschef + title = JOB_ALT_SOUSCHEF + +/datum/alt_title/kitchen_worker + title = JOB_ALT_KITCHEN_WORKER + title_blurb = "A " + JOB_ALT_KITCHEN_WORKER + " has the same duties, though they may be less experienced." + ////////////////////////////////// // Botanist ////////////////////////////////// @@ -66,6 +84,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) @@ -73,89 +92,30 @@ outfit_type = /decl/hierarchy/outfit/job/service/gardener job_description = "A " + JOB_BOTANIST+ " grows plants for the " + JOB_CHEF + " and " + JOB_BARTENDER + "." - alt_titles = list(JOB_ALT_GARDENER = /datum/alt_title/gardener) + alt_titles = list(JOB_ALT_HYDROPONICIST = /datum/alt_title/hydroponicist, JOB_ALT_CULTIVATOR = /datum/alt_title/cultivator, JOB_ALT_FARMER = /datum/alt_title/farmer, + JOB_ALT_GARDENER = /datum/alt_title/gardener, JOB_ALT_FLORIST = /datum/alt_title/florsit, JOB_ALT_RANCHER = /datum/alt_title/rancher) //Botanist Alt Titles /datum/alt_title/gardener title = JOB_ALT_GARDENER title_blurb = "A " + JOB_ALT_GARDENER + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." -//Cargo -////////////////////////////////// -// Quartermaster -////////////////////////////////// -/datum/job/qm - title = JOB_QUARTERMASTER - flag = QUARTERMASTER - departments = list(DEPARTMENT_CARGO) - sorting_order = 1 // QM is above the cargo techs, but below the HoP. - departments_managed = list(DEPARTMENT_CARGO) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 1 - spawn_positions = 1 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#9b633e" - economic_modifier = 5 - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) - minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) - banned_job_species = list("digital", SPECIES_PROMETHEAN) +/datum/alt_title/hydroponicist + title = JOB_ALT_HYDROPONICIST - ideal_character_age = 40 +/datum/alt_title/cultivator + title = JOB_ALT_CULTIVATOR - outfit_type = /decl/hierarchy/outfit/job/cargo/qm - job_description = "The " + JOB_QUARTERMASTER + " manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed." - alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief) +/datum/alt_title/farmer + title = JOB_ALT_FARMER -// Quartermaster Alt Titles -/datum/alt_title/supply_chief - title = JOB_ALT_SUPPLY_CHIEF +/datum/alt_title/florsit + title = JOB_ALT_FLORIST + title_blurb = "A " + JOB_ALT_FLORIST + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." -////////////////////////////////// -// Cargo Tech -////////////////////////////////// -/datum/job/cargo_tech - title = JOB_CARGO_TECHNICIAN - flag = CARGOTECH - departments = list(DEPARTMENT_CARGO) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 - supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#7a4f33" - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) - minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) - - outfit_type = /decl/hierarchy/outfit/job/cargo/cargo_tech - job_description = "A " + JOB_CARGO_TECHNICIAN + " fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \ - because Central Command gives a partial refund." - -////////////////////////////////// -// Shaft Miner -////////////////////////////////// - -/datum/job/mining - title = JOB_SHAFT_MINER - flag = MINER - departments = list(DEPARTMENT_CARGO) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 3 - spawn_positions = 3 - supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#7a4f33" - economic_modifier = 5 - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) - minimal_access = list(access_mining, access_mining_station, access_mailsorting) - - outfit_type = /decl/hierarchy/outfit/job/cargo/mining - job_description = "A " + JOB_SHAFT_MINER + " mines and processes minerals to be delivered to departments that need them." - alt_titles = list(JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech) - -/datum/alt_title/drill_tech - title = JOB_ALT_DRILL_TECHNICIAN - title_blurb = "A " + JOB_ALT_DRILL_TECHNICIAN + " specializes in operating and maintaining the machinery needed to extract ore from veins deep below the surface." +/datum/alt_title/rancher + title = JOB_ALT_RANCHER + title_blurb = "A " + JOB_ALT_RANCHER + " is tasked with the care, feeding, raising, and harvesting of livestock." //Service ////////////////////////////////// @@ -167,8 +127,9 @@ departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_janitor, access_maint_tunnels) @@ -176,12 +137,23 @@ outfit_type = /decl/hierarchy/outfit/job/service/janitor job_description = "A " + JOB_JANITOR + " keeps the station clean, as long as it doesn't interfere with active crime scenes." - alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian) + alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian, JOB_ALT_SANITATION_TECHNICIAN = /datum/alt_title/sanitation_tech, + JOB_ALT_MAID = /datum/alt_title/maid, JOB_ALT_GARBAGE_COLLECTOR = /datum/alt_title/garbage_collector) // Janitor Alt Titles /datum/alt_title/custodian title = JOB_ALT_CUSTODIAN +/datum/alt_title/sanitation_tech + title = JOB_ALT_SANITATION_TECHNICIAN + +/datum/alt_title/maid + title = JOB_ALT_MAID + +/datum/alt_title/garbage_collector + title = JOB_ALT_GARBAGE_COLLECTOR + title_blurb = "A " + JOB_ALT_GARBAGE_COLLECTOR + " keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." + //More or less assistants ////////////////////////////////// // Librarian @@ -192,8 +164,9 @@ departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN faction = FACTION_STATION - total_positions = 1 - spawn_positions = 1 + total_positions = 2 + spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_library, access_maint_tunnels) @@ -201,7 +174,9 @@ outfit_type = /decl/hierarchy/outfit/job/librarian job_description = "The " + JOB_LIBRARIAN + " curates the book selection in the Library, so the crew might enjoy it." - alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_WRITER = /datum/alt_title/writer) + alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_REPORTER = /datum/alt_title/reporter, JOB_ALT_WRITER = /datum/alt_title/writer, + JOB_ALT_HISTORIAN = /datum/alt_title/historian, JOB_ALT_ARCHIVIST = /datum/alt_title/archivist, JOB_ALT_PROFESSOR = /datum/alt_title/professor, + JOB_ALT_ACADEMIC = /datum/alt_title/academic, JOB_ALT_PHILOSOPHER = /datum/alt_title/philosopher, JOB_ALT_CURATOR = /datum/alt_title/curator) // Librarian Alt Titles /datum/alt_title/journalist @@ -213,6 +188,34 @@ title = JOB_ALT_WRITER title_blurb = "The " + JOB_ALT_WRITER + " uses the Library as a quiet place to write whatever it is they choose to write." +/datum/alt_title/reporter + title = JOB_ALT_REPORTER + title_blurb = "The " + JOB_ALT_REPORTER + " uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." + +/datum/alt_title/historian + title = JOB_ALT_HISTORIAN + title_blurb = "The " + JOB_ALT_HISTORIAN + " uses the Library as a base of operation to record any important events occurring on station." + +/datum/alt_title/archivist + title = JOB_ALT_ARCHIVIST + title_blurb = "The " + JOB_ALT_ARCHIVIST + " uses the Library as a base of operation to record any important events occurring on station." + +/datum/alt_title/professor + title = JOB_ALT_PROFESSOR + title_blurb = "The " + JOB_ALT_PROFESSOR + " uses the Library as a base of operations to share their vast knowledge with the crew." + +/datum/alt_title/academic + title = JOB_ALT_ACADEMIC + title_blurb = "The " + JOB_ALT_ACADEMIC + " uses the Library as a base of operations to share their vast knowledge with the crew." + +/datum/alt_title/philosopher + title = JOB_ALT_PHILOSOPHER + title_blurb = "The " + JOB_ALT_PHILOSOPHER + " uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." + +/datum/alt_title/curator + title = JOB_ALT_CURATOR + title_blurb = "The " + JOB_ALT_CURATOR + " uses the Library as a base of operation to gather the finest of art for display and preservation." + ////////////////////////////////// // Internal Affairs Agent ////////////////////////////////// @@ -226,6 +229,8 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN + disallow_jobhop = TRUE supervisors = "company officials and Corporate Regulations" selection_color = "#515151" economic_modifier = 7 @@ -238,10 +243,233 @@ job_description = "An " + JOB_INTERNAL_AFFAIRS_AGENT + " makes sure that the crew is following Standard Operating Procedure. They also \ handle complaints against crew members, and can have issues brought to the attention of Central Command, \ assuming their paperwork is in order." + alt_titles = list(JOB_ALT_INTERNAL_AFFAIRS_LIAISON = /datum/alt_title/ia_liaison, JOB_ALT_INTERNAL_AFFAIRS_DELEGATE = /datum/alt_title/ia_delegate, + JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR = /datum/alt_title/ia_investigator) -/* -/datum/job/lawyer/equip(var/mob/living/carbon/human/H) - . = ..() - if(.) - H.implant_loyalty(H) -*/ +/datum/alt_title/ia_liaison + title = JOB_ALT_INTERNAL_AFFAIRS_LIAISON + +/datum/alt_title/ia_delegate + title = JOB_ALT_INTERNAL_AFFAIRS_DELEGATE + +/datum/alt_title/ia_investigator + title = JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR + +////////////////////////////////// +// Pilot +////////////////////////////////// + +/datum/job/pilot + title = JOB_PILOT + flag = PILOT + departments = list(DEPARTMENT_CIVILIAN) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 2 + spawn_positions = 2 + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#515151" + economic_modifier = 5 + minimal_player_age = 3 + pto_type = PTO_CIVILIAN + access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) + minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) + outfit_type = /decl/hierarchy/outfit/job/pilot + job_description = "A " + JOB_PILOT + " flies the various shuttles in the Virgo-Erigone System." + alt_titles = list(JOB_ALT_COPILOT = /datum/alt_title/co_pilot, JOB_ALT_NAVIGATOR = /datum/alt_title/navigator, JOB_ALT_HELMSMAN = /datum/alt_title/helmsman) + +/datum/alt_title/co_pilot + title = JOB_ALT_COPILOT + title_blurb = "A Co-" + JOB_ALT_COPILOT + " is there primarily to assist main pilot as well as learn from them" + +/datum/alt_title/navigator + title = JOB_ALT_NAVIGATOR + +/datum/alt_title/helmsman + title = JOB_ALT_HELMSMAN + +/datum/job/pilot/get_request_reasons() + return list("Assembling expedition team") + +////////////////////////////////// +// Entertainer +////////////////////////////////// + +/datum/job/entertainer + title = JOB_ENTERTAINER + flag = ENTERTAINER + departments = list(DEPARTMENT_CIVILIAN) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 4 + spawn_positions = 4 + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#515151" + access = list(access_entertainment) + minimal_access = list(access_entertainment) + pto_type = PTO_CIVILIAN + + outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer + job_description = "An " + JOB_ENTERTAINER + " does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." + alt_titles = list(JOB_ALT_PERFORMER = /datum/alt_title/performer, JOB_ALT_MUSICIAN = /datum/alt_title/musician, JOB_ALT_STAGEHAND = /datum/alt_title/stagehand, + JOB_ALT_ACTOR = /datum/alt_title/actor, JOB_ALT_DANCER = /datum/alt_title/dancer, JOB_ALT_SINGER = /datum/alt_title/singer, + JOB_ALT_MAGICIAN = /datum/alt_title/magician, JOB_ALT_COMEDIAN = /datum/alt_title/comedian, JOB_ALT_ARTIST = /datum/alt_title/tragedian, + JOB_ALT_ARTIST = /datum/alt_title/artist, JOB_ALT_GAME_MASTER = /datum/alt_title/game_master) + +// Entertainer Alt Titles +/datum/alt_title/actor + title = JOB_ALT_ACTOR + title_blurb = "An " + JOB_ALT_ACTOR + " is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" + +/datum/alt_title/performer + title = JOB_ALT_PERFORMER + title_blurb = "A " + JOB_ALT_PERFORMER + " is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" + +/datum/alt_title/musician + title = JOB_ALT_MUSICIAN + title_blurb = "A " + JOB_ALT_MUSICIAN + " is someone who makes music with a wide variety of musical instruments!" + +/datum/alt_title/stagehand + title = JOB_ALT_STAGEHAND + title_blurb = "A " + JOB_ALT_STAGEHAND + " typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" + +/datum/alt_title/dancer + title = JOB_ALT_DANCER + title_blurb = "A " + JOB_ALT_DANCER + " is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" + +/datum/alt_title/singer + title = JOB_ALT_SINGER + title_blurb = "A " + JOB_ALT_SINGER + " is someone with gift of melodious voice! Impress people with your vocal range!" + +/datum/alt_title/magician + title = JOB_ALT_MAGICIAN + title_blurb = "A " + JOB_ALT_MAGICIAN + " is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" + +/datum/alt_title/comedian + title = JOB_ALT_COMEDIAN + title_blurb = "A " + JOB_ALT_COMEDIAN + " will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" + +/datum/alt_title/tragedian + title = JOB_ALT_ARTIST + title_blurb = "A " + JOB_ALT_ARTIST + " will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" + +/datum/alt_title/artist + title = JOB_ALT_ARTIST + title_blurb = "An " + JOB_ALT_ARTIST + "'s calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." + +/datum/alt_title/game_master + title = JOB_ALT_GAME_MASTER + title_blurb = "A " + JOB_ALT_GAME_MASTER + " provides recreation for the crew by hosting variety of games. From cards to roleplaying to something more personalized." + +////////////////////////////////// +// Entrepreneur +////////////////////////////////// + +/datum/job/entrepreneur + title = JOB_ENTREPRENEUR + flag = ENTREPRENEUR + departments = list(DEPARTMENT_CIVILIAN) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 4 + spawn_positions = 4 + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#515151" + access = list() + minimal_access = list() + pto_type = PTO_CIVILIAN + + outfit_type = /decl/hierarchy/outfit/job/assistant/entrepreneur + job_description = "An " + JOB_ENTREPRENEUR + " is basically a visitor that obtained special permission to offer personal services to people on station. \ + They will offer people these services and, potentially, even demand payment!" + alt_titles = list(JOB_ALT_LAWYER = /datum/alt_title/lawyer, JOB_ALT_PRIVATE_EYE = /datum/alt_title/private_eye, JOB_ALT_BODYGUARD = /datum/alt_title/bodyguard, + JOB_ALT_PERSONAL_PHYSICIAN = /datum/alt_title/personal_physician, JOB_ALT_DENTIST = /datum/alt_title/dentist, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitness_instructor, + JOB_ALT_YOGA_TEACHER = /datum/alt_title/yoga_teacher, JOB_ALT_MASSEUSE = /datum/alt_title/masseuse, JOB_ALT_TRADESPERSON = /datum/alt_title/tradesperson, + JOB_ALT_STREAMER = /datum/alt_title/streamer, JOB_ALT_INFLUENCER = /datum/alt_title/influencer, JOB_ALT_PARANORMAL_INVESTIGATOR = /datum/alt_title/paranormal_investigator, + JOB_ALT_PERSONAL_SECRETARY = /datum/alt_title/personal_secretary, JOB_ALT_STYLIST = /datum/alt_title/stylist, JOB_ALT_FISHER = /datum/alt_title/fisher, + JOB_ALT_FORTUNE_TELLER = /datum/alt_title/fortune_teller, JOB_ALT_SPIRIT_HEALER = /datum/alt_title/spirit_healer) + +/datum/alt_title/lawyer + title = JOB_ALT_LAWYER + title_blurb = "A " + JOB_ALT_LAWYER + " is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary + +/datum/alt_title/private_eye + title = JOB_ALT_PRIVATE_EYE + title_blurb = "A " + JOB_ALT_PRIVATE_EYE + " is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye + +/datum/alt_title/bodyguard + title = JOB_ALT_BODYGUARD + title_blurb = "A " + JOB_ALT_BODYGUARD + " offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard + +/datum/alt_title/personal_physician + title = JOB_ALT_PERSONAL_PHYSICIAN + title_blurb = "A " + JOB_ALT_PERSONAL_PHYSICIAN + " is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician + +/datum/alt_title/dentist + title = JOB_ALT_DENTIST + title_blurb = "A " + JOB_ALT_DENTIST + " is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/dentist + +/datum/alt_title/fitness_instructor + title = JOB_ALT_FITNESS_INSTRUCTOR + title_blurb = "A " + JOB_ALT_FITNESS_INSTRUCTOR + " dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor + +/datum/alt_title/yoga_teacher + title = JOB_ALT_YOGA_TEACHER + title_blurb = "A " + JOB_ALT_YOGA_TEACHER + " is similar to a fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher + +/datum/alt_title/masseuse + title = JOB_ALT_MASSEUSE + title_blurb = "A " + JOB_ALT_MASSEUSE + " is master of physical therapy and working others' bodies with their hands." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse + +/datum/alt_title/tradesperson + title = JOB_ALT_TRADESPERSON + title_blurb = "A " + JOB_ALT_TRADESPERSON + " is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson + +/datum/alt_title/streamer + title = JOB_ALT_STREAMER + title_blurb = "A " + JOB_ALT_STREAMER + " is here to entertain. Not the crew! Their audience across exonet!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/streamer + +/datum/alt_title/influencer + title = JOB_ALT_INFLUENCER + title_blurb = "An " + JOB_ALT_INFLUENCER + " has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/influencer + +/datum/alt_title/paranormal_investigator + title = JOB_ALT_PARANORMAL_INVESTIGATOR + title_blurb = "A " + JOB_ALT_PARANORMAL_INVESTIGATOR + " looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator + +/datum/alt_title/personal_secretary + title = JOB_ALT_PERSONAL_SECRETARY + title_blurb = "A " + JOB_ALT_PERSONAL_SECRETARY + " offers services of general assistance. Although it's doubtful anyone will ever actually need those." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary + +/datum/alt_title/stylist + title = JOB_ALT_STYLIST + title_blurb = "A " + JOB_ALT_STYLIST + " offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/stylist + +/datum/alt_title/fisher + title = JOB_ALT_FISHER + title_blurb = "A " + JOB_ALT_FISHER + " is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fisher + +/datum/alt_title/fortune_teller + title = JOB_ALT_FORTUNE_TELLER + title_blurb = "A " + JOB_ALT_FORTUNE_TELLER + " peers into the future, and offers these visions to others. Occasionally those visions may even come true!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller + +/datum/alt_title/spirit_healer + title = JOB_ALT_SPIRIT_HEALER + title_blurb = "A " + JOB_ALT_SPIRIT_HEALER + " offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index 1220e3ee88f..a980fd2325f 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -7,6 +7,7 @@ faction = FACTION_STATION total_positions = 1 spawn_positions = 1 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels) @@ -14,13 +15,34 @@ outfit_type = /decl/hierarchy/outfit/job/chaplain job_description = "The " + JOB_CHAPLAIN + " ministers to the spiritual needs of the crew." - alt_titles = list(JOB_ALT_COUNSELOR = /datum/alt_title/counselor) + alt_titles = list(JOB_ALT_MISSIONARY = /datum/alt_title/missionary, JOB_ALT_PREACHER = /datum/alt_title/preacher, JOB_ALT_PRIEST = /datum/alt_title/priest, + JOB_ALT_NUN = /datum/alt_title/nun, JOB_ALT_MONK = /datum/alt_title/monk, JOB_ALT_COUNSELOR = /datum/alt_title/counselor, + JOB_ALT_GURU = /datum/alt_title/guru) // Chaplain Alt Titles /datum/alt_title/counselor title = JOB_ALT_COUNSELOR title_blurb = "The " + JOB_ALT_COUNSELOR + " attends to the emotional needs of the crew, without a specific medicinal or spiritual focus." +/datum/alt_title/guru + title = JOB_ALT_GURU + title_blurb = "The " + JOB_ALT_GURU + " primarily tries to offer spiritual guidance to those who come seeking it." + +/datum/alt_title/missionary + title = JOB_ALT_MISSIONARY + +/datum/alt_title/preacher + title = JOB_ALT_PREACHER + +/datum/alt_title/priest + title = JOB_ALT_PRIEST + +/datum/alt_title/nun + title = JOB_ALT_NUN + +/datum/alt_title/monk + title = JOB_ALT_MONK + /datum/job/chaplain/equip(var/mob/living/carbon/human/H, var/alt_title, var/ask_questions = TRUE) . = ..() if(!.) diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm deleted file mode 100644 index bd4093e4033..00000000000 --- a/code/game/jobs/job/civilian_vr.dm +++ /dev/null @@ -1,426 +0,0 @@ -/datum/job/bartender - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_BARKEEPR = /datum/alt_title/barkeeper, JOB_ALT_BARMAID = /datum/alt_title/barmaid, JOB_ALT_BARISTA = /datum/alt_title/barista, JOB_ALT_MIXOLOGIST = /datum/alt_title/mixologist) - -/datum/alt_title/barkeeper - title = JOB_ALT_BARKEEPR - -/datum/alt_title/barmaid - title = JOB_ALT_BARMAID - -/datum/alt_title/mixologist - title = JOB_ALT_MIXOLOGIST - - -/datum/job/chef - total_positions = 2 //IT TAKES A LOT TO MAKE A STEW - spawn_positions = 2 //A PINCH OF SALT AND LAUGHTER, TOO - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_SOUSCHEF = /datum/alt_title/souschef, JOB_ALT_COOK = /datum/alt_title/cook, JOB_ALT_KITCHEN_WORKER = /datum/alt_title/kitchen_worker) - -/datum/alt_title/souschef - title = JOB_ALT_SOUSCHEF - -/datum/alt_title/kitchen_worker - title = JOB_ALT_KITCHEN_WORKER - title_blurb = "A " + JOB_ALT_KITCHEN_WORKER + " has the same duties, though they may be less experienced." - - -/datum/job/hydro - spawn_positions = 2 - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_HYDROPONICIST = /datum/alt_title/hydroponicist, JOB_ALT_CULTIVATOR = /datum/alt_title/cultivator, JOB_ALT_FARMER = /datum/alt_title/farmer, - JOB_ALT_GARDENER = /datum/alt_title/gardener, JOB_ALT_FLORIST = /datum/alt_title/florsit, JOB_ALT_RANCHER = /datum/alt_title/rancher) - -/datum/alt_title/hydroponicist - title = JOB_ALT_HYDROPONICIST - -/datum/alt_title/cultivator - title = JOB_ALT_CULTIVATOR - -/datum/alt_title/farmer - title = JOB_ALT_FARMER - -/datum/alt_title/florsit - title = JOB_ALT_FLORIST - title_blurb = "A " + JOB_ALT_FLORIST + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." - -/datum/alt_title/rancher - title = JOB_ALT_RANCHER - title_blurb = "A " + JOB_ALT_RANCHER + " is tasked with the care, feeding, raising, and harvesting of livestock." - - -/datum/job/qm - pto_type = PTO_CARGO - dept_time_required = 20 - alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief, JOB_ALT_LOGISTICS_MANAGER = /datum/alt_title/logistics_manager, JOB_ALT_CARGO_SUPERVISOR = /datum/alt_title/cargo_supervisor) - -/datum/alt_title/logistics_manager - title = JOB_ALT_LOGISTICS_MANAGER - -/datum/alt_title/cargo_supervisor - title = JOB_ALT_CARGO_SUPERVISOR - -/datum/job/qm/get_request_reasons() - return list("Training crew") - - -/datum/job/cargo_tech - total_positions = 3 - spawn_positions = 3 - pto_type = PTO_CARGO - alt_titles = list(JOB_ALT_CARGO_LOADER = /datum/alt_title/cargo_loader, JOB_ALT_CARGO_HANDLER = /datum/alt_title/cargo_handler, JOB_ALT_SUPPLY_COURIER = /datum/alt_title/supply_courier, - JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter) - -/datum/alt_title/supply_courier - title = JOB_ALT_SUPPLY_COURIER - title_blurb = "A " + JOB_ALT_SUPPLY_COURIER + " is usually tasked with delivering packages or cargo directly to whoever requires it." - -/datum/alt_title/cargo_loader - title = JOB_ALT_CARGO_LOADER - title_blurb = "A " + JOB_ALT_CARGO_LOADER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." - -/datum/alt_title/cargo_handler - title = JOB_ALT_CARGO_HANDLER - title_blurb = "A " + JOB_ALT_CARGO_HANDLER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." - -/datum/alt_title/disposal_sorter - title = JOB_ALT_DISPOSALS_SORTER - title_blurb = "A " + JOB_ALT_DISPOSALS_SORTER + " is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." - - -/datum/job/mining - total_positions = 4 - spawn_positions = 4 - pto_type = PTO_CARGO - alt_titles = list(JOB_ALT_DEEP_SPACE_MINER = /datum/alt_title/deep_space_miner, JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech, JOB_ALT_PROSPECTOR = /datum/alt_title/prospector, - JOB_ALT_EXCAVATOR = /datum/alt_title/excavator) - -/datum/alt_title/deep_space_miner - title = JOB_ALT_DEEP_SPACE_MINER - title_blurb = "A " + JOB_ALT_DEEP_SPACE_MINER + " specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." - -/datum/alt_title/prospector - title = JOB_ALT_PROSPECTOR - -/datum/alt_title/excavator - title = JOB_ALT_EXCAVATOR - -/datum/job/mining/get_request_reasons() - return list("Assembling expedition team") - - -/datum/job/janitor //Lots of janitor substations on station. - total_positions = 3 - spawn_positions = 3 - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian, JOB_ALT_SANITATION_TECHNICIAN = /datum/alt_title/sanitation_tech, - JOB_ALT_MAID = /datum/alt_title/maid, JOB_ALT_GARBAGE_COLLECTOR = /datum/alt_title/garbage_collector) - -/datum/alt_title/sanitation_tech - title = JOB_ALT_SANITATION_TECHNICIAN - -/datum/alt_title/maid - title = JOB_ALT_MAID - -/datum/alt_title/garbage_collector - title = JOB_ALT_GARBAGE_COLLECTOR - title_blurb = "A " + JOB_ALT_GARBAGE_COLLECTOR + " keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." - - -/datum/job/librarian - total_positions = 2 - spawn_positions = 2 - alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_REPORTER = /datum/alt_title/reporter, JOB_ALT_WRITER = /datum/alt_title/writer, - JOB_ALT_HISTORIAN = /datum/alt_title/historian, JOB_ALT_ARCHIVIST = /datum/alt_title/archivist, JOB_ALT_PROFESSOR = /datum/alt_title/professor, - JOB_ALT_ACADEMIC = /datum/alt_title/academic, JOB_ALT_PHILOSOPHER = /datum/alt_title/philosopher, JOB_ALT_CURATOR = /datum/alt_title/curator) - pto_type = PTO_CIVILIAN - -/datum/alt_title/reporter - title = JOB_ALT_REPORTER - title_blurb = "The " + JOB_ALT_REPORTER + " uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." - -/datum/alt_title/historian - title = JOB_ALT_HISTORIAN - title_blurb = "The " + JOB_ALT_HISTORIAN + " uses the Library as a base of operation to record any important events occurring on station." - -/datum/alt_title/archivist - title = JOB_ALT_ARCHIVIST - title_blurb = "The " + JOB_ALT_ARCHIVIST + " uses the Library as a base of operation to record any important events occurring on station." - -/datum/alt_title/professor - title = JOB_ALT_PROFESSOR - title_blurb = "The " + JOB_ALT_PROFESSOR + " uses the Library as a base of operations to share their vast knowledge with the crew." - -/datum/alt_title/academic - title = JOB_ALT_ACADEMIC - title_blurb = "The " + JOB_ALT_ACADEMIC + " uses the Library as a base of operations to share their vast knowledge with the crew." - -/datum/alt_title/philosopher - title = JOB_ALT_PHILOSOPHER - title_blurb = "The " + JOB_ALT_PHILOSOPHER + " uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." - -/datum/alt_title/curator - title = JOB_ALT_CURATOR - title_blurb = "The " + JOB_ALT_CURATOR + " uses the Library as a base of operation to gather the finest of art for display and preservation." - -/datum/job/lawyer - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_INTERNAL_AFFAIRS_LIAISON = /datum/alt_title/ia_liaison, JOB_ALT_INTERNAL_AFFAIRS_DELEGATE = /datum/alt_title/ia_delegate, - JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR = /datum/alt_title/ia_investigator) - -/datum/alt_title/ia_liaison - title = JOB_ALT_INTERNAL_AFFAIRS_LIAISON - -/datum/alt_title/ia_delegate - title = JOB_ALT_INTERNAL_AFFAIRS_DELEGATE - -/datum/alt_title/ia_investigator - title = JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR - - -/datum/job/chaplain - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_MISSIONARY = /datum/alt_title/missionary, JOB_ALT_PREACHER = /datum/alt_title/preacher, JOB_ALT_PRIEST = /datum/alt_title/priest, - JOB_ALT_NUN = /datum/alt_title/nun, JOB_ALT_MONK = /datum/alt_title/monk, JOB_ALT_COUNSELOR = /datum/alt_title/counselor, - JOB_ALT_GURU = /datum/alt_title/guru) - -/datum/alt_title/guru - title = JOB_ALT_GURU - title_blurb = "The " + JOB_ALT_GURU + " primarily tries to offer spiritual guidance to those who come seeking it." - -/datum/alt_title/missionary - title = JOB_ALT_MISSIONARY - -/datum/alt_title/preacher - title = JOB_ALT_PREACHER - -/datum/alt_title/priest - title = JOB_ALT_PRIEST - -/datum/alt_title/nun - title = JOB_ALT_NUN - -/datum/alt_title/monk - title = JOB_ALT_MONK - - -////////////////////////////////// -// Pilot -////////////////////////////////// - -/datum/job/pilot - title = JOB_PILOT - flag = PILOT - departments = list(DEPARTMENT_CIVILIAN) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#515151" - economic_modifier = 5 - minimal_player_age = 3 - pto_type = PTO_CIVILIAN - access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) - minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) - outfit_type = /decl/hierarchy/outfit/job/pilot - job_description = "A " + JOB_PILOT + " flies the various shuttles in the Virgo-Erigone System." - alt_titles = list(JOB_ALT_COPILOT = /datum/alt_title/co_pilot, JOB_ALT_NAVIGATOR = /datum/alt_title/navigator, JOB_ALT_HELMSMAN = /datum/alt_title/helmsman) - -/datum/alt_title/co_pilot - title = JOB_ALT_COPILOT - title_blurb = "A Co-" + JOB_ALT_COPILOT + " is there primarily to assist main pilot as well as learn from them" - -/datum/alt_title/navigator - title = JOB_ALT_NAVIGATOR - -/datum/alt_title/helmsman - title = JOB_ALT_HELMSMAN - -/datum/job/pilot/get_request_reasons() - return list("Assembling expedition team") - -////////////////////////////////// -// Entertainer -////////////////////////////////// - -/datum/job/entertainer - title = JOB_ENTERTAINER - flag = ENTERTAINER - departments = list(DEPARTMENT_CIVILIAN) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 4 - spawn_positions = 4 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#515151" - access = list(access_entertainment) - minimal_access = list(access_entertainment) - pto_type = PTO_CIVILIAN - - outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer - job_description = "An " + JOB_ENTERTAINER + " does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." - alt_titles = list(JOB_ALT_PERFORMER = /datum/alt_title/performer, JOB_ALT_MUSICIAN = /datum/alt_title/musician, JOB_ALT_STAGEHAND = /datum/alt_title/stagehand, - JOB_ALT_ACTOR = /datum/alt_title/actor, JOB_ALT_DANCER = /datum/alt_title/dancer, JOB_ALT_SINGER = /datum/alt_title/singer, - JOB_ALT_MAGICIAN = /datum/alt_title/magician, JOB_ALT_COMEDIAN = /datum/alt_title/comedian, JOB_ALT_ARTIST = /datum/alt_title/tragedian, - JOB_ALT_ARTIST = /datum/alt_title/artist, JOB_ALT_GAME_MASTER = /datum/alt_title/game_master) - -// Entertainer Alt Titles -/datum/alt_title/actor - title = JOB_ALT_ACTOR - title_blurb = "An " + JOB_ALT_ACTOR + " is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" - -/datum/alt_title/performer - title = JOB_ALT_PERFORMER - title_blurb = "A " + JOB_ALT_PERFORMER + " is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" - -/datum/alt_title/musician - title = JOB_ALT_MUSICIAN - title_blurb = "A " + JOB_ALT_MUSICIAN + " is someone who makes music with a wide variety of musical instruments!" - -/datum/alt_title/stagehand - title = JOB_ALT_STAGEHAND - title_blurb = "A " + JOB_ALT_STAGEHAND + " typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" - -/datum/alt_title/dancer - title = JOB_ALT_DANCER - title_blurb = "A " + JOB_ALT_DANCER + " is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" - -/datum/alt_title/singer - title = JOB_ALT_SINGER - title_blurb = "A " + JOB_ALT_SINGER + " is someone with gift of melodious voice! Impress people with your vocal range!" - -/datum/alt_title/magician - title = JOB_ALT_MAGICIAN - title_blurb = "A " + JOB_ALT_MAGICIAN + " is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" - -/datum/alt_title/comedian - title = JOB_ALT_COMEDIAN - title_blurb = "A " + JOB_ALT_COMEDIAN + " will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" - -/datum/alt_title/tragedian - title = JOB_ALT_ARTIST - title_blurb = "A " + JOB_ALT_ARTIST + " will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" - -/datum/alt_title/artist - title = JOB_ALT_ARTIST - title_blurb = "An " + JOB_ALT_ARTIST + "'s calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." - -/datum/alt_title/game_master - title = JOB_ALT_GAME_MASTER - title_blurb = "A " + JOB_ALT_GAME_MASTER + " provides recreation for the crew by hosting variety of games. From cards to roleplaying to something more personalized." - -////////////////////////////////// -// Entrepreneur -////////////////////////////////// - -/datum/job/entrepreneur - title = JOB_ENTREPRENEUR - flag = ENTREPRENEUR - departments = list(DEPARTMENT_CIVILIAN) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 4 - spawn_positions = 4 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#515151" - access = list() - minimal_access = list() - pto_type = PTO_CIVILIAN - - outfit_type = /decl/hierarchy/outfit/job/assistant/entrepreneur - job_description = "An " + JOB_ENTREPRENEUR + " is basically a visitor that obtained special permission to offer personal services to people on station. \ - They will offer people these services and, potentially, even demand payment!" - alt_titles = list(JOB_ALT_LAWYER = /datum/alt_title/lawyer, JOB_ALT_PRIVATE_EYE = /datum/alt_title/private_eye, JOB_ALT_BODYGUARD = /datum/alt_title/bodyguard, - JOB_ALT_PERSONAL_PHYSICIAN = /datum/alt_title/personal_physician, JOB_ALT_DENTIST = /datum/alt_title/dentist, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitness_instructor, - JOB_ALT_YOGA_TEACHER = /datum/alt_title/yoga_teacher, JOB_ALT_MASSEUSE = /datum/alt_title/masseuse, JOB_ALT_TRADESPERSON = /datum/alt_title/tradesperson, - JOB_ALT_STREAMER = /datum/alt_title/streamer, JOB_ALT_INFLUENCER = /datum/alt_title/influencer, JOB_ALT_PARANORMAL_INVESTIGATOR = /datum/alt_title/paranormal_investigator, - JOB_ALT_PERSONAL_SECRETARY = /datum/alt_title/personal_secretary, JOB_ALT_STYLIST = /datum/alt_title/stylist, JOB_ALT_FISHER = /datum/alt_title/fisher, - JOB_ALT_FORTUNE_TELLER = /datum/alt_title/fortune_teller, JOB_ALT_SPIRIT_HEALER = /datum/alt_title/spirit_healer) - -/datum/alt_title/lawyer - title = JOB_ALT_LAWYER - title_blurb = "A " + JOB_ALT_LAWYER + " is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary - -/datum/alt_title/private_eye - title = JOB_ALT_PRIVATE_EYE - title_blurb = "A " + JOB_ALT_PRIVATE_EYE + " is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye - -/datum/alt_title/bodyguard - title = JOB_ALT_BODYGUARD - title_blurb = "A " + JOB_ALT_BODYGUARD + " offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard - -/datum/alt_title/personal_physician - title = JOB_ALT_PERSONAL_PHYSICIAN - title_blurb = "A " + JOB_ALT_PERSONAL_PHYSICIAN + " is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician - -/datum/alt_title/dentist - title = JOB_ALT_DENTIST - title_blurb = "A " + JOB_ALT_DENTIST + " is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/dentist - -/datum/alt_title/fitness_instructor - title = JOB_ALT_FITNESS_INSTRUCTOR - title_blurb = "A " + JOB_ALT_FITNESS_INSTRUCTOR + " dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor - -/datum/alt_title/yoga_teacher - title = JOB_ALT_YOGA_TEACHER - title_blurb = "A " + JOB_ALT_YOGA_TEACHER + " is similar to a fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher - -/datum/alt_title/masseuse - title = JOB_ALT_MASSEUSE - title_blurb = "A " + JOB_ALT_MASSEUSE + " is master of physical therapy and working others' bodies with their hands." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse - -/datum/alt_title/tradesperson - title = JOB_ALT_TRADESPERSON - title_blurb = "A " + JOB_ALT_TRADESPERSON + " is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson - -/datum/alt_title/streamer - title = JOB_ALT_STREAMER - title_blurb = "A " + JOB_ALT_STREAMER + " is here to entertain. Not the crew! Their audience across exonet!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/streamer - -/datum/alt_title/influencer - title = JOB_ALT_INFLUENCER - title_blurb = "An " + JOB_ALT_INFLUENCER + " has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/influencer - -/datum/alt_title/paranormal_investigator - title = JOB_ALT_PARANORMAL_INVESTIGATOR - title_blurb = "A " + JOB_ALT_PARANORMAL_INVESTIGATOR + " looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator - -/datum/alt_title/personal_secretary - title = JOB_ALT_PERSONAL_SECRETARY - title_blurb = "A " + JOB_ALT_PERSONAL_SECRETARY + " offers services of general assistance. Although it's doubtful anyone will ever actually need those." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary - -/datum/alt_title/stylist - title = JOB_ALT_STYLIST - title_blurb = "A " + JOB_ALT_STYLIST + " offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/stylist - -/datum/alt_title/fisher - title = JOB_ALT_FISHER - title_blurb = "A " + JOB_ALT_FISHER + " is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fisher - -/datum/alt_title/fortune_teller - title = JOB_ALT_FORTUNE_TELLER - title_blurb = "A " + JOB_ALT_FORTUNE_TELLER + " peers into the future, and offers these visions to others. Occasionally those visions may even come true!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller - -/datum/alt_title/spirit_healer - title = JOB_ALT_SPIRIT_HEALER - title_blurb = "A " + JOB_ALT_SPIRIT_HEALER + " offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer diff --git a/code/game/jobs/job/department.dm b/code/game/jobs/job/department.dm index 47d6de97ad1..87ad819e242 100644 --- a/code/game/jobs/job/department.dm +++ b/code/game/jobs/job/department.dm @@ -60,7 +60,7 @@ name = "Miscellaneous" short_name = "Misc" color = "#666666" - sorting_order = 0 + sorting_order = -5 assignable = FALSE /datum/department/synthetic diff --git a/code/game/jobs/job/department_vr.dm b/code/game/jobs/job/department_vr.dm deleted file mode 100644 index 2af1d8e94fe..00000000000 --- a/code/game/jobs/job/department_vr.dm +++ /dev/null @@ -1,6 +0,0 @@ -/datum/department/misc - name = "Off-Duty" - short_name = "Offduty" - color = "#666666" - sorting_order = -5 - assignable = FALSE \ No newline at end of file diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 576739d659b..c4a6b350f89 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -22,15 +22,20 @@ ideal_age_by_species = list(SPECIES_UNATHI = 140, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") + disallow_jobhop = TRUE + pto_type = PTO_ENGINEERING + dept_time_required = 60 access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, access_sec_doors, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload) + access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, + access_heads, access_construction, + access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) + minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, access_sec_doors, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload) + access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, + access_heads, access_construction, + access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) + alt_titles = list(JOB_ALT_HEAD_ENGINEER = /datum/alt_title/head_engineer, JOB_ALT_FOREMAN = /datum/alt_title/foreman, JOB_ALT_MAINTENANCE_MANAGER = /datum/alt_title/maintenance_manager) minimal_player_age = 7 outfit_type = /decl/hierarchy/outfit/job/engineering/chief_engineer @@ -38,6 +43,18 @@ of manpower as much as they handle hands-on operations and repairs. They are also expected to keep the rest of the station informed of \ any structural threats to the station that may be hazardous to health or disruptive to work." +/datum/job/chief_engineer/get_request_reasons() + return list("Engine setup", "Construction project", "Repairs necessary", "Training crew", "Assembling expedition team") + +/datum/alt_title/head_engineer + title = JOB_ALT_HEAD_ENGINEER + +/datum/alt_title/foreman + title = JOB_ALT_FOREMAN + +/datum/alt_title/maintenance_manager + title = JOB_ALT_MAINTENANCE_MANAGER + ////////////////////////////////// // Engineer ////////////////////////////////// @@ -52,10 +69,12 @@ supervisors = "the "+ JOB_CHIEF_ENGINEER selection_color = "#5B4D20" economic_modifier = 5 + pto_type = PTO_ENGINEERING + access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics) minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) - alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, - JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician) + alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, + JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician, JOB_ALT_CONSTRUCTION_ENGINEER = /datum/alt_title/construction_engi, JOB_ALT_ENGINEERING_CONTRACTOR = /datum/alt_title/engineering_contractor, JOB_ALT_COMPUTER_TECHNICIAN = /datum/alt_title/computer_tech) minimal_player_age = 3 min_age_by_species = list(SPECIES_PROMETHEAN = 2) @@ -64,6 +83,9 @@ job_description = "An " + JOB_ENGINEER + " keeps the station running. They repair damages, keep the atmosphere stable, and ensure that power is being \ generated and distributed. On quiet shifts, they may be called upon to make cosmetic alterations to the station." +/datum/job/engineer/get_request_reasons() + return list("Engine setup", "Construction project", "Repairs necessary", "Assembling expedition team") + // Engineer Alt Titles /datum/alt_title/maint_tech title = JOB_ALT_MAINTENANCE_TECHNICIAN @@ -80,6 +102,23 @@ title_blurb = "An " + JOB_ALT_ELECTRICIAN + "'s primary duty is making sure power is properly distributed thoughout the station, utilizing solars, substations, and other \ methods to ensure every department has power in an emergency." +/datum/alt_title/construction_engi + title = JOB_ALT_CONSTRUCTION_ENGINEER + title_blurb = "A " + JOB_ALT_CONSTRUCTION_ENGINEER + " fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ + as additions to station layout." + +/datum/alt_title/engineering_contractor + title = JOB_ALT_ENGINEERING_CONTRACTOR + title_blurb = "An " + JOB_ALT_ENGINEERING_CONTRACTOR + " fulfills similar duties to other engineers, but isn't directly employed by NT proper." + +/datum/alt_title/computer_tech + title = JOB_ALT_COMPUTER_TECHNICIAN + title_blurb = "A " + JOB_ALT_COMPUTER_TECHNICIAN + " fulfills similar duties to other engineers, but specializes in working with software and computers. They also often deal with integrated circuits." + +/datum/alt_title/salvage_tech + title = JOB_ALT_SALVAGE_TECHNICIAN + title_blurb = "A " + JOB_ALT_SALVAGE_TECHNICIAN + " is responsible for breaking down debris and obsolete equipment to recover useful components and materials." + ////////////////////////////////// // Atmos Tech ////////////////////////////////// @@ -90,16 +129,36 @@ department_flag = ENGSEC faction = FACTION_STATION total_positions = 3 - spawn_positions = 2 + spawn_positions = 3 + pto_type = PTO_ENGINEERING supervisors = "the " + JOB_CHIEF_ENGINEER selection_color = "#5B4D20" economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks) minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks) + alt_titles = list(JOB_ALT_ATMOSPHERIC_ENGINEER = /datum/alt_title/atmos_engi, JOB_ALT_ATMOSPHERIC_MAINTAINER = /datum/alt_title/atmos_maint, JOB_ALT_DISPOSALS_TECHNICIAN = /datum/alt_title/disposals_tech, + JOB_ALT_FUEL_TECHNICIAN = /datum/alt_title/refuel_tech) + minimal_player_age = 3 min_age_by_species = list(SPECIES_PROMETHEAN = 2) outfit_type = /decl/hierarchy/outfit/job/engineering/atmos job_description = "An " + JOB_ATMOSPHERIC_TECHNICIAN + " is primarily concerned with keeping the station's atmosphere breathable. They are expected to have a good \ understanding of the pipes, vents, and scrubbers that move gasses around the station, and to be familiar with proper firefighting procedure." + +/datum/job/atmos/get_request_reasons() + return list("Construction project", "Repairs necessary", "Assembling expedition team") + +/datum/alt_title/refuel_tech + title = JOB_ALT_FUEL_TECHNICIAN + +/datum/alt_title/atmos_maint + title = JOB_ALT_ATMOSPHERIC_MAINTAINER + +/datum/alt_title/atmos_engi + title = JOB_ALT_ATMOSPHERIC_ENGINEER + +/datum/alt_title/disposals_tech + title = JOB_ALT_DISPOSALS_TECHNICIAN + title_blurb = "A " + JOB_ALT_DISPOSALS_TECHNICIAN + " is an " + JOB_ATMOSPHERIC_TECHNICIAN + " still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." diff --git a/code/game/jobs/job/engineering_vr.dm b/code/game/jobs/job/engineering_vr.dm deleted file mode 100644 index bb784a8c961..00000000000 --- a/code/game/jobs/job/engineering_vr.dm +++ /dev/null @@ -1,75 +0,0 @@ -/datum/job/chief_engineer - disallow_jobhop = TRUE - pto_type = PTO_ENGINEERING - dept_time_required = 60 - - access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) - - minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) - alt_titles = list(JOB_ALT_HEAD_ENGINEER = /datum/alt_title/head_engineer, JOB_ALT_FOREMAN = /datum/alt_title/foreman, JOB_ALT_MAINTENANCE_MANAGER = /datum/alt_title/maintenance_manager) - -/datum/alt_title/head_engineer - title = JOB_ALT_HEAD_ENGINEER - -/datum/alt_title/foreman - title = JOB_ALT_FOREMAN - -/datum/alt_title/maintenance_manager - title = JOB_ALT_MAINTENANCE_MANAGER - -/datum/job/chief_engineer/get_request_reasons() - return list("Engine setup", "Construction project", "Repairs necessary", "Training crew", "Assembling expedition team") - - -/datum/job/engineer - pto_type = PTO_ENGINEERING - alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, - JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician, JOB_ALT_CONSTRUCTION_ENGINEER = /datum/alt_title/construction_engi, JOB_ALT_ENGINEERING_CONTRACTOR = /datum/alt_title/engineering_contractor, JOB_ALT_COMPUTER_TECHNICIAN = /datum/alt_title/computer_tech) - -/datum/alt_title/construction_engi - title = JOB_ALT_CONSTRUCTION_ENGINEER - title_blurb = "A " + JOB_ALT_CONSTRUCTION_ENGINEER + " fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ - as additions to station layout." - -/datum/alt_title/engineering_contractor - title = JOB_ALT_ENGINEERING_CONTRACTOR - title_blurb = "An " + JOB_ALT_ENGINEERING_CONTRACTOR + " fulfills similar duties to other engineers, but isn't directly employed by NT proper." - -/datum/job/engineer/get_request_reasons() - return list("Engine setup", "Construction project", "Repairs necessary", "Assembling expedition team") - -/datum/alt_title/computer_tech - title = JOB_ALT_COMPUTER_TECHNICIAN - title_blurb = "A " + JOB_ALT_COMPUTER_TECHNICIAN + " fulfills similar duties to other engineers, but specializes in working with software and computers. They also often deal with integrated circuits." - -/datum/alt_title/salvage_tech - title = JOB_ALT_SALVAGE_TECHNICIAN - title_blurb = "A " + JOB_ALT_SALVAGE_TECHNICIAN + " is responsible for breaking down debris and obsolete equipment to recover useful components and materials." - -/datum/job/atmos - spawn_positions = 3 - pto_type = PTO_ENGINEERING - alt_titles = list(JOB_ALT_ATMOSPHERIC_ENGINEER = /datum/alt_title/atmos_engi, JOB_ALT_ATMOSPHERIC_MAINTAINER = /datum/alt_title/atmos_maint, JOB_ALT_DISPOSALS_TECHNICIAN = /datum/alt_title/disposals_tech, - JOB_ALT_FUEL_TECHNICIAN = /datum/alt_title/refuel_tech) - -/datum/alt_title/atmos_maint - title = JOB_ALT_ATMOSPHERIC_MAINTAINER - -/datum/alt_title/atmos_engi - title = JOB_ALT_ATMOSPHERIC_ENGINEER - -/datum/alt_title/disposals_tech - title = JOB_ALT_DISPOSALS_TECHNICIAN - title_blurb = "A " + JOB_ALT_DISPOSALS_TECHNICIAN + " is an " + JOB_ATMOSPHERIC_TECHNICIAN + " still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." - -/datum/alt_title/refuel_tech - title = JOB_ALT_FUEL_TECHNICIAN - -/datum/job/atmos/get_request_reasons() - return list("Construction project", "Repairs necessary", "Assembling expedition team") diff --git a/code/game/jobs/job/exploration_vr.dm b/code/game/jobs/job/exploration.dm similarity index 100% rename from code/game/jobs/job/exploration_vr.dm rename to code/game/jobs/job/exploration.dm diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index b191d670722..d01d60e4be9 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -39,6 +39,29 @@ // Description of the job's role and minimum responsibilities. var/job_description = "This Job doesn't have a description! Please report it!" + //Requires a ckey to be whitelisted in jobwhitelist.txt + var/whitelist_only = 0 + + //Does not display this job on the occupation setup screen + var/latejoin_only = 0 + + //Every hour playing this role gains this much time off. (Can be negative for off duty jobs!) + var/timeoff_factor = 3 + + //What type of PTO is that job earning? + var/pto_type + + //Disallow joining as this job midround from off-duty position via going on-duty + var/disallow_jobhop = FALSE + + //Time required in the department as other jobs before playing this one (in hours) + var/dept_time_required = 0 + + //Do we forbid ourselves from earning PTO? + var/playtime_only = FALSE + + var/requestable = TRUE + /datum/job/New() . = ..() department_accounts = department_accounts || departments_managed @@ -184,3 +207,47 @@ if(brain_type in banned_job_species) return TRUE */ + + +// Check client-specific availability rules. +/datum/job/proc/player_has_enough_pto(client/C) + return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, pto_type) > 0) + +/datum/job/proc/player_has_enough_playtime(client/C) + return (available_in_playhours(C) == 0) + +/datum/job/proc/available_in_playhours(client/C) + if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) + if(isnum(C.play_hours[pto_type])) // Has played that department before + return max(0, dept_time_required - C.play_hours[pto_type]) + else // List doesn't have that entry, maybe never played, maybe invalid PTO type (you should fix that...) + return dept_time_required // Could be 0, too, which is fine! They can play that + return 0 + +// Special treatment for some the more complicated heads + +// Captain gets every department combined +/datum/job/captain/available_in_playhours(client/C) + if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) + var/remaining_time_needed = dept_time_required + for(var/key in C.play_hours) + if(isnum(C.play_hours[key]) && !(key == PTO_TALON)) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[key]) + return remaining_time_needed + return 0 + +// HoP gets civilian, cargo, and exploration combined +/datum/job/hop/available_in_playhours(client/C) + if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) + var/remaining_time_needed = dept_time_required + if(isnum(C.play_hours[PTO_CIVILIAN])) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CIVILIAN]) + if(isnum(C.play_hours[PTO_CARGO])) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CARGO]) + if(isnum(C.play_hours[PTO_EXPLORATION])) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_EXPLORATION]) + return remaining_time_needed + return 0 + +/datum/job/proc/get_request_reasons() + return list() diff --git a/code/game/jobs/job/job_vr.dm b/code/game/jobs/job/job_vr.dm deleted file mode 100644 index 3796714b5ea..00000000000 --- a/code/game/jobs/job/job_vr.dm +++ /dev/null @@ -1,66 +0,0 @@ -/datum/job - //Requires a ckey to be whitelisted in jobwhitelist.txt - var/whitelist_only = 0 - - //Does not display this job on the occupation setup screen - var/latejoin_only = 0 - - //Every hour playing this role gains this much time off. (Can be negative for off duty jobs!) - var/timeoff_factor = 3 - - //What type of PTO is that job earning? - var/pto_type - - //Disallow joining as this job midround from off-duty position via going on-duty - var/disallow_jobhop = FALSE - - //Time required in the department as other jobs before playing this one (in hours) - var/dept_time_required = 0 - - //Do we forbid ourselves from earning PTO? - var/playtime_only = FALSE - - var/requestable = TRUE - -// Check client-specific availability rules. -/datum/job/proc/player_has_enough_pto(client/C) - return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, pto_type) > 0) - -/datum/job/proc/player_has_enough_playtime(client/C) - return (available_in_playhours(C) == 0) - -/datum/job/proc/available_in_playhours(client/C) - if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) - if(isnum(C.play_hours[pto_type])) // Has played that department before - return max(0, dept_time_required - C.play_hours[pto_type]) - else // List doesn't have that entry, maybe never played, maybe invalid PTO type (you should fix that...) - return dept_time_required // Could be 0, too, which is fine! They can play that - return 0 - -// Special treatment for some the more complicated heads - -// Captain gets every department combined -/datum/job/captain/available_in_playhours(client/C) - if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) - var/remaining_time_needed = dept_time_required - for(var/key in C.play_hours) - if(isnum(C.play_hours[key]) && !(key == PTO_TALON)) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[key]) - return remaining_time_needed - return 0 - -// HoP gets civilian, cargo, and exploration combined -/datum/job/hop/available_in_playhours(client/C) - if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) - var/remaining_time_needed = dept_time_required - if(isnum(C.play_hours[PTO_CIVILIAN])) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CIVILIAN]) - if(isnum(C.play_hours[PTO_CARGO])) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CARGO]) - if(isnum(C.play_hours[PTO_EXPLORATION])) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_EXPLORATION]) - return remaining_time_needed - return 0 - -/datum/job/proc/get_request_reasons() - return list() diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 9298028eb96..c8a96efad98 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -16,11 +16,13 @@ req_admin_notify = 1 economic_modifier = 10 access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_sec_doors, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels) + access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, + access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) + minimal_access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_sec_doors, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels) + access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, + access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) + alt_titles = list(JOB_ALT_CHIEF_PHYSICIAN = /datum/alt_title/chief_physician, JOB_ALT_MEDICAL_DIRECTOR = /datum/alt_title/medical_director, JOB_ALT_HEALTHCARE_MANAGER = /datum/alt_title/healthcare_manager) minimum_character_age = 25 min_age_by_species = list(SPECIES_UNATHI = 70, "mechanical" = 10, SPECIES_HUMAN_VATBORN = 14) @@ -29,12 +31,28 @@ ideal_age_by_species = list(SPECIES_UNATHI = 140, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") + disallow_jobhop = TRUE + pto_type = PTO_MEDICAL + dept_time_required = 60 + outfit_type = /decl/hierarchy/outfit/job/medical/cmo job_description = "The CMO manages the Medical department and is a position requiring experience and skill; their goal is to ensure that their \ staff keep the station's crew healthy and whole. They are primarily interested in making sure that patients are safely found and \ transported to Medical for treatment. They are expected to keep the crew informed about threats to their health and safety, and \ about the importance of Suit Sensors." +/datum/job/cmo/get_request_reasons() + return list("Surgery pending", "Viral outbreak", "Training crew", "Assembling expedition team") + +/datum/alt_title/chief_physician + title = JOB_ALT_CHIEF_PHYSICIAN + +/datum/alt_title/medical_director + title = JOB_ALT_MEDICAL_DIRECTOR + +/datum/alt_title/healthcare_manager + title = JOB_ALT_HEALTHCARE_MANAGER + ////////////////////////////////// // Medical Doctor ////////////////////////////////// @@ -45,7 +63,8 @@ department_flag = MEDSCI faction = FACTION_STATION total_positions = 5 - spawn_positions = 3 + spawn_positions = 5 + pto_type = PTO_MEDICAL supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 7 @@ -55,14 +74,15 @@ job_description = "A " + JOB_MEDICAL_DOCTOR + " is a Jack-of-All-Trades Medical title, covering a variety of skill levels and minor specializations. They are likely \ familiar with basic first aid, and a number of accompanying medications, and can generally save, if not cure, a majority of the \ patients they encounter." - alt_titles = list( - JOB_ALT_SURGEON = /datum/alt_title/surgeon, - JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, - JOB_ALT_NURSE = /datum/alt_title/nurse, - JOB_ALT_VIROLOGIST = /datum/alt_title/virologist) + alt_titles = list(JOB_ALT_PHYSICIAN = /datum/alt_title/physician, JOB_ALT_MEDICAL_PRACTITIONER = /datum/alt_title/medical_practitioner, JOB_ALT_SURGEON = /datum/alt_title/surgeon, + JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, JOB_ALT_NURSE = /datum/alt_title/nurse, JOB_ALT_ORDERLY = /datum/alt_title/orderly, + JOB_ALT_VIROLOGIST = /datum/alt_title/virologist, JOB_ALT_MEDICAL_CONTRACTOR = /datum/alt_title/medical_contractor) min_age_by_species = list(SPECIES_PROMETHEAN = 3) +/datum/job/doctor/get_request_reasons() + return list("Surgery pending", "Viral outbreak", "Assembling expedition team") + //Medical Doctor Alt Titles /datum/alt_title/surgeon title = JOB_ALT_SURGEON @@ -90,7 +110,22 @@ to produce the various types of virus foods or mutagens." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/virologist -//Chemist is a medical job damnit //YEAH FUCK YOU SCIENCE -Pete //Guys, behave -Erro +/datum/alt_title/physician + title = JOB_ALT_PHYSICIAN + +/datum/alt_title/medical_practitioner + title = JOB_ALT_MEDICAL_PRACTITIONER + +/datum/alt_title/orderly + title = JOB_ALT_ORDERLY + title_blurb = "An " + JOB_ALT_ORDERLY + " acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ + and dirty labor around the department." + title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse + +/datum/alt_title/medical_contractor + title = JOB_ALT_MEDICAL_CONTRACTOR + title_blurb = "A " + JOB_ALT_MEDICAL_CONTRACTOR + " can be anything from a full-blown doctor to the likes of a nurse or orderly, but isn't directly employed by NT proper." + ////////////////////////////////// // Chemist ////////////////////////////////// @@ -102,6 +137,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_MEDICAL supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 5 @@ -113,13 +149,17 @@ outfit_type = /decl/hierarchy/outfit/job/medical/chemist job_description = "A " + JOB_CHEMIST + " produces and maintains a stock of basic to advanced chemicals for medical and occasionally research use. \ They are likely to know the use and dangers of many lab-produced chemicals." - alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist) + alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist, JOB_ALT_PHARMACOLOGIST = /datum/alt_title/pharmacologist) // Chemist Alt Titles /datum/alt_title/pharmacist title = JOB_ALT_PHARMACIST title_blurb = "A " + JOB_ALT_PHARMACIST + " focuses on the chemical needs of the Medical Department, and often offers to fill crew prescriptions at their discretion." +/datum/alt_title/pharmacologist + title = JOB_ALT_PHARMACOLOGIST + title_blurb = "A " + JOB_ALT_PHARMACOLOGIST + " focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." + /* I'm commenting out Geneticist so you can't actually see it in the job menu, given that you can't play as one - Jon. ////////////////////////////////// // Geneticist @@ -154,6 +194,7 @@ faction = FACTION_STATION total_positions = 1 spawn_positions = 1 + pto_type = PTO_MEDICAL economic_modifier = 5 supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" @@ -162,7 +203,7 @@ outfit_type = /decl/hierarchy/outfit/job/medical/psychiatrist job_description = "A " + JOB_PSYCHIATRIST + " provides mental health services to crew members in need. They may also be called upon to determine whatever \ ails the mentally unwell, frequently under Security supervision. They understand the effects of various psychoactive drugs." - alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist) + alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist, JOB_ALT_PSYCHOANALYST = /datum/alt_title/psychoanalyst, JOB_ALT_PSYCHOTHERAPIST = /datum/alt_title/psychotherapist) banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_DIONA) //Psychiatrist Alt Titles @@ -172,6 +213,18 @@ called upon to determine whatever ails the mentally unwell, frequently under Security supervision." title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist +/datum/alt_title/psychoanalyst + title = JOB_ALT_PSYCHOANALYST + title_blurb = "A " + JOB_ALT_PSYCHOANALYST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + called upon to determine whatever ails the mentally unwell, frequently under Security supervision." + title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist + +/datum/alt_title/psychotherapist + title = JOB_ALT_PSYCHOTHERAPIST + title_blurb = "A " + JOB_ALT_PSYCHOTHERAPIST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + called upon to determine whatever ails the mentally unwell, frequently under Security supervision." + title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist + ////////////////////////////////// // Paramedic ////////////////////////////////// @@ -181,8 +234,9 @@ departments = list(DEPARTMENT_MEDICAL) department_flag = MEDSCI faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_MEDICAL supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 4 @@ -191,14 +245,26 @@ outfit_type = /decl/hierarchy/outfit/job/medical/paramedic job_description = "A " + JOB_PARAMEDIC + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their own. \ They may also be called upon to keep patients stable when Medical is busy or understaffed." - alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt) + alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt, JOB_ALT_MEDICAL_RESPONDER = /datum/alt_title/medical_responder, JOB_ALT_SEARCH_AND_RESCUE = /datum/alt_title/sar) banned_job_species = list(SPECIES_DIONA) min_age_by_species = list(SPECIES_PROMETHEAN = 2) +/datum/job/paramedic/get_request_reasons() + return list("Assembling expedition team") + // Paramedic Alt Titles /datum/alt_title/emt title = JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN title_blurb = "An " + JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt + +/datum/alt_title/medical_responder + title = JOB_ALT_MEDICAL_RESPONDER + title_blurb = "A " + JOB_ALT_MEDICAL_RESPONDER + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ + own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." + title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt + +/datum/alt_title/sar + title = JOB_ALT_SEARCH_AND_RESCUE diff --git a/code/game/jobs/job/medical_vr.dm b/code/game/jobs/job/medical_vr.dm deleted file mode 100644 index 9d08fdfcf29..00000000000 --- a/code/game/jobs/job/medical_vr.dm +++ /dev/null @@ -1,97 +0,0 @@ -/datum/job/cmo - disallow_jobhop = TRUE - pto_type = PTO_MEDICAL - dept_time_required = 60 - - access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) - - minimal_access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) - alt_titles = list(JOB_ALT_CHIEF_PHYSICIAN = /datum/alt_title/chief_physician, JOB_ALT_MEDICAL_DIRECTOR = /datum/alt_title/medical_director, JOB_ALT_HEALTHCARE_MANAGER = /datum/alt_title/healthcare_manager) - -/datum/alt_title/chief_physician - title = JOB_ALT_CHIEF_PHYSICIAN - -/datum/alt_title/medical_director - title = JOB_ALT_MEDICAL_DIRECTOR - -/datum/alt_title/healthcare_manager - title = JOB_ALT_HEALTHCARE_MANAGER - -/datum/job/cmo/get_request_reasons() - return list("Surgery pending", "Viral outbreak", "Training crew", "Assembling expedition team") - - -/datum/job/doctor - spawn_positions = 5 - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_PHYSICIAN = /datum/alt_title/physician, JOB_ALT_MEDICAL_PRACTITIONER = /datum/alt_title/medical_practitioner, JOB_ALT_SURGEON = /datum/alt_title/surgeon, - JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, JOB_ALT_NURSE = /datum/alt_title/nurse, JOB_ALT_ORDERLY = /datum/alt_title/orderly, - JOB_ALT_VIROLOGIST = /datum/alt_title/virologist, JOB_ALT_MEDICAL_CONTRACTOR = /datum/alt_title/medical_contractor) - -/datum/alt_title/physician - title = JOB_ALT_PHYSICIAN - -/datum/alt_title/medical_practitioner - title = JOB_ALT_MEDICAL_PRACTITIONER - -/datum/alt_title/orderly - title = JOB_ALT_ORDERLY - title_blurb = "An " + JOB_ALT_ORDERLY + " acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ - and dirty labor around the department." - title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse - -/datum/alt_title/medical_contractor - title = JOB_ALT_MEDICAL_CONTRACTOR - title_blurb = "A " + JOB_ALT_MEDICAL_CONTRACTOR + " can be anything from a full-blown doctor to the likes of a nurse or orderly, but isn't directly employed by NT proper." - -/datum/job/doctor/get_request_reasons() - return list("Surgery pending", "Viral outbreak", "Assembling expedition team") - - -/datum/job/chemist - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist, JOB_ALT_PHARMACOLOGIST = /datum/alt_title/pharmacologist) - -/datum/alt_title/pharmacologist - title = JOB_ALT_PHARMACOLOGIST - title_blurb = "A " + JOB_ALT_PHARMACOLOGIST + " focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." - - -/datum/job/psychiatrist - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist, JOB_ALT_PSYCHOANALYST = /datum/alt_title/psychoanalyst, JOB_ALT_PSYCHOTHERAPIST = /datum/alt_title/psychotherapist) - -/datum/alt_title/psychoanalyst - title = JOB_ALT_PSYCHOANALYST - title_blurb = "A " + JOB_ALT_PSYCHOANALYST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ - called upon to determine whatever ails the mentally unwell, frequently under Security supervision." - title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist - -/datum/alt_title/psychotherapist - title = JOB_ALT_PSYCHOTHERAPIST - title_blurb = "A " + JOB_ALT_PSYCHOTHERAPIST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ - called upon to determine whatever ails the mentally unwell, frequently under Security supervision." - title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist - - -/datum/job/paramedic - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt, JOB_ALT_MEDICAL_RESPONDER = /datum/alt_title/medical_responder, JOB_ALT_SEARCH_AND_RESCUE = /datum/alt_title/sar) - total_positions = 3 - spawn_positions = 3 - -/datum/alt_title/medical_responder - title = JOB_ALT_MEDICAL_RESPONDER - title_blurb = "A " + JOB_ALT_MEDICAL_RESPONDER + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ - own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." - title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt - -/datum/alt_title/sar - title = JOB_ALT_SEARCH_AND_RESCUE - -/datum/job/paramedic/get_request_reasons() - return list("Assembling expedition team") diff --git a/code/game/jobs/job/offduty_vr.dm b/code/game/jobs/job/offduty.dm similarity index 100% rename from code/game/jobs/job/offduty_vr.dm rename to code/game/jobs/job/offduty.dm diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index c67dbe59ad3..a7d158ec30b 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -16,13 +16,13 @@ req_admin_notify = 1 economic_modifier = 15 access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, access_sec_doors, + access_tox_storage, access_teleporter, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network) + access_RC_announce, access_keycard_auth, access_tcomsat, access_xenoarch, access_eva, access_network, access_xenobotany) minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, access_sec_doors, + access_tox_storage, access_teleporter, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network) + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_eva, access_network, access_xenobotany) minimum_character_age = 25 minimal_player_age = 14 @@ -30,19 +30,34 @@ ideal_character_age = 50 ideal_age_by_species = list(SPECIES_UNATHI = 140, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") + disallow_jobhop = TRUE + pto_type = PTO_SCIENCE + dept_time_required = 60 outfit_type = /decl/hierarchy/outfit/job/science/rd job_description = "The " + JOB_RESEARCH_DIRECTOR + " manages and maintains the Research department. They are required to ensure the safety of the entire crew, \ at least with regards to anything occurring in the Research department, and to inform the crew of any disruptions that \ might originate from Research. The " + JOB_RESEARCH_DIRECTOR + " often has at least passing knowledge of most of the Research department, but \ are encouraged to allow their staff to perform their own duties." - alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor) + alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor, JOB_ALT_RESEARCH_MANAGER = /datum/alt_title/research_manager, + JOB_ALT_HEAD_OF_DEVELOPMENT = /datum/alt_title/head_of_development,JOB_ALT_HEAD_SCIENTIST = /datum/alt_title/head_scientist) +/datum/job/rd/get_request_reasons() + return list("Repairs needed", "Training crew", "Assembling expedition team") // " + JOB_RESEARCH_DIRECTOR + " Alt Titles /datum/alt_title/research_supervisor title = JOB_ALT_RESEARCH_SUPERVISOR +/datum/alt_title/research_manager + title = JOB_ALT_RESEARCH_MANAGER + +/datum/alt_title/head_of_development + title = JOB_ALT_HEAD_OF_DEVELOPMENT + +/datum/alt_title/head_scientist + title = JOB_ALT_HEAD_SCIENTIST + ////////////////////////////////// // Scientist ////////////////////////////////// @@ -53,11 +68,12 @@ department_flag = MEDSCI faction = FACTION_STATION total_positions = 5 - spawn_positions = 3 + spawn_positions = 5 + pto_type = PTO_SCIENCE supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch, access_xenobotany) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) min_age_by_species = list(SPECIES_PROMETHEAN = 2) banned_job_species = list("digital") @@ -68,8 +84,12 @@ job_description = "A " + JOB_SCIENTIST + " is a generalist working in the Research department, with general knowledge of the scientific process, as well as \ the principles and requirements of Research and Development. They may also formulate experiments of their own devising, if \ they find an appropriate topic." - alt_titles = list(JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, \ - JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research) + alt_titles = list(JOB_ALT_RESEARCHER = /datum/alt_title/researcher, JOB_ALT_LAB_ASSISTANT = /datum/alt_title/lab_assistant, JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, + JOB_ALT_XENOPALEONTOLOGIST = /datum/alt_title/xenopaleontologist, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research, + JOB_ALT_GAS_PHYSICIST = /datum/alt_title/gas_physicist, JOB_ALT_CIRCUIT_DESIGNER = /datum/alt_title/circuit_designer, JOB_ALT_CIRCUIT_PROGRAMMER = /datum/alt_title/circuit_programmer) + +/datum/job/scientist/get_request_reasons() + return list("Assembling expedition team") // Scientist Alt Titles /datum/alt_title/xenoarch @@ -88,6 +108,35 @@ Many " + JOB_ALT_PHORON_RESEARCHER + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ of working with the substance in that state." +/datum/alt_title/researcher + title = JOB_ALT_RESEARCHER + +/datum/alt_title/lab_assistant + title = JOB_ALT_LAB_ASSISTANT + title_blurb = "A " + JOB_ALT_LAB_ASSISTANT + " is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ + learning the specializations in process." + +/datum/alt_title/xenopaleontologist + title = JOB_ALT_XENOPALEONTOLOGIST + title_blurb = "A " + JOB_ALT_XENOPALEONTOLOGIST + " enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ + locations, and as such a " + JOB_ALT_XENOPALEONTOLOGIST + " should be prepared to handle hostile evironmental conditions." + +/datum/alt_title/gas_physicist + title = JOB_ALT_GAS_PHYSICIST + title_blurb = "A " + JOB_ALT_GAS_PHYSICIST + " is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ + Many " + JOB_ALT_GAS_PHYSICIST + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ + of working with the substance in that state." + +/datum/alt_title/circuit_designer + title = JOB_ALT_CIRCUIT_DESIGNER + title_blurb = "A " + JOB_ALT_CIRCUIT_DESIGNER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + They work to create various useful devices using the capabilities of integrated circuitry." + +/datum/alt_title/circuit_programmer + title = JOB_ALT_CIRCUIT_PROGRAMMER + title_blurb = "A " + JOB_ALT_CIRCUIT_PROGRAMMER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + They work to create various useful devices using the capabilities of integrated circuitry." + ////////////////////////////////// // Xenobiologist ////////////////////////////////// @@ -98,7 +147,8 @@ department_flag = MEDSCI faction = FACTION_STATION total_positions = 3 - spawn_positions = 2 + spawn_positions = 3 + pto_type = PTO_SCIENCE supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 @@ -112,15 +162,21 @@ outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist job_description = "A " + JOB_XENOBIOLOGIST + " studies esoteric lifeforms, usually in the relative safety of their lab. They attempt to find ways to benefit \ from the byproducts of these lifeforms, and their main subject at present is the Giant Slime." -/*VR edit start - alt_titles = list(JOB_XENOBOTANIST = /datum/alt_title/xenobot) - Xenibiologist Alt Titles + alt_titles = list(JOB_ALT_XENOZOOLOGIST = /datum/alt_title/xenozoologist, JOB_ALT_XENOANTHROPOLOGIST = /datum/alt_title/xenoanthropologist) + +// Xenobiologist Alt Titles /datum/alt_title/xenobot title = JOB_XENOBOTANIST title_blurb = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ is both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." -VR edit end*/ + +/datum/alt_title/xenozoologist + title = JOB_ALT_XENOZOOLOGIST + +/datum/alt_title/xenoanthropologist + title = JOB_ALT_XENOANTHROPOLOGIST + title_blurb = JOB_ALT_XENOANTHROPOLOGIST + " still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." ////////////////////////////////// // Roboticist @@ -131,8 +187,9 @@ VR edit end*/ departments = list(DEPARTMENT_RESEARCH) department_flag = MEDSCI faction = FACTION_STATION - total_positions = 2 + total_positions = 3 spawn_positions = 2 + pto_type = PTO_SCIENCE supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 5 @@ -145,7 +202,14 @@ VR edit end*/ outfit_type = /decl/hierarchy/outfit/job/science/roboticist job_description = "A " + JOB_ROBOTICIST + " maintains and repairs the station's synthetics, including crew with prosthetic limbs. \ They can also assist the station by producing simple robots and even pilotable exosuits." - alt_titles = list(JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech) + alt_titles = list( + JOB_ALT_ASSEMBLY_TECHNICIAN = /datum/alt_title/assembly_tech, + JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, + JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech, + JOB_ALT_SOFTWARE_ENGINEER = /datum/alt_title/software_engi) + +/datum/job/roboticist/get_request_reasons() + return list("Repairs needed") // Roboticist Alt Titles /datum/alt_title/biomech @@ -157,3 +221,41 @@ VR edit end*/ title = JOB_ALT_MECHATRONIC_ENGINEER title_blurb = "A " + JOB_ALT_MECHATRONIC_ENGINEER + " focuses on the construction and maintenance of Exosuits, and should be well versed in their use. \ They may also be called upon to work on synthetics and prosthetics, if needed." + +/datum/alt_title/software_engi + title = JOB_ALT_SOFTWARE_ENGINEER + title_blurb = "A " + JOB_ALT_SOFTWARE_ENGINEER + " specializes in working with software and firmware. They also often deal with integrated circuits." + +/datum/alt_title/assembly_tech + title = JOB_ALT_ASSEMBLY_TECHNICIAN + +////////////////////////////////// +// Xenobotanist +////////////////////////////////// +/datum/job/xenobotanist + title = JOB_XENOBOTANIST + flag = XENOBOTANIST + departments = list(DEPARTMENT_RESEARCH) + department_flag = MEDSCI + faction = FACTION_STATION + total_positions = 2 + spawn_positions = 2 + supervisors = "the " + JOB_RESEARCH_DIRECTOR + selection_color = "#633D63" + economic_modifier = 7 + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobotany, access_hydroponics) + minimal_access = list(access_research, access_xenobotany, access_hydroponics, access_tox_storage) + pto_type = PTO_SCIENCE + + minimal_player_age = 14 + + outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist + job_description = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ + are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." + alt_titles = list(JOB_ALT_XENOHYDROPONICIST = /datum/alt_title/xenohydroponicist, JOB_ALT_XENOFLORIST = /datum/alt_title/xenoflorist) + +/datum/alt_title/xenoflorist + title = JOB_ALT_XENOFLORIST + +/datum/alt_title/xenohydroponicist + title = JOB_ALT_XENOHYDROPONICIST \ No newline at end of file diff --git a/code/game/jobs/job/science_vr.dm b/code/game/jobs/job/science_vr.dm deleted file mode 100644 index c0505e4109e..00000000000 --- a/code/game/jobs/job/science_vr.dm +++ /dev/null @@ -1,134 +0,0 @@ -/datum/job/rd - disallow_jobhop = TRUE - pto_type = PTO_SCIENCE - dept_time_required = 60 - - access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, - access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_xenoarch, access_eva, access_network, access_xenobotany) - minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, - access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_eva, access_network, access_xenobotany) - alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor, JOB_ALT_RESEARCH_MANAGER = /datum/alt_title/research_manager, - JOB_ALT_HEAD_OF_DEVELOPMENT = /datum/alt_title/head_of_development,JOB_ALT_HEAD_SCIENTIST = /datum/alt_title/head_scientist) - -/datum/alt_title/research_manager - title = JOB_ALT_RESEARCH_MANAGER - -/datum/alt_title/head_of_development - title = JOB_ALT_HEAD_OF_DEVELOPMENT - -/datum/alt_title/head_scientist - title = JOB_ALT_HEAD_SCIENTIST - -/datum/job/rd/get_request_reasons() - return list("Repairs needed", "Training crew", "Assembling expedition team") - - -/datum/job/scientist - spawn_positions = 5 - pto_type = PTO_SCIENCE - alt_titles = list(JOB_ALT_RESEARCHER = /datum/alt_title/researcher, JOB_ALT_LAB_ASSISTANT = /datum/alt_title/lab_assistant, JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, - JOB_ALT_XENOPALEONTOLOGIST = /datum/alt_title/xenopaleontologist, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research, - JOB_ALT_GAS_PHYSICIST = /datum/alt_title/gas_physicist, JOB_ALT_CIRCUIT_DESIGNER = /datum/alt_title/circuit_designer, JOB_ALT_CIRCUIT_PROGRAMMER = /datum/alt_title/circuit_programmer) - - - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch, access_xenobotany) - minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) // Unchanged (for now?), mostly here for reference - -/datum/alt_title/researcher - title = JOB_ALT_RESEARCHER - -/datum/alt_title/lab_assistant - title = JOB_ALT_LAB_ASSISTANT - title_blurb = "A " + JOB_ALT_LAB_ASSISTANT + " is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ - learning the specializations in process." - -/datum/alt_title/xenopaleontologist - title = JOB_ALT_XENOPALEONTOLOGIST - title_blurb = "A " + JOB_ALT_XENOPALEONTOLOGIST + " enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ - locations, and as such a " + JOB_ALT_XENOPALEONTOLOGIST + " should be prepared to handle hostile evironmental conditions." - -/datum/alt_title/gas_physicist - title = JOB_ALT_GAS_PHYSICIST - title_blurb = "A " + JOB_ALT_GAS_PHYSICIST + " is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ - Many " + JOB_ALT_GAS_PHYSICIST + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ - of working with the substance in that state." - -/datum/alt_title/circuit_designer - title = JOB_ALT_CIRCUIT_DESIGNER - title_blurb = "A " + JOB_ALT_CIRCUIT_DESIGNER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ - They work to create various useful devices using the capabilities of integrated circuitry." - -/datum/alt_title/circuit_programmer - title = JOB_ALT_CIRCUIT_PROGRAMMER - title_blurb = "A " + JOB_ALT_CIRCUIT_PROGRAMMER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ - They work to create various useful devices using the capabilities of integrated circuitry." - -/datum/job/scientist/get_request_reasons() - return list("Assembling expedition team") - -/datum/job/xenobiologist - spawn_positions = 3 - pto_type = PTO_SCIENCE - alt_titles = list(JOB_ALT_XENOZOOLOGIST = /datum/alt_title/xenozoologist, JOB_ALT_XENOANTHROPOLOGIST = /datum/alt_title/xenoanthropologist) - -/datum/alt_title/xenozoologist - title = JOB_ALT_XENOZOOLOGIST - -/datum/alt_title/xenoanthropologist - title = JOB_ALT_XENOANTHROPOLOGIST - title_blurb = JOB_ALT_XENOANTHROPOLOGIST + " still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." - - -/datum/job/roboticist - total_positions = 3 - pto_type = PTO_SCIENCE - alt_titles = list( - JOB_ALT_ASSEMBLY_TECHNICIAN = /datum/alt_title/assembly_tech, - JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, - JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech, - JOB_ALT_SOFTWARE_ENGINEER = /datum/alt_title/software_engi) - -/datum/alt_title/software_engi - title = JOB_ALT_SOFTWARE_ENGINEER - title_blurb = "A " + JOB_ALT_SOFTWARE_ENGINEER + " specializes in working with software and firmware. They also often deal with integrated circuits." - -/datum/alt_title/assembly_tech - title = JOB_ALT_ASSEMBLY_TECHNICIAN - -/datum/job/roboticist/get_request_reasons() - return list("Repairs needed") - -////////////////////////////////// -// Xenobotanist -////////////////////////////////// -/datum/job/xenobotanist - title = JOB_XENOBOTANIST - flag = XENOBOTANIST - departments = list(DEPARTMENT_RESEARCH) - department_flag = MEDSCI - faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 - supervisors = "the " + JOB_RESEARCH_DIRECTOR - selection_color = "#633D63" - economic_modifier = 7 - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobotany, access_hydroponics) - minimal_access = list(access_research, access_xenobotany, access_hydroponics, access_tox_storage) - pto_type = PTO_SCIENCE - - minimal_player_age = 14 - - outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist - job_description = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ - are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." - alt_titles = list(JOB_ALT_XENOHYDROPONICIST = /datum/alt_title/xenohydroponicist, JOB_ALT_XENOFLORIST = /datum/alt_title/xenoflorist) - -/datum/alt_title/xenoflorist - title = JOB_ALT_XENOFLORIST - -/datum/alt_title/xenohydroponicist - title = JOB_ALT_XENOHYDROPONICIST diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 372d459e620..db2a0e051ce 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -16,26 +16,31 @@ req_admin_notify = 1 economic_modifier = 10 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) + access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, + access_construction, + access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) + access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, + access_construction, + access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) minimum_character_age = 25 min_age_by_species = list(SPECIES_HUMAN_VATBORN = 14) minimal_player_age = 14 ideal_character_age = 50 ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital", SPECIES_UNATHI, "mechanical") + disallow_jobhop = TRUE + pto_type = PTO_SECURITY + dept_time_required = 60 outfit_type = /decl/hierarchy/outfit/job/security/hos job_description = " The " + JOB_HEAD_OF_SECURITY + " manages the Security Department, keeping the station safe and making sure the rules are followed. They are expected to \ keep the other Department Heads, and the rest of the crew, aware of developing situations that may be a threat. If necessary, the HoS may \ perform the duties of absent Security roles, such as distributing gear from the Armory." - alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief) + alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief, JOB_ALT_SECURITY_MANAGER = /datum/alt_title/security_manager) +/datum/job/hos/get_request_reasons() + return list("Wildlife management", "Forensic investigation", "Training crew", "Assembling expedition team") // Head of Security Alt Titles /datum/alt_title/sec_commander @@ -44,6 +49,9 @@ /datum/alt_title/sec_chief title = JOB_ALT_CHIEF_OF_SECURITY +/datum/alt_title/security_manager + title = JOB_ALT_SECURITY_MANAGER + ////////////////////////////////// // Warden ////////////////////////////////// @@ -59,17 +67,32 @@ supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" economic_modifier = 5 + pto_type = PTO_SECURITY + dept_time_required = 20 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks) minimal_player_age = 5 banned_job_species = list(SPECIES_ZADDAT, SPECIES_PROMETHEAN, SPECIES_TESHARI, SPECIES_DIONA) - + alt_titles = list(JOB_ALT_BRIG_SENTRY = /datum/alt_title/brig_sentry, JOB_ALT_ARMORY_SUPERINTENDENT = /datum/alt_title/armory_superintendent, JOB_ALT_MASTERATARMS = /datum/alt_title/master_at_arms) outfit_type = /decl/hierarchy/outfit/job/security/warden job_description = "The " + JOB_WARDEN + " watches over the physical Security Department, making sure the Brig and Armoury are secure and in order at all times. They oversee \ prisoners that have been processed and brigged, and are responsible for their well being. The " + JOB_WARDEN + " is also in charge of distributing \ Armoury gear in a crisis, and retrieving it when the crisis has passed. In an emergency, the " + JOB_WARDEN + " may be called upon to direct the \ Security Department as a whole." +/datum/job/warden/get_request_reasons() + return list("Wildlife management") + +//Warden Alt Titles +/datum/alt_title/brig_sentry + title = JOB_ALT_BRIG_SENTRY + +/datum/alt_title/armory_superintendent + title = JOB_ALT_ARMORY_SUPERINTENDENT + +/datum/alt_title/master_at_arms + title = JOB_ALT_MASTERATARMS + ////////////////////////////////// // Detective ////////////////////////////////// @@ -81,6 +104,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_SECURITY supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks, access_brig) //Vorestation edit - access_brig @@ -92,7 +116,10 @@ outfit_type = /decl/hierarchy/outfit/job/security/detective job_description = "A " + JOB_DETECTIVE + " works to help Security find criminals who have not properly been identified, through interviews and forensic work. \ For crimes only witnessed after the fact, or those with no survivors, they attempt to piece together what they can from pure evidence." - alt_titles = list(JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) + alt_titles = list(JOB_ALT_INVESTIGATOR = /datum/alt_title/investigator, JOB_ALT_SECURITY_INSPECTOR = /datum/alt_title/security_inspector, JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) + +/datum/job/detective/get_request_reasons() + return list("Forensic investigation") // Detective Alt Titles /datum/alt_title/forensic_tech @@ -100,6 +127,12 @@ title_blurb = "A " + JOB_ALT_FORENSIC_TECHNICIAN + " works more with hard evidence and labwork than a " + JOB_DETECTIVE + ", but they share the purpose of solving crimes." title_outfit = /decl/hierarchy/outfit/job/security/detective/forensic +/datum/alt_title/investigator + title = JOB_ALT_INVESTIGATOR + +/datum/alt_title/security_inspector + title = JOB_ALT_SECURITY_INSPECTOR + ////////////////////////////////// // Security Officer ////////////////////////////////// @@ -109,8 +142,9 @@ departments = list(DEPARTMENT_SECURITY) department_flag = ENGSEC faction = FACTION_STATION - total_positions = 4 - spawn_positions = 4 + total_positions = 5 + spawn_positions = 5 + pto_type = PTO_SECURITY supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" economic_modifier = 4 @@ -123,13 +157,29 @@ job_description = "A " + JOB_SECURITY_OFFICER + " is concerned with maintaining the safety and security of the station as a whole, dealing with external threats and \ apprehending criminals. A " + JOB_SECURITY_OFFICER + " is responsible for the health, safety, and processing of any prisoner they arrest. \ No one is above the Law, not Security or Command." - alt_titles = list(JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer) + alt_titles = list(JOB_ALT_PATROL_OFFICER = /datum/alt_title/patrol_officer, JOB_ALT_SECURITY_GUARD = /datum/alt_title/security_guard, + JOB_ALT_SECURITY_DEPUTY = /datum/alt_title/security_guard, JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer, JOB_ALT_SECURITY_CONTRACTOR = /datum/alt_title/security_contractor) min_age_by_species = list(SPECIES_PROMETHEAN = 3) +/datum/job/officer/get_request_reasons() + return list("Wildlife management", "Assembling expedition team") + // Security Officer Alt Titles /datum/alt_title/junior_officer title = JOB_ALT_JUNIOR_OFFICER title_blurb = "A " + JOB_ALT_JUNIOR_OFFICER + " is an inexperienced " + JOB_SECURITY_OFFICER + ". They likely have training, but not experience, and are frequently \ paired off with a more senior co-worker. Junior Officers may also be expected to take over the boring duties of other Officers \ including patrolling the station or maintaining specific posts." + +/datum/alt_title/patrol_officer + title = JOB_ALT_PATROL_OFFICER + +/datum/alt_title/security_guard + title = JOB_ALT_SECURITY_GUARD + +/datum/alt_title/security_deputy + title = JOB_ALT_SECURITY_DEPUTY + +/datum/alt_title/security_contractor + title = JOB_ALT_SECURITY_CONTRACTOR diff --git a/code/game/jobs/job/security_vr.dm b/code/game/jobs/job/security_vr.dm deleted file mode 100644 index b7c196b3345..00000000000 --- a/code/game/jobs/job/security_vr.dm +++ /dev/null @@ -1,75 +0,0 @@ -/datum/job/hos - disallow_jobhop = TRUE - pto_type = PTO_SECURITY - dept_time_required = 60 - - access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_construction, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) - minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_construction, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) - alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief, JOB_ALT_SECURITY_MANAGER = /datum/alt_title/security_manager) - -/datum/alt_title/security_manager - title = JOB_ALT_SECURITY_MANAGER - -/datum/job/hos/get_request_reasons() - return list("Wildlife management", "Forensic investigation", "Training crew", "Assembling expedition team") - - -/datum/job/warden - pto_type = PTO_SECURITY - dept_time_required = 20 - alt_titles = list(JOB_ALT_BRIG_SENTRY = /datum/alt_title/brig_sentry, JOB_ALT_ARMORY_SUPERINTENDENT = /datum/alt_title/armory_superintendent, JOB_ALT_MASTERATARMS = /datum/alt_title/master_at_arms) - -/datum/alt_title/brig_sentry - title = JOB_ALT_BRIG_SENTRY - -/datum/alt_title/armory_superintendent - title = JOB_ALT_ARMORY_SUPERINTENDENT - -/datum/alt_title/master_at_arms - title = JOB_ALT_MASTERATARMS - -/datum/job/warden/get_request_reasons() - return list("Wildlife management") - - -/datum/job/detective - pto_type = PTO_SECURITY - alt_titles = list(JOB_ALT_INVESTIGATOR = /datum/alt_title/investigator, JOB_ALT_SECURITY_INSPECTOR = /datum/alt_title/security_inspector, JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) - -/datum/alt_title/investigator - title = JOB_ALT_INVESTIGATOR - -/datum/alt_title/security_inspector - title = JOB_ALT_SECURITY_INSPECTOR - -/datum/job/detective/get_request_reasons() - return list("Forensic investigation") - - -/datum/job/officer - total_positions = 5 - spawn_positions = 5 - pto_type = PTO_SECURITY - alt_titles = list(JOB_ALT_PATROL_OFFICER = /datum/alt_title/patrol_officer, JOB_ALT_SECURITY_GUARD = /datum/alt_title/security_guard, - JOB_ALT_SECURITY_DEPUTY = /datum/alt_title/security_guard, JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer, JOB_ALT_SECURITY_CONTRACTOR = /datum/alt_title/security_contractor) - -/datum/alt_title/patrol_officer - title = JOB_ALT_PATROL_OFFICER - -/datum/alt_title/security_guard - title = JOB_ALT_SECURITY_GUARD - -/datum/alt_title/security_deputy - title = JOB_ALT_SECURITY_DEPUTY - -/datum/alt_title/security_contractor - title = JOB_ALT_SECURITY_CONTRACTOR - -/datum/job/officer/get_request_reasons() - return list("Wildlife management", "Assembling expedition team") diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index 6a5812af073..cce3f69603c 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -19,6 +19,8 @@ has_headset = FALSE assignable = FALSE mob_type = JOB_SILICON_AI + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN outfit_type = /decl/hierarchy/outfit/job/silicon/ai job_description = "The " + JOB_AI + " oversees the operation of the station and its crew, but has no real authority over them. \ The " + JOB_AI + " is required to follow its Laws, and Lawbound Synthetics that are linked to it are expected to follow \ @@ -46,8 +48,10 @@ departments = list(DEPARTMENT_SYNTHETIC) department_flag = ENGSEC faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 + pto_type = PTO_CYBORG + minimal_player_age = 3 //1 day is a little too little time + total_positions = 4 //Along with one able to spawn later in the round. + spawn_positions = 3 //Let's have 3 able to spawn in roundstart supervisors = "your Laws and the " + JOB_AI //Nodrak selection_color = "#254C25" minimal_player_age = 1 diff --git a/code/game/jobs/job/silicon_vr.dm b/code/game/jobs/job/silicon_vr.dm deleted file mode 100644 index f5df1e3acfc..00000000000 --- a/code/game/jobs/job/silicon_vr.dm +++ /dev/null @@ -1,9 +0,0 @@ -/datum/job/ai - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - -/datum/job/cyborg - pto_type = PTO_CYBORG - minimal_player_age = 3 //1 day is a little too little time - total_positions = 4 //Along with one able to spawn later in the round. - spawn_positions = 3 //Let's have 3 able to spawn in roundstart \ No newline at end of file diff --git a/code/game/jobs/job/special_vr.dm b/code/game/jobs/job/special.dm similarity index 100% rename from code/game/jobs/job/special_vr.dm rename to code/game/jobs/job/special.dm diff --git a/vorestation.dme b/vorestation.dme index 4bf4bb73c1f..a79e7ca30c5 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -901,28 +901,19 @@ #include "code\game\jobs\whitelist_vr.dm" #include "code\game\jobs\job\_alt_title.dm" #include "code\game\jobs\job\assistant.dm" -#include "code\game\jobs\job\assistant_vr.dm" #include "code\game\jobs\job\captain.dm" -#include "code\game\jobs\job\captain_vr.dm" +#include "code\game\jobs\job\cargo.dm" #include "code\game\jobs\job\civilian.dm" #include "code\game\jobs\job\civilian_chaplain.dm" -#include "code\game\jobs\job\civilian_vr.dm" #include "code\game\jobs\job\department.dm" -#include "code\game\jobs\job\department_vr.dm" #include "code\game\jobs\job\engineering.dm" -#include "code\game\jobs\job\engineering_vr.dm" #include "code\game\jobs\job\job.dm" -#include "code\game\jobs\job\job_vr.dm" #include "code\game\jobs\job\medical.dm" -#include "code\game\jobs\job\medical_vr.dm" -#include "code\game\jobs\job\offduty_vr.dm" +#include "code\game\jobs\job\offduty.dm" #include "code\game\jobs\job\science.dm" -#include "code\game\jobs\job\science_vr.dm" #include "code\game\jobs\job\security.dm" -#include "code\game\jobs\job\security_vr.dm" #include "code\game\jobs\job\silicon.dm" -#include "code\game\jobs\job\silicon_vr.dm" -#include "code\game\jobs\job\special_vr.dm" +#include "code\game\jobs\job\special.dm" #include "code\game\machinery\adv_med.dm" #include "code\game\machinery\adv_med_vr.dm" #include "code\game\machinery\ai_slipper.dm"