diff --git a/baystation12.dme b/baystation12.dme index 870226bfa50..3535be05090 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -968,6 +968,7 @@ #include "code\modules\research\server.dm" #include "code\WorkInProgress\AI_Visibility.dm" #include "code\WorkInProgress\buildmode.dm" +#include "code\WorkInProgress\detective_work.dm" #include "code\WorkInProgress\explosion_particles.dm" #include "code\WorkInProgress\mapload\dmm_suite.dm" #include "code\WorkInProgress\mapload\reader.dm" diff --git a/code/WorkInProgress/detective_work.dm b/code/WorkInProgress/detective_work.dm new file mode 100644 index 00000000000..e74ba63c4a3 --- /dev/null +++ b/code/WorkInProgress/detective_work.dm @@ -0,0 +1,330 @@ +//gloves w_uniform wear_suit shoes + +atom/var/list/suit_fibers + +atom/proc/add_fibers(mob/living/carbon/human/M) + if(M.gloves) + if(M.gloves.transfer_blood) + if(add_blood(M.gloves.bloody_hands_mob)) + M.gloves.transfer_blood-- + //world.log << "[M.gloves] added blood to [src] from [M.gloves.bloody_hands_mob]" + else if(M.bloody_hands) + if(add_blood(M.bloody_hands_mob)) + M.bloody_hands-- + //world.log << "[M] added blood to [src] from [M.bloody_hands_mob]" + if(!suit_fibers) suit_fibers = list() + var/fibertext + var/item_multiplier = istype(src,/obj/item)?1.2:1 + if(M.wear_suit) + fibertext = "Material from \a [M.wear_suit]." + if(prob(10*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += fibertext + if(!(M.wear_suit.body_parts_covered & 32)) + if(M.w_uniform) + fibertext = "Fibers from \a [M.w_uniform]." + if(prob(12*item_multiplier) && !(fibertext in suit_fibers)) //Wearing a suit means less of the uniform exposed. + //world.log << "Added fibertext: [fibertext]" + suit_fibers += fibertext + if(!(M.wear_suit.body_parts_covered & 64)) + if(M.gloves) + fibertext = "Material from a pair of [M.gloves.name]." + if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += fibertext + else if(M.w_uniform) + fibertext = "Fibers from \a [M.w_uniform]." + if(prob(15*item_multiplier) && !(fibertext in suit_fibers)) + // "Added fibertext: [fibertext]" + suit_fibers += fibertext + if(M.gloves) + fibertext = "Material from a pair of [M.gloves.name]." + if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += "Material from a pair of [M.gloves.name]." + else if(M.gloves) + fibertext = "Material from a pair of [M.gloves.name]." + if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += "Material from a pair of [M.gloves.name]." + if(!suit_fibers.len) del suit_fibers + + +obj/machinery/computer/forensic_scanning + name = "High-Res Forensic Scanning Computer" + icon_state = "forensic" + var/obj/item/scanning + var/temp = "" + var/canclear = 1 + var/authenticated = 0 + + var/scan_data = "" + var/scan_name = "" + var/scan_process = 0 + + req_access = list(access_forensics_lockers) + + attack_ai(mob/user) + return attack_hand(user) + + attack_hand(mob/user) + if(..()) + return + user.machine = src + var/dat = "" + var/isai = 0 + if(istype(usr,/mob/living/silicon)) + isai = 1 + if(temp) + dat += "[temp]

" + if(canclear) dat += "{Clear Screen}" + else + if(!authenticated) + dat += "{Log In}" + else + dat += "{Log Out}


" + if(scanning) + if(scan_process) + dat += "Scan Object: {[scanning.name]}
" + dat += "{Cancel Scan} {Print}

" + else + if(isai) dat += "Scan Object: {[scanning.name]}
" + else dat += "Scan Object: {[scanning.name]}
" + dat += "{Scan} {Print}

" + else + if(isai) dat += "{No Object Inserted}
" + else dat += "{No Object Inserted}
" + dat += "{Scan} {Print}

