diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index ab8ce2a28ff..fca578cc30d 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -779,6 +779,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "abN" = ( @@ -957,7 +958,7 @@ name = "Unisex Restroom" }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "aci" = ( /obj/vehicle/ridden/secway, /turf/open/floor/plasteel/dark, @@ -1177,6 +1178,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "acK" = ( @@ -1189,7 +1191,7 @@ dir = 4 }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "acL" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -1366,7 +1368,7 @@ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "adg" = ( /obj/machinery/button/door{ id = "armory"; @@ -52864,6 +52866,11 @@ /obj/structure/cable, /turf/open/floor/engine, /area/science/xenobiology) +"vgp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plasteel, +/area/security/prison) "vhn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -78552,7 +78559,7 @@ aat aat aat ace -aat +vgp aat adH aei diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index a63846a283d..712de9c3403 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -64,6 +64,43 @@ /obj/effect/mapping_helpers/iannewyear, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hop) +"aaj" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/soap/nanotrasen, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison/toilet) +"aak" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison/toilet) +"aal" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison/toilet) "aao" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -17208,15 +17245,6 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"aMc" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap/nanotrasen, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/security/prison) "aMd" = ( /obj/structure/table, /obj/item/storage/crayons, @@ -17893,34 +17921,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aNx" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/security/prison) -"aNy" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/security/prison) "aNz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -22168,6 +22168,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "aUx" = ( @@ -22212,6 +22213,7 @@ dir = 8 }, /obj/structure/cable, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "aUA" = ( @@ -22240,6 +22242,7 @@ /area/security/prison) "aUB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -168343,8 +168346,8 @@ ajr aaa aad aFm -aMc -aNx +aaj +aak aFm aQY aSE @@ -168601,7 +168604,7 @@ aaa aad aFm aKV -aNy +aal aFm aFm aFm diff --git a/_maps/map_files/Donutstation/Donutstation.dmm b/_maps/map_files/Donutstation/Donutstation.dmm index b5cd98deb61..0c1fa9799ca 100644 --- a/_maps/map_files/Donutstation/Donutstation.dmm +++ b/_maps/map_files/Donutstation/Donutstation.dmm @@ -9073,6 +9073,7 @@ /obj/machinery/atmospherics/pipe/simple/dark/hidden/layer1{ dir = 4 }, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "ayQ" = ( @@ -10884,11 +10885,11 @@ name = "Unisex Restroom" }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "aDS" = ( /obj/structure/toilet, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "aDT" = ( /obj/structure/sink{ dir = 8; @@ -10981,7 +10982,7 @@ pixel_x = 11 }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "aEf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -18561,6 +18562,7 @@ dir = 9 }, /obj/structure/cable, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "aZz" = ( @@ -18596,6 +18598,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 9 }, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "aZD" = ( @@ -21675,7 +21678,7 @@ "bhp" = ( /obj/machinery/light/small, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "bhq" = ( /obj/structure/table, /obj/machinery/recharger, @@ -47861,6 +47864,9 @@ }, /turf/open/space/basic, /area/space/nearstation) +"rrH" = ( +/turf/open/floor/plasteel/freezer, +/area/security/prison/toilet) "rrR" = ( /obj/structure/cable, /turf/open/floor/plasteel/dark, @@ -102743,7 +102749,7 @@ aZE arp arq aDR -arq +rrH aDQ aDQ baB @@ -103000,8 +103006,8 @@ aeQ afq aiN aiN -arq -arq +rrH +rrH aij bDI aNZ @@ -103257,7 +103263,7 @@ aeZ afx aiN aDS -arq +rrH bhp aij aEb @@ -103514,7 +103520,7 @@ aeZ afy aiN aDS -arq +rrH aEe aij aaa diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 02408241834..56902361956 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -8066,7 +8066,7 @@ /obj/effect/decal/cleanable/blood/gibs/limb, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "anb" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -8318,7 +8318,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "anv" = ( /obj/machinery/computer/secure_data{ dir = 8 @@ -47498,7 +47498,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/prison/toilet) "btj" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ @@ -51949,7 +51949,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "bAl" = ( /obj/effect/turf_decal/tile/green{ dir = 4 @@ -57698,8 +57698,9 @@ dir = 1; pixel_y = -22 }, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "bIU" = ( /obj/machinery/camera{ c_tag = "Atmospherics Tank - O2"; @@ -58180,7 +58181,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/prison/toilet) "bJC" = ( /obj/machinery/status_display/ai, /turf/closed/wall, @@ -75444,7 +75445,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/prison/toilet) "cjL" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -75468,8 +75469,9 @@ pixel_y = -22 }, /obj/structure/cable, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cjM" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -75498,7 +75500,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cjN" = ( /obj/machinery/door/airlock/security/glass{ name = "Long-Term Cell 3"; @@ -75516,7 +75518,7 @@ }, /obj/structure/cable, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/prison/toilet) "cjO" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -86886,7 +86888,7 @@ /obj/effect/decal/cleanable/blood/gibs/old, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cCv" = ( /obj/structure/bed, /obj/item/bedsheet/black, @@ -86913,7 +86915,7 @@ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cCw" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -86939,7 +86941,7 @@ network = list("ss13","prison") }, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cCx" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -88912,7 +88914,7 @@ network = list("ss13","prison") }, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cFS" = ( /obj/structure/lattice/catwalk, /obj/effect/landmark/carpspawn, @@ -93454,7 +93456,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/prison/toilet) "cPb" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -93526,8 +93528,9 @@ dir = 1; pixel_y = -22 }, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cQP" = ( /obj/machinery/door/airlock/security/glass{ name = "Long-Term Cell 2"; @@ -93544,7 +93547,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/prison/toilet) "cRB" = ( /obj/structure/table, /obj/item/paper_bin, @@ -93655,7 +93658,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, -/area/security/prison) +/area/security/prison/toilet) "cTl" = ( /obj/machinery/button/flasher{ id = "PCell 3"; diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c044fdf7bfb..bb40cd4f88e 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -840,7 +840,7 @@ name = "Unisex Restroom" }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "abZ" = ( /obj/structure/table, /obj/item/book/manual/chef_recipes{ @@ -967,7 +967,7 @@ dir = 4 }, /turf/open/floor/plasteel/freezer, -/area/security/prison) +/area/security/prison/toilet) "acq" = ( /obj/structure/table, /obj/item/storage/box/donkpockets{ @@ -71839,6 +71839,11 @@ }, /turf/open/floor/plasteel/white, /area/medical/chemistry) +"fos" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plasteel, +/area/security/prison) "ftu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -75966,6 +75971,13 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/science/misc_lab/range) +"vVP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plasteel, +/area/security/prison) "vWK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -98754,7 +98766,7 @@ aaI aaI acE adb -abE +fos abE aem aeN @@ -99782,7 +99794,7 @@ aca act acI add -acv +vVP adS aen aeM @@ -100810,7 +100822,7 @@ abE abE abE ade -abE +fos abE aeo aeQ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 44b86954ddd..d6aac364302 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -361,6 +361,30 @@ /obj/effect/mapping_helpers/iannewyear, /turf/open/floor/wood, /area/crew_quarters/heads/hop) +"aaU" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/toilet) +"aaV" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/toilet) +"aaW" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plasteel/freezer, +/area/security/prison/toilet) "abf" = ( /obj/structure/bed, /turf/open/floor/plating, @@ -2049,12 +2073,6 @@ /obj/structure/cable, /turf/open/floor/plasteel/dark, /area/security/prison) -"agC" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) "agD" = ( /obj/machinery/light/small{ dir = 8 @@ -2107,6 +2125,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "agK" = ( @@ -2152,6 +2171,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/effect/landmark/start/prisoner, /turf/open/floor/plasteel, /area/security/prison) "agN" = ( @@ -2172,17 +2192,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/security/prison) -"agO" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) "agP" = ( /turf/closed/wall, /area/security/main) @@ -2260,12 +2269,6 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/security/prison) -"ahb" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) "ahd" = ( /obj/structure/closet/secure_closet/security/sec, /obj/effect/turf_decal/delivery, @@ -80192,9 +80195,9 @@ afs agy agd agp -agC -agO -ahb +aaU +aaV +aaW agy ahK aih diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 9f4966af3fa..55a3da0bc35 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -42,6 +42,7 @@ #define CLOWN (1<<11) #define MIME (1<<12) #define ASSISTANT (1<<13) +#define PRISONER (1<<14) #define JOB_AVAILABLE 0 #define JOB_UNAVAILABLE_GENERIC 1 @@ -88,3 +89,4 @@ #define JOB_DISPLAY_ORDER_WARDEN 31 #define JOB_DISPLAY_ORDER_DETECTIVE 32 #define JOB_DISPLAY_ORDER_SECURITY_OFFICER 33 +#define JOB_DISPLAY_ORDER_PRISONER 34 diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 72809934140..3498514b44d 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -133,6 +133,8 @@ heirloom_type = /obj/item/reagent_containers/food/drinks/bottle/whiskey if("Lawyer") heirloom_type = pick(/obj/item/gavelhammer, /obj/item/book/manual/wiki/security_space_law) + if("Prisoner") + heirloom_type = /obj/item/pen/blue //RnD if("Research Director") heirloom_type = /obj/item/toy/plush/slimeplushie diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index d0fff8da9fe..f8ff3df98fb 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -18,7 +18,7 @@ area_type = /area protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer, - /area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle) + /area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/security/prison/toilet, /area/shuttle) target_trait = ZTRAIT_STATION immunity_type = "rad" diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index cabebc3ac90..d34788fe68b 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -733,6 +733,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Prison Wing" icon_state = "sec_prison" +/area/security/prison/toilet + name = "Prison Toilet" + icon_state = "sec_prison" + /area/security/processing name = "Labor Shuttle Dock" icon_state = "sec_prison" diff --git a/code/game/gamemodes/brother/traitor_bro.dm b/code/game/gamemodes/brother/traitor_bro.dm index 9867e43cc71..babddde0161 100644 --- a/code/game/gamemodes/brother/traitor_bro.dm +++ b/code/game/gamemodes/brother/traitor_bro.dm @@ -5,7 +5,7 @@ /datum/game_mode/traitor/bros name = "traitor+brothers" config_tag = "traitorbro" - restricted_jobs = list("AI", "Cyborg") + restricted_jobs = list("Prisoner","AI", "Cyborg") announce_span = "danger" announce_text = "There are Syndicate agents and Blood Brothers on the station!\n\ diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 9d34df04b06..b94719825f3 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -12,7 +12,7 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th antag_flag = ROLE_CHANGELING false_report_weight = 10 restricted_jobs = list("AI", "Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") + protected_jobs = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") required_players = 15 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index 96ed649251d..745883428b3 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -4,7 +4,7 @@ report_type = "traitorchan" false_report_weight = 10 traitors_possible = 3 //hard limit on traitors if scaling is turned off - restricted_jobs = list("AI", "Cyborg") + restricted_jobs = list("Prisoner","AI", "Cyborg") required_players = 25 required_enemies = 1 // how many of each type are required recommended_enemies = 3 diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 5046543c33a..9677b9f1205 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -36,7 +36,7 @@ report_type = "cult" antag_flag = ROLE_CULTIST false_report_weight = 10 - restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") + restricted_jobs = list("Prisoner","Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") protected_jobs = list() required_players = 29 required_enemies = 4 diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm index 09b8326d5c2..4d03ecb1414 100644 --- a/code/game/gamemodes/devil/devil_game_mode.dm +++ b/code/game/gamemodes/devil/devil_game_mode.dm @@ -4,7 +4,7 @@ report_type = "devil" antag_flag = ROLE_DEVIL false_report_weight = 1 - protected_jobs = list("Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI") + protected_jobs = list("Prisoner", "Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI") required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm index 1a51137b146..83d90192aaf 100644 --- a/code/game/gamemodes/monkey/monkey.dm +++ b/code/game/gamemodes/monkey/monkey.dm @@ -13,7 +13,7 @@ required_enemies = 1 recommended_enemies = 1 - restricted_jobs = list("Cyborg", "AI") + restricted_jobs = list("Prisoner", "Cyborg", "AI") announce_span = "Monkey" announce_text = "One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to CentCom. Monkeys: Ensure that your kind lives on! Rise up against your captors!" diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index cca64be11d8..6ce819c0279 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -13,7 +13,7 @@ report_type = "revolution" antag_flag = ROLE_REV false_report_weight = 10 - restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + restricted_jobs = list("Prisoner","Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") required_jobs = list(list("Captain"=1),list("Head of Personnel"=1),list("Head of Security"=1),list("Chief Engineer"=1),list("Research Director"=1),list("Chief Medical Officer"=1)) //Any head present required_players = 30 required_enemies = 2 diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index f0a2351aeac..b6f9342be55 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -12,7 +12,7 @@ antag_flag = ROLE_TRAITOR false_report_weight = 20 //Reports of traitors are pretty common. restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") + protected_jobs = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain") required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 8254f54322b..f76b35664e0 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -67,6 +67,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) jobspawn_override = TRUE delete_after_roundstart = FALSE +/obj/effect/landmark/start/prisoner + name = "Prisoner" + icon_state = "Prisoner" + /obj/effect/landmark/start/janitor name = "Janitor" icon_state = "Janitor" diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm index 03708777a4a..1016f0675e8 100644 --- a/code/modules/clothing/outfits/plasmaman.dm +++ b/code/modules/clothing/outfits/plasmaman.dm @@ -53,6 +53,12 @@ head = /obj/item/clothing/head/helmet/space/plasmaman/security/warden uniform = /obj/item/clothing/under/plasmaman/security/warden +/datum/outfit/plasmaman/prisoner + name = "Prisoner Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman/prisoner + uniform = /obj/item/clothing/under/plasmaman/prisoner + /datum/outfit/plasmaman/cargo name = "Cargo Plasmaman" diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index f4721267919..94c6154d7c7 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -156,6 +156,10 @@ icon_state = "warden_envirohelm" item_state = "warden_envirohelm" +/obj/item/clothing/head/helmet/space/plasmaman/prisoner + name = "prisoner's plasma envirosuit helmet" + desc = "A plasmaman containment helmet for prisoners." + /obj/item/clothing/head/helmet/space/plasmaman/medical name = "medical doctor's plasma envirosuit helmet" desc = "An envirohelmet designed for plasmaman medical doctors, having two stripes down its length to denote as much." diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 02f9691779f..9de5b69cf38 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -60,6 +60,12 @@ icon_state = "clown_envirosuit" item_state = "clown_envirosuit" +/obj/item/clothing/under/plasmaman/prisoner + name = "prisoner envirosuit" + desc = "An orange envirosuit identifying and protecting a criminal plasmaman." + icon_state = "prisoner_envirosuit" + item_state = "prisoner_envirosuit" + /obj/item/clothing/under/plasmaman/clown/Extinguish(mob/living/carbon/human/H) if(!istype(H)) return diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index bbebdaa1ac7..a7cec2c2a55 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -359,7 +359,7 @@ return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Paramedic", "Chemist", "Geneticist", "Virologist", - "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") + "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Prisoner") /proc/get_all_job_icons() //For all existing HUD icons return get_all_jobs() + list("Prisoner", "Emergency Response Team Commander", "Security Response Officer", "Engineering Response Officer", "Medical Response Officer", "Entertainment Response Officer", "Religious Response Officer", "Janitorial Response Officer", "Death Commando") diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm new file mode 100644 index 00000000000..290c3d11c58 --- /dev/null +++ b/code/modules/jobs/job_types/prisoner.dm @@ -0,0 +1,23 @@ +/datum/job/prisoner + title = "Prisoner" + flag = PRISONER + department_head = list("The Security Team") + department_flag = CIVILIAN + faction = "Station" + total_positions = 2 + spawn_positions = 2 + supervisors = "the security team" + + outfit = /datum/outfit/job/prisoner + + display_order = JOB_DISPLAY_ORDER_PRISONER + +/datum/outfit/job/prisoner + name = "Prisoner" + jobtype = /datum/job/prisoner + + uniform = /obj/item/clothing/under/rank/prisoner + shoes = /obj/item/clothing/shoes/sneakers/orange + id = /obj/item/card/id/prisoner + ears = null + belt = null diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 8da023a836e..825eeac9ab0 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -45,6 +45,7 @@ GLOBAL_LIST_INIT(civilian_positions, list( "Chaplain", "Clown", "Mime", + "Prisoner", "Assistant")) diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 03ed5b82756..2ce8275d8c8 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -86,6 +86,9 @@ if("Cook") O = new /datum/outfit/plasmaman/chef + if("Prisoner") + O = new /datum/outfit/plasmaman/prisoner + if("Security Officer") O = new /datum/outfit/plasmaman/security diff --git a/config/jobs.txt b/config/jobs.txt index 1bf271763b1..a707cd7a753 100644 --- a/config/jobs.txt +++ b/config/jobs.txt @@ -10,6 +10,7 @@ Research Director=1,1 Chief Medical Officer=1,1 Assistant=-1,-1 +Prisoner=0,2 Quartermaster=1,1 Cargo Technician=3,2 diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 91d8a5fc854..7c6b325808c 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/under/plasmaman.dmi b/icons/mob/clothing/under/plasmaman.dmi index b83fc46c562..f45a0335616 100644 Binary files a/icons/mob/clothing/under/plasmaman.dmi and b/icons/mob/clothing/under/plasmaman.dmi differ diff --git a/icons/mob/landmarks.dmi b/icons/mob/landmarks.dmi index 284809da700..7966836030d 100644 Binary files a/icons/mob/landmarks.dmi and b/icons/mob/landmarks.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 4fc60b6d2b2..9f03c75982b 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/under/plasmaman.dmi b/icons/obj/clothing/under/plasmaman.dmi index c210d49b654..c291b7fa015 100644 Binary files a/icons/obj/clothing/under/plasmaman.dmi and b/icons/obj/clothing/under/plasmaman.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 28923fb3a0e..6871a49bbdc 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1924,6 +1924,7 @@ #include "code\modules\jobs\job_types\medical_doctor.dm" #include "code\modules\jobs\job_types\mime.dm" #include "code\modules\jobs\job_types\paramedic.dm" +#include "code\modules\jobs\job_types\prisoner.dm" #include "code\modules\jobs\job_types\quartermaster.dm" #include "code\modules\jobs\job_types\research_director.dm" #include "code\modules\jobs\job_types\roboticist.dm"