From 1c17fb7dfb9dc1c4f80e9da041bb631b686476bf Mon Sep 17 00:00:00 2001 From: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com> Date: Sat, 13 Feb 2021 01:34:13 +0000 Subject: [PATCH] Prison Wars Episode 6: Return of the Genpop (#3322) * Adjusts miner and prisoner slots * Update landmarks.dm * Oh yeah, borg slots. * Merge branch 'master' into Shafts-uwu * Genpop * IDs say hi once sentence is up * azzu wazzu helps linters * wazzu azzu! * Update turnstile.dm * Update turnstile.dm * Update turnstile.dm * the dme! * Stops you shooting through turnstiles You can still cross into them though. You just can't yeet stuff through them. --- code/__DEFINES/access.dm | 5 + code/game/objects/items/cards_ids.dm | 37 ++++++ code/modules/jobs/access.dm | 14 ++- .../jobs/job_types/head_of_security.dm | 4 +- .../jobs/job_types/security_officer.dm | 6 +- .../code/modules/jobs/job_types/blueshield.dm | 4 +- modular_skyrat/modules/mapping/code/genpop.dm | 119 ++++++++++++++++++ .../modules/mapping/code/quest_succeeded.ogg | Bin 0 -> 50113 bytes .../modules/mapping/code/turnstile.dm | 81 ++++++++++++ .../modules/mapping/icons/turnstile.dmi | Bin 0 -> 5668 bytes .../code/security_medic/security_medic.dm | 4 +- .../security_sergeant/security_sergeant.dm | 4 +- tgstation.dme | 4 +- 13 files changed, 267 insertions(+), 15 deletions(-) create mode 100644 modular_skyrat/modules/mapping/code/genpop.dm create mode 100644 modular_skyrat/modules/mapping/code/quest_succeeded.ogg create mode 100644 modular_skyrat/modules/mapping/code/turnstile.dm create mode 100644 modular_skyrat/modules/mapping/icons/turnstile.dmi 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 0000000000000000000000000000000000000000..f27893c6c432d43dfe3dc2f93d50b2a9434cb862 GIT binary patch literal 50113 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�Wl1$fAT~{qEApal<<=QX2 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 NnXt5pv*8B#{{Xk{g*5;G literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7fb778a95ed80929c48e23b1e36e7be4688893f6 GIT binary patch literal 5668 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 literal 0 HcmV?d00001 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"