diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 17f1ed76097..91dd441ca69 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -55,6 +55,7 @@ #define JOB_SECURITY_OFFICER_SCIENCE "Security Officer (Science)" #define JOB_SECURITY_OFFICER_SUPPLY "Security Officer (Cargo)" #define JOB_CORRECTIONS_OFFICER "Corrections Officer" // SKYRAT EDIT ADDITION +#define JOB_SECURITY_MEDIC "Security Medic" //BUBBER EDIT ADDITION //Engineering #define JOB_STATION_ENGINEER "Station Engineer" #define JOB_ATMOSPHERIC_TECHNICIAN "Atmospheric Technician" diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 974028efa2c..d584f239697 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -109,8 +109,9 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) JOB_SECURITY_OFFICER_SCIENCE = 15, JOB_SECURITY_OFFICER_SUPPLY = 16, */ - JOB_CORRECTIONS_OFFICER = 13, // SKYRAT EDIT ADDITION - JOB_DETECTIVE = 14, + JOB_SECURITY_MEDIC = 13, // BUBBER EDIT ADDITION + JOB_CORRECTIONS_OFFICER = 14, // SKYRAT EDIT ADDITION + JOB_DETECTIVE = 15, // 20-29: Medbay JOB_CHIEF_MEDICAL_OFFICER = 20, JOB_CHEMIST = 21, diff --git a/config/dynamic.json b/config/dynamic.json index b968b228ce5..8bd2e8d4ff7 100644 --- a/config/dynamic.json +++ b/config/dynamic.json @@ -29,6 +29,7 @@ "Security Officer", "Warden", "Detective", + "Security Medic", "Head of Security", "Captain", "Nanotrasen Consultant", diff --git a/config/jobs.txt b/config/jobs.txt index c1ceb8e1808..5b65062cd2d 100644 --- a/config/jobs.txt +++ b/config/jobs.txt @@ -74,6 +74,7 @@ Science Guard=2,2 Warden=1,1 Detective=2,2 Security Officer=6,6 +Security Medic=1,1 Corrections Officer=2,1 diff --git a/modular_skyrat/modules/admin/code/sooc.dm b/modular_skyrat/modules/admin/code/sooc.dm index 9c60d2347db..518e8508f06 100644 --- a/modular_skyrat/modules/admin/code/sooc.dm +++ b/modular_skyrat/modules/admin/code/sooc.dm @@ -16,7 +16,12 @@ GLOBAL_LIST_EMPTY(ckey_to_sooc_name) if(!mob) return - var/static/list/job_lookup = list(JOB_CAPTAIN=TRUE, JOB_HEAD_OF_SECURITY=TRUE, JOB_WARDEN=TRUE, JOB_DETECTIVE=TRUE, JOB_SECURITY_OFFICER=TRUE, JOB_CORRECTIONS_OFFICER=TRUE) + var/static/list/job_lookup = list(JOB_CAPTAIN=TRUE, + JOB_HEAD_OF_SECURITY=TRUE, + JOB_WARDEN=TRUE, JOB_DETECTIVE=TRUE, + JOB_SECURITY_OFFICER=TRUE, + JOB_CORRECTIONS_OFFICER=TRUE, + JOB_SECURITY_MEDIC=TRUE) //BUBBER EDIT ADDITION if(!holder) var/job = mob?.mind.assigned_role.title if(!job || !job_lookup[job]) diff --git a/modular_skyrat/modules/automapper/code/area_spawn_entries.dm b/modular_skyrat/modules/automapper/code/area_spawn_entries.dm index ac668554a23..9b4aa8c7c1f 100644 --- a/modular_skyrat/modules/automapper/code/area_spawn_entries.dm +++ b/modular_skyrat/modules/automapper/code/area_spawn_entries.dm @@ -16,6 +16,10 @@ desired_atom = /mob/living/simple_animal/pet/poppy // Structures +/datum/area_spawn/secmed_locker + target_areas = list(/area/station/security/medical, /area/station/security/lockers) + desired_atom = /obj/structure/closet/secure_closet/security_medic + /datum/area_spawn/blueshield_locker target_areas = list(/area/station/command/heads_quarters/captain, /area/station/command/bridge, /area/station/command/corporate_dock, /area/station/command/meeting_room, /area/station/command/gateway) desired_atom = /obj/structure/closet/secure_closet/blueshield diff --git a/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm b/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm index 9d7add3ca09..3f9a75c108e 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm @@ -73,13 +73,13 @@ name = "Peacekeeper jacket" item_path = /obj/item/clothing/suit/armor/vest/warden/rax // ckeywhitelist = list("raxraus") - restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER) + restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/under/jumpsuit/rax_banded_uniform name = "Banded Uniform" item_path = /obj/item/clothing/under/rank/security/rax // ckeywhitelist = list("raxraus") - restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER) + restricted_roles = list(JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/suit/rax_aerostatic_jacket name = "Navy Aerostatic Jacket" diff --git a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_accessory.dm b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_accessory.dm index 9140fc6ee7e..0884f038b24 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_accessory.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_accessory.dm @@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(loadout_accessory, generate_loadout_items(/datum/loadout_item/a /datum/loadout_item/accessory/armband_security name = "Security Armband" item_path = /obj/item/clothing/accessory/armband/deputy/lopland - restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE) + restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_SECURITY_MEDIC, JOB_DETECTIVE) //BUBBER EDIT /datum/loadout_item/accessory/armband_security_deputy name = "Security Deputy Armband" diff --git a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_glasses.dm b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_glasses.dm index d848176ca50..cb5d71519ef 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_glasses.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_glasses.dm @@ -146,7 +146,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla /datum/loadout_item/glasses/medicpatch name = "Medical Eyepatch" item_path = /obj/item/clothing/glasses/hud/eyepatch/med - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT /datum/loadout_item/glasses/robopatch name = "Diagnostic Eyepatch" @@ -181,7 +181,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla /datum/loadout_item/glasses/medhud_glasses name = "Prescription Medical HUD" item_path = /obj/item/clothing/glasses/hud/health/prescription - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT /datum/loadout_item/glasses/diaghud_glasses name = "Prescription Diagnostic HUD" @@ -201,7 +201,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla /datum/loadout_item/glasses/aviator_health name = "Medical HUD Aviators" item_path = /obj/item/clothing/glasses/hud/ar/aviator/health - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT /datum/loadout_item/glasses/aviator_meson name = "Meson HUD Aviators" @@ -227,7 +227,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla /datum/loadout_item/glasses/prescription_aviator_health name = "Prescription Medical HUD Aviators" item_path = /obj/item/clothing/glasses/hud/ar/aviator/health/prescription - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT /datum/loadout_item/glasses/prescription_aviator_meson name = "Prescription Meson HUD Aviators" @@ -252,7 +252,7 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla /datum/loadout_item/glasses/retinal_projector_health name = "Retinal Projector Health HUD" item_path = /obj/item/clothing/glasses/hud/ar/projector/health - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT /datum/loadout_item/glasses/retinal_projector_meson name = "Retinal Projector Meson HUD" diff --git a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_heads.dm b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_heads.dm index f48b9341ffa..b5e61a9f49e 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_heads.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_heads.dm @@ -429,17 +429,17 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea /datum/loadout_item/head/trekcapmedisci name = "MedSci Officer's Cap (Blue)" item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/medsci - restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PSYCHOLOGIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_SECURITY_MEDIC, JOB_PARAMEDIC,JOB_CHEMIST, JOB_VIROLOGIST, JOB_PSYCHOLOGIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_ORDERLY, JOB_CORONER) /datum/loadout_item/head/trekcapeng name = "Eng Officer's Cap (Yellow)" item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/eng - restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_ENGINEERING_GUARD, JOB_CUSTOMS_AGENT) + restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_ENGINEERING_GUARD, JOB_CUSTOMS_AGENT) //BUBBER EDIT /datum/loadout_item/head/trekcapsec name = "Officer's Cap (Red)" item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/sec - restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT) + restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT) //BUBBER EDIT /* * JOB-LOCKED @@ -469,22 +469,22 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea /datum/loadout_item/head/cowboyhat_sec name = "Cattleman Hat, Security" item_path = /obj/item/clothing/head/cowboy/skyrat/cattleman/sec - restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) + restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/head/cowboyhat_secwide name = "Wide-Brimmed Cattleman Hat, Security" item_path = /obj/item/clothing/head/cowboy/skyrat/cattleman/wide/sec - restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) + restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/head/ushanka/sec name = "Security Ushanka" item_path = /obj/item/clothing/head/costume/ushanka/sec - restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) + restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/head/blasthelmet name = "General's Helmet" item_path = /obj/item/clothing/head/hats/imperial/helmet - restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_CORRECTIONS_OFFICER, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER) + restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_SECURITY_OFFICER, JOB_CORRECTIONS_OFFICER, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER)//BUBBER EDIT /datum/loadout_item/head/navybluehoscap name = "Head of Security's Naval Cap" @@ -494,17 +494,17 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea /datum/loadout_item/head/navyblueofficerberet name = "Security Officer's Navy Blue beret" item_path = /obj/item/clothing/head/beret/sec/navyofficer - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN) + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_HEAD_OF_SECURITY, JOB_WARDEN) //BUBBER EDIT /datum/loadout_item/head/solofficercap name = "Security Officer's Sol Cap" item_path = /obj/item/clothing/head/hats/sec/peacekeeper/sol - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN) + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_HEAD_OF_SECURITY, JOB_WARDEN) //BUBBER EDIT /datum/loadout_item/head/soltrafficoff name = "Traffic Officer Cap" item_path = /obj/item/clothing/head/hats/sec/peacekeeper/sol/traffic - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN) + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_HEAD_OF_SECURITY, JOB_WARDEN) //BUBBER EDIT /datum/loadout_item/head/navybluewardenberet name = "Warden's Navy Blue beret" @@ -578,7 +578,7 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea /datum/loadout_item/head/beret_med name = "Medical Beret" item_path = /obj/item/clothing/head/beret/medical - restricted_roles = list(JOB_MEDICAL_DOCTOR,JOB_VIROLOGIST, JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_ORDERLY, JOB_CORONER) + restricted_roles = list(JOB_MEDICAL_DOCTOR,JOB_VIROLOGIST, JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_SECURITY_MEDIC, JOB_ORDERLY, JOB_CORONER) //BUBBER EDIT /datum/loadout_item/head/beret_paramedic name = "Paramedic Beret" diff --git a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_neck.dm b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_neck.dm index 8b9b580ac9a..bff0df5dec9 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_neck.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_neck.dm @@ -251,7 +251,7 @@ GLOBAL_LIST_INIT(loadout_necks, generate_loadout_items(/datum/loadout_item/neck) /datum/loadout_item/neck/stethoscope name = "Stethoscope" item_path = /obj/item/clothing/neck/stethoscope - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_SECURITY_MEDIC) //BUBBER EDIT /datum/loadout_item/neck/maid name = "Maid Neck Cover" diff --git a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_suit.dm b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_suit.dm index bc316e520d0..40a78854e5c 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_suit.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/loadout_datum_suit.dm @@ -557,7 +557,7 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su /datum/loadout_item/suit/navybluejacketofficer name = "Security Officer's Navy Blue Formal Jacket" item_path = /obj/item/clothing/suit/jacket/officer/blue - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN) // I aint making a medic one, maybe i'll add some rank thing from cm or civ for it + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC, JOB_WARDEN) //BUBBER EDIT /datum/loadout_item/suit/navybluejacketwarden name = "Warden's Navy Blue Formal Jacket" @@ -572,12 +572,12 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su /datum/loadout_item/suit/security_jacket name = "Security Jacket" item_path = /obj/item/clothing/suit/toggle/jacket/sec - restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE) //Not giving this one to COs because it's actually better than the one they spawn with + restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE) //BUBBER EDIT /datum/loadout_item/suit/brit name = "High Vis Armored Vest" item_path = /obj/item/clothing/suit/armor/vest/peacekeeper/brit - restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER) + restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/suit/british_jacket name = "Peacekeeper Officer Coat" @@ -617,7 +617,7 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su /datum/loadout_item/suit/labcoat_highvis name = "High-Vis Labcoat" item_path = /obj/item/clothing/suit/toggle/labcoat/skyrat/highvis - restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_PARAMEDIC, JOB_ATMOSPHERIC_TECHNICIAN, JOB_DETECTIVE, JOB_CHEMIST, JOB_ORDERLY) // And now chemist and orderly get it too. + restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_PARAMEDIC, JOB_ATMOSPHERIC_TECHNICIAN, JOB_SECURITY_MEDIC, JOB_DETECTIVE, JOB_CHEMIST, JOB_ORDERLY) //BUBBER EDIT /* * FAMILIES diff --git a/modular_skyrat/modules/loadouts/loadout_items/under/loadout_datum_under.dm b/modular_skyrat/modules/loadouts/loadout_items/under/loadout_datum_under.dm index 75a8d094faa..2c9431943c4 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/under/loadout_datum_under.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/under/loadout_datum_under.dm @@ -122,12 +122,12 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/ /datum/loadout_item/under/jumpsuit/security_trousers name = "Security Trousers" item_path = /obj/item/clothing/under/rank/security/peacekeeper/trousers - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY) + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC) //BUBBER EDIT /datum/loadout_item/under/jumpsuit/solofficer name = "Sol Officer Uniform" item_path = /obj/item/clothing/under/rank/security/peacekeeper/sol - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY) + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_SECURITY_MEDIC) //BUBBER EDIT /datum/loadout_item/under/jumpsuit/disco name = "Superstar Cop Uniform" @@ -186,7 +186,7 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/ /datum/loadout_item/under/jumpsuit/utility_med name = "Medical Utility Uniform" item_path = /obj/item/clothing/under/rank/medical/doctor/skyrat/utility - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_GENETICIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_PSYCHOLOGIST, JOB_ORDERLY) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHIEF_MEDICAL_OFFICER, JOB_PSYCHOLOGIST, JOB_ORDERLY) //BUBBER EDIT /datum/loadout_item/under/jumpsuit/utility_sci name = "Science Utility Uniform" @@ -201,7 +201,7 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/ /datum/loadout_item/under/jumpsuit/utility_sec name = "Security Utility Uniform" item_path = /obj/item/clothing/under/rank/security/skyrat/utility - restricted_roles = list(JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_WARDEN, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //i dunno about the blueshield, they're a weird combo of sec and command, thats why they arent in the loadout pr im making + restricted_roles = list(JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_SECURITY_MEDIC, JOB_WARDEN, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER) //BUBBER EDIT /datum/loadout_item/under/jumpsuit/utility_com name = "Command Utility Uniform" @@ -518,27 +518,27 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/ /datum/loadout_item/under/miscellaneous/redscrubs name = "Red Scrubs" item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/red - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT /datum/loadout_item/under/miscellaneous/bluescrubs name = "Blue Scrubs" item_path = /obj/item/clothing/under/rank/medical/scrubs/blue - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT /datum/loadout_item/under/miscellaneous/greenscrubs name = "Green Scrubs" item_path = /obj/item/clothing/under/rank/medical/scrubs/green - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT /datum/loadout_item/under/miscellaneous/purplescrubs name = "Purple Scrubs" item_path = /obj/item/clothing/under/rank/medical/scrubs/purple - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT /datum/loadout_item/under/miscellaneous/whitescrubs name = "White Scrubs" item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/white - restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_SECURITY_MEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC) //BUBBER EDIT /datum/loadout_item/under/miscellaneous/gear_harness name = "Gear Harness" diff --git a/modular_skyrat/modules/oneclickantag/code/oneclickantag.dm b/modular_skyrat/modules/oneclickantag/code/oneclickantag.dm index e971d291ace..5b191db7bf5 100644 --- a/modular_skyrat/modules/oneclickantag/code/oneclickantag.dm +++ b/modular_skyrat/modules/oneclickantag/code/oneclickantag.dm @@ -82,7 +82,7 @@ If anyone can figure out how to get Obsessed to work I would be very appreciativ /datum/admins/ var/MAKEANTAG_RESTRICTLIST = list() - var/MAKEANTAG_PL_DEFAULT_SECURITY = list(JOB_PRISONER, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_HEAD_OF_SECURITY, JOB_CAPTAIN, JOB_CORRECTIONS_OFFICER, JOB_BLUESHIELD, JOB_ORDERLY, JOB_BOUNCER, JOB_CUSTOMS_AGENT, JOB_ENGINEERING_GUARD, JOB_SCIENCE_GUARD) + var/MAKEANTAG_PL_DEFAULT_SECURITY = list(JOB_PRISONER, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_HEAD_OF_SECURITY, JOB_CAPTAIN, JOB_CORRECTIONS_OFFICER, JOB_SECURITY_MEDIC, JOB_BLUESHIELD, JOB_ORDERLY, JOB_BOUNCER, JOB_CUSTOMS_AGENT, JOB_ENGINEERING_GUARD, JOB_SCIENCE_GUARD) //BUBBER EDIT var/MAKEANTAG_PL_DEFAULT_HEADS = list(JOB_CAPTAIN,JOB_HEAD_OF_PERSONNEL,JOB_RESEARCH_DIRECTOR,JOB_CHIEF_ENGINEER,JOB_CHIEF_MEDICAL_OFFICER,JOB_HEAD_OF_SECURITY,JOB_QUARTERMASTER) var/MAKEANTAG_PL_DEFAULT_SILICON = list(JOB_AI, JOB_CYBORG) diff --git a/modular_zubbers/code/datums/id_trim/jobs.dm b/modular_zubbers/code/datums/id_trim/jobs.dm index 10bdd302b97..cd3f6ce9b74 100644 --- a/modular_zubbers/code/datums/id_trim/jobs.dm +++ b/modular_zubbers/code/datums/id_trim/jobs.dm @@ -23,6 +23,24 @@ ) job = /datum/job/blacksmith +/datum/id_trim/job/security_medic + assignment = "Security Medic" + trim_icon = 'modular_skyrat/master_files/icons/obj/card.dmi' + trim_state = "trim_securitymedic" + department_color = COLOR_ASSEMBLY_BLACK + subdepartment_color = COLOR_ASSEMBLY_BLACK + sechud_icon_state = SECHUD_SECURITY_MEDIC + extra_access = list(ACCESS_DETECTIVE) + minimal_access = list(ACCESS_SECURITY, ACCESS_BRIG_ENTRANCE, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + template_access = list(ACCESS_CAPTAIN, ACCESS_HOS, ACCESS_CHANGE_IDS) + +/datum/id_trim/job/security_medic/New() + . = ..() + + // Config check for if sec has maint access. + if(CONFIG_GET(flag/security_has_maint_access)) + access |= list(ACCESS_MAINT_TUNNELS) + /datum/id_trim/job/blueshield minimal_wildcard_access = list() template_access = list(ACCESS_CAPTAIN) //Blueshield can no longer change to any other ID trim @@ -35,4 +53,4 @@ /datum/id_trim/job/nanotrasen_consultant minimal_wildcard_access = list() - template_access = list(ACCESS_CAPTAIN) //NTRep can no longer change to any other ID trim + template_access = list(ACCESS_CAPTAIN) //NTRep can no longer change to any other ID trim \ No newline at end of file diff --git a/modular_zubbers/code/modules/alternative_job_titles/code/alt_job_titles.dm b/modular_zubbers/code/modules/alternative_job_titles/code/alt_job_titles.dm new file mode 100644 index 00000000000..07bd3e52d45 --- /dev/null +++ b/modular_zubbers/code/modules/alternative_job_titles/code/alt_job_titles.dm @@ -0,0 +1,8 @@ +/datum/job/security_medic + alt_titles = list( + "Security Medic", + "Field Medic", + "Security Corpsman", + "Brig Physician", + "Combat Medic", + ) diff --git a/modular_zubbers/code/modules/automapper/code/area_spawn_entries.dm b/modular_zubbers/code/modules/automapper/code/area_spawn_entries.dm new file mode 100644 index 00000000000..73cf4979f0a --- /dev/null +++ b/modular_zubbers/code/modules/automapper/code/area_spawn_entries.dm @@ -0,0 +1,3 @@ +/datum/area_spawn/secmed_landmark + target_areas = list(/area/station/security/medical, /area/station/security/brig) + desired_atom = /obj/effect/landmark/start/security_medic diff --git a/modular_zubbers/code/modules/customization/modules/clothing/under/security.dm b/modular_zubbers/code/modules/customization/modules/clothing/under/security.dm new file mode 100644 index 00000000000..4af2ce763d3 --- /dev/null +++ b/modular_zubbers/code/modules/customization/modules/clothing/under/security.dm @@ -0,0 +1,13 @@ +///SECMED +/obj/item/clothing/under/rank/medical/scrubs/skyrat/red/sec + name = "security medic scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards and acid, along with some light padding. This one is in a deep red." + armor_type = /datum/armor/red_sec + +/datum/armor/red_sec + melee = 10 + bio = 10 + fire = 30 + acid = 30 + wound = 10 + diff --git a/modular_zubbers/code/modules/customization/modules/jobs/_job.dm b/modular_zubbers/code/modules/customization/modules/jobs/_job.dm new file mode 100644 index 00000000000..4ebb17433ff --- /dev/null +++ b/modular_zubbers/code/modules/customization/modules/jobs/_job.dm @@ -0,0 +1,2 @@ +/datum/job/security_medic + banned_quirks = list(SEC_RESTRICTED_QUIRKS) diff --git a/modular_zubbers/code/modules/loadouts/loadout_items/loadout_datum_under.dm b/modular_zubbers/code/modules/loadouts/loadout_items/loadout_datum_under.dm index 2bf30c15c48..8fd248882f6 100644 --- a/modular_zubbers/code/modules/loadouts/loadout_items/loadout_datum_under.dm +++ b/modular_zubbers/code/modules/loadouts/loadout_items/loadout_datum_under.dm @@ -18,3 +18,8 @@ name = "Lilac Dress" item_path = /obj/item/clothing/under/rank/lace ckeywhitelist = list("thedragmeme") + +/datum/loadout_item/under/miscellaneous/medrscrubs + name = "Security Medic's Scrubs" + item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/red/sec + restricted_roles = list(JOB_SECURITY_MEDIC) diff --git a/modular_zubbers/code/modules/protected_roles/code/antag_restricted_jobs.dm b/modular_zubbers/code/modules/protected_roles/code/antag_restricted_jobs.dm new file mode 100644 index 00000000000..ccf6a43f7a0 --- /dev/null +++ b/modular_zubbers/code/modules/protected_roles/code/antag_restricted_jobs.dm @@ -0,0 +1,2 @@ +/datum/job/security_medic + antagonist_restricted = TRUE diff --git a/modular_zubbers/code/modules/sec_haul/code/security_medic/secmed_clothes.dm b/modular_zubbers/code/modules/sec_haul/code/security_medic/secmed_clothes.dm new file mode 100644 index 00000000000..5064c6bf234 --- /dev/null +++ b/modular_zubbers/code/modules/sec_haul/code/security_medic/secmed_clothes.dm @@ -0,0 +1,128 @@ +/obj/item/clothing/suit/toggle/labcoat/skyrat/security_medic + name = "security medic labcoat" + desc = "A lightweight vest worn by the Security Medic." + icon = 'modular_zubbers/icons/obj/clothing/suits/labcoat.dmi' + icon_state = "secmed_labcoat" //Icon located in modular_skyrat/master_files/icons/(obj or mob)/clothing/suits/labcoat.dmi + blood_overlay_type = "armor" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + armor_type = /datum/armor/skyrat_security_medic + +/datum/armor/skyrat_security_medic + melee = 35 + bullet = 30 + laser = 30 + energy = 40 + bomb = 25 + fire = 50 + acid = 50 + wound = 10 + +/obj/item/clothing/suit/toggle/labcoat/skyrat/security_medic/Initialize(mapload) + . = ..() + allowed += list( + /obj/item/flashlight, + /obj/item/gun, + /obj/item/melee/baton/telescopic, + /obj/item/storage/medkit + ) + +/obj/item/clothing/suit/toggle/labcoat/skyrat/security_medic/blue + icon_state = "secmed_labcoat_blue" + +/obj/item/clothing/suit/hazardvest/security_medic + name = "security medic vest" + desc = "A lightweight vest worn by the Security Medic." + icon = 'modular_zubbers/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/suits/armor.dmi' + icon_state = "secmed_vest" + worn_icon_state = "secmed_vest" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight, /obj/item/reagent_containers/cup/bottle, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/baton/telescopic, /obj/item/soap, /obj/item/tank/internals/emergency_oxygen, /obj/item/gun, /obj/item/storage/medkit) + armor_type = /datum/armor/hazardvest_security_medic + +/datum/armor/hazardvest_security_medic + melee = 35 + bullet = 30 + laser = 30 + energy = 40 + bomb = 25 + fire = 50 + acid = 50 + wound = 10 + +/obj/item/clothing/suit/hazardvest/security_medic/blue + icon_state = "secmed_vest_blue" + worn_icon_state = "secmed_vest_blue" + +/obj/item/clothing/suit/armor/vest/peacekeeper/security_medic + name = "security medic armor vest" + desc = "A security medic's armor vest, with little pockets for little things." + icon = 'modular_zubbers/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/suits/armor.dmi' + icon_state = "secmed_armor" + worn_icon_state = "secmed_armor" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight, /obj/item/reagent_containers/cup/bottle, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/baton/telescopic, /obj/item/soap, /obj/item/tank/internals/emergency_oxygen, /obj/item/gun, /obj/item/storage/medkit) + +/obj/item/clothing/under/rank/security/peacekeeper/security_medic/alternate + name = "security medic uniform" + desc = "A lightly armored uniform worn by Nanotrasen's Asset Protection Medical Corps." + icon = 'modular_zubbers/icons/obj/clothing/under/security.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/under/security.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/under/security_digi.dmi' + icon_state = "security_medic_jumpsuit" + +/obj/item/clothing/under/rank/security/peacekeeper/security_medic + name = "security medic turtleneck" + desc = "A comfy turtleneck with a white armband, denoting the wearer as a security medic." + icon = 'modular_zubbers/icons/obj/clothing/under/security.dmi' + worn_icon = 'modular_zubbers/icons/mob/clothing/under/security.dmi' + icon_state = "security_medic_turtleneck" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/rank/security/peacekeeper/security_medic/skirt + name = "security medic skirtleneck" + desc = "A comfy turtleneck with a white armband and brown skirt, denoting the wearer as a security medic." + icon_state = "security_medic_turtleneck_skirt" + body_parts_covered = CHEST|GROIN|ARMS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/head/beret/sec/peacekeeper/security_medic + name = "security medic beret" + desc = "A robust beret with the medical insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection." + greyscale_colors = "#3F3C40#870E12" + icon_state = "beret_badge_med" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/head/helmet/sec/peacekeeper/security_medic + name = "security medic helmet" + desc = "A standard issue combat helmet for security medics. Has decent tensile strength and armor. Keep your head down." + icon = 'modular_skyrat/master_files/icons/obj/clothing/head/helmet.dmi' + worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head/helmet.dmi' + icon_state = "secmed_helmet" + base_icon_state = "secmed_helmet" + can_toggle = FALSE + actions_types = null + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/storage/belt/security/medic + name = "security medic belt" + desc = "A fancy looking security belt emblazoned with markings of the security medic. Sadly only holds security gear." + icon = 'modular_skyrat/master_files/icons/obj/clothing/belts.dmi' + worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/belt.dmi' + worn_icon_state = "belt_medic" + icon_state = "belt_medic" + +/obj/item/storage/belt/security/medic/full/PopulateContents() + new /obj/item/reagent_containers/spray/pepper(src) + new /obj/item/restraints/handcuffs(src) + new /obj/item/grenade/flashbang(src) + new /obj/item/assembly/flash/handheld(src) + new /obj/item/melee/baton/security/loaded(src) + update_appearance() + +/obj/item/storage/belt/security/medic/alternate + name = "security medic belt" + worn_icon_state = "belt_medic_alt" + icon_state = "belt_medic_alt" diff --git a/modular_zubbers/code/modules/sec_haul/code/security_medic/security_medic.dm b/modular_zubbers/code/modules/sec_haul/code/security_medic/security_medic.dm new file mode 100644 index 00000000000..efca4b31eb8 --- /dev/null +++ b/modular_zubbers/code/modules/sec_haul/code/security_medic/security_medic.dm @@ -0,0 +1,116 @@ +/datum/job/security_medic + title = JOB_SECURITY_MEDIC + description = "Patch up officers and prisoners, realize you don't have the tools to Tend Wounds, barge into Medbay and tell them how to do their jobs" + auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY + department_head = list(JOB_HEAD_OF_SECURITY) + faction = FACTION_STATION + total_positions = 1 + spawn_positions = 1 + supervisors = SUPERVISOR_HOS + minimal_player_age = 7 + exp_requirements = 120 + exp_required_type = EXP_TYPE_CREW + exp_required_type_department = EXP_TYPE_SECURITY + exp_granted_type = EXP_TYPE_CREW + config_tag = "SECURITY_MEDIC" + + outfit = /datum/outfit/job/security_medic + plasmaman_outfit = /datum/outfit/plasmaman/security + + paycheck = PAYCHECK_CREW + paycheck_department = ACCOUNT_SEC + + liver_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) + + display_order = JOB_DISPLAY_ORDER_SECURITY_MEDIC + bounty_types = CIV_JOB_SEC + departments_list = list( + /datum/job_department/security, + /datum/job_department/medical, + ) + + family_heirlooms = list(/obj/item/clothing/neck/stethoscope, /obj/item/book/manual/wiki/security_space_law) + + //This is the paramedic goodie list. Secmedics are paramedics more or less so they can use these instead of raiding medbay. + mail_goodies = list( + /obj/item/reagent_containers/hypospray/medipen = 20, + /obj/item/reagent_containers/hypospray/medipen/oxandrolone = 10, + /obj/item/reagent_containers/hypospray/medipen/salacid = 10, + /obj/item/reagent_containers/hypospray/medipen/salbutamol = 10, + /obj/item/reagent_containers/hypospray/medipen/penacid = 10, + /obj/item/reagent_containers/hypospray/medipen/survival/luxury = 5 + ) + rpg_title = "Battle Cleric" + job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN + +/datum/outfit/job/security_medic + name = "Security Medic" + jobtype = /datum/job/security_medic + + belt = /obj/item/modular_computer/pda/security + ears = /obj/item/radio/headset/headset_medsec + uniform = /obj/item/clothing/under/rank/security/peacekeeper/security_medic + gloves = /obj/item/clothing/gloves/latex/nitrile + shoes = /obj/item/clothing/shoes/jackboots/sec + glasses = /obj/item/clothing/glasses/hud/health/sunglasses + suit = /obj/item/clothing/suit/armor/vest/peacekeeper/security_medic + l_hand = /obj/item/storage/medkit/brute + head = /obj/item/clothing/head/beret/sec/peacekeeper/security_medic + backpack_contents = list( + /obj/item/storage/box/gunset/firefly = 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/survival/security + + implants = list(/obj/item/implant/mindshield) + + id_trim = /datum/id_trim/job/security_medic + +/obj/effect/landmark/start/security_officer/Initialize(mapload) + . = ..() + new /obj/effect/landmark/start/security_medic(get_turf(src)) + +/obj/effect/landmark/start/security_medic + name = "Security Medic" + icon_state = "Security Medic" + icon = 'modular_skyrat/master_files/icons/mob/landmarks.dmi' + +/obj/item/encryptionkey/headset_medsec + name = "medical-security encryption key" + icon_state = "sec_cypherkey" + channels = list(RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_SECURITY = 1) + +/obj/item/radio/headset/headset_medsec + name = "medical-security radio headset" + desc = "Used to hear how many security officers need to be stiched back together." + icon_state = "sec_headset" + keyslot = new /obj/item/encryptionkey/headset_medsec + +/obj/structure/closet/secure_closet/security_medic + name = "security medics's locker" + req_access = list(ACCESS_SECURITY) + icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' + icon_state = "secmed" + + + +/obj/structure/closet/secure_closet/security_medic/PopulateContents() + ..() + new /obj/item/clothing/suit/toggle/labcoat/skyrat/security_medic(src) + new /obj/item/clothing/suit/hazardvest/security_medic(src) + new /obj/item/clothing/suit/toggle/labcoat/skyrat/security_medic/blue(src) + new /obj/item/clothing/suit/hazardvest/security_medic/blue(src) + new /obj/item/clothing/head/helmet/sec/peacekeeper/security_medic(src) + new /obj/item/clothing/under/rank/security/peacekeeper/tactical(src) + new /obj/item/radio/headset/headset_medsec(src) + new /obj/item/storage/medkit/emergency(src) + new /obj/item/clothing/suit/jacket/straight_jacket(src) + new /obj/item/storage/belt/medical(src) + new /obj/item/storage/belt/security/medic/full(src) + new /obj/item/clothing/under/rank/medical/scrubs/skyrat/red/sec(src) + new /obj/item/clothing/under/rank/security/peacekeeper/security_medic/alternate(src) + new /obj/item/clothing/under/rank/security/peacekeeper/security_medic(src) + new /obj/item/clothing/under/rank/security/peacekeeper/security_medic/skirt(src) diff --git a/modular_zubbers/icons/mob/clothing/suits/armor.dmi b/modular_zubbers/icons/mob/clothing/suits/armor.dmi index 454e51bfd53..0bc99bea2b5 100644 Binary files a/modular_zubbers/icons/mob/clothing/suits/armor.dmi and b/modular_zubbers/icons/mob/clothing/suits/armor.dmi differ diff --git a/modular_zubbers/icons/mob/clothing/suits/labcoat.dmi b/modular_zubbers/icons/mob/clothing/suits/labcoat.dmi new file mode 100644 index 00000000000..e5f05ea2cc3 Binary files /dev/null and b/modular_zubbers/icons/mob/clothing/suits/labcoat.dmi differ diff --git a/modular_zubbers/icons/mob/clothing/under/security.dmi b/modular_zubbers/icons/mob/clothing/under/security.dmi new file mode 100644 index 00000000000..b47c68ee2be Binary files /dev/null and b/modular_zubbers/icons/mob/clothing/under/security.dmi differ diff --git a/modular_zubbers/icons/mob/clothing/under/security_digi.dmi b/modular_zubbers/icons/mob/clothing/under/security_digi.dmi new file mode 100644 index 00000000000..5e92ddce255 Binary files /dev/null and b/modular_zubbers/icons/mob/clothing/under/security_digi.dmi differ diff --git a/modular_zubbers/icons/obj/clothing/suits/armor.dmi b/modular_zubbers/icons/obj/clothing/suits/armor.dmi new file mode 100644 index 00000000000..5642cf7f2fd Binary files /dev/null and b/modular_zubbers/icons/obj/clothing/suits/armor.dmi differ diff --git a/modular_zubbers/icons/obj/clothing/suits/labcoat.dmi b/modular_zubbers/icons/obj/clothing/suits/labcoat.dmi new file mode 100644 index 00000000000..e5f05ea2cc3 Binary files /dev/null and b/modular_zubbers/icons/obj/clothing/suits/labcoat.dmi differ diff --git a/modular_zubbers/icons/obj/clothing/under/security.dmi b/modular_zubbers/icons/obj/clothing/under/security.dmi new file mode 100644 index 00000000000..7d69e3ee9a6 Binary files /dev/null and b/modular_zubbers/icons/obj/clothing/under/security.dmi differ diff --git a/tgstation.dme b/tgstation.dme index d5ebce08bf9..67906ea468a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7160,7 +7160,9 @@ #include "modular_zubbers\code\game\objects\items\food\misc.dm" #include "modular_zubbers\code\game\objects\items\storage\boxes.dm" #include "modular_zubbers\code\modules\_defines.dm" +#include "modular_zubbers\code\modules\alternative_job_titles\code\alt_job_titles.dm" #include "modular_zubbers\code\modules\asset_cache\assets\arcade.dm" +#include "modular_zubbers\code\modules\automapper\code\area_spawn_entries.dm" #include "modular_zubbers\code\modules\borer_hud\borer.dm" #include "modular_zubbers\code\modules\bsrpd\code\bsrpd.dm" #include "modular_zubbers\code\modules\clothing\head\helmet.dm" @@ -7172,6 +7174,8 @@ #include "modular_zubbers\code\modules\clothing\outfits\prison_headset.dm" #include "modular_zubbers\code\modules\clothing\suits\armor.dm" #include "modular_zubbers\code\modules\clothing\suits\jacket.dm" +#include "modular_zubbers\code\modules\customization\modules\clothing\under\security.dm" +#include "modular_zubbers\code\modules\customization\modules\jobs\_job.dm" #include "modular_zubbers\code\modules\customization\sprite_accessories\ears.dm" #include "modular_zubbers\code\modules\customization\sprite_accessories\genitals.dm" #include "modular_zubbers\code\modules\customization\sprite_accessories\horns.dm" @@ -7219,9 +7223,12 @@ #include "modular_zubbers\code\modules\pai\ghost_pai.dm" #include "modular_zubbers\code\modules\paperwork\fax.dm" #include "modular_zubbers\code\modules\projectiles\guns\energy\pulse.dm" +#include "modular_zubbers\code\modules\protected_roles\code\antag_restricted_jobs.dm" #include "modular_zubbers\code\modules\research\designs\comp_board_designs.dm" #include "modular_zubbers\code\modules\research\designs\machine_board_designs.dm" #include "modular_zubbers\code\modules\research\designs\medical_designs.dm" +#include "modular_zubbers\code\modules\sec_haul\code\security_medic\secmed_clothes.dm" +#include "modular_zubbers\code\modules\sec_haul\code\security_medic\security_medic.dm" #include "modular_zubbers\code\modules\status_indicators\status_indicator.dm" #include "modular_zubbers\code\modules\status_indicators\status_indicator_pref.dm" #include "modular_zubbers\code\modules\surgery\bodyparts\species_parts\misc_bodyparts.dm"