" + dat += "[scan_data]" + if(scan_data && !scan_process) + dat += "
{Erase Data}" + user << browse(dat,"window=scanner") + onclose(user,"scanner") + ex_act() + return + Topic(href,href_list) + switch(href_list["operation"]) + if("login") + var/mob/M = usr + if(istype(M,/mob/living/silicon)) + authenticated = 1 + updateDialog() + return + var/obj/item/weapon/card/id/I = M.equipped() + if (I && istype(I)) + if(src.check_access(I)) + authenticated = 1 + //usr << "\green Access Granted" + //if(!authenticated) + //usr << "\red Access Denied" + if("logout") + authenticated = 0 + if("clear") + if(canclear) + temp = null + if("eject") + if(scanning) + scanning.loc = loc + scanning = null + else + temp = "Eject Failed: No Object" + if("insert") + var/mob/M = usr + var/obj/item/I = M.equipped() + if(I && istype(I)) + scanning = I + M.drop_item() + I.loc = src + else + temp = "Invalid Object Rejected." + if("scan") + if(scanning) + scan_process = 3 + scan_data = "Scanning [scanning]: 25% complete" + updateDialog() + sleep(50) + if(!scan_process) + scan_data = null + updateDialog() + return + scan_data = "Scanning [scanning]: 50% complete" + updateDialog() + scan_process = 2 + sleep(50) + if(!scan_process) + scan_data = null + updateDialog() + return + scan_data = "Scanning [scanning]: 75% complete" + updateDialog() + scan_process = 1 + sleep(50) + if(!scan_process) + scan_data = null + updateDialog() + return + scan_process = 0 + scan_name = scanning.name + scan_data = "[scanning]

" + if (scanning.blood_DNA) + scan_data += "Blood Found:
" + scan_data += "-Blood type: [scanning.blood_type]\nDNA: [scanning.blood_DNA]

" + else + scan_data += "No Blood Found

" + if (!( scanning.fingerprints )) + scan_data += "No Fingerprints Found

