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
This commit is contained in:
Mikhail Dzianishchyts
2024-04-23 19:09:44 +00:00
committed by GitHub
parent 67cba07b99
commit 752deb8119
@@ -216,6 +216,35 @@
occupant = null
update_icon(UPDATE_ICON_STATE)
/obj/machinery/abductor/experiment/relaymove()
if(!occupant)
return
to_chat(occupant, "<span class='warning'>You start trying to break free!</span>")
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, "<span class='warning'>Something is electrifying you!</span>")
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, "<span class='warning'>Something is stabbing you in the back!</span>")
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()