diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 535fb190c2c..c9c594e3dcc 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -69,6 +69,14 @@ air_update_turf(TRUE) +/obj/structure/window/proc/toggle_polarization() + if(opacity) + animate(src, color="#FFFFFF", time=5) + set_opacity(0) + else + animate(src, color="#222222", time=5) + set_opacity(1) + /obj/structure/window/narsie_act() color = NARSIE_WINDOW_COLOUR @@ -497,14 +505,6 @@ desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it." var/id -/obj/structure/window/reinforced/polarized/proc/toggle() - if(opacity) - animate(src, color="#FFFFFF", time=5) - set_opacity(0) - else - animate(src, color="#222222", time=5) - set_opacity(1) - /obj/machinery/button/windowtint name = "window tint control" icon = 'icons/obj/power.dmi' @@ -514,8 +514,8 @@ var/id = 0 var/active = 0 -/obj/machinery/button/windowtint/New(turf/loc, w_dir=null) - ..() +/obj/machinery/button/windowtint/Initialize(mapload, w_dir=null) + . = ..() switch(w_dir) if(NORTH) pixel_y = 25 @@ -532,16 +532,17 @@ toggle_tint() -/obj/machinery/button/windowtint/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/wrench)) - playsound(get_turf(src), W.usesound, 50, 1) - if(do_after(user, 30 * W.toolspeed, target = src)) - to_chat(user, "You detach \the [src] from the wall.") - new/obj/item/mounted/frame/light_switch/windowtint(get_turf(src)) - qdel(src) - return TRUE - - return ..() +/obj/machinery/button/windowtint/wrench_act(mob/user, obj/item/I) + . = TRUE + if(!I.tool_use_check(user, 0)) + return + user.visible_message("[user] starts unwrenching [src] from the wall...", "You are unwrenching [src] from the wall...", "You hear ratcheting.") + . = TRUE + if(!I.use_tool(src, user, 50, volume = I.tool_volume)) + return + WRENCH_UNANCHOR_WALL_MESSAGE + new/obj/item/mounted/frame/light_switch/windowtint(get_turf(src)) + qdel(src) /obj/machinery/button/windowtint/proc/toggle_tint() use_power(5) @@ -551,11 +552,11 @@ for(var/obj/structure/window/reinforced/polarized/W in range(src,range)) if(W.id == src.id || !W.id) - W.toggle() + W.toggle_polarization() for(var/obj/structure/window/full/reinforced/polarized/W in range(src,range)) if(W.id == src.id || !W.id) - W.toggle() + W.toggle_polarization() /obj/machinery/button/windowtint/power_change() ..() @@ -670,15 +671,6 @@ name = "electrochromic window" desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it." var/id - -/obj/structure/window/full/reinforced/polarized/proc/toggle() - if(opacity) - animate(src, color="#FFFFFF", time=5) - set_opacity(0) - else - animate(src, color="#222222", time=5) - set_opacity(1) - /obj/structure/window/full/reinforced/tinted name = "tinted window" desc = "It looks rather strong and opaque. Might take a few good hits to shatter it."