diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index fc2605949b2..860e475a922 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -31,195 +31,195 @@ /obj/item/weapon/circuitboard/message_monitor name = "circuit board (Message Monitor)" - build_path = "/obj/machinery/computer/message_monitor" + build_path = /obj/machinery/computer/message_monitor origin_tech = "programming=3" /obj/item/weapon/circuitboard/security name = "circuit board (Security)" - build_path = "/obj/machinery/computer/security" + build_path = /obj/machinery/computer/security /obj/item/weapon/circuitboard/aicore name = "circuit board (AI core)" origin_tech = "programming=4;biotech=2" board_type = "other" /obj/item/weapon/circuitboard/aiupload name = "circuit board (AI Upload)" - build_path = "/obj/machinery/computer/upload/ai" + build_path = /obj/machinery/computer/upload/ai origin_tech = "programming=4" /obj/item/weapon/circuitboard/borgupload name = "circuit board (Cyborg Upload)" - build_path = "/obj/machinery/computer/upload/borg" + build_path = /obj/machinery/computer/upload/borg origin_tech = "programming=4" /obj/item/weapon/circuitboard/med_data name = "circuit board (Medical Records Console)" - build_path = "/obj/machinery/computer/med_data" + build_path = /obj/machinery/computer/med_data /obj/item/weapon/circuitboard/pandemic name = "circuit board (PanD.E.M.I.C. 2200)" - build_path = "/obj/machinery/computer/pandemic" + build_path = /obj/machinery/computer/pandemic origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/scan_consolenew name = "circuit board (DNA Machine)" - build_path = "/obj/machinery/computer/scan_consolenew" + build_path = /obj/machinery/computer/scan_consolenew origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/communications name = "circuit board (Communications)" - build_path = "/obj/machinery/computer/communications" + build_path = /obj/machinery/computer/communications origin_tech = "programming=2;magnets=2" /obj/item/weapon/circuitboard/card name = "circuit board (ID Console)" - build_path = "/obj/machinery/computer/card" + build_path = /obj/machinery/computer/card /obj/item/weapon/circuitboard/card/centcom name = "circuit board (Centcom ID Console)" - build_path = "/obj/machinery/computer/card/centcom" + build_path = /obj/machinery/computer/card/centcom //obj/item/weapon/circuitboard/shield // name = "Circuit board (Shield Control)" -// build_path = "/obj/machinery/computer/stationshield" +// build_path = /obj/machinery/computer/stationshield /obj/item/weapon/circuitboard/teleporter name = "circuit board (Teleporter)" - build_path = "/obj/machinery/computer/teleporter" + build_path = /obj/machinery/computer/teleporter origin_tech = "programming=2;bluespace=2" /obj/item/weapon/circuitboard/secure_data name = "circuit board (Security Records Console)" - build_path = "/obj/machinery/computer/secure_data" + build_path = /obj/machinery/computer/secure_data /obj/item/weapon/circuitboard/stationalert name = "circuit board (Station Alerts)" - build_path = "/obj/machinery/computer/station_alert" -/obj/item/weapon/circuitboard/atmospheresiphonswitch + build_path = /obj/machinery/computer/station_alert +/*/obj/item/weapon/circuitboard/atmospheresiphonswitch name = "circuit board (Atmosphere siphon control)" - build_path = "/obj/machinery/computer/atmosphere/siphonswitch" + build_path = /obj/machinery/computer/atmosphere/siphonswitch*/ /obj/item/weapon/circuitboard/air_management name = "circuit board (Atmospheric monitor)" - build_path = "/obj/machinery/computer/general_air_control" + build_path = /obj/machinery/computer/general_air_control /obj/item/weapon/circuitboard/injector_control name = "circuit board (Injector control)" - build_path = "/obj/machinery/computer/general_air_control/fuel_injection" + build_path = /obj/machinery/computer/general_air_control/fuel_injection /obj/item/weapon/circuitboard/atmos_alert name = "circuit board (Atmospheric Alert)" - build_path = "/obj/machinery/computer/atmos_alert" + build_path = /obj/machinery/computer/atmos_alert /obj/item/weapon/circuitboard/pod name = "circuit board (Massdriver control)" - build_path = "/obj/machinery/computer/pod" + build_path = /obj/machinery/computer/pod /obj/item/weapon/circuitboard/robotics name = "circuit board (Robotics Control)" - build_path = "/obj/machinery/computer/robotics" + build_path = /obj/machinery/computer/robotics origin_tech = "programming=3" /obj/item/weapon/circuitboard/cloning name = "circuit board (Cloning)" - build_path = "/obj/machinery/computer/cloning" + build_path = /obj/machinery/computer/cloning origin_tech = "programming=3;biotech=3" /obj/item/weapon/circuitboard/arcade/battle name = "circuit board (Arcade Battle)" - build_path = "/obj/machinery/computer/arcade/battle" + build_path = /obj/machinery/computer/arcade/battle origin_tech = "programming=1" /obj/item/weapon/circuitboard/arcade/orion_trail name = "circuit board (Orion_Trail)" - build_path = "/obj/machinery/computer/arcade/orion_trail" + build_path = /obj/machinery/computer/arcade/orion_trail origin_tech = "programming=2" /obj/item/weapon/circuitboard/turbine_control name = "circuit board (Turbine control)" - build_path = "/obj/machinery/computer/turbine_computer" + build_path = /obj/machinery/computer/turbine_computer /obj/item/weapon/circuitboard/solar_control name = "circuit board (Solar Control)" //name fixed 250810 - build_path = "/obj/machinery/power/solar_control" + build_path = /obj/machinery/power/solar_control origin_tech = "programming=2;powerstorage=2" /obj/item/weapon/circuitboard/powermonitor name = "circuit board (Power Monitor)" //name fixed 250810 - build_path = "/obj/machinery/computer/monitor" + build_path = /obj/machinery/computer/monitor /obj/item/weapon/circuitboard/olddoor name = "circuit board (DoorMex)" - build_path = "/obj/machinery/computer/pod/old" + build_path = /obj/machinery/computer/pod/old /obj/item/weapon/circuitboard/syndicatedoor name = "circuit board (ProComp Executive)" - build_path = "/obj/machinery/computer/pod/old/syndicate" + build_path = /obj/machinery/computer/pod/old/syndicate /obj/item/weapon/circuitboard/swfdoor name = "circuit board (Magix)" - build_path = "/obj/machinery/computer/pod/old/swf" + build_path = /obj/machinery/computer/pod/old/swf /obj/item/weapon/circuitboard/prisoner name = "circuit board (Prisoner Management Console)" - build_path = "/obj/machinery/computer/prisoner" + build_path = /obj/machinery/computer/prisoner /obj/item/weapon/circuitboard/rdconsole name = "circuit Board (RD Console)" - build_path = "/obj/machinery/computer/rdconsole/core" + build_path = /obj/machinery/computer/rdconsole/core /obj/item/weapon/circuitboard/mecha_control name = "circuit Board (Exosuit Control Console)" - build_path = "/obj/machinery/computer/mecha" + build_path = /obj/machinery/computer/mecha /obj/item/weapon/circuitboard/rdservercontrol name = "circuit Board (R&D Server Control)" - build_path = "/obj/machinery/computer/rdservercontrol" + build_path = /obj/machinery/computer/rdservercontrol /obj/item/weapon/circuitboard/crew name = "circuit board (Crew Monitoring Console)" - build_path = "/obj/machinery/computer/crew" + build_path = /obj/machinery/computer/crew origin_tech = "programming=3;biotech=2;magnets=2" /obj/item/weapon/circuitboard/mech_bay_power_console name = "circuit board (Mech Bay Power Control Console)" - build_path = "/obj/machinery/computer/mech_bay_power_console" + build_path = /obj/machinery/computer/mech_bay_power_console origin_tech = "programming=2;powerstorage=3" /obj/item/weapon/circuitboard/ordercomp name = "circuit board (Supply Ordering Console)" - build_path = "/obj/machinery/computer/ordercomp" + build_path = /obj/machinery/computer/ordercomp origin_tech = "programming=2" /obj/item/weapon/circuitboard/supplycomp name = "circuit board (Supply shuttle console)" - build_path = "/obj/machinery/computer/supplycomp" + build_path = /obj/machinery/computer/supplycomp origin_tech = "programming=3" var/contraband_enabled = 0 /obj/item/weapon/circuitboard/operating name = "circuit board (Operating Computer)" - build_path = "/obj/machinery/computer/operating" + build_path = /obj/machinery/computer/operating origin_tech = "programming=2;biotech=2" /obj/item/weapon/circuitboard/mining name = "circuit board (Outpost Status Display)" - build_path = "/obj/machinery/computer/security/mining" + build_path = /obj/machinery/computer/security/mining origin_tech = "programming=2" /obj/item/weapon/circuitboard/comm_monitor name = "circuit board (Telecommunications Monitor)" - build_path = "/obj/machinery/computer/telecomms/monitor" + build_path = /obj/machinery/computer/telecomms/monitor origin_tech = "programming=3" /obj/item/weapon/circuitboard/comm_server name = "circuit board (Telecommunications Server Monitor)" - build_path = "/obj/machinery/computer/telecomms/server" + build_path = /obj/machinery/computer/telecomms/server origin_tech = "programming=3" /obj/item/weapon/circuitboard/comm_traffic name = "circuitboard (Telecommunications Traffic Control)" - build_path = "/obj/machinery/computer/telecomms/traffic" + build_path = /obj/machinery/computer/telecomms/traffic origin_tech = "programming=3" -/obj/item/weapon/circuitboard/curefab +/*/obj/item/weapon/circuitboard/curefab name = "circuit board (Cure fab)" - build_path = "/obj/machinery/computer/curer" + build_path = /obj/machinery/computer/curer /obj/item/weapon/circuitboard/splicer name = "circuit board (Disease Splicer)" - build_path = "/obj/machinery/computer/diseasesplicer" + build_path = /obj/machinery/computer/diseasesplicer*/ /obj/item/weapon/circuitboard/shuttle name = "circuit board (Shuttle)" - build_path = "/obj/machinery/computer/shuttle" + build_path = /obj/machinery/computer/shuttle origin_tech = "programming=2" id = "1" /obj/item/weapon/circuitboard/labor_shuttle name = "circuit Board (Labor Shuttle)" - build_path = "/obj/machinery/computer/shuttle/labor" + build_path = /obj/machinery/computer/shuttle/labor origin_tech = "programming 2" /obj/item/weapon/circuitboard/labor_shuttle/one_way name = "circuit Board (Prisoner Shuttle Console)" - build_path = "/obj/machinery/computer/shuttle/labor/one_way" + build_path = /obj/machinery/computer/shuttle/labor/one_way origin_tech = "programming 2" /obj/item/weapon/circuitboard/mining_shuttle name = "circuit Board (Mining Shuttle)" - build_path = "/obj/machinery/computer/shuttle/mining" + build_path = /obj/machinery/computer/shuttle/mining origin_tech = "programming 2" /obj/item/weapon/circuitboard/HolodeckControl // Not going to let people get this, but it's just here for future name = "circuit board (Holodeck Control)" - build_path = "/obj/machinery/computer/HolodeckControl" + build_path = /obj/machinery/computer/HolodeckControl origin_tech = "programming=4" /obj/item/weapon/circuitboard/aifixer name = "circuit board (AI Integrity Restorer)" - build_path = "/obj/machinery/computer/aifixer" + build_path = /obj/machinery/computer/aifixer origin_tech = "programming=3;biotech=2" /obj/item/weapon/circuitboard/area_atmos name = "circuit board (Area Air Control)" - build_path = "/obj/machinery/computer/area_atmos" + build_path = /obj/machinery/computer/area_atmos origin_tech = "programming=2" -/obj/item/weapon/circuitboard/prison_shuttle +/*/obj/item/weapon/circuitboard/prison_shuttle name = "circuit board (Prison Shuttle)" - build_path = "/obj/machinery/computer/prison_shuttle" - origin_tech = "programming=2" + build_path = /obj/machinery/computer/prison_shuttle + origin_tech = "programming=2"*/ /obj/item/weapon/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob) @@ -247,13 +247,13 @@ /obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob) if(istype(I,/obj/item/weapon/screwdriver)) if(src.build_path == "/obj/machinery/computer/rdconsole/core") - src.name = "circuit board (RD Console - Robotics)" - src.build_path = "/obj/machinery/computer/rdconsole/robotics" - user << "\blue Access protocols successfully updated." + name = "circuit board (RD Console - Robotics)" + build_path = /obj/machinery/computer/rdconsole/robotics + user << "Access protocols successfully updated." else - src.name = "circuit board (RD Console)" - src.build_path = "/obj/machinery/computer/rdconsole/core" - user << "\blue Defaulting access protocols." + name = "circuit board (RD Console)" + build_path = /obj/machinery/computer/rdconsole/core + user << "Defaulting access protocols." return /obj/item/weapon/circuitboard/shuttle/attackby(obj/item/I as obj, mob/user as mob) @@ -264,79 +264,85 @@ return /obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob) + add_fingerprint(user) switch(state) if(0) if(istype(P, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user, 20)) - user << "\blue You wrench the frame into place." - src.anchored = 1 - src.state = 1 + user << "You wrench the frame into place." + anchored = 1 + state = 1 if(istype(P, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = P if(!WT.remove_fuel(0, user)) - user << "The welding tool must be on to complete this task." + user << "The welding tool must be on to complete this task." return playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) if(do_after(user, 20)) if(!src || !WT.isOn()) return - user << "\blue You deconstruct the frame." - new /obj/item/stack/sheet/metal( src.loc, 5 ) + user << "You deconstruct the frame." + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) del(src) if(1) if(istype(P, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user, 20)) - user << "\blue You unfasten the frame." - src.anchored = 0 - src.state = 0 + user << "You unfasten the frame." + anchored = 0 + state = 0 if(istype(P, /obj/item/weapon/circuitboard) && !circuit) var/obj/item/weapon/circuitboard/B = P if(B.board_type == "computer") playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - user << "\blue You place the circuit board inside the frame." - src.icon_state = "1" - src.circuit = P + user << "You place the circuit board inside the frame." + icon_state = "1" + circuit = P user.drop_item() + circuit.add_fingerprint(user) P.loc = src else - user << "\red This frame does not accept circuit boards of this type!" + user << "This frame does not accept circuit boards of this type!" if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << "\blue You screw the circuit board into place." - src.state = 2 - src.icon_state = "2" + user << "You screw the circuit board into place." + state = 2 + icon_state = "2" if(istype(P, /obj/item/weapon/crowbar) && circuit) playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) - user << "\blue You remove the circuit board." - src.state = 1 - src.icon_state = "0" + user << "You remove the circuit board." + state = 1 + icon_state = "0" circuit.loc = src.loc - src.circuit = null + circuit.add_fingerprint(user) + circuit = null if(2) if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << "\blue You unfasten the circuit board." + user << "You unfasten the circuit board." src.state = 1 src.icon_state = "1" if(istype(P, /obj/item/weapon/cable_coil)) - if(P:amount >= 5) + var/obj/item/weapon/cable_coil/C = P + if(C.amount >= 5) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 20)) - if(P) - P:amount -= 5 - if(!P:amount) del(P) - user << "\blue You add cables to the frame." + if(C && C.amount >= 5) + C.amount -= 5 + if(C.amount <= 0) del(C) + user << "You add cables to the frame." src.state = 3 src.icon_state = "3" if(3) if(istype(P, /obj/item/weapon/wirecutters)) playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) - user << "\blue You remove the cables." + user << "You remove the cables." src.state = 2 src.icon_state = "2" - var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc ) + var/obj/item/weapon/cable_coil/A = new (loc) A.amount = 5 + A.add_fingerprint(user) if(istype(P, /obj/item/stack/sheet/glass)) if(P:amount >= 2) @@ -344,20 +350,21 @@ if(do_after(user, 20)) if(P) P:use(2) - user << "\blue You put in the glass panel." + user << "You put in the glass panel." src.state = 4 src.icon_state = "4" if(4) if(istype(P, /obj/item/weapon/crowbar)) playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) - user << "\blue You remove the glass panel." + user << "You remove the glass panel." src.state = 3 src.icon_state = "3" - new /obj/item/stack/sheet/glass( src.loc, 2 ) + var/obj/item/stack/sheet/glass/G = new (loc, 2) + G.add_fingerprint(user) if(istype(P, /obj/item/weapon/screwdriver)) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << "\blue You connect the monitor." - var/B = new src.circuit.build_path ( src.loc ) + user << "You connect the monitor." + var/obj/B = new src.circuit.build_path (src.loc) if(circuit.powernet) B:powernet = circuit.powernet if(circuit.id) B:id = circuit.id if(circuit.records) B:records = circuit.records @@ -370,4 +377,5 @@ var/obj/machinery/computer/shuttle/S = B var/obj/item/weapon/circuitboard/shuttle/C = circuit S.id = C.id + transfer_fingerprints_to(B) del(src) diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 2e64c41414e..79140348099 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -70,7 +70,7 @@ return /obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob) - src.add_fingerprint(usr) + add_fingerprint(user) if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) usr << "You put [W] back into [src]." user.drop_item() diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 9b752a8c62a..6f501762296 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -22,6 +22,7 @@ /obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user) ..() + add_fingerprint(user) if(istype(W,/obj/item/weapon/cable_coil)) var/obj/item/weapon/cable_coil/CC = W if(CC.amount < 5) @@ -29,7 +30,8 @@ return CC.use(5) user << "\blue You attach wire to the [name]." - new /obj/item/stack/light_w(user.loc) + var/obj/item/stack/light_w/new_tile = new(user.loc) + new_tile.add_fingerprint(user) src.use(1) else if( istype(W, /obj/item/stack/rods) ) var/obj/item/stack/rods/V = W @@ -89,6 +91,7 @@ W.anchored = 0 W.air_update_turf(1) src.use(1) + W.add_fingerprint(user) if("Full Window") if(!src) return 1 if(src.loc != user) return 1 @@ -104,6 +107,7 @@ W.ini_dir = SOUTHWEST W.anchored = 0 W.air_update_turf(1) + W.add_fingerprint(user) src.use(2) return 0 @@ -172,44 +176,46 @@ W.dir = dir_to_set W.ini_dir = W.dir W.anchored = 0 + W.add_fingerprint(user) src.use(1) if("Full Window") if(!src) return 1 if(src.loc != user) return 1 if(src.amount < 2) - user << "\red You need more glass to do that." + user << "You need more glass to do that." return 1 if(locate(/obj/structure/window) in user.loc) - user << "\red There is a window in the way." + user << "There is a window in the way." return 1 var/obj/structure/window/W - W = new /obj/structure/window/reinforced( user.loc, 1 ) + W = new /obj/structure/window/reinforced(user.loc, 1) W.state = 0 W.dir = SOUTHWEST W.ini_dir = SOUTHWEST W.anchored = 0 + W.add_fingerprint(user) src.use(2) if("Windoor") if(!src || src.loc != user) return 1 if(isturf(user.loc) && locate(/obj/structure/windoor_assembly/, user.loc)) - user << "\red There is already a windoor assembly in that location." + user << "There is already a windoor assembly in that location." return 1 if(isturf(user.loc) && locate(/obj/machinery/door/window/, user.loc)) - user << "\red There is already a windoor in that location." + user << "There is already a windoor in that location." return 1 if(src.amount < 5) - user << "\red You need more glass to do that." + user << "You need more glass to do that." return 1 - var/obj/structure/windoor_assembly/WD - WD = new /obj/structure/windoor_assembly(user.loc) + var/obj/structure/windoor_assembly/WD = new(user.loc) WD.state = "01" WD.anchored = 0 + WD.add_fingerprint(user) src.use(5) switch(user.dir) if(SOUTH) @@ -221,7 +227,7 @@ if(WEST) WD.dir = WEST WD.ini_dir = WEST - else//If the user is facing northeast. northwest, southeast, southwest or north, default to north + else //If the user is facing northeast. northwest, southeast, southwest or north, default to north WD.dir = NORTH WD.ini_dir = NORTH else diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index 5437fdeccd5..7994a83b547 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -14,10 +14,12 @@ /obj/item/stack/light_w/attackby(var/obj/item/O as obj, var/mob/user as mob) ..() if(istype(O,/obj/item/weapon/wirecutters)) - var/obj/item/weapon/cable_coil/CC = new/obj/item/weapon/cable_coil(user.loc) + var/obj/item/weapon/cable_coil/CC = new (user.loc) CC.amount = 5 + CC.add_fingerprint(user) amount-- - new/obj/item/stack/sheet/glass(user.loc) + var/obj/item/stack/sheet/glass/G = new (user.loc) + G.add_fingerprint(user) if(amount <= 0) user.drop_from_inventory(src) del(src) @@ -29,7 +31,8 @@ user.drop_from_inventory(M) del(M) amount-- - new/obj/item/stack/tile/light(user.loc) + var/obj/item/stack/tile/light/L = new (user.loc) + L.add_fingerprint(user) if(amount <= 0) user.drop_from_inventory(src) del(src) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index b50225838e6..f9cd7e59526 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -6,60 +6,64 @@ var/state = 0 attackby(obj/item/W as obj, mob/user as mob) + add_fingerprint(user) if(istype(W, /obj/item/weapon/wrench) && state == 0) if(anchored && !istype(src,/obj/structure/girder/displaced)) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue Now disassembling the girder" + user << "Now disassembling the girder..." if(do_after(user,40)) if(!src) return - user << "\blue You dissasembled the girder!" + user << "You dissasembled the girder!" new /obj/item/stack/sheet/metal(get_turf(src)) del(src) else if(!anchored) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue Now securing the girder" + user << "Now securing the girder..." if(get_turf(user, 40)) - user << "\blue You secured the girder!" - new/obj/structure/girder( src.loc ) + user << "You secured the girder!" + var/obj/structure/girder/G = new (loc) + transfer_fingerprints_to(G) del(src) else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) - user << "\blue Now slicing apart the girder" + user << "Now slicing apart the girder..." if(do_after(user,30)) if(!src) return - user << "\blue You slice apart the girder!" + user << "You slice apart the girder!" new /obj/item/stack/sheet/metal(get_turf(src)) del(src) else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - user << "\blue You drill through the girder!" + user << "You drill through the girder!" new /obj/item/stack/sheet/metal(get_turf(src)) del(src) else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) - user << "\blue Now unsecuring support struts" + user << "Now unsecuring support struts..." if(do_after(user,40)) if(!src) return - user << "\blue You unsecured the support struts!" + user << "You unsecured the support struts!" state = 1 else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) - user << "\blue Now removing support struts" + user << "Now removing support struts..." if(do_after(user,40)) if(!src) return - user << "\blue You removed the support struts!" - new/obj/structure/girder( src.loc ) + user << "You removed the support struts!" + var/obj/structure/girder/G = new (loc) + transfer_fingerprints_to(G) del(src) else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user << "\blue Now dislodging the girder" + user << "Now dislodging the girder..." if(do_after(user, 40)) if(!src) return - user << "\blue You dislodged the girder!" - new/obj/structure/girder/displaced( src.loc ) + user << "You dislodged the girder!" + var/obj/structure/girder/displaced/D = new (loc) + transfer_fingerprints_to(D) del(src) else if(istype(W, /obj/item/stack/sheet)) @@ -71,20 +75,21 @@ if(!anchored) if(S.amount < 2) return S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall (src.loc) + user << "You create a false wall! Push on it to open or close the passage." + var/obj/structure/falsewall/F = new (loc) + transfer_fingerprints_to(F) del(src) else if(S.amount < 2) return ..() - user << "\blue Now adding plating..." + user << "Now adding plating..." if (do_after(user,40)) if(!src || !S || S.amount < 2) return S.use(2) - user << "\blue You added the plating!" + user << "You added the plating!" var/turf/Tsrc = get_turf(src) Tsrc.ChangeTurf(/turf/simulated/wall) for(var/turf/simulated/wall/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) + if(X) transfer_fingerprints_to(X) del(src) return @@ -92,31 +97,33 @@ if(!anchored) if(S.amount < 2) return S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falserwall (src.loc) + user << "You create a false wall! Push on it to open or close the passage." + var/obj/structure/falserwall/FW = new (loc) + transfer_fingerprints_to(FW) del(src) else if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... if(S.amount < 1) return ..() - user << "\blue Now finalising reinforced wall." + user << "Now finalising reinforced wall..." if(do_after(user, 50)) if(!src || !S || S.amount < 1) return S.use(1) - user << "\blue Wall fully reinforced!" + user << "Wall fully reinforced!" var/turf/Tsrc = get_turf(src) Tsrc.ChangeTurf(/turf/simulated/wall/r_wall) for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) + if(X) transfer_fingerprints_to(X) del(src) return else if(S.amount < 1) return ..() - user << "\blue Now reinforcing girders" + user << "Now reinforcing girders..." if (do_after(user,60)) if(!src || !S || S.amount < 1) return S.use(1) - user << "\blue Girders reinforced!" - new/obj/structure/girder/reinforced( src.loc ) + user << "Girders reinforced!" + var/obj/structure/girder/reinforced/R = new (loc) + transfer_fingerprints_to(R) del(src) return @@ -125,21 +132,22 @@ if(!anchored) if(S.amount < 2) return S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." + user << "You create a false wall! Push on it to open or close the passage." var/F = text2path("/obj/structure/falsewall/[M]") - new F (src.loc) + var/obj/structure/FW = new F (loc) + transfer_fingerprints_to(FW) del(src) else if(S.amount < 2) return ..() - user << "\blue Now adding plating..." + user << "Now adding plating..." if (do_after(user,40)) if(!src || !S || S.amount < 2) return S.use(2) - user << "\blue You added the plating!" + user << "You added the plating!" var/turf/Tsrc = get_turf(src) Tsrc.ChangeTurf(text2path("/turf/simulated/wall/mineral/[M]")) for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) + if(X) transfer_fingerprints_to(X) del(src) return @@ -150,7 +158,7 @@ if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. user.drop_item() P.loc = src.loc - user << "\blue You fit the pipe into the [src]!" + user << "You fit the pipe into the [src]!" else ..() @@ -198,23 +206,27 @@ attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue Now disassembling the girder" + user << "Now disassembling the girder..." if(do_after(user,40)) - user << "\blue You dissasembled the girder!" - new /obj/effect/decal/remains/human(get_turf(src)) + user << "You dissasembled the girder!" + var/obj/effect/decal/remains/human/R = new (get_turf(src)) + transfer_fingerprints_to(R) del(src) else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) - user << "\blue Now slicing apart the girder" + user << "Now slicing apart the girder..." if(do_after(user,30)) - user << "\blue You slice apart the girder!" - new /obj/effect/decal/remains/human(get_turf(src)) - del(src) + user << "You slice apart the girder!" + var/obj/effect/decal/remains/human/R = new (get_turf(src)) + transfer_fingerprints_to(R) + del(src) else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - user << "\blue You drill through the girder!" - new /obj/effect/decal/remains/human(get_turf(src)) - del(src) + user << "You drill through the girder!" + if(do_after(user, 5)) + var/obj/effect/decal/remains/human/R = new (get_turf(src)) + transfer_fingerprints_to(R) + del(src) blob_act() if(prob(40)) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index b43eb6352a2..c8768f63971 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -70,23 +70,26 @@ obj/structure/windoor_assembly/Del() /obj/structure/windoor_assembly/attackby(obj/item/W as obj, mob/user as mob) //I really should have spread this out across more states but thin little windoors are hard to sprite. + add_fingerprint(user) switch(state) if("01") if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) var/obj/item/weapon/weldingtool/WT = W if (WT.remove_fuel(0,user)) - user.visible_message("[user] dissassembles the windoor assembly.", "You start to dissassemble the windoor assembly.") + user.visible_message("[user] dissassembles the windoor assembly.", "You start to dissassemble the windoor assembly.") playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) if(do_after(user, 40)) if(!src || !WT.isOn()) return - user << "\blue You dissasembled the windoor assembly!" - new /obj/item/stack/sheet/rglass(get_turf(src), 5) + user << "You dissasembled the windoor assembly!" + var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5) + RG.add_fingerprint(user) if(secure) - new /obj/item/stack/rods(get_turf(src), 4) + var/obj/item/stack/rods/R = new (get_turf(src), 4) + R.add_fingerprint(user) del(src) else - user << "\blue You need more welding fuel to dissassemble the windoor assembly." + user << "You need more welding fuel to dissassemble the windoor assembly." return //Wrenching an unsecure assembly anchors it in place. Step 4 complete diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 7813bc255e5..a339db1ca01 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -55,7 +55,6 @@ if(reinf) new /obj/item/stack/rods( loc) del(src) - /obj/structure/window/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(istype(mover) && mover.checkpass(PASSGLASS)) return 1 @@ -98,6 +97,7 @@ /obj/structure/window/attack_tk(mob/user as mob) user.visible_message("Something knocks on [src].") + add_fingerprint(user) playsound(loc, 'sound/effects/Glasshit.ogg', 50, 1) /obj/structure/window/attack_hand(mob/user as mob) @@ -106,11 +106,15 @@ if(HULK in user.mutations) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!")) user.visible_message("[user] smashes through [src]!") - new /obj/item/weapon/shard(loc) - if(reinf) new /obj/item/stack/rods(loc) + var/obj/item/weapon/shard/S = new (loc) + S.add_fingerprint(user) + if(reinf) + var/obj/item/stack/rods/R = new (loc) + R.add_fingerprint(user) del(src) else user.visible_message("[user] knocks on [src].") + add_fingerprint(user) playsound(loc, 'sound/effects/Glasshit.ogg', 50, 1) @@ -151,6 +155,7 @@ /obj/structure/window/attackby(obj/item/I, mob/user) if(!can_be_reached(user)) return 1 //returning 1 will skip the afterattack() + add_fingerprint(user) if(istype(I, /obj/item/weapon/screwdriver)) if(reinf && state >= 1) state = 3 - state @@ -171,14 +176,18 @@ playsound(loc, 'sound/items/Crowbar.ogg', 75, 1) user << (state ? "You have pried the window into the frame." : "You have pried the window out of the frame.") else if(istype(I, /obj/item/weapon/wrench) && !anchored) - var/glass_type if(reinf) - glass_type = /obj/item/stack/sheet/rglass + var/obj/item/stack/sheet/rglass/RG = new (user.loc) + RG.add_fingerprint(user) + if(is_fulltile()) //fulltiles drop two panes + RG = new (user.loc) + RG.add_fingerprint(user) else - glass_type = /obj/item/stack/sheet/glass - new glass_type(user.loc) - if(is_fulltile())//fulltiles drop two panes - new glass_type(user.loc) + var/obj/item/stack/sheet/glass/G = new (user.loc) + G.add_fingerprint(user) + if(is_fulltile()) + G = new (user.loc) + G.add_fingerprint(user) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) src.Del(1) else @@ -234,6 +243,7 @@ // updateSilicate() air_update_turf(1) ini_dir = dir + add_fingerprint(usr) return @@ -250,6 +260,7 @@ // updateSilicate() air_update_turf(1) ini_dir = dir + add_fingerprint(usr) return diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index e9f7709972f..3cd1a36d75a 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -149,4 +149,4 @@ atom/proc/add_fibers(mob/living/carbon/human/M) A.fingerprints |= fingerprints.Copy() //detective if(fingerprintshidden) A.fingerprintshidden |= fingerprintshidden.Copy() //admin - A.fingerprintslast = fingerprintslast \ No newline at end of file + A.fingerprintslast = fingerprintslast