Merge pull request #15070 from zeroisthebiggay/prisoners

prisoners - aka ports prisoners from tg hell yeah
This commit is contained in:
silicons
2021-09-12 20:59:12 -07:00
committed by GitHub
62 changed files with 6113 additions and 1964 deletions
+2
View File
@@ -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
@@ -89,3 +90,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
+1
View File
@@ -368,6 +368,7 @@ GLOBAL_LIST_INIT(job_heirlooms, list(
"Janitor" = list(/obj/item/mop),
"Scientist" = list(/obj/item/toy/plush/slimeplushie),
"Assistant" = list(/obj/item/clothing/gloves/cut/family),
"Prisoner" = list (/obj/item/pen/blue),
"Chaplain" = list(/obj/item/camera/spooky/family),
"Head of Personnel" = list(/obj/item/pinpointer/ian)
))
@@ -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/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/security/prison/safe, /area/security/prison/toilet)
/area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle)
target_trait = ZTRAIT_STATION
immunity_type = "rad"
+25 -7
View File
@@ -37,7 +37,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/ai_monitored/turret_protected/AIsatextAP
name = "AI Sat Ext"
icon_state = "storage"
/area/arrival
requires_power = FALSE
@@ -296,6 +296,28 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "xenomaint"
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE | CULT_PERMITTED
//Maintenance - Prison
/area/maintenance/prison
name = "Prison Maintenance"
icon_state = "prison_maintenance"
/area/maintenance/prison/fore
name = "Prison Fore Maintenance"
icon_state = "prison_maintenance"
/area/maintenance/prison/starboard
name = "Prison Starboard Maintenance"
icon_state = "prison_maintenance"
/area/maintenance/prison/aft
name = "Prison Aft Maintenance"
icon_state = "prison_maintenance"
/area/maintenance/prison/port
name = "Prison Port Maintenance"
icon_state = "prison_maintenance"
//Maintenance - Generic
/area/maintenance/arrivals/north
@@ -1393,13 +1415,9 @@ 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 //radproof
name = "Prison Toilet"
icon_state = "sec_prison_safe"
/area/security/prison/safe //radproof
/area/security/prison/cells
name = "Prison Wing Cells"
icon_state = "sec_prison_safe"
icon_state = "prison_cells"
/area/security/prison/upper
name = "Upper Prison Wing"
@@ -25,7 +25,7 @@
antag_flag = ROLE_BLOODSUCKER
false_report_weight = 1
chaos = 4
restricted_jobs = list("AI","Cyborg")
restricted_jobs = list("Prisoner", "AI","Cyborg")
protected_jobs = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 20
required_enemies = 2
+1 -1
View File
@@ -7,7 +7,7 @@
config_tag = "traitorbro"
required_players = 25
chaos = 5
restricted_jobs = list("AI", "Cyborg")
restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
announce_span = "danger"
+1 -1
View File
@@ -11,7 +11,7 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
antag_flag = ROLE_CHANGELING
false_report_weight = 10
chaos = 5
restricted_jobs = list("AI", "Cyborg")
restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to ling role blacklist
required_players = 15
required_enemies = 1
@@ -4,7 +4,7 @@
false_report_weight = 10
chaos = 6
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
+1 -1
View File
@@ -139,7 +139,7 @@ Credit where due:
required_enemies = 3
recommended_enemies = 5
enemy_minimum_age = 7
protected_jobs = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //Silicons can eventually be converted
protected_jobs = list("Prisoner", "AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //Silicons can eventually be converted
restricted_jobs = list("Chaplain", "Captain")
announce_span = "brass"
announce_text = "Servants of Ratvar are trying to summon the Justiciar!\n\
+1 -1
View File
@@ -39,7 +39,7 @@
antag_flag = ROLE_CULTIST
false_report_weight = 10
chaos = 8
restricted_jobs = list("AI", "Cyborg")
restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 30
required_enemies = 3
+1 -1
View File
@@ -4,7 +4,7 @@
antag_flag = ROLE_DEVIL
false_report_weight = 1
chaos = 3
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
@@ -4,7 +4,7 @@
antag_flag = ROLE_HERETIC
false_report_weight = 5
chaos = 5
restricted_jobs = list("AI", "Cyborg")
restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to heretic role blacklist
required_players = 15
required_enemies = 1
+1 -1
View File
@@ -7,7 +7,7 @@ GLOBAL_LIST_EMPTY(gangs)
config_tag = "gang"
antag_flag = ROLE_GANG
chaos = 9
restricted_jobs = list("AI", "Cyborg")
restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 15
required_enemies = 0
+1 -1
View File
@@ -13,7 +13,7 @@
antag_flag = ROLE_REV
false_report_weight = 10
chaos = 8
restricted_jobs = list("AI", "Cyborg")
restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 20
required_enemies = 1
+1 -1
View File
@@ -10,7 +10,7 @@
config_tag = "traitor"
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
restricted_jobs = list("Prisoner", "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", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to ling role blacklist
required_players = 0
required_enemies = 1
+66
View File
@@ -0,0 +1,66 @@
/obj/machinery/plate_press
name = "license plate press"
desc = "You know, we're making a lot of license plates for a station with literaly no cars in it."
icon = 'icons/obj/machines/prison.dmi'
icon_state = "offline"
use_power = IDLE_POWER_USE
idle_power_usage = 2
active_power_usage = 50
var/obj/item/stack/license_plates/empty/current_plate
var/pressing = FALSE
/obj/machinery/plate_press/update_icon()
. = ..()
if(!is_operational())
icon_state = "offline"
else if(pressing)
icon_state = "loop"
else if(current_plate)
icon_state = "online_loaded"
else
icon_state = "online"
/obj/machinery/plate_press/Destroy()
QDEL_NULL(current_plate)
. = ..()
/obj/machinery/plate_press/attackby(obj/item/I, mob/living/user, params)
if(!is_operational())
to_chat(user, "<span class='warning'>[src] has to be on to do this!</span>")
return FALSE
if(pressing)
to_chat(user, "<span class='warning'>[src] already has a plate in it!</span>")
return FALSE
if(istype(I, /obj/item/stack/license_plates/empty))
var/obj/item/stack/license_plates/empty/plate = I
plate.use(1)
current_plate = new plate.type(src, 1) //Spawn a new single sheet in the machine
update_icon()
else
return ..()
/obj/machinery/plate_press/attack_hand(mob/living/user)
. = ..()
if(!pressing && current_plate)
work_press(user)
///This proc attempts to create a plate. User cannot move during this process.
/obj/machinery/plate_press/proc/work_press(mob/living/user)
pressing = TRUE
update_icon()
to_chat(user, "<span class='notice'>You start pressing a new license plate!</span>")
if(!do_after(user, 40, target = src))
pressing = FALSE
update_icon()
return FALSE
use_power(100)
to_chat(user, "<span class='notice'>You finish pressing a new license plate!</span>")
pressing = FALSE
QDEL_NULL(current_plate)
update_icon()
new /obj/item/stack/license_plates/filled(drop_location(), 1)
+4
View File
@@ -64,6 +64,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
name = "Assistant"
icon_state = "Assistant"
/obj/effect/landmark/start/prisoner
name = "Prisoner"
icon_state = "Prisoner"
/obj/effect/landmark/start/assistant/override
jobspawn_override = TRUE
delete_after_roundstart = FALSE
@@ -60,6 +60,48 @@
/obj/item/gun/ballistic/automatic/pistol/deagle,
/obj/item/storage/box/syndie_kit/throwing_weapons = 3)
/obj/effect/spawner/lootdrop/prison_contraband
name = "prison contraband loot spawner"
loot = list(/obj/item/clothing/mask/cigarette/space_cigarette = 4,
/obj/item/clothing/mask/cigarette/robust = 2,
/obj/item/clothing/mask/cigarette/carp = 3,
/obj/item/clothing/mask/cigarette/uplift = 2,
/obj/item/clothing/mask/cigarette/dromedary = 3,
/obj/item/clothing/mask/cigarette/robustgold = 1,
/obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
/obj/item/storage/fancy/cigarettes = 3,
/obj/item/clothing/mask/cigarette/rollie/cannabis = 4,
/obj/item/toy/crayon/spraycan = 2,
/obj/item/crowbar = 1,
/obj/item/assembly/flash/handheld = 1,
/obj/item/restraints/handcuffs/cable/zipties = 1,
/obj/item/restraints/handcuffs = 1,
/obj/item/radio/off = 1,
/obj/item/lighter = 3,
/obj/item/storage/box/matches = 3,
/obj/item/reagent_containers/syringe/contraband/space_drugs = 1,
/obj/item/reagent_containers/syringe/contraband/krokodil = 1,
/obj/item/reagent_containers/syringe/contraband/crank = 1,
/obj/item/reagent_containers/syringe/contraband/methamphetamine = 1,
/obj/item/reagent_containers/syringe/contraband/bath_salts = 1,
/obj/item/reagent_containers/syringe/contraband/fentanyl = 1,
/obj/item/reagent_containers/syringe/contraband/morphine = 1,
/obj/item/storage/pill_bottle/happy = 1,
/obj/item/storage/pill_bottle/lsd = 1,
/obj/item/storage/pill_bottle/psicodine = 1,
/obj/item/reagent_containers/food/drinks/beer = 4,
/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
/obj/item/paper/fluff/jobs/prisoner/letter = 1,
/obj/item/grenade/smokebomb = 1,
/obj/item/flashlight/seclite = 1,
/obj/item/tailclub = 1, //want to buy makeshift wooden club sprite
/obj/item/kitchen/knife/shiv = 4,
/obj/item/kitchen/knife/shiv/carrot = 1,
/obj/item/kitchen/knife = 1,
/obj/item/storage/wallet/random = 1,
/obj/item/pda = 1
)
/obj/effect/spawner/lootdrop/gambling
name = "gambling valuables spawner"
loot = list(
@@ -105,6 +105,12 @@ GLOBAL_LIST_INIT(channel_tokens, list(
keyslot = new /obj/item/encryptionkey/binary
recalculateChannels()
/obj/item/radio/headset/headset_prisoner
name = "prison radio headset"
desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."
icon_state = "prisoner_headset"
prison_radio = TRUE
/obj/item/radio/headset/headset_sec
name = "security radio headset"
desc = "This is used by your elite security force."
+20 -7
View File
@@ -255,18 +255,31 @@
icon_state = "knife"
desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable."
/obj/item/kitchen/knife/carrotshiv
/obj/item/kitchen/knife/shiv
name = "glass shiv"
icon = 'icons/obj/shards.dmi'
icon_state = "shiv"
item_state = "shiv"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
desc = "A makeshift glass shiv."
force = 8
throwforce = 12//fuck git
attack_verb = list("shanked", "shivved")
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
custom_materials = list(/datum/material/glass=400)
/obj/item/kitchen/knife/shiv/carrot
name = "carrot shiv"
icon_state = "carrotshiv"
item_state = "carrotshiv"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
icon = 'icons/obj/kitchen.dmi'
desc = "Unlike other carrots, you should probably keep this far away from your eyes."
force = 8
throwforce = 12//fuck git
custom_materials = null
attack_verb = list("shanked", "shivved")
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
/obj/item/kitchen/knife/shiv/carrot/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] forcefully drives \the [src] into [user.p_their()] eye! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return BRUTELOSS
/obj/item/kitchen/rollingpin
name = "rolling pin"
@@ -0,0 +1,30 @@
/obj/item/stack/license_plates
name = "invalid plate"
desc = "someone fucked up"
icon = 'icons/obj/machines/prison.dmi'
icon_state = "empty_plate"
novariants = FALSE
max_amount = 50
/obj/item/stack/license_plates/empty
name = "empty license plate"
desc = "Instead of a license plate number, this could contain a quote like \"Live laugh love\"."
/obj/item/stack/license_plates/empty/fifty
amount = 50
/obj/item/stack/license_plates/filled
name = "license plate"
desc = "Prison labor paying off."
icon_state = "filled_plate_1_1"
///Override to allow for variations
/obj/item/stack/license_plates/filled/update_icon_state()
if(novariants)
return
if(amount <= (max_amount * (1/3)))
icon_state = "filled_plate_[rand(1,6)]_1"
else if (amount <= (max_amount * (2/3)))
icon_state = "filled_plate_[rand(1,6)]_2"
else
icon_state = "filled_plate_[rand(1,6)]_3"
+13 -1
View File
@@ -355,7 +355,19 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
/obj/item/shard/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/lightreplacer))
I.attackby(src, user)
var/obj/item/lightreplacer/L = I
L.attackby(src, user)
else if(istype(I, /obj/item/stack/sheet/cloth))
var/obj/item/stack/sheet/cloth/C = I
to_chat(user, "<span class='notice'>You begin to wrap the [C] around the [src]...</span>")
if(do_after(user, 35, target = src))
var/obj/item/kitchen/knife/shiv/S = new /obj/item/kitchen/knife/shiv
C.use(1)
to_chat(user, "<span class='notice'>You wrap the [C] around the [src] forming a makeshift weapon.</span>")
remove_item_from_storage(src)
qdel(src)
user.put_in_hands(S)
else
return ..()
+7 -1
View File
@@ -317,7 +317,7 @@
* Trays - Agouri
*/
/obj/item/storage/bag/tray
name = "tray"
name = "serving tray"
icon = 'icons/obj/food/containers.dmi'
icon_state = "tray"
desc = "A metal tray to lay food on."
@@ -377,6 +377,12 @@
. = ..()
update_icon()
/obj/item/storage/bag/tray/cafeteria
name = "cafeteria tray"
icon = 'icons/obj/food/containers.dmi'
icon_state = "foodtray"
desc = "A cheap metal tray to pile today's meal onto."
//bluespace tray, holds more items
/obj/item/storage/bag/tray/bluespace
name = "bluespace tray"
@@ -192,6 +192,7 @@
new /obj/item/clothing/under/rank/prisoner( src )
new /obj/item/clothing/under/rank/prisoner/skirt( src )
new /obj/item/clothing/shoes/sneakers/orange( src )
new /obj/item/radio/headset/headset_prisoner( src )
/obj/structure/closet/secure_closet/courtroom
name = "courtroom locker"
@@ -106,6 +106,16 @@
name = "trash cart"
icon_state = "trashcart"
/obj/structure/closet/crate/trashcart/Moved()
. = ..()
if(has_gravity())
playsound(src, 'sound/effects/roll.ogg', 100, TRUE)
/obj/structure/closet/crate/trashcart/laundry
name = "laundry cart"
desc = "A large cart for hauling around large amounts of laundry."
icon_state = "laundry"
/obj/structure/closet/crate/medical
desc = "A medical crate."
name = "medical crate"
@@ -2,7 +2,7 @@
name = "Prison Escapee"
uniform = /obj/item/clothing/under/rank/prisoner
shoes = /obj/item/clothing/shoes/sneakers/orange
r_pocket = /obj/item/kitchen/knife
r_pocket = /obj/item/kitchen/knife/shiv
/datum/outfit/prisoner/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE)
if(visualsOnly)
+5
View File
@@ -59,6 +59,11 @@
unit_name = "alien hide"
export_types = list(/obj/item/stack/sheet/animalhide/xeno)
/datum/export/stack/licenseplate
cost = 25
unit_name = "license plate"
export_types = list(/obj/item/stack/license_plates/filled)
// Common materials.
// For base materials, see materials.dm
+7
View File
@@ -20,6 +20,13 @@
cost = 300 //thrice their export value
contains = list(/obj/item/stack/sheet/cardboard/fifty)
/datum/supply_pack/materials/license50
name = "50 Empty License Plates"
desc = "Create a bunch of boxes."
cost = 1000 // 50 * 25 + 700 - 1000 = 950 credits profit
contains = list(/obj/item/stack/license_plates/empty/fifty)
crate_name = "empty license plate crate"
/datum/supply_pack/materials/glass50
crate_type = /obj/structure/closet/secure_closet/cargo
name = "50 Glass Sheets"
@@ -71,6 +71,12 @@
head = /obj/item/clothing/head/helmet/space/plasmaman/security/hos
uniform = /obj/item/clothing/under/plasmaman/security/hos
/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"
@@ -169,6 +169,10 @@
icon_state = "hos_envirohelm"
item_state = "hos_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's plasma envirosuit helmet"
desc = "An envriohelmet designed for plasmaman medical doctors, having two stripes down it's length to denote as much."
@@ -18,3 +18,9 @@
desc = "A slick black and red plasmaman containment suit designed for the head of security, also called the LAW."
icon_state = "hos_envirosuit"
item_state = "hos_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"
+1 -1
View File
@@ -29,7 +29,7 @@
/obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
if(I.get_sharpness())
to_chat(user, "<span class='notice'>You sharpen the carrot into a shiv with [I].</span>")
var/obj/item/kitchen/knife/carrotshiv/Shiv = new /obj/item/kitchen/knife/carrotshiv
var/obj/item/kitchen/knife/shiv/carrot/Shiv = new /obj/item/kitchen/knife/shiv/carrot
remove_item_from_storage(user)
qdel(src)
user.put_in_hands(Shiv)
+1 -1
View File
@@ -355,7 +355,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", "Chemist", "Geneticist", "Virologist", "Paramedic",
"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")
+24
View File
@@ -0,0 +1,24 @@
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
plasma_outfit = /datum/outfit/plasmaman/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 = /obj/item/radio/headset/headset_prisoner
belt = null
+1
View File
@@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(civilian_positions, list(
"Chaplain",
"Clown",
"Mime",
"Prisoner",
"Assistant"))
GLOBAL_LIST_INIT(security_positions, list(
@@ -554,6 +554,13 @@
color = "#302000" // rgb: 48, 32, 0
taste_description = "wet and cheap noodles"
/datum/reagent/consumable/nutraslop
name = "Nutraslop"
description = "Mixture of leftover prison foods served on previous days."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#3E4A00" // rgb: 62, 74, 0
taste_description = "your imprisonment"
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
@@ -218,6 +218,31 @@
volume = 50
list_reagents = list(/datum/reagent/medicine/stimulants = 50)
/obj/item/reagent_containers/syringe/contraband
name = "unlabeled syringe"
desc = "A syringe containing some sort of unknown chemical cocktail."
/obj/item/reagent_containers/syringe/contraband/space_drugs
list_reagents = list(/datum/reagent/drug/space_drugs = 15)
/obj/item/reagent_containers/syringe/contraband/krokodil
list_reagents = list(/datum/reagent/drug/krokodil = 15)
/obj/item/reagent_containers/syringe/contraband/crank
list_reagents = list(/datum/reagent/drug/crank = 15)
/obj/item/reagent_containers/syringe/contraband/methamphetamine
list_reagents = list(/datum/reagent/drug/methamphetamine = 15)
/obj/item/reagent_containers/syringe/contraband/bath_salts
list_reagents = list(/datum/reagent/drug/bath_salts = 15)
/obj/item/reagent_containers/syringe/contraband/fentanyl
list_reagents = list(/datum/reagent/toxin/fentanyl = 15)
/obj/item/reagent_containers/syringe/contraband/morphine
list_reagents = list(/datum/reagent/medicine/morphine = 15)
/obj/item/reagent_containers/syringe/calomel
name = "syringe (calomel)"
desc = "Contains calomel."
@@ -233,6 +233,14 @@
anchored = TRUE
reagent_id = /datum/reagent/consumable/cooking_oil
/obj/structure/reagent_dispensers/servingdish
name = "serving dish"
desc = "A dish full of food slop for your bowl."
icon = 'icons/obj/kitchen.dmi'
icon_state = "serving"
anchored = TRUE
reagent_id = /datum/reagent/consumable/nutraslop
////////
//Kegs//
////////
@@ -30,13 +30,21 @@
category = list("initial","Dinnerware")
/datum/design/tray
name = "Tray"
id = "tray"
name = "Serving Tray"
id = "servingtray"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 3000)
build_path = /obj/item/storage/bag/tray
category = list("initial","Dinnerware")
/datum/design/tray
name = "Cafeteria Tray"
id = "foodtray"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 3000)
build_path = /obj/item/storage/bag/tray/cafeteria
category = list("initial","Dinnerware")
/datum/design/bowl
name = "Bowl"
id = "bowl"