" + else + var/list/L = params2list(scanning.fingerprints) + scan_data += "Isolated [L.len] Fingerprints:
" + for(var/i in L) + scan_data += "#[L.Find(i)] - [i]
" + scan_data += "
" + + if(!scanning.suit_fibers) + if(istype(scanning,/obj/item/device/detective_scanner)) + var/obj/item/device/detective_scanner/scanner = scanning + if(scanner.stored_name) + scan_data += "Fibers/Materials Data - [scanner.stored_name]:
" + for(var/data in scanner.stored_fibers) + scan_data += "- [data]
" + else + scan_data += "No Fibers/Materials Data
" + else + scan_data += "No Fibers/Materials Located
" + else + if(istype(scanning,/obj/item/device/detective_scanner)) + var/obj/item/device/detective_scanner/scanner = scanning + if(scanner.stored_name) + scan_data += "Fibers/Materials Data - [scanner.stored_name]:
" + for(var/data in scanner.stored_fibers) + scan_data += "- [data]
" + else + scan_data += "No Fibers/Materials Data
" + + scan_data += "Fibers/Materials Found:
" + for(var/data in scanning.suit_fibers) + scan_data += "- [data]
" + else + temp = "Scan Failed: No Object" + + + if("print") + if(scan_data) + temp = "Scan Data Printed." + var/obj/item/weapon/paper/P = new(loc) + P.name = "Scan Data ([scan_name])" + P.info = "[scan_data]" + else + temp = "Print Failed: No Data" + if("erase") + scan_data = "" + if("cancel") + scan_process = 0 + updateUsrDialog() + + detective + icon_state = "old" + name = "PowerScan Mk.I" + +obj/item/clothing/shoes/var + track_blood = 0 + mob/living/carbon/human/track_blood_mob +mob/var + bloody_hands = 0 + mob/living/carbon/human/bloody_hands_mob + track_blood + mob/living/carbon/human/track_blood_mob +obj/item/clothing/gloves/var + transfer_blood = 0 + mob/living/carbon/human/bloody_hands_mob +/* +obj/decal/cleanable/blood/var/track_amt = 3 + + +turf/Exited(mob/living/carbon/human/M) + if(istype(M,/mob/living)) + if(!istype(src, /turf/space)) // Bloody tracks code starts here + if(M.track_blood > 0) + M.track_blood-- + src.add_bloody_footprints(M.track_blood_mob,1,M.dir,get_tracks(M)) + else if(istype(M,/mob/living/carbon/human)) + if(M.shoes) + if(M.shoes.track_blood > 0) + M.shoes.track_blood-- + src.add_bloody_footprints(M.shoes.track_blood_mob,1,M.dir,M.shoes.name) // And bloody tracks end here + . = ..() +turf/Entered(mob/living/carbon/human/M) + if(istype(M,/mob/living)) + if(M.track_blood > 0) + M.track_blood-- + src.add_bloody_footprints(M.track_blood_mob,0,M.dir,get_tracks(M)) + else if(istype(M,/mob/living/carbon/human)) + if(M.shoes && !istype(src,/turf/space)) + if(M.shoes.track_blood > 0) + M.shoes.track_blood-- + src.add_bloody_footprints(M.shoes.track_blood_mob,0,M.dir,M.shoes.name) + + for(var/obj/decal/cleanable/blood/B in src) + if(B.track_amt <= 0) continue + if(B.type != /obj/decal/cleanable/blood/tracks && B.type != /obj/decal/cleanable/blood/drip) + if(istype(M,/mob/living/carbon/human)) + if(M.shoes) + M.shoes.add_blood(B.blood_owner) + M.shoes.track_blood_mob = B.blood_owner + M.shoes.track_blood = max(M.shoes.track_blood,8) + else + M.add_blood(B.blood_owner) + M.track_blood_mob = B.blood_owner + M.track_blood = max(M.track_blood,8) + B.track_amt-- + break + . = ..() + +turf/proc/add_bloody_footprints(mob/living/carbon/human/M,leaving,d,info) + for(var/obj/decal/cleanable/blood/tracks/T in src) + if(T.dir == d) + if((leaving && T.icon_state == "steps2") || (!leaving && T.icon_state == "steps1")) + T.desc = "These bloody footprints appear to have been made by [info]." + if(istype(M,/mob/living/carbon/human)) + T.blood_DNA = M.dna.unique_enzymes + T.blood_type = M.b_type + return + var/obj/decal/cleanable/blood/tracks/this = new(src) + if(leaving) + this.icon_state = "steps2" + else + this.icon_state = "steps1" + this.dir = d + this.desc = "These bloody footprints appear to have been made by [info]." + if(istype(M,/mob/living/carbon/human)) + this.blood_DNA = M.dna.unique_enzymes + this.blood_type = M.b_type + +proc/get_tracks(mob/M) + if(istype(M,/mob/living)) + if(istype(M,/mob/living/carbon/human)) + . = "human feet" + else if(istype(M,/mob/living/carbon/monkey)) + . = "monkey paws" + else if(istype(M,/mob/living/silicon/robot)) + . = "robot feet" + else + . = "an unknown creature" + +proc/blood_incompatible(donor,receiver) + var + donor_antigen = copytext(donor,1,2) + receiver_antigen = copytext(receiver,1,2) + donor_rh = findtext("+",donor) + receiver_rh = findtext("+",receiver) + if(donor_rh && !receiver_rh) return 1 + switch(receiver_antigen) + if("A") + if(donor_antigen != "A" && donor_antigen != "O") return 1 + if("B") + if(donor_antigen != "B" && donor_antigen != "O") return 1 + if("O") + if(donor_antigen != "O") return 1 + //AB is a universal receiver. + return 0 +*/ \ No newline at end of file diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 52521e8ebad..bc2deaf3dc0 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -81,6 +81,7 @@ /atom/proc/add_fingerprint(mob/living/M as mob) if(isnull(M)) return if(isnull(M.key)) return + add_fibers(M) if (!( src.flags ) & 256) return if (ishuman(M)) diff --git a/code/game/dna.dm b/code/game/dna.dm index c301b44033d..082a45069d7 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -23,7 +23,7 @@ var/style = styles.Find(character.hair_style.type) if(style) - hair = style * hrange + hrange - rand(1,hrange-1) + hair = style * hrange - rand(1,hrange-1) else hair = 0 @@ -33,7 +33,7 @@ var/f_style = face_styles.Find(character.facial_hair_style.type) if(f_style) - beard = f_style * f_hrange + f_hrange - rand(1,f_hrange-1) + beard = f_style * f_hrange - rand(1,f_hrange-1) else beard = 0 diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 0cbb3d48be3..6d6749d7f71 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -141,14 +141,13 @@ return 1 if(!I || !istype(I, /obj/item/weapon/card/id) || !I.access) //not ID or no access return 0 - for(var/req in src.req_access) - if(!(req in I.access)) //doesn't have this access - return 0 if(src.req_one_access && src.req_one_access.len) for(var/req in src.req_one_access) if(req in I.access) //has an access from the single access list return 1 - return 0 + for(var/req in src.req_access) + if(!(req in I.access)) //doesn't have this access + return 0 return 1 @@ -158,14 +157,14 @@ if(!src.req_access.len && (!src.req_one_access || !src.req_one_access.len)) return 1 if(!L) return 0 if(!istype(L, /list)) return 0 - for(var/req in src.req_access) - if(!(req in L)) //doesn't have this access - return 0 if(src.req_one_access && src.req_one_access.len) for(var/req in src.req_one_access) if(req in L) //has an access from the single access list return 1 - return 0 + for(var/req in src.req_access) + if(!(req in L)) //doesn't have this access + return 0 + return 1 @@ -176,7 +175,7 @@ if("Station Engineer") return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks) if("Assistant") - return list(access_maint_tunnels) + return list() if("Chaplain") return list(access_morgue, access_chapel_office, access_crematorium) if("Detective") @@ -192,9 +191,9 @@ if("Captain") return get_all_accesses() if("Security Officer") - return list(access_security, access_brig, access_court) + return list(access_security, access_brig, access_court, access_maint_tunnels) if("Warden") - return list(access_security, access_brig, access_armory, access_court) + return list(access_security, access_brig, access_armory, access_court, access_maint_tunnels) if("Scientist") return list(access_tox, access_tox_storage, access_research, access_xenobiology) if("Head of Security") diff --git a/code/game/jobs/job/captian.dm b/code/game/jobs/job/captian.dm index 3a260e367df..c84c339a1d6 100644 --- a/code/game/jobs/job/captian.dm +++ b/code/game/jobs/job/captian.dm @@ -11,7 +11,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/captain(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/device/pda/captain(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/suit/armor/captain(H), H.slot_wear_suit) @@ -40,7 +39,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/head_of_personnel(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/heads/hop(H), H.slot_belt) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 810185ea97d..42680a51d58 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -16,7 +16,6 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/bartender(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit) @@ -123,7 +122,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_mine (H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/miner(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) @@ -244,7 +242,6 @@ var/global/lawyer = 0//Checks for another lawyer equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) if(!lawyer) lawyer = 1 H.equip_if_possible(new /obj/item/clothing/under/lawyer/bluesuit(H), H.slot_w_uniform) diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 2a26e147daf..a0af39e115e 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -11,7 +11,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/heads/ce(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/chief_engineer(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/device/pda/heads/ce(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) @@ -35,7 +34,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_eng(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/engineer(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/engineer(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/orange(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt) @@ -59,7 +57,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_eng(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/atmospheric_technician(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt) @@ -80,7 +77,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_eng(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/roboticist(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 24096fcdb1a..175502ebaba 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -11,7 +11,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/heads/cmo(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/chief_medical_officer(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/heads/cmo(H), H.slot_belt) @@ -35,7 +34,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_med(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/medical(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) @@ -59,7 +57,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_medsci(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/geneticist(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/white(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) @@ -82,7 +79,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_med(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/medic (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/medical(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/device/pda/medical(H), H.slot_belt) H.equip_if_possible(new /obj/item/clothing/mask/surgical(H), H.slot_wear_mask) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 7bc066e7649..5626d9f7fad 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -10,7 +10,6 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_if_possible(new /obj/item/weapon/storage/backpack/security (H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/device/radio/headset/heads/hos(H), H.slot_ears) H.equip_if_possible(new /obj/item/clothing/under/rank/head_of_security(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes) @@ -18,7 +17,6 @@ H.equip_if_possible(new /obj/item/clothing/suit/armor/hos(H), H.slot_wear_suit) H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) H.equip_if_possible(new /obj/item/clothing/head/helmet/HoS(H), H.slot_head) - H.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(H), H.slot_wear_mask) H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/weapon/gun/energy/gun(H), H.slot_s_store) @@ -42,7 +40,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_sec(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack/security(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/rank/warden(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt) @@ -50,7 +47,6 @@ H.equip_if_possible(new /obj/item/clothing/head/helmet/warden(H), H.slot_head) H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves) H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses/sechud(H), H.slot_glasses) - H.equip_if_possible(new /obj/item/clothing/mask/gas/emergency(H), H.slot_wear_mask) H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/device/flash(H), H.slot_l_store) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) @@ -73,7 +69,6 @@ if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_sec(H), H.slot_ears) H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back) - H.equip_if_possible(new /obj/item/weapon/storage/box/survival(H.back), H.slot_in_backpack) H.equip_if_possible(new /obj/item/clothing/under/det(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/detective(H), H.slot_belt) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index df35f882a3d..39f28cc5a72 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -227,7 +227,6 @@ var/global/datum/controller/occupations/job_master H.equip_if_possible(new /obj/item/device/radio/headset(H), H.slot_ears) var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(H) - new /obj/item/weapon/storage/box/survival(BPK) H.equip_if_possible(BPK, H.slot_back,1) return 1 diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm index e0241beb40d..0e0216f7267 100644 --- a/code/game/objects/devices/scanners.dm +++ b/code/game/objects/devices/scanners.dm @@ -65,6 +65,8 @@ MASS SPECTROMETER icon_state = "forensic0" var/amount = 20.0 var/printing = 0.0 + var/list/stored_fibers = null + var/stored_name = null w_class = 3.0 item_state = "electronic" flags = FPRINT | TABLEPASS | ONBELT | CONDUCT | USEDELAY diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 86ed09c5c10..f8d93348198 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -361,16 +361,16 @@ if(reagents) reagents.metabolize(src) - if(src.nutrition > 500 && !(src.mutations & FAT)) + /*if(src.nutrition > 500 && !(src.mutations & FAT)) if(prob(5 + round((src.nutrition - 200) / 2))) src << "\red You suddenly feel blubbery!" src.mutations |= FAT -// update_body() + update_body() if (src.nutrition < 100 && src.mutations & FAT) if(prob(round((50 - src.nutrition) / 100))) src << "\blue You feel fit again!" src.mutations &= ~FAT -// update_body() + update_body()*/ if (src.nutrition > 0) src.nutrition -= HUNGER_FACTOR diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 8aac91fec48..838f4629170 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -28,13 +28,13 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + /*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) if(prob(70)) for(var/mob/M in viewers(src, null)) if(M.client) M << "\red [src] fails to push [tmob]'s fat ass out of the way." now_pushing = 0 - return + return*/ tmob.LAssailant = src now_pushing = 0 diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 79bf7770be7..68c79ed6ca7 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -288,16 +288,16 @@ if(reagents) reagents.metabolize(src) - if(nutrition > 500 && !(mutations & FAT)) + /* if(nutrition > 500 && !(mutations & FAT)) if(prob(5 + round((nutrition - 200) / 2))) src << "\red You suddenly feel blubbery!" mutations |= FAT -// update_body() + update_body() if (nutrition < 100 && mutations & FAT) if(prob(round((50 - nutrition) / 100))) src << "\blue You feel fit again!" mutations &= ~FAT -// update_body() + update_body()*/ if (nutrition > 0) nutrition-= HUNGER_FACTOR diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 5adb386ebd1..ea917a66c38 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -5,8 +5,8 @@ src.nutrition -= HUNGER_FACTOR/10 if(src.m_intent == "run") src.nutrition -= HUNGER_FACTOR/10 - if(src.mutations & FAT && src.m_intent == "run" && src.bodytemperature <= 360) - src.bodytemperature += 2 + /*if(src.mutations & FAT && src.m_intent == "run" && src.bodytemperature <= 360) + src.bodytemperature += 2*/ /mob/living/carbon/relaymove(var/mob/user, direction) if(user in src.stomach_contents) @@ -194,4 +194,4 @@ src.admin_observing = 0 if(src.sleeping_willingly) src.sleeping = 0 - src.sleeping_willingly = 0 + src.sleeping_willingly = 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ef8e2bc1b80..3a9274450bd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -125,12 +125,12 @@ Metroid.UpdateFeed() return - if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + /*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) if(prob(40) && !(mutations & FAT)) visible_message("\red [src] fails to push [tmob]'s fat ass out of the way.", \ "\red You fail to push [tmob]'s fat ass out of the way.") now_pushing = 0 - return + return*/ tmob.LAssailant = src @@ -175,8 +175,8 @@ if(shoes) tally += shoes.slowdown - if(mutations & FAT) - tally += 1.5 + /*if(mutations & FAT) + tally += 1.5*/ if (bodytemperature < 283.222) tally += (283.222 - bodytemperature) / 10 * 1.75 @@ -458,9 +458,9 @@ return if (!( istype(W, /obj/item/clothing/suit) )) return - if (mutations & FAT && !(W.flags & ONESIZEFITSALL)) + /*if (mutations & FAT && !(W.flags & ONESIZEFITSALL)) src << "\red You're too fat to wear the [W.name]!" - return + return*/ u_equip(W) wear_suit = W W.equipped(src, text) @@ -540,9 +540,9 @@ return if (!( istype(W, /obj/item/clothing/under) )) return - if (mutations & FAT && !(W.flags & ONESIZEFITSALL)) + /*if (mutations & FAT && !(W.flags & ONESIZEFITSALL)) src << "\red You're too fat to wear the [W.name]!" - return + return*/ u_equip(W) w_uniform = W W.equipped(src, text) @@ -725,8 +725,8 @@ // lol var/fat = "" - if (mutations & FAT) - fat = "fat" + /*if (mutations & FAT) + fat = "fat"*/ if (mutations & HULK) overlays += image("icon" = 'genetics.dmi', "icon_state" = "hulk[fat][!lying ? "_s" : "_l"]") @@ -813,7 +813,7 @@ // Uniform if(w_uniform) - if (mutations & FAT && !(w_uniform.flags & ONESIZEFITSALL)) + /*if (mutations & FAT && !(w_uniform.flags & ONESIZEFITSALL)) src << "\red You burst out of the [w_uniform.name]!" var/obj/item/clothing/c = w_uniform u_equip(c) @@ -822,17 +822,17 @@ if(c) c:loc = loc c:dropped(src) - c:layer = initial(c:layer) + c:layer = initial(c:layer)*/ if(w_uniform)//I should really not need these w_uniform.screen_loc = ui_iclothing if(istype(w_uniform, /obj/item/clothing/under)) var/t1 = w_uniform.color if (!t1) t1 = icon_state - if (mutations & FAT) + /*if (mutations & FAT) overlays += image("icon" = 'uniform_fat.dmi', "icon_state" = "[t1][!lying ? "_s" : "_l"]", "layer" = MOB_LAYER) - else - overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER) + else*/ + overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER) if (w_uniform.blood_DNA) var/icon/stain_icon = icon('blood.dmi', "uniformblood[!lying ? "" : "2"]") overlays += image("icon" = stain_icon, "layer" = MOB_LAYER) @@ -912,7 +912,7 @@ if (wear_suit) - if (mutations & FAT && !(wear_suit.flags & ONESIZEFITSALL)) + /*if (mutations & FAT && !(wear_suit.flags & ONESIZEFITSALL)) src << "\red You burst out of the [wear_suit.name]!" var/obj/item/clothing/c = wear_suit u_equip(c) @@ -921,7 +921,7 @@ if(c) c:loc = loc c:dropped(src) - c:layer = initial(c:layer) + c:layer = initial(c:layer)*/ if (istype(wear_suit, /obj/item/clothing/suit)) var/t1 = wear_suit.icon_state overlays += image("icon" = 'suit.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER) @@ -1199,14 +1199,14 @@ lying_icon = new /icon('human.dmi', "blank") var/husk = (mutations & HUSK) - var/obese = (mutations & FAT) + //var/obese = (mutations & FAT) if (husk) stand_icon.Blend(new /icon('human.dmi', "husk_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "husk_l"), ICON_OVERLAY) - else if(obese) + /*else if(obese) stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)*/ else stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY) @@ -1227,9 +1227,9 @@ lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) if (underwear > 0) - if(!obese) - stand_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY) + //if(!obese) + stand_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY) /mob/living/carbon/human/proc/update_face() if(!facial_hair_style || !hair_style) return//Seems people like to lose their icons, this should stop the runtimes for now diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index ea3b3df94c9..569e2e9ebae 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -610,14 +610,14 @@ if(getOxyLoss()) oxyloss-- - if(overeatduration > 500 && !(mutations & FAT)) + /*if(overeatduration > 500 && !(mutations & FAT)) src << "\red You suddenly feel blubbery!" mutations |= FAT update_body() if (overeatduration < 100 && mutations & FAT) src << "\blue You feel fit again!" mutations &= ~FAT - update_body() + update_body()*/ // nutrition decrease if (nutrition > 0 && stat != 2) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 9660af7e326..539db41b194 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -47,13 +47,13 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + /*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) if(prob(70)) for(var/mob/M in viewers(src, null)) if(M.client) M << "\red [src] fails to push [tmob]'s fat ass out of the way." now_pushing = 0 - return + return*/ tmob.LAssailant = src now_pushing = 0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 031c353b445..2313f43b56f 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -254,7 +254,7 @@ if ((!( yes ) || now_pushing)) return now_pushing = 1 - if(ismob(AM)) + /*if(ismob(AM)) var/mob/tmob = AM if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) if(prob(20)) @@ -263,7 +263,7 @@ M << M << "\red [src] fails to push [tmob]'s fat ass out of the way." now_pushing = 0 //unlock_medal("That's No Moon, That's A Gourmand!", 1) - return + return*/ now_pushing = 0 ..() if (istype(AM, /obj/machinery/recharge_station)) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 9c404164ba6..0c510e40d8d 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -129,11 +129,11 @@ return else if (state < 3) - if(istype(affecting, /mob/living/carbon/human)) + /*if(istype(affecting, /mob/living/carbon/human)) var/mob/living/carbon/human/H = affecting if(H.mutations & FAT) assailant << "\blue You can't strangle [affecting] through all that fat!" - return + return*/ /*Hrm might want to add this back in //we should be able to strangle the Captain if he is wearing a hat @@ -199,7 +199,7 @@ s_click(hud1) return if(M == assailant && state >= 2) - if( ( ishuman(user) && (user.mutations & FAT) && ismonkey(affecting) ) || ( isalien(user) && iscarbon(affecting) ) ) + if( ( ishuman(user) /*&& (user.mutations & FAT)*/ && ismonkey(affecting) ) || ( isalien(user) && iscarbon(affecting) ) ) var/mob/living/carbon/attacker = user for(var/mob/N in viewers(user, null)) if(N.client) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index c3d2f94289d..bf779269439 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -271,7 +271,7 @@ process() if(stat & BROKEN) // nothing can happen if broken return - + if(length(src.contents) > 0) if(timeleft == 0) flush = 1 @@ -478,10 +478,11 @@ // note AM since can contain mobs or objs for(var/atom/movable/AM in D) AM.loc = src - if(istype(AM, /mob/living/carbon/human)) + /*if(istype(AM, /mob/living/carbon/human)) var/mob/living/carbon/human/H = AM if(H.mutations & FAT) // is a human and fat? has_fat_guy = 1 // set flag on holder + */ if(istype(AM, /obj/effect/bigDelivery)) var/obj/effect/bigDelivery/T = AM src.destinationTag = T.sortTag diff --git a/code/setup.dm b/code/setup.dm index e5156e5f461..7828f6c7025 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -155,7 +155,7 @@ var/const XRAY =(1<<2) HULK =(1<<3) CLUMSY =(1<<4) - FAT =(1<<5) + //FAT =(1<<5) HUSK =(1<<6) LASER =(1<<7) HEAL =(1<<8) diff --git a/code/unused/hivebot/hivebot.dm b/code/unused/hivebot/hivebot.dm index 8cbb4815da7..a6c1b69f6c9 100644 --- a/code/unused/hivebot/hivebot.dm +++ b/code/unused/hivebot/hivebot.dm @@ -158,14 +158,14 @@ src.now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + /*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) if(prob(20)) for(var/mob/M in viewers(src, null)) if(M.client) M << M << "\red [src] fails to push [tmob]'s fat ass out of the way." src.now_pushing = 0 //src.unlock_medal("That's No Moon, That's A Gourmand!", 1) - return + return*/ src.now_pushing = 0 ..() if (!istype(AM, /atom/movable)) diff --git a/config/config.txt b/config/config.txt index b134408d8ef..e5b793c4356 100644 --- a/config/config.txt +++ b/config/config.txt @@ -45,7 +45,7 @@ PROBABILITY CULT 1 PROBABILITY MONKEY 0 PROBABILITY TRAITORCHAN 0 ## if amount of traitors scales or not -#TRAITOR_SCALING +TRAITOR_SCALING ## allow players to initiate a restart vote ALLOW_VOTE_RESTART diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index ca81bb608a1..6aca44d0e4e 100644 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -769,7 +769,7 @@ "aoO" = (/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/security/detectives_office) "aoP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "carpetside"},/area/security/detectives_office) "aoQ" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area/security/detectives_office) -"aoR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) +"aoR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/forensic_scanning,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "aoS" = (/obj/structure/closet/lawcloset,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "aoT" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "aoU" = (/obj/structure/stool/chair,/obj/effect/landmark/start{name = "Lawyer"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) @@ -1518,11 +1518,11 @@ "aDj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/secondary/entry) "aDk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/fpmaint2) "aDl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/primary) -"aDm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Primary Tool Storage"; req_access_txt = "12"},/turf/simulated/floor,/area/storage/primary) +"aDm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Primary Tool Storage"; req_access_txt = "0"},/turf/simulated/floor,/area/storage/primary) "aDn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/primary) "aDo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) "aDp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) -"aDq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Primary Tool Storage"; req_access_txt = "12"},/turf/simulated/floor,/area/storage/primary) +"aDq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Primary Tool Storage"; req_access_txt = "0"},/turf/simulated/floor,/area/storage/primary) "aDr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) "aDs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/fpmaint) "aDt" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint) @@ -2706,8 +2706,8 @@ "bab" = (/obj/structure/table/reinforced,/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/door/window/northleft{name = "Reception Window"; req_access = null; req_access_txt = "0"},/obj/machinery/door/window/southleft{name = "Research and Development"; req_access_txt = "7"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bac" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northright{name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/southright{name = "Research and Development"; req_access_txt = "7"},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bad" = (/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"bae" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) -"baf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) +"bae" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"; req_one_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) +"baf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"; req_one_access_txt = "1"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) "bag" = (/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bah" = (/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking"; dir = 8; network = "SS13"},/turf/simulated/floor,/area/hallway/secondary/entry) "bai" = (/obj/machinery/door_control{name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 2; id = "Disposal Exit"},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -2861,7 +2861,7 @@ "bda" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bdb" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bdc" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bdd" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Chemistry"; req_access_txt = "33; 7"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bdd" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Chemistry"; req_access_txt = "33; 7"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bde" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/lab) "bdf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/lab) "bdg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/lab) @@ -3002,8 +3002,8 @@ "bfL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/toxins/lab) "bfM" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bfN" = (/obj/effect/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"bfO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) -"bfP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) +"bfO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"; req_one_access_txt = "1"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) +"bfP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"; req_one_access_txt = "1"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) "bfQ" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bfR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bfS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; pixel_x = -1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) @@ -3226,8 +3226,8 @@ "bkb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bkc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) "bkd" = (/obj/effect/sign/redcross,/turf/simulated/wall,/area/medical/medbay) -"bke" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bkf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bke" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Medbay"; req_access_txt = "5"; req_one_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bkf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Medbay"; req_access_txt = "5"; req_one_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bkg" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bkh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bki" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -4829,7 +4829,7 @@ "bOS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint) "bOT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bOU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/airlock/maintenance{name = "Medical Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) +"bOV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/airlock/maintenance{name = "Medical Maintenance"; req_access_txt = "5"; req_one_access_txt = "1"},/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "bOW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall,/area/medical/medbay) "bOX" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/wall/r_wall,/area/medical/virology) "bOY" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r-f"; initialize_directions = 6; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/medical/virology)