diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 623f7b8f736..f743bc990a3 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -369,8 +369,27 @@ else to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) return 1 + else if(istype(W, /obj/item/melee/arm_blade)) + if(!welded) + to_chat(user, SPAN_WARNING("\The [W] can only be used to tear open welded air vents!")) + return + user.visible_message(SPAN_WARNING("\The [user] starts using \the [W] to hack open \the [src]!"), SPAN_NOTICE("You start hacking open \the [src] with \the [W]...")) + user.do_attack_animation(src, W) + playsound(loc, 'sound/weapons/smash.ogg', 60, TRUE) + var/cut_amount = 3 + for(var/i = 0; i <= cut_amount; i++) + if(!W || !do_after(user, 30, src)) + return + user.do_attack_animation(src, W) + user.visible_message(SPAN_WARNING("\The [user] smashes \the [W] into \the [src]!"), SPAN_NOTICE("You smash \the [W] into \the [src].")) + playsound(loc, 'sound/weapons/smash.ogg', 60, TRUE) + if(i == cut_amount) + welded = FALSE + spark(get_turf(src), 3, alldirs) + playsound(loc, 'sound/items/welder_pry.ogg', 50, TRUE) + update_icon() else - ..() + return ..() /obj/machinery/atmospherics/unary/vent_pump/examine(mob/user) if(..(user, 1)) diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 69a7a0c1eba..d09368e9fb4 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -192,7 +192,7 @@ if(signal.data["power_toggle"] != null) use_power = !use_power - if(signal.data["panic_siphon"]) //must be before if("scrubbing" thing + if(signal.data["panic_siphon"]) //must be before if("scrubbing") thing panic = text2num(signal.data["panic_siphon"]) if(panic) use_power = 1 @@ -310,6 +310,28 @@ else to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) return 1 + + if(istype(W, /obj/item/melee/arm_blade)) + if(!welded) + to_chat(user, SPAN_WARNING("\The [W] can only be used to tear open welded scrubbers!")) + return + user.visible_message(SPAN_WARNING("\The [user] starts using \the [W] to hack open \the [src]!"), SPAN_NOTICE("You start hacking open \the [src] with \the [W]...")) + user.do_attack_animation(src, W) + playsound(loc, 'sound/weapons/smash.ogg', 60, TRUE) + var/cut_amount = 3 + for(var/i = 0; i <= cut_amount; i++) + if(!W || !do_after(user, 30, src)) + return + user.do_attack_animation(src, W) + user.visible_message(SPAN_WARNING("\The [user] smashes \the [W] into \the [src]!"), SPAN_NOTICE("You smash \the [W] into \the [src].")) + playsound(loc, 'sound/weapons/smash.ogg', 60, TRUE) + if(i == cut_amount) + welded = FALSE + spark(get_turf(src), 3, alldirs) + playsound(loc, 'sound/items/welder_pry.ogg', 50, TRUE) + update_icon() + return + return ..() /obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user) diff --git a/code/game/gamemodes/changeling/implements/items.dm b/code/game/gamemodes/changeling/implements/items.dm index bcf1b271f06..a6ddf5d21d9 100644 --- a/code/game/gamemodes/changeling/implements/items.dm +++ b/code/game/gamemodes/changeling/implements/items.dm @@ -49,7 +49,8 @@ QDEL_IN(src, 1) /obj/item/melee/arm_blade/iscrowbar() - if(creator.a_intent == I_HELP) return TRUE + if(creator.a_intent == I_HELP) + return TRUE return FALSE /obj/item/melee/arm_blade/resolve_attackby(atom/A, mob/living/user, var/click_parameters) diff --git a/html/changelogs/geeves-ling_escapism.yml b/html/changelogs/geeves-ling_escapism.yml new file mode 100644 index 00000000000..a78e7ae866c --- /dev/null +++ b/html/changelogs/geeves-ling_escapism.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Lings can now use their armblades to break open welded scrubbers and air vents." \ No newline at end of file