Merge pull request #15070 from zeroisthebiggay/prisoners
prisoners - aka ports prisoners from tg hell yeah
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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\
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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."
|
||||
|
||||
@@ -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"
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
@@ -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//
|
||||
////////
|
||||
|
||||
+10
-2
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user