diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index b99e5a6f32f..f7592907ce4 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -75,6 +75,30 @@ O << text("\red [] has been hit by [] with []", src, user, W) return +/atom/proc/add_hiddenprint(mob/living/M as mob) + if(isnull(M)) return + if(isnull(M.key)) return + if (!( src.flags ) & 256) + return + if (ishuman(M)) + var/mob/living/carbon/human/H = M + if (!istype(H.dna, /datum/dna)) + return 0 + if (H.gloves) + if(src.fingerprintslast != H.key) + src.fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key) + src.fingerprintslast = H.key + return 0 + if (!( src.fingerprints )) + if(src.fingerprintslast != H.key) + src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key) + src.fingerprintslast = H.key + return 1 + else + if(src.fingerprintslast != M.key) + src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key) + src.fingerprintslast = M.key + return /atom/proc/add_fingerprint(mob/living/M as mob) if(isnull(M)) return diff --git a/code/game/machinery/camera.dm b/code/game/machinery/camera.dm index 81eb3d6c1e5..c52aa8f44ea 100644 --- a/code/game/machinery/camera.dm +++ b/code/game/machinery/camera.dm @@ -356,11 +356,13 @@ O.show_message(text("\red [] has deactivated []!", user, src), 1) playsound(src.loc, 'Wirecutter.ogg', 100, 1) icon_state = "camera1" + add_hiddenprint(user) else for(var/mob/O in viewers(user, null)) O.show_message(text("\red [] has reactivated []!", user, src), 1) playsound(src.loc, 'Wirecutter.ogg', 100, 1) icon_state = "camera" + add_hiddenprint(user) // now disconnect anyone using the camera //Apparently, this will disconnect anyone even if the camera was re-activated. //I guess that doesn't matter since they can't use it anyway? diff --git a/code/game/objects/devices/chameleonproj.dm b/code/game/objects/devices/chameleonproj.dm index c08ffa32e74..0526ec5ff29 100644 --- a/code/game/objects/devices/chameleonproj.dm +++ b/code/game/objects/devices/chameleonproj.dm @@ -25,7 +25,17 @@ relaymove(var/mob/user, direction) if(can_move) can_move = 0 - spawn(10) can_move = 1 + switch(usr.bodytemperature) + if(300 to INFINITY) + spawn(10) can_move = 1 + if(295 to 300) + spawn(13) can_move = 1 + if(280 to 295) + spawn(16) can_move = 1 + if(260 to 280) + spawn(20) can_move = 1 + else + spawn(25) can_move = 1 step(src,direction) return diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm index 4dc1e13076c..cd341fcb9b8 100644 --- a/code/game/objects/items/weapons/table_rack_parts.dm +++ b/code/game/objects/items/weapons/table_rack_parts.dm @@ -18,7 +18,8 @@ RACK PARTS del(src) /obj/item/weapon/table_parts/attack_self(mob/user as mob) - new /obj/structure/table( user.loc ) + var/obj/structure/table/T = new /obj/structure/table( user.loc ) + T.add_fingerprint(usr) del(src) return diff --git a/code/game/objects/stacks/metal.dm b/code/game/objects/stacks/metal.dm index 34bcdbf7be8..2920c6f7f10 100644 --- a/code/game/objects/stacks/metal.dm +++ b/code/game/objects/stacks/metal.dm @@ -50,8 +50,9 @@ FLOOR TILES usr << "\blue Assembling grille..." if (!do_after(usr, 10)) return - new /obj/structure/grille( usr.loc ) + var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc ) usr << "\blue You assemble a grille" + F.add_fingerprint(usr) use(2) return diff --git a/code/game/objects/stacks/stack.dm b/code/game/objects/stacks/stack.dm index 3ca6fc7dce3..7d5a935046c 100644 --- a/code/game/objects/stacks/stack.dm +++ b/code/game/objects/stacks/stack.dm @@ -157,7 +157,7 @@ t1 += " [n*R.res_amount]x" if (!(max_multiplier in multipliers)) t1 += " [max_multiplier*R.res_amount]x" - + t1 += "" user << browse(t1, "window=stack") onclose(user, "stack") @@ -205,6 +205,7 @@ del(oldsrc) if (istype(O,/obj/item)) usr.put_in_hand(O) + O.add_fingerprint(usr) if (src && usr.machine==src) //do not reopen closed window spawn( 0 ) src.interact(usr) diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 92ea94d49b6..5e0ebc28958 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -366,7 +366,7 @@ proc fire_grenade(atom/target, mob/user) - if (locate (/obj/structure/table, src.loc)) + if (locate (/obj/structure/table, src.loc) || locate (/obj/item/weapon/storage, src.loc)) return else for(var/mob/O in viewers(world.view, user))