diff --git a/code/WorkInProgress/detective_work.dm b/code/WorkInProgress/detective_work.dm index 3896b1973ec..de93933cc0a 100644 --- a/code/WorkInProgress/detective_work.dm +++ b/code/WorkInProgress/detective_work.dm @@ -175,7 +175,7 @@ obj/machinery/computer/forensic_scanning usr << "\red Invalid Object Rejected." if("database") canclear = 1 - if(!misc && !files) + if((!misc || !misc.len) && (!files || !files.len)) temp = "Database is empty." else if(files && files.len) @@ -626,7 +626,7 @@ obj/machinery/computer/forensic_scanning return proc/delete_record(var/location) - if(misc) + if(misc && misc.len) for(var/i = location, i < misc.len, i++) misc[i] = misc[i+i] misc.len-- diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 75b93c8cc81..cb0572d8451 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -92,11 +92,10 @@ if(src.fingerprintslast != H.key) src.fingerprintshidden += text("(Wearing gloves). Real name: [], Key: []",H.real_name, H.key) src.fingerprintslast = H.key - return 0 if (H.dna.uni_identity) if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex)) return 0 - else if(H.gloves) + else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex)) return 0 if(src.fingerprintslast != H.key) src.fingerprintshidden += text("Real name: [], Key: []",H.real_name, H.key) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index f7262da2a7b..43771949da9 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1028,6 +1028,8 @@ About the new airlock wires panel: /obj/machinery/door/airlock/attackby(C as obj, mob/user as mob) //world << text("airlock attackby src [] obj [] mob []", src, C, user) + if(istype(C, /obj/item/device/detective_scanner)) + return if (!istype(usr, /mob/living/silicon)) if (src.isElectrified()) if(src.shock(user, 75)) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 7bb30b00cb9..0a697d414c1 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -129,6 +129,8 @@ return 1 /obj/machinery/door/attackby(obj/item/I as obj, mob/user as mob) + if(istype(I, /obj/item/device/detective_scanner)) + return ..() if (src.operating) return src.add_fingerprint(user) diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 9d4df00bd9d..09abb12e1ab 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -178,7 +178,7 @@ for (var/mob/M in world) if (M.client && M.client.holder && (M.client.holder.level != -3)) - M << "\red [user.name]//[user.ckey] has gibbed [src.occupant.name]//[src.occupant.ckey]" + M << "\red [user.name]/[user.ckey] has gibbed [src.occupant.name]/[src.occupant.ckey]" src.occupant.death(1) src.occupant.ghostize() del(src.occupant) @@ -188,13 +188,13 @@ var/iterator = 0 for (var/i=1 to allmeat.len) var/obj/item/meatslab = allmeat[i] - var/turf/Tx = locate(src.x - i - iterator, src.y, src.z) + var/turf/Tx = locate(src.x - i + iterator, src.y, src.z) if(Tx.density) iterator += 1 - Tx = locate(src.x - i - iterator, src.y, src.z) + Tx = locate(src.x - i + iterator, src.y, src.z) meatslab.loc = src.loc meatslab.throw_at(Tx,i,3) if (!Tx.density) - new /obj/effect/decal/cleanable/blood/gibs(Tx,i - iterator) + new /obj/effect/decal/cleanable/blood/gibs(Tx,i + iterator) src.operating = 0 update_icon() diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm index c1576d41d34..01462387d29 100644 --- a/code/game/objects/devices/scanners.dm +++ b/code/game/objects/devices/scanners.dm @@ -132,6 +132,8 @@ MASS SPECTROMETER return afterattack(atom/A as obj|turf|area, mob/user as mob) + if(!(locate(A) in oview(1,user))) + return if(src.loc != user) return 0 src.add_fingerprint(user) diff --git a/code/game/objects/devices/taperecorder.dm b/code/game/objects/devices/taperecorder.dm index 3f6572a034a..e01beb8afb0 100644 --- a/code/game/objects/devices/taperecorder.dm +++ b/code/game/objects/devices/taperecorder.dm @@ -23,18 +23,18 @@ var/ending = copytext(msg, length(msg)) src.timestamp+= src.timerecorded if (M.stuttering) - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] [M.name] stammers, \"[msg]\"" + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] stammers, \"[msg]\"" return if (M.getBrainLoss() >= 60) - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] [M.name] gibbers, \"[msg]\"" + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] gibbers, \"[msg]\"" return if (ending == "?") - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] [M.name] asks, \"[msg]\"" + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] asks, \"[msg]\"" return else if (ending == "!") - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] [M.name] exclaims, \"[msg]\"" + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] exclaims, \"[msg]\"" return - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] [M.name] says, \"[msg]\"" + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] [M.name] says, \"[msg]\"" return /obj/item/device/taperecorder/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -69,12 +69,12 @@ usr << "\red The tape recorder makes a scratchy noise." return src.icon_state = "taperecorderrecording" - if(src.timerecorded < 3600 && src.playing == 0) + if(src.timerecorded < 10800 && src.playing == 0) usr << "\blue Recording started." src.recording = 1 src.timestamp+= src.timerecorded - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] Recording started." - for(src.timerecorded, src.timerecorded<3600) + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] Recording started." + for(src.timerecorded, src.timerecorded<10800) if(src.recording == 0) break src.timerecorded++ @@ -96,7 +96,7 @@ if (src.recording == 1) src.recording = 0 src.timestamp+= src.timerecorded - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] Recording stopped." + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] Recording stopped." usr << "\blue Recording stopped." src.icon_state = "taperecorderidle" return @@ -149,7 +149,7 @@ src.playing = 1 src.icon_state = "taperecorderplaying" usr << "\blue Playing started." - for(var/i=1,src.timerecorded<3600,sleep(10 * (src.playsleepseconds) )) + for(var/i=1,src.timerecorded<10800,sleep(10 * (src.playsleepseconds) )) if (src.playing == 0) break if (src.storedinfo.len < i) @@ -219,12 +219,12 @@ usr << "\red The tape recorder makes a scratchy noise." return src.icon_state = "taperecorderrecording" - if(src.timerecorded < 3600 && src.playing == 0) + if(src.timerecorded < 10800 && src.playing == 0) usr << "\blue Recording started." src.recording = 1 src.timestamp+= src.timerecorded - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] Recording started." - for(src.timerecorded, src.timerecorded<3600) + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] Recording started." + for(src.timerecorded, src.timerecorded<10800) if(src.recording == 0) break src.timerecorded++ @@ -241,7 +241,7 @@ if (src.recording == 1) src.recording = 0 src.timestamp+= src.timerecorded - src.storedinfo += "\[[time2text(src.timerecorded*10,"mm:ss")]\] Recording stopped." + src.storedinfo += "\[[time2text(src.timerecorded*10,"hh:mm:ss")]\] Recording stopped." usr << "\blue Recording stopped." src.icon_state = "taperecorderidle" return diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 25d4fabd2ca..69902324703 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -195,6 +195,8 @@ return /obj/item/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W, /obj/item/device/detective_scanner)) + return if (istype(W, /obj/item/weapon/packageWrap)) var/location = get_turf(src.loc) if(istype(src,/obj/item/weapon/storage) && istype(src.loc, /mob)) //Put it into the bag @@ -439,7 +441,7 @@ mob/proc/flash_weak_pain() else M.take_organ_damage(7) M.eye_blurry += rand(3,4) - M.eye_stat += rand(2,4) + M.eye_stat += rand(5,9) if (M.eye_stat >= 10) M.eye_blurry += 15+(0.1*M.eye_blurry) M.disabilities |= 1