diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
index e6731d4ea17..3366777a081 100644
--- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
@@ -12,6 +12,7 @@
use_power = 1
can_unwrench = 1
+ var/open = 0
var/area/initial_loc
var/area_uid
@@ -339,6 +340,29 @@
else
user << "You need more welding fuel to complete this task."
return 1
+ if(istype(W, /obj/item/weapon/screwdriver))
+ if(!welded)
+ if(open)
+ user << " Now closing the vent."
+ if (do_after(user, 20, target = src))
+ open = 0
+ user.visible_message("[user] screwdrivers the vent shut.", "You screwdriver the vent shut.", "You hear a screwdriver.")
+ else
+ user << " Now opening the vent."
+ if (do_after(user, 20, target = src))
+ open = 1
+ user.visible_message("[user] screwdrivers the vent shut.", "You screwdriver the vent shut.", "You hear a screwdriver.")
+ return
+ if(istype(W, /obj/item/weapon/paper))
+ if(!welded)
+ if(open)
+ user.drop_item(W)
+ W.forceMove(src)
+ if(!open)
+ user << "You can't shove that down there when it is closed"
+ else
+ user << "The vent is welded."
+ return
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
@@ -349,6 +373,12 @@
return ..()
+/obj/machinery/atmospherics/unary/vent_pump/attack_hand()
+ if(!welded)
+ if(open)
+ for(var/obj/item/weapon/W in src)
+ W.forceMove(get_turf(src))
+
/obj/machinery/atmospherics/unary/vent_pump/examine(mob/user)
..(user)