diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm
index dbb8ed24d60..3145e0397b9 100644
--- a/code/__DEFINES/access.dm
+++ b/code/__DEFINES/access.dm
@@ -85,6 +85,11 @@
/// Room and launching.
#define ACCESS_AUX_BASE 72
+// SKYRAT EDIT: Start - Modular Access (See Blueshield module for theirs)
+#define ACCESS_ENTER_GENPOP 80
+#define ACCESS_LEAVE_GENPOP 81
+// SKYRAT EDIT: End - Modular Access
+
//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
Mostly for admin fun times.*/
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index a6be3ffc984..3bf967dca0d 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -630,9 +630,46 @@ update_label()
var/goal = 0 //How far from freedom?
var/points = 0
registered_age = null
+ // SKYRAT EDIT: Start - Genpop IDs
+ access = list(ACCESS_ENTER_GENPOP)
+ var/sentence = 0 //When world.time is greater than this number, the card will have its ACCESS_ENTER_GENPOP access replaced with ACCESS_LEAVE_GENPOP the next time it's checked, unless this value is 0/null
+ var/crime= "\[REDACTED\]"
+/obj/item/card/id/prisoner/GetAccess()
+ if((sentence && world.time >= sentence) || (goal && points >= goal))
+ access = list(ACCESS_LEAVE_GENPOP)
+ return ..()
+
+/obj/item/card/id/prisoner/examine(mob/user)
+ . = ..()
+ if(sentence && world.time < sentence)
+ to_chat(user, "You're currently serving a sentence for [crime]. [DisplayTimeText(sentence - world.time)] left.")
+ else if(goal)
+ to_chat(user, "You have accumulated [points] out of the [goal] points you need for freedom.")
+ else if(!sentence)
+ to_chat(user, "You are currently serving a permanent sentence for [crime].")
+ else
+ to_chat(user, "Your sentence is up! You're free!")
+/*
/obj/item/card/id/prisoner/attack_self(mob/user)
to_chat(usr, "You have accumulated [points] out of the [goal] points you need for freedom.")
+*/
+/obj/item/card/id/prisoner/process()
+ if(!sentence)
+ STOP_PROCESSING(SSobj, src)
+ return
+ if(world.time >= sentence)
+ if(prob(90))
+ playsound(loc, 'sound/machines/ping.ogg', 50, 1)
+ if(isliving(loc))
+ to_chat(loc, "[src] buzzes: You have served your sentence! You may now exit prison through the turnstiles and collect your belongings.")
+ else
+ playsound(loc, 'modular_skyrat/modules/mapping/code/quest_succeeded.ogg', 50, 1)
+ if(isliving(loc))
+ to_chat(loc, "[src]Quest Completed! Serve your prison sentence. You may now leave the prison through the turnstiles and return this ID to the locker to retrieve your belongings.")
+ STOP_PROCESSING(SSobj, src)
+ return
+ // SKYRAT EDIT: End - Genpop IDs
/obj/item/card/id/prisoner/one
name = "Prisoner #13-001"
diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm
index 797acba5377..d34964d56ba 100644
--- a/code/modules/jobs/access.dm
+++ b/code/modules/jobs/access.dm
@@ -152,8 +152,10 @@
ACCESS_MECH_MINING, ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY, ACCESS_MECH_MEDICAL,
ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_PHARMACY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_TOXINS_STORAGE,
- //SKYRAT EDIT ADDITION - BLUESHIELD
- ACCESS_BLUESHIELD
+ //SKYRAT EDIT ADDITION - BLUESHIELD & GENPOP
+ ACCESS_BLUESHIELD,
+ ACCESS_ENTER_GENPOP,
+ ACCESS_LEAVE_GENPOP
//SKYRAT EDIT ADDITION END
)
@@ -181,7 +183,7 @@
if(1) //station general
return list(ACCESS_KITCHEN,ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_LAWYER)
if(2) //security
- return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_HOS)
+ return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_HOS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
if(3) //medbay
return list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_MECH_MEDICAL, ACCESS_CMO, ACCESS_PHARMACY, ACCESS_PSYCHOLOGY)
if(4) //research
@@ -350,6 +352,12 @@
return "Engineering Mech Access"
if(ACCESS_AUX_BASE)
return "Auxiliary Base"
+// SKYRAT EDIT: Start - Modular Access
+ if(ACCESS_ENTER_GENPOP)
+ return "Prison Turnstile Entrance"
+ if(ACCESS_LEAVE_GENPOP)
+ return "Prison Turnstile Exit"
+// SKYRAT EDIT: End - Modular Access
/proc/get_centcom_access_desc(A)
switch(A)
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index 8dced2e64a1..bc309b51bf3 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -22,11 +22,11 @@
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_AUX_BASE,
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, ACCESS_EVA, ACCESS_TELEPORTER,
- ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
+ ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_AUX_BASE,
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, ACCESS_EVA,
- ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
+ ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
paycheck = PAYCHECK_COMMAND
paycheck_department = ACCOUNT_SEC
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index f76df794544..a1a255a47a6 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -5,7 +5,7 @@
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, security sergeants, and the head of your assigned department (if applicable)"
+ supervisors = "the head of security, security sergeants, and the head of your assigned department (if applicable)" // SKYRAT EDIT: Adds mention of the security sergeant.
selection_color = "#ffeeee"
minimal_player_age = 7
exp_requirements = 300
@@ -13,8 +13,8 @@
outfit = /datum/outfit/job/security
- access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
- minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM) // See /datum/job/officer/get_access()
+ access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
+ minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // See /datum/job/officer/get_access() // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
paycheck = PAYCHECK_HARD
paycheck_department = ACCOUNT_SEC
diff --git a/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm b/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm
index 575e7da1bd4..93141808346 100644
--- a/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm
+++ b/modular_skyrat/modules/blueshield/code/modules/jobs/job_types/blueshield.dm
@@ -17,9 +17,9 @@
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_HEADS, \
ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_MORGUE, \
ACCESS_RESEARCH, ACCESS_CARGO, \
- ACCESS_RC_ANNOUNCE, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BLUESHIELD)
+ ACCESS_RC_ANNOUNCE, ACCESS_GATEWAY, ACCESS_WEAPONS, ACCESS_BLUESHIELD, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP)
minimal_access = list(ACCESS_FORENSICS_LOCKERS, ACCESS_SEC_DOORS, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_ENGINE, ACCESS_MAINT_TUNNELS, ACCESS_RESEARCH,
- ACCESS_RC_ANNOUNCE, ACCESS_HEADS, ACCESS_BLUESHIELD, ACCESS_WEAPONS)
+ ACCESS_RC_ANNOUNCE, ACCESS_HEADS, ACCESS_BLUESHIELD, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP)
display_order = JOB_DISPLAY_ORDER_BLUESHIELD
outfit = /datum/outfit/job/blueshield
diff --git a/modular_skyrat/modules/mapping/code/genpop.dm b/modular_skyrat/modules/mapping/code/genpop.dm
new file mode 100644
index 00000000000..70f9ccb4e06
--- /dev/null
+++ b/modular_skyrat/modules/mapping/code/genpop.dm
@@ -0,0 +1,119 @@
+/obj/structure/closet/secure_closet/genpop
+ desc = "It's a secure locker for inmates's personal belongings."
+ var/default_desc = "It's a secure locker for the storage inmates's personal belongings during their time in prison."
+ name = "prisoner closet"
+ var/default_name = "prisoner closet"
+ req_access = list(ACCESS_BRIG)
+ var/obj/item/card/id/prisoner/registered_id = null
+ icon = 'modular_skyrat/modules/mapping/icons/turnstile.dmi'
+ icon_state = "prisoner"
+ locked = FALSE
+ anchored = TRUE
+ opened = TRUE
+ density = FALSE
+
+/obj/structure/closet/secure_closet/genpop/attackby(obj/item/W, mob/user, params)
+ if(!broken && locked && W == registered_id) //Prisoner opening
+ handle_prisoner_id(user)
+ return
+
+ return ..()
+
+/obj/structure/closet/secure_closet/genpop/proc/handle_prisoner_id(mob/user)
+ var/obj/item/card/id/prisoner/prisoner_id = null
+ for(prisoner_id in user.held_items)
+ if(prisoner_id != registered_id)
+ prisoner_id = null
+ else
+ break
+
+ if(!prisoner_id)
+ to_chat(user, "Access Denied.")
+ return FALSE
+
+ qdel(registered_id)
+ registered_id = null
+ locked = FALSE
+ open(user)
+ desc = "It's a secure locker for prisoner effects."
+ to_chat(user, "You insert your prisoner id into \the [src] and it springs open!")
+
+ return TRUE
+
+/obj/structure/closet/secure_closet/genpop/proc/handle_edit_sentence(mob/user)
+ var/prisoner_name = input(user, "Please input the name of the prisoner.", "Prisoner Name", registered_id.registered_name) as text|null
+ if(prisoner_name == null | !user.Adjacent(src))
+ return FALSE
+ var/sentence_length = input(user, "Please input the length of their sentence in minutes (0 for perma).", "Sentence Length", registered_id.sentence) as num|null
+ if(sentence_length == null | !user.Adjacent(src))
+ return FALSE
+ var/crimes = input(user, "Please input their crimes.", "Crimes", registered_id.crime) as text|null
+ if(crimes == null | !user.Adjacent(src))
+ return FALSE
+
+ registered_id.registered_name = prisoner_name
+ var/filteredsentlength = text2num(sentence_length)
+ registered_id.sentence = filteredsentlength ? (filteredsentlength MINUTES) + world.time : 0
+ registered_id.crime = crimes
+ registered_id.update_label(prisoner_name, registered_id.assignment)
+ if(registered_id.sentence)
+ START_PROCESSING(SSobj, registered_id)
+ else
+ STOP_PROCESSING(SSobj, registered_id)
+
+ name = "[default_name] ([prisoner_name])"
+ desc = "[default_desc] It contains the personal effects of [prisoner_name]."
+
+ return TRUE
+
+/obj/structure/closet/secure_closet/genpop/togglelock(mob/living/user, silent)
+ if(!allowed(user))
+ return ..()
+
+ if(!broken && locked && registered_id != null)
+ var/name = registered_id.registered_name
+ var/result = alert(user, "This locker currently contains [name]'s personal belongings ","Locker In Use","Reset","Amend ID", "Open")
+ if(!user.Adjacent(src))
+ return
+ if(result == "Reset")
+ name = default_name
+ desc = default_desc
+ registered_id = null
+ if(result == "Open" | result == "Reset")
+ locked = FALSE
+ open(user)
+ if(result == "Amend ID")
+ handle_edit_sentence(user)
+ else
+ return ..()
+
+/obj/structure/closet/secure_closet/genpop/close(mob/living/user)
+ if(registered_id != null)
+ locked = TRUE
+ return ..()
+
+/obj/structure/closet/secure_closet/genpop/attack_hand(mob/living/user)
+ if(user.body_position == LYING_DOWN && get_dist(src, user) > 0)
+ return
+
+ if(!broken && registered_id != null && (registered_id in user.held_items))
+ handle_prisoner_id(user)
+ return
+
+ if(!broken && opened && !locked && allowed(user) && !registered_id) //Genpop setup
+
+ registered_id = new /obj/item/card/id/prisoner/(src.contents)
+ if(handle_edit_sentence(user))
+ close(user)
+ locked = TRUE
+ update_icon()
+ registered_id.forceMove(src.loc)
+ new /obj/item/clothing/under/rank/prisoner(src.loc)
+ new /obj/item/clothing/shoes/sneakers/orange(src.loc)
+ else
+ qdel(registered_id)
+ registered_id = null
+
+ return
+
+ ..()
diff --git a/modular_skyrat/modules/mapping/code/quest_succeeded.ogg b/modular_skyrat/modules/mapping/code/quest_succeeded.ogg
new file mode 100644
index 00000000000..f27893c6c43
Binary files /dev/null and b/modular_skyrat/modules/mapping/code/quest_succeeded.ogg differ
diff --git a/modular_skyrat/modules/mapping/code/turnstile.dm b/modular_skyrat/modules/mapping/code/turnstile.dm
new file mode 100644
index 00000000000..74c0061bfae
--- /dev/null
+++ b/modular_skyrat/modules/mapping/code/turnstile.dm
@@ -0,0 +1,81 @@
+/obj/machinery/turnstile
+ name = "turnstile"
+ desc = "A mechanical door that permits one-way access and prevents tailgating."
+ icon = 'modular_skyrat/modules/mapping/icons/turnstile.dmi'
+ icon_state = "turnstile_map"
+ density = TRUE
+ armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70)
+ anchored = TRUE
+ use_power = FALSE
+ idle_power_usage = 2
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
+ layer = OPEN_DOOR_LAYER
+
+/obj/machinery/turnstile/Initialize()
+ . = ..()
+ icon_state = "turnstile"
+
+/obj/machinery/turnstile/CanAtmosPass(turf/T)
+ return TRUE
+
+/obj/machinery/turnstile/bullet_act(obj/projectile/P, def_zone)
+ return -1 //Pass through!
+
+/obj/machinery/turnstile/proc/allowed_access(var/mob/B)
+ if(B.pulledby && ismob(B.pulledby))
+ return allowed(B.pulledby) | allowed(B)
+ else
+ return allowed(B)
+
+/obj/machinery/turnstile/Cross(atom/movable/AM, turf/T)
+ if(ismob(AM))
+ var/mob/B = AM
+ if(isliving(AM))
+ var/mob/living/M = AM
+
+ if(world.time - M.last_bumped <= 5)
+ return FALSE
+ M.last_bumped = world.time
+
+ var/allowed_access = FALSE
+ var/turf/behind = get_step(src, dir)
+
+ if(B in behind.contents)
+ allowed_access = allowed_access(B)
+ else
+ to_chat(usr, "\the [src] resists your efforts.")
+ return FALSE
+
+ if(allowed_access)
+ flick("operate", src)
+ playsound(src,'sound/items/ratchet.ogg',50,0,3)
+ return TRUE
+ else
+ flick("deny", src)
+ playsound(src,'sound/machines/deniedbeep.ogg',50,0,3)
+ return FALSE
+ return..()
+
+/obj/machinery/turnstile/CheckExit(atom/movable/AM as mob|obj, target)
+ if(isliving(AM))
+ var/mob/living/M = AM
+ var/outdir = dir
+ if(allowed_access(M))
+ switch(dir)
+ if(NORTH)
+ outdir = SOUTH
+ if(SOUTH)
+ outdir = NORTH
+ if(EAST)
+ outdir = WEST
+ if(WEST)
+ outdir = EAST
+ var/turf/outturf = get_step(src, outdir)
+ var/canexit = (target == src.loc) | (target == outturf)
+
+ if(!canexit && world.time - M.last_bumped <= 5)
+ to_chat(usr, "\the [src] resists your efforts.")
+ M.last_bumped = world.time
+ return canexit
+ else
+ return TRUE
diff --git a/modular_skyrat/modules/mapping/icons/turnstile.dmi b/modular_skyrat/modules/mapping/icons/turnstile.dmi
new file mode 100644
index 00000000000..7fb778a95ed
Binary files /dev/null and b/modular_skyrat/modules/mapping/icons/turnstile.dmi differ
diff --git a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
index 495c25efa8c..926f1d7b2d2 100644
--- a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
+++ b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
@@ -14,8 +14,8 @@
outfit = /datum/outfit/job/security_medic
- access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM, ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY)
- minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM, ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MAINT_TUNNELS)
+ access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM, ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
+ minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM, ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MAINT_TUNNELS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
paycheck = PAYCHECK_MEDIUM
paycheck_department = ACCOUNT_SEC
diff --git a/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm b/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm
index b8eff336a66..6c7f6d90052 100644
--- a/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm
+++ b/modular_skyrat/modules/sec_haul/code/security_sergeant/security_sergeant.dm
@@ -13,8 +13,8 @@
outfit = /datum/outfit/job/security_sergeant
- access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
- minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS)
+ access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM, ACCESS_ENTER_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
+ minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP) // SKYRAT EDIT: Adds ACCESS_ENTER_GENPOP and ACCESS_LEAVE_GENPOP
paycheck = PAYCHECK_HARD
paycheck_department = ACCOUNT_SEC
diff --git a/tgstation.dme b/tgstation.dme
index 85dbc11b9ed..4e3105c215b 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3793,12 +3793,15 @@
#include "modular_skyrat\modules\layer_shift\code\modules\mob\mob_movement.dm"
#include "modular_skyrat\modules\mapping\code\dungeon.dm"
#include "modular_skyrat\modules\mapping\code\furniture.dm"
+#include "modular_skyrat\modules\mapping\code\genpop.dm"
#include "modular_skyrat\modules\mapping\code\planet_turfs.dm"
#include "modular_skyrat\modules\mapping\code\pool.dm"
#include "modular_skyrat\modules\mapping\code\radio.dm"
+#include "modular_skyrat\modules\mapping\code\turnstile.dm"
#include "modular_skyrat\modules\mapping\code\datums\shuttles.dm"
#include "modular_skyrat\modules\mapping\code\datums\ruins\icemoon.dm"
#include "modular_skyrat\modules\mapping\code\datums\ruins\lavaland.dm"
+#include "modular_skyrat\modules\mapping\code\datums\ruins\space.dm"
#include "modular_skyrat\modules\mapping\code\game\area\areas\shuttles.dm"
#include "modular_skyrat\modules\mapping\code\game\gamemodes\brother\traitor_bro.dm"
#include "modular_skyrat\modules\mapping\code\game\gamemodes\changeling\changeling.dm"
@@ -3809,7 +3812,6 @@
#include "modular_skyrat\modules\mapping\code\game\gamemodes\revolution\revolution.dm"
#include "modular_skyrat\modules\mapping\code\game\gamemodes\traitor\traitor.dm"
#include "modular_skyrat\modules\mapping\code\game\objects\effects\landmarks.dm"
-#include "modular_skyrat\modules\mapping\code\datums\ruins\space.dm"
#include "modular_skyrat\modules\mapping\code\game\objects\structures\ghost_role_spawners.dm"
#include "modular_skyrat\modules\mapping\code\modules\clothing\gloves\color.dm"
#include "modular_skyrat\modules\mapping\code\modules\clothing\head\jobs.dm"