From 752deb811984b2adaca140e5a7e7c82776be2ec1 Mon Sep 17 00:00:00 2001 From: Mikhail Dzianishchyts Date: Tue, 23 Apr 2024 22:09:44 +0300 Subject: [PATCH] Make it possible to get out of abductors experimentation machine (#24842) * Make it possible to get out of abductors experimentation machine * Better roll of result * Better message of escape attempt * Apply suggestions from code review * Remove unnecessary check * Slightly tweak values --- .../abduction/machinery/experiment.dm | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm index 0eb5a40d52f..4027079a2f8 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -216,6 +216,35 @@ occupant = null update_icon(UPDATE_ICON_STATE) +/obj/machinery/abductor/experiment/relaymove() + if(!occupant) + return + to_chat(occupant, "You start trying to break free!") + if(!do_after(occupant, 20 SECONDS, FALSE, src)) + return + var/list/possible_results = list( + CALLBACK(src, PROC_REF(electrocute_abductee)) = 1, + CALLBACK(src, PROC_REF(sedate_abductee)) = 1, + CALLBACK(src, PROC_REF(eject_abductee)) = 2 + ) + var/datum/callback/result = pickweight(possible_results) + result.Invoke() + +/obj/machinery/abductor/experiment/proc/electrocute_abductee() + if(!occupant) + return + to_chat(occupant, "Something is electrifying you!") + sleep(1 SECONDS) + occupant.electrocute_act(10, src) + do_sparks(5, TRUE, src) + +/obj/machinery/abductor/experiment/proc/sedate_abductee() + if(!occupant) + return + to_chat(occupant, "Something is stabbing you in the back!") + occupant.apply_damage(5, BRUTE, BODY_ZONE_CHEST) + occupant.reagents.add_reagent("ether", 5) + /obj/machinery/abductor/experiment/force_eject_occupant(mob/target) eject_abductee()