mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-10 07:30:36 +01:00
Junior roles
And more! Oof ouch my soul.
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
#define ROBOTICIST (1<<8)
|
||||
#define AI_JF (1<<9)
|
||||
#define CYBORG (1<<10)
|
||||
#define JR_OFFICER (1<<11)
|
||||
#define JR_ENGINEER (1<<12)
|
||||
|
||||
|
||||
#define MEDSCI (1<<1)
|
||||
@@ -23,6 +25,8 @@
|
||||
#define DOCTOR (1<<4)
|
||||
#define GENETICIST (1<<5)
|
||||
#define VIROLOGIST (1<<6)
|
||||
#define JR_DOCTOR (1<<7)
|
||||
#define JR_SCIENTIST (1<<9)
|
||||
|
||||
|
||||
#define CIVILIAN (1<<2)
|
||||
|
||||
@@ -1103,7 +1103,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
#undef APPEARANCE_CATEGORY_COLUMN
|
||||
#undef MAX_MUTANT_ROWS
|
||||
|
||||
/datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620)
|
||||
/datum/preferences/proc/SetChoices(mob/user, limit = 22, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620)
|
||||
if(!SSjob)
|
||||
return
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ Captain
|
||||
supervisors = "Kinaris officials and Space law"
|
||||
selection_color = "#ccccff"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 20
|
||||
exp_requirements = 480
|
||||
minimal_player_age = 30
|
||||
exp_requirements = 3000
|
||||
exp_type = EXP_TYPE_COMMAND
|
||||
exp_type_department = EXP_TYPE_COMMAND
|
||||
|
||||
@@ -84,7 +84,7 @@ Head of Personnel
|
||||
selection_color = "#ddddff"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 20
|
||||
exp_requirements = 180
|
||||
exp_requirements = 1500
|
||||
exp_type = EXP_TYPE_SERVICE
|
||||
exp_type_department = EXP_TYPE_SERVICE
|
||||
|
||||
|
||||
@@ -12,15 +12,15 @@ Quartermaster is a real head fuck you
|
||||
spawn_positions = 1
|
||||
supervisors = "the captain"
|
||||
selection_color = "#d7b088"
|
||||
minimal_player_age = 10
|
||||
minimal_player_age = 7
|
||||
exp_type = EXP_TYPE_SUPPLY
|
||||
exp_type_department = EXP_TYPE_SUPPLY
|
||||
exp_requirements = 300
|
||||
exp_requirements = 1200
|
||||
|
||||
outfit = /datum/outfit/job/quartermaster
|
||||
|
||||
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
|
||||
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
|
||||
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_KEYCARD_AUTH, ACCESS_RC_ANNOUNCE, ACCESS_SEC_DOORS, ACCESS_HEADS, ACCESS_VAULT)
|
||||
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_KEYCARD_AUTH, ACCESS_RC_ANNOUNCE, ACCESS_SEC_DOORS, ACCESS_HEADS, ACCESS_VAULT)
|
||||
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||
|
||||
@@ -35,6 +35,10 @@ Quartermaster is a real head fuck you
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
l_hand = /obj/item/clipboard
|
||||
|
||||
id = /obj/item/card/id/silver
|
||||
ears = /obj/item/radio/headset/heads/qm
|
||||
backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1)
|
||||
|
||||
chameleon_extras = /obj/item/stamp/qm
|
||||
|
||||
/*
|
||||
@@ -81,7 +85,7 @@ Shaft Miner
|
||||
selection_color = "#dcba97"
|
||||
custom_spawn_text = "Remember, you are a miner, not a hunter. Hunting monsters is not a requirement of your job, the only requirement of your job is to provide materials for the station. Don't be afraid to run away if you're inexperienced with fighting the mining area's locals."
|
||||
minimal_player_age = 1
|
||||
exp_requirements = 120
|
||||
exp_requirements = 600
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_type_department = EXP_TYPE_SUPPLY
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ Chief Engineer
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffeeaa"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 20
|
||||
exp_requirements = 300
|
||||
minimal_player_age = 14
|
||||
exp_requirements = 1500
|
||||
exp_type = EXP_TYPE_ENGINEERING
|
||||
exp_type_department = EXP_TYPE_ENGINEERING
|
||||
|
||||
@@ -79,8 +79,9 @@ Station Engineer
|
||||
minimal_player_age = 1
|
||||
supervisors = "the chief engineer"
|
||||
selection_color = "#fff5cc"
|
||||
exp_requirements = 120
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_ENGINEERING
|
||||
exp_type_department = EXP_TYPE_ENGINEERING
|
||||
|
||||
outfit = /datum/outfit/job/engineer
|
||||
|
||||
@@ -136,14 +137,16 @@ Atmospheric Technician
|
||||
minimal_player_age = 2
|
||||
supervisors = "the chief engineer"
|
||||
selection_color = "#fff5cc"
|
||||
exp_requirements = 180
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 600
|
||||
exp_type = EXP_TYPE_ENGINEERING
|
||||
exp_type_department = EXP_TYPE_ENGINEERING
|
||||
|
||||
outfit = /datum/outfit/job/atmos
|
||||
|
||||
access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS,
|
||||
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM)
|
||||
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS,
|
||||
ACCESS_EMERGENCY_STORAGE, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
/datum/outfit/job/atmos
|
||||
name = "Atmospheric Technician"
|
||||
@@ -169,3 +172,65 @@ Atmospheric Technician
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
internals_slot = SLOT_S_STORE
|
||||
|
||||
/*
|
||||
Junior Engineer
|
||||
*/
|
||||
/datum/job/junior_engineer
|
||||
title = "Engineering Intern"
|
||||
flag = JR_ENGINEER
|
||||
department_head = list("Chief Engineer")
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
minimal_player_age = 0
|
||||
supervisors = "the chief engineer, and any other more experienced engineers"
|
||||
selection_color = "#fff5cc"
|
||||
exp_requirements = 120
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
outfit = /datum/outfit/job/engineer/junior
|
||||
|
||||
access = list(ACCESS_TECH_STORAGE, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS,
|
||||
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_TECH_STORAGE, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS,
|
||||
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
/datum/outfit/job/engineer/junior
|
||||
name = "Engineering Intern"
|
||||
jobtype = /datum/job/junior_engineer
|
||||
|
||||
belt = /obj/item/storage/belt/utility/full/engi
|
||||
l_pocket = /obj/item/pda/engineering
|
||||
ears = /obj/item/radio/headset/headset_eng
|
||||
uniform = /obj/item/clothing/under/rank/engineer
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
head = /obj/item/clothing/head/hardhat
|
||||
r_pocket = /obj/item/t_scanner
|
||||
|
||||
backpack = /obj/item/storage/backpack/industrial
|
||||
satchel = /obj/item/storage/backpack/satchel/eng
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/engineering
|
||||
box = /obj/item/storage/box/engineer
|
||||
pda_slot = SLOT_L_STORE
|
||||
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
/datum/outfit/job/engineer/junior/gloved/
|
||||
name = "Station Engineer (Gloves)"
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
|
||||
/datum/outfit/job/engineer/junior/gloved/rig/junior
|
||||
name = "Station Engineer (Hardsuit)"
|
||||
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine
|
||||
suit_store = /obj/item/tank/internals/oxygen
|
||||
head = null
|
||||
internals_slot = SLOT_S_STORE
|
||||
|
||||
/datum/job/junior_engineer/after_spawn(mob/living/carbon/human/H, mob/M) //Instead of going through the process of adding spawnpoints
|
||||
var/turf/T
|
||||
var/spawn_point = locate(/obj/effect/landmark/start/station_engineer) in GLOB.start_landmarks_list
|
||||
T = get_turf(spawn_point)
|
||||
H.Move(T)
|
||||
@@ -45,6 +45,7 @@
|
||||
|
||||
var/outfit = null
|
||||
|
||||
//Minutes required in specified job or department type.
|
||||
var/exp_requirements = 0
|
||||
|
||||
var/exp_type = ""
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
//This file also determines the order for the choose your occupation chances screen.
|
||||
|
||||
//Engineering
|
||||
/datum/job/chief_engineer
|
||||
alt_titles = list("Head Engineer", "Construction Coordinator", "Project Manager")
|
||||
@@ -8,6 +10,8 @@
|
||||
/datum/job/atmos
|
||||
alt_titles = list("Firefighter", "Life Support Specialist")
|
||||
|
||||
/datum/job/junior_engineer
|
||||
|
||||
//Service
|
||||
/datum/job/assistant
|
||||
alt_titles = list("Civilian", "Visitor", "Businessman", "Trader", "Entertainer", "Tourist")
|
||||
@@ -49,6 +53,8 @@
|
||||
/datum/job/roboticist
|
||||
alt_titles = list("Biomechanical Engineer", "Mechatronic Engineer", "Mechanic")
|
||||
|
||||
/datum/job/junior_scientist
|
||||
|
||||
//Medical
|
||||
/datum/job/cmo
|
||||
alt_titles = list("Medical Director")
|
||||
@@ -65,6 +71,8 @@
|
||||
/datum/job/geneticist
|
||||
alt_titles = list("Gene Therapist")
|
||||
|
||||
/datum/job/junior_doctor
|
||||
|
||||
//Security
|
||||
/datum/job/hos
|
||||
alt_titles = list("Chief of Security", "Security Commander")
|
||||
@@ -78,6 +86,8 @@
|
||||
/datum/job/detective
|
||||
alt_titles = list("Forensics Technician", "Private Investigator", "Gumshoe")
|
||||
|
||||
/datum/job/junior_officer
|
||||
|
||||
//Supply
|
||||
/datum/job/qm
|
||||
alt_titles = list("Supply Chief")
|
||||
|
||||
@@ -13,8 +13,8 @@ Chief Medical Officer
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffddf0"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 10
|
||||
exp_requirements = 300
|
||||
minimal_player_age = 14
|
||||
exp_requirements = 1500
|
||||
exp_type = EXP_TYPE_MEDICAL
|
||||
exp_type_department = EXP_TYPE_MEDICAL
|
||||
|
||||
@@ -94,6 +94,8 @@ Medical Doctor
|
||||
satchel = /obj/item/storage/backpack/satchel/med
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/med
|
||||
|
||||
backpack_contents = list(/obj/item/storage/hypospraykit/regular)
|
||||
|
||||
chameleon_extras = /obj/item/gun/syringe
|
||||
|
||||
/*
|
||||
@@ -110,8 +112,10 @@ Chemist
|
||||
minimal_player_age = 1
|
||||
supervisors = "the chief medical officer"
|
||||
selection_color = "#ffeef0"
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 60
|
||||
exp_requirements = 480
|
||||
exp_type = EXP_TYPE_MEDICAL
|
||||
exp_type_department = EXP_TYPE_MEDICAL
|
||||
|
||||
|
||||
outfit = /datum/outfit/job/chemist
|
||||
|
||||
@@ -133,6 +137,8 @@ Chemist
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/med
|
||||
l_hand = /obj/item/fermichem/pHbooklet
|
||||
|
||||
backpack_contents = list(/obj/item/storage/hypospraykit/regular)
|
||||
|
||||
chameleon_extras = /obj/item/gun/syringe
|
||||
|
||||
/*
|
||||
@@ -148,8 +154,9 @@ Geneticist
|
||||
spawn_positions = 2
|
||||
supervisors = "the chief medical officer and research director"
|
||||
selection_color = "#ffeef0"
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 30
|
||||
exp_requirements = 480
|
||||
exp_type = EXP_TYPE_MEDICAL
|
||||
exp_type_department = EXP_TYPE_MEDICAL
|
||||
|
||||
outfit = /datum/outfit/job/geneticist
|
||||
|
||||
@@ -186,8 +193,9 @@ Virologist
|
||||
minimal_player_age = 2
|
||||
supervisors = "the chief medical officer"
|
||||
selection_color = "#ffeef0"
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 120
|
||||
exp_requirements = 600
|
||||
exp_type = EXP_TYPE_MEDICAL
|
||||
exp_type_department = EXP_TYPE_MEDICAL
|
||||
|
||||
outfit = /datum/outfit/job/virologist
|
||||
|
||||
@@ -209,3 +217,50 @@ Virologist
|
||||
backpack = /obj/item/storage/backpack/virology
|
||||
satchel = /obj/item/storage/backpack/satchel/vir
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/med
|
||||
|
||||
|
||||
/*
|
||||
Junior Doctor
|
||||
*/
|
||||
/datum/job/junior_doctor
|
||||
title = "Medical Resident"
|
||||
flag = JR_DOCTOR
|
||||
department_head = list("Chief Medical Officer")
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
minimal_player_age = 0
|
||||
supervisors = "the chief medical officer, and any other senior medical staff"
|
||||
selection_color = "#ffeef0"
|
||||
exp_requirements = 120
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
outfit = /datum/outfit/job/doctor/junior
|
||||
|
||||
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
/datum/outfit/job/doctor/junior
|
||||
name = "Medical Resident"
|
||||
jobtype = /datum/job/junior_doctor
|
||||
|
||||
belt = /obj/item/pda/medical
|
||||
ears = /obj/item/radio/headset/headset_med
|
||||
uniform = /obj/item/clothing/under/rank/medical
|
||||
shoes = /obj/item/clothing/shoes/sneakers/white
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat
|
||||
l_hand = /obj/item/storage/firstaid/regular
|
||||
suit_store = /obj/item/flashlight/pen
|
||||
|
||||
backpack = /obj/item/storage/backpack/medic
|
||||
satchel = /obj/item/storage/backpack/satchel/med
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/med
|
||||
|
||||
chameleon_extras = /obj/item/gun/syringe
|
||||
|
||||
/datum/job/junior_doctor/after_spawn(mob/living/carbon/human/H, mob/M) //Instead of going through the process of adding spawnpoints
|
||||
var/turf/T
|
||||
var/spawn_point = locate(/obj/effect/landmark/start/medical_doctor) in GLOB.start_landmarks_list
|
||||
T = get_turf(spawn_point)
|
||||
H.Move(T)
|
||||
@@ -13,10 +13,10 @@ Research Director
|
||||
supervisors = "the captain"
|
||||
selection_color = "#ffddff"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 10
|
||||
exp_type_department = EXP_TYPE_SCIENCE
|
||||
exp_requirements = 300
|
||||
minimal_player_age = 14
|
||||
exp_requirements = 1500
|
||||
exp_type = EXP_TYPE_SCIENCE
|
||||
exp_type_department = EXP_TYPE_SCIENCE
|
||||
|
||||
outfit = /datum/outfit/job/rd
|
||||
|
||||
@@ -71,12 +71,13 @@ Scientist
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 5
|
||||
spawn_positions = 3
|
||||
spawn_positions = 2
|
||||
minimal_player_age = 1
|
||||
supervisors = "the research director"
|
||||
selection_color = "#ffeeff"
|
||||
exp_requirements = 120
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 480
|
||||
exp_type = EXP_TYPE_SCIENCE
|
||||
exp_type_department = EXP_TYPE_SCIENCE
|
||||
|
||||
|
||||
outfit = /datum/outfit/job/scientist
|
||||
@@ -111,8 +112,10 @@ Roboticist
|
||||
minimal_player_age = 2
|
||||
supervisors = "the research director"
|
||||
selection_color = "#ffeeff"
|
||||
exp_requirements = 120
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_SCIENCE
|
||||
exp_type_department = EXP_TYPE_SCIENCE
|
||||
|
||||
|
||||
outfit = /datum/outfit/job/roboticist
|
||||
|
||||
@@ -133,3 +136,46 @@ Roboticist
|
||||
satchel = /obj/item/storage/backpack/satchel/tox
|
||||
|
||||
pda_slot = SLOT_L_STORE
|
||||
|
||||
|
||||
/*
|
||||
Junior Scientist
|
||||
*/
|
||||
/datum/job/junior_scientist
|
||||
title = "Research Student"
|
||||
flag = JR_SCIENTIST
|
||||
department_head = list("Research Director")
|
||||
department_flag = MEDSCI
|
||||
faction = "Station"
|
||||
total_positions = 2
|
||||
spawn_positions = 1
|
||||
minimal_player_age = 0
|
||||
supervisors = "the research director, and any other senior science staff"
|
||||
selection_color = "#ffeeff"
|
||||
exp_requirements = 120
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
|
||||
outfit = /datum/outfit/job/scientist/junior
|
||||
|
||||
access = list(ACCESS_ROBOTICS, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_TECH_STORAGE, ACCESS_GENETICS)
|
||||
minimal_access = list(ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM)
|
||||
|
||||
/datum/outfit/job/scientist/junior
|
||||
name = "Scientist"
|
||||
jobtype = /datum/job/scientist
|
||||
|
||||
belt = /obj/item/pda/toxins
|
||||
ears = /obj/item/radio/headset/headset_sci
|
||||
uniform = /obj/item/clothing/under/rank/scientist
|
||||
shoes = /obj/item/clothing/shoes/sneakers/white
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat/science
|
||||
|
||||
backpack = /obj/item/storage/backpack/science
|
||||
satchel = /obj/item/storage/backpack/satchel/tox
|
||||
|
||||
/datum/job/junior_scientist/after_spawn(mob/living/carbon/human/H, mob/M) //Instead of going through the process of adding spawnpoints
|
||||
var/turf/T
|
||||
var/spawn_point = locate(/obj/effect/landmark/start/scientist) in GLOB.start_landmarks_list
|
||||
T = get_turf(spawn_point)
|
||||
H.Move(T)
|
||||
@@ -20,7 +20,7 @@ Head of Security
|
||||
selection_color = "#ffdddd"
|
||||
req_admin_notify = 1
|
||||
minimal_player_age = 20
|
||||
exp_requirements = 420
|
||||
exp_requirements = 2000
|
||||
exp_type = EXP_TYPE_SECURITY
|
||||
exp_type_department = EXP_TYPE_SECURITY
|
||||
|
||||
@@ -87,9 +87,10 @@ Warden
|
||||
spawn_positions = 1
|
||||
supervisors = "the head of security"
|
||||
selection_color = "#ffeeee"
|
||||
minimal_player_age = 3
|
||||
exp_requirements = 360
|
||||
exp_type = EXP_TYPE_CREW
|
||||
minimal_player_age = 9
|
||||
exp_requirements = 720
|
||||
exp_type = EXP_TYPE_SECURITY
|
||||
exp_type_department = EXP_TYPE_SECURITY
|
||||
|
||||
outfit = /datum/outfit/job/warden
|
||||
|
||||
@@ -118,7 +119,9 @@ Warden
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
r_pocket = /obj/item/assembly/flash/handheld
|
||||
l_pocket = /obj/item/restraints/handcuffs
|
||||
suit_store = /obj/item/gun/energy/e_gun/advtaser
|
||||
//suit_store = /obj/item/gun/energy/e_gun/advtaser
|
||||
suit_store = /obj/item/gun/energy/pumpaction/defender
|
||||
|
||||
backpack_contents = list(/obj/item/melee/baton/loaded=1)
|
||||
|
||||
backpack = /obj/item/storage/backpack/security
|
||||
@@ -143,9 +146,10 @@ Detective
|
||||
spawn_positions = 1
|
||||
supervisors = "the head of security"
|
||||
selection_color = "#ffeeee"
|
||||
minimal_player_age = 2
|
||||
minimal_player_age = 5
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_CREW
|
||||
exp_type = EXP_TYPE_SECURITY
|
||||
exp_type_department = EXP_TYPE_SECURITY
|
||||
|
||||
outfit = /datum/outfit/job/detective
|
||||
|
||||
@@ -199,9 +203,10 @@ Security Officer
|
||||
spawn_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
|
||||
supervisors = "the head of security, and the head of your assigned department (if applicable)"
|
||||
selection_color = "#ffeeee"
|
||||
minimal_player_age = 1
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_CREW
|
||||
minimal_player_age = 5
|
||||
exp_requirements = 420
|
||||
exp_type = EXP_TYPE_SECURITY
|
||||
exp_type_department = EXP_TYPE_SECURITY
|
||||
|
||||
outfit = /datum/outfit/job/security
|
||||
|
||||
@@ -344,3 +349,141 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S
|
||||
/obj/item/radio/headset/headset_sec/alt/department/sci
|
||||
keyslot = new /obj/item/encryptionkey/headset_sec
|
||||
keyslot2 = new /obj/item/encryptionkey/headset_sci
|
||||
|
||||
|
||||
/*
|
||||
Junior Security Officer
|
||||
*/
|
||||
/datum/job/junior_officer
|
||||
title = "Rookie"
|
||||
flag = JR_OFFICER
|
||||
department_head = list("Head of Security")
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
|
||||
spawn_positions = 5 //Handled in /datum/controller/occupations/proc/setup_officer_positions()
|
||||
supervisors = "the head of security, and the head of your assigned department (if applicable), and any other senior officer"
|
||||
selection_color = "#ffeeee"
|
||||
minimal_player_age = 3
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
outfit = /datum/outfit/job/security/junior
|
||||
|
||||
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
|
||||
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MINERAL_STOREROOM) //BUT SEE /DATUM/JOB/WARDEN/GET_ACCESS()
|
||||
|
||||
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
|
||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
|
||||
|
||||
|
||||
/datum/job/junior_officer/get_access()
|
||||
var/list/L = list()
|
||||
L |= ..() | check_config_for_sec_maint()
|
||||
return L
|
||||
|
||||
/datum/job/junior_officer/after_spawn(mob/living/carbon/human/H, mob/M)
|
||||
// Assign department security
|
||||
var/department
|
||||
if(M && M.client && M.client.prefs)
|
||||
department = M.client.prefs.prefered_security_department
|
||||
if(!LAZYLEN(GLOB.available_depts) || department == "None")
|
||||
return
|
||||
else if(department in GLOB.available_depts)
|
||||
LAZYREMOVE(GLOB.available_depts, department)
|
||||
else
|
||||
department = pick_n_take(GLOB.available_depts)
|
||||
var/ears = null
|
||||
var/accessory = null
|
||||
var/list/dep_access = null
|
||||
var/destination = null
|
||||
var/spawn_point = locate(/obj/effect/landmark/start/security_officer) in GLOB.start_landmarks_list
|
||||
switch(department)
|
||||
if(SEC_DEPT_SUPPLY)
|
||||
ears = /obj/item/radio/headset/headset_sec/alt/department/supply
|
||||
dep_access = list(ACCESS_MAILSORTING, ACCESS_MINING, ACCESS_MINING_STATION)
|
||||
destination = /area/security/checkpoint/supply
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in GLOB.department_security_spawns
|
||||
accessory = /obj/item/clothing/accessory/armband/cargo
|
||||
if(SEC_DEPT_ENGINEERING)
|
||||
ears = /obj/item/radio/headset/headset_sec/alt/department/engi
|
||||
dep_access = list(ACCESS_CONSTRUCTION, ACCESS_ENGINE)
|
||||
destination = /area/security/checkpoint/engineering
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in GLOB.department_security_spawns
|
||||
accessory = /obj/item/clothing/accessory/armband/engine
|
||||
if(SEC_DEPT_MEDICAL)
|
||||
ears = /obj/item/radio/headset/headset_sec/alt/department/med
|
||||
dep_access = list(ACCESS_MEDICAL)
|
||||
destination = /area/security/checkpoint/medical
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in GLOB.department_security_spawns
|
||||
accessory = /obj/item/clothing/accessory/armband/medblue
|
||||
if(SEC_DEPT_SCIENCE)
|
||||
ears = /obj/item/radio/headset/headset_sec/alt/department/sci
|
||||
dep_access = list(ACCESS_RESEARCH)
|
||||
destination = /area/security/checkpoint/science
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in GLOB.department_security_spawns
|
||||
accessory = /obj/item/clothing/accessory/armband/science
|
||||
|
||||
if(accessory)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
U.attach_accessory(new accessory)
|
||||
if(ears)
|
||||
if(H.ears)
|
||||
qdel(H.ears)
|
||||
H.equip_to_slot_or_del(new ears(H),SLOT_EARS)
|
||||
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.access |= dep_access
|
||||
|
||||
var/teleport = 0
|
||||
if(!CONFIG_GET(flag/sec_start_brig))
|
||||
if(destination || spawn_point)
|
||||
teleport = 1
|
||||
if(teleport)
|
||||
var/turf/T
|
||||
if(spawn_point)
|
||||
T = get_turf(spawn_point)
|
||||
H.Move(T)
|
||||
else
|
||||
var/safety = 0
|
||||
while(safety < 25)
|
||||
T = safepick(get_area_turfs(destination))
|
||||
if(T && !H.Move(T))
|
||||
safety += 1
|
||||
continue
|
||||
else
|
||||
break
|
||||
if(department)
|
||||
to_chat(M, "<b>You have been assigned to [department]!</b>")
|
||||
else
|
||||
to_chat(M, "<b>You have not been assigned to any department. Patrol the halls and help where needed.</b>")
|
||||
|
||||
|
||||
|
||||
/datum/outfit/job/security/junior
|
||||
name = "Security Officer"
|
||||
jobtype = /datum/job/officer
|
||||
|
||||
belt = /obj/item/pda/security
|
||||
ears = /obj/item/radio/headset/headset_sec/alt
|
||||
uniform = /obj/item/clothing/under/rank/security
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
head = /obj/item/clothing/head/helmet/sec
|
||||
suit = /obj/item/clothing/suit/armor/vest/alt
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_pocket = /obj/item/restraints/handcuffs
|
||||
r_pocket = /obj/item/assembly/flash/handheld
|
||||
suit_store = /obj/item/gun/energy/e_gun/advtaser
|
||||
backpack_contents = list(/obj/item/melee/baton/loaded=1)
|
||||
|
||||
backpack = /obj/item/storage/backpack/security
|
||||
satchel = /obj/item/storage/backpack/satchel/sec
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/sec
|
||||
box = /obj/item/storage/box/security
|
||||
|
||||
implants = list(/obj/item/implant/mindshield)
|
||||
|
||||
chameleon_extras = list(/obj/item/gun/energy/e_gun/advtaser, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/head/helmet)
|
||||
//The helmet is necessary because /obj/item/clothing/head/helmet/sec is overwritten in the chameleon list by the standard helmet, which has the same name and icon state
|
||||
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ AI
|
||||
selection_color = "#ccffcc"
|
||||
supervisors = "your laws"
|
||||
req_admin_notify = TRUE
|
||||
minimal_player_age = 5
|
||||
exp_requirements = 1200
|
||||
exp_type = EXP_TYPE_CREW
|
||||
// exp_type_department = EXP_TYPE_SILICON
|
||||
minimal_player_age = 14
|
||||
exp_requirements = 1800
|
||||
//exp_type = EXP_TYPE_CREW
|
||||
exp_type_department = EXP_TYPE_SILICON
|
||||
var/do_special_check = TRUE
|
||||
|
||||
/datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, outfit_override)
|
||||
@@ -78,9 +78,9 @@ Cyborg
|
||||
spawn_positions = 1
|
||||
supervisors = "your laws and the AI" //Nodrak
|
||||
selection_color = "#ddffdd"
|
||||
// minimal_player_age = 0
|
||||
// exp_requirements = 120
|
||||
// exp_type = EXP_TYPE_CREW
|
||||
minimal_player_age = 0
|
||||
exp_requirements = 300
|
||||
exp_type = EXP_TYPE_CREW
|
||||
|
||||
/datum/job/cyborg/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE, outfit_override = null)
|
||||
return H.Robotize(FALSE, latejoin)
|
||||
|
||||
@@ -10,7 +10,8 @@ GLOBAL_LIST_INIT(command_positions, list(
|
||||
GLOBAL_LIST_INIT(engineering_positions, list(
|
||||
"Chief Engineer",
|
||||
"Station Engineer",
|
||||
"Atmospheric Technician"))
|
||||
"Atmospheric Technician",
|
||||
"Engineering Intern"))
|
||||
|
||||
|
||||
GLOBAL_LIST_INIT(medical_positions, list(
|
||||
@@ -18,13 +19,15 @@ GLOBAL_LIST_INIT(medical_positions, list(
|
||||
"Medical Doctor",
|
||||
"Geneticist",
|
||||
"Virologist",
|
||||
"Chemist"))
|
||||
"Chemist",
|
||||
"Medical Resident"))
|
||||
|
||||
|
||||
GLOBAL_LIST_INIT(science_positions, list(
|
||||
"Research Director",
|
||||
"Scientist",
|
||||
"Roboticist"))
|
||||
"Roboticist",
|
||||
"Research Student"))
|
||||
|
||||
GLOBAL_LIST_INIT(supply_positions, list(
|
||||
"Quartermaster",
|
||||
@@ -48,7 +51,8 @@ GLOBAL_LIST_INIT(security_positions, list(
|
||||
"Head of Security",
|
||||
"Warden",
|
||||
"Detective",
|
||||
"Security Officer"))
|
||||
"Security Officer",
|
||||
"Rookie"))
|
||||
|
||||
|
||||
GLOBAL_LIST_INIT(nonhuman_positions, list(
|
||||
|
||||
@@ -3146,12 +3146,6 @@
|
||||
#include "modular_citadel\code\modules\food_and_drinks\snacks\meat.dm"
|
||||
#include "modular_citadel\code\modules\integrated_electronics\subtypes\manipulation.dm"
|
||||
#include "modular_citadel\code\modules\jobs\dresscode_values.dm"
|
||||
#include "modular_citadel\code\modules\jobs\job_types\captain.dm"
|
||||
#include "modular_citadel\code\modules\jobs\job_types\cargo_service.dm"
|
||||
#include "modular_citadel\code\modules\jobs\job_types\engineering.dm"
|
||||
#include "modular_citadel\code\modules\jobs\job_types\medical.dm"
|
||||
#include "modular_citadel\code\modules\jobs\job_types\science.dm"
|
||||
#include "modular_citadel\code\modules\jobs\job_types\security.dm"
|
||||
#include "modular_citadel\code\modules\keybindings\bindings_carbon.dm"
|
||||
#include "modular_citadel\code\modules\keybindings\bindings_human.dm"
|
||||
#include "modular_citadel\code\modules\keybindings\bindings_robot.dm"
|
||||
|
||||
Reference in New Issue
Block a user