From 4d1ea753c39fc1a4611c22cc50f0b8816e744c26 Mon Sep 17 00:00:00 2001 From: Leo Date: Tue, 14 Nov 2017 21:43:49 -0200 Subject: [PATCH] Removes some attackby crowbar checks on nuclear bombs and camera assemblies (#32726) --- code/game/gamemodes/nuclear/nuclearbomb.dm | 41 +++---- code/game/machinery/camera/camera_assembly.dm | 106 +++++++++--------- 2 files changed, 76 insertions(+), 71 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 3ac0f7b29b..a36503e7c4 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -122,15 +122,7 @@ to_chat(user, "You remove the screws from [src]'s front panel.") update_icon() return - if(NUKESTATE_UNSCREWED) - if(istype(I, /obj/item/crowbar)) - to_chat(user, "You start removing [src]'s front panel...") - playsound(loc, I.usesound, 100, 1) - if(do_after(user,30*I.toolspeed,target=src)) - to_chat(user, "You remove [src]'s front panel.") - deconstruction_state = NUKESTATE_PANEL_REMOVED - update_icon() - return + if(NUKESTATE_PANEL_REMOVED) if(istype(I, /obj/item/weldingtool)) var/obj/item/weldingtool/welder = I @@ -142,16 +134,6 @@ deconstruction_state = NUKESTATE_WELDED update_icon() return - if(NUKESTATE_WELDED) - if(istype(I, /obj/item/crowbar)) - to_chat(user, "You start prying off [src]'s inner plate...") - playsound(loc, I.usesound, 100, 1) - if(do_after(user,50*I.toolspeed,target=src)) - to_chat(user, "You pry off [src]'s inner plate. You can see the core's green glow!") - deconstruction_state = NUKESTATE_CORE_EXPOSED - update_icon() - START_PROCESSING(SSobj, core) - return if(NUKESTATE_CORE_EXPOSED) if(istype(I, /obj/item/nuke_core_container)) var/obj/item/nuke_core_container/core_box = I @@ -182,6 +164,27 @@ return . = ..() +/obj/machinery/nuclearbomb/crowbar_act(mob/user, obj/item/tool) + . = FALSE + switch(deconstruction_state) + if(NUKESTATE_UNSCREWED) + to_chat(user, "You start removing [src]'s front panel...") + playsound(loc, tool.usesound, 100, 1) + if(do_after(user, 30 * tool.toolspeed, target = src)) + to_chat(user, "You remove [src]'s front panel.") + deconstruction_state = NUKESTATE_PANEL_REMOVED + update_icon() + return TRUE + if(NUKESTATE_WELDED) + to_chat(user, "You start prying off [src]'s inner plate...") + playsound(loc, tool.usesound, 100, 1) + if(do_after(user, 50 * tool.toolspeed, target = src)) + to_chat(user, "You pry off [src]'s inner plate. You can see the core's green glow!") + deconstruction_state = NUKESTATE_CORE_EXPOSED + update_icon() + START_PROCESSING(SSobj, core) + return TRUE + /obj/machinery/nuclearbomb/proc/get_nuke_state() if(exploding) return NUKE_ON_EXPLODING diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 5b828af820..1424944633 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -45,14 +45,6 @@ anchored = TRUE state = 2 return - - else if(istype(W, /obj/item/wrench)) - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You unattach the assembly from its place.") - new /obj/item/wallframe/camera(get_turf(src)) - qdel(src) - return - if(2) // State 2 if(istype(W, /obj/item/stack/cable_coil)) @@ -73,40 +65,6 @@ anchored = TRUE return - - if(3) - // State 3 - if(istype(W, /obj/item/screwdriver)) - playsound(src.loc, W.usesound, 50, 1) - - var/input = stripped_input(user, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") - if(!input) - to_chat(user, "No input found, please hang up and try your call again!") - return - - var/list/tempnetwork = splittext(input, ",") - if(tempnetwork.len < 1) - to_chat(user, "No network found, please hang up and try your call again!") - return - - state = 4 - var/obj/machinery/camera/C = new(src.loc) - forceMove(C) - C.assembly = src - C.setDir(src.dir) - - C.network = tempnetwork - var/area/A = get_area(src) - C.c_tag = "[A.name] ([rand(1, 999)])" - - - else if(istype(W, /obj/item/wirecutters)) - new/obj/item/stack/cable_coil(get_turf(src), 2) - playsound(src.loc, W.usesound, 50, 1) - to_chat(user, "You cut the wires from the circuits.") - state = 2 - return - // Upgrades! if(is_type_in_typecache(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. if(!user.transferItemToLoc(W, src)) @@ -115,18 +73,62 @@ upgrades += W return - // Taking out upgrades - else if(istype(W, /obj/item/crowbar) && upgrades.len) - var/obj/U = locate(/obj) in upgrades - if(U) - to_chat(user, "You unattach an upgrade from the assembly.") - playsound(src.loc, W.usesound, 50, 1) - U.forceMove(drop_location()) - upgrades -= U - return - return ..() +/obj/structure/camera_assembly/crowbar_act(mob/user, obj/item/tool) + if(!upgrades.len) + return FALSE + var/obj/U = locate(/obj) in upgrades + if(U) + to_chat(user, "You unattach an upgrade from the assembly.") + playsound(src, tool.usesound, 50, 1) + U.forceMove(drop_location()) + upgrades -= U + return TRUE + +/obj/structure/camera_assembly/screwdriver_act(mob/user, obj/item/tool) + if(state != 3) + return FALSE + + playsound(src, tool.usesound, 50, 1) + var/input = stripped_input(user, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") + if(!input) + to_chat(user, "No input found, please hang up and try your call again!") + return + var/list/tempnetwork = splittext(input, ",") + if(tempnetwork.len < 1) + to_chat(user, "No network found, please hang up and try your call again!") + return + state = 4 + var/obj/machinery/camera/C = new(src.loc) + forceMove(C) + C.assembly = src + C.setDir(src.dir) + + C.network = tempnetwork + var/area/A = get_area(src) + C.c_tag = "[A.name] ([rand(1, 999)])" + return TRUE + +/obj/structure/camera_assembly/wirecutter_act(mob/user, obj/item/tool) + if(state != 3) + return FALSE + + new /obj/item/stack/cable_coil(get_turf(src), 2) + playsound(src, tool.usesound, 50, 1) + to_chat(user, "You cut the wires from the circuits.") + state = 2 + return TRUE + +/obj/structure/camera_assembly/wrench_act(mob/user, obj/item/tool) + if(state != 1) + return FALSE + playsound(src, tool.usesound, 50, 1) + to_chat(user, "You unattach the assembly from its place.") + new /obj/item/wallframe/camera(get_turf(src)) + qdel(src) + return TRUE + /obj/structure/camera_assembly/proc/weld(obj/item/weldingtool/WT, mob/living/user) if(!WT.remove_fuel(0, user)) return 0