Merge pull request #72 from Strumpetplaya/master

Security now has maintenance access.
This commit is contained in:
Albert Iordache
2011-12-06 09:46:00 -08:00
12 changed files with 355 additions and 41 deletions
+330
View File
@@ -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 += "<tt>[temp]</tt><br><br>"
if(canclear) dat += "<a href='?src=\ref[src];operation=clear'>{Clear Screen}</a>"
else
if(!authenticated)
dat += "<a href='?src=\ref[src];operation=login'>{Log In}</a>"
else
dat += "<a href='?src=\ref[src];operation=logout'>{Log Out}</a><br><hr><br>"
if(scanning)
if(scan_process)
dat += "Scan Object: {[scanning.name]}<br>"
dat += "<a href='?src=\ref[src];operation=cancel'>{Cancel Scan}</a> {Print}<br><br>"
else
if(isai) dat += "Scan Object: {[scanning.name]}<br>"
else dat += "Scan Object: <a href='?src=\ref[src];operation=eject'>{[scanning.name]}</a><br>"
dat += "<a href='?src=\ref[src];operation=scan'>{Scan}</a> <a href='?src=\ref[src];operation=print'>{Print}</a><br><br>"
else
if(isai) dat += "{No Object Inserted}<br>"
else dat += "<a href='?src=\ref[src];operation=insert'>{No Object Inserted}</a><br>"
dat += "{Scan} <a href='?src=\ref[src];operation=print'>{Print}</a><br><br>"
dat += "<tt>[scan_data]</tt>"
if(scan_data && !scan_process)
dat += "<br><a href='?src=\ref[src];operation=erase'>{Erase Data}</a>"
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 = "<u>[scanning]</u><br><br>"
if (scanning.blood_DNA)
scan_data += "Blood Found:<br>"
scan_data += "-Blood type: [scanning.blood_type]\nDNA: [scanning.blood_DNA]<br><br>"
else
scan_data += "No Blood Found<br><br>"
if (!( scanning.fingerprints ))
scan_data += "No Fingerprints Found<br><br>"
else
var/list/L = params2list(scanning.fingerprints)
scan_data += "Isolated [L.len] Fingerprints:<br>"
for(var/i in L)
scan_data += "#[L.Find(i)] - [i]<br>"
scan_data += "<br>"
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]:<br>"
for(var/data in scanner.stored_fibers)
scan_data += "- [data]<br>"
else
scan_data += "No Fibers/Materials Data<br>"
else
scan_data += "No Fibers/Materials Located<br>"
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]:<br>"
for(var/data in scanner.stored_fibers)
scan_data += "- [data]<br>"
else
scan_data += "No Fibers/Materials Data<br>"
scan_data += "Fibers/Materials Found:<br>"
for(var/data in scanning.suit_fibers)
scan_data += "- [data]<br>"
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 = "<tt>[scan_data]</tt>"
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
*/
+1
View File
@@ -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))
+10 -11
View File
@@ -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")
-2
View File
@@ -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)
-3
View File
@@ -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)
-4
View File
@@ -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)
-4
View File
@@ -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)
-5
View File
@@ -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)
-1
View File
@@ -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
+2
View File
@@ -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