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()