diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 6cc2385e62..6db1e4baae 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -368,12 +368,16 @@
if(ishuman(hit_atom) && !caught && prob(throw_hit_chance) && thrownby)//if they are a carbon and they didn't catch it
baton_stun(hit_atom, thrownby, shoving = TRUE)
if(thrownby && !caught)
- sleep(1)
- if(!QDELETED(src))
- throw_at(thrownby, throw_range+2, throw_speed, null, TRUE)
+ throw_back()
else
return ..()
+/obj/item/melee/baton/boomerang/proc/throw_back()
+ set waitfor = FALSE
+ sleep(1)
+ if(!QDELETED(src))
+ throw_at(thrownby, throw_range+2, throw_speed, null, TRUE)
+
/obj/item/melee/baton/boomerang/update_icon()
if(turned_on)
icon_state = "[initial(icon_state)]_active"
diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm
index fb16a9c9a7..9f41fb0f79 100644
--- a/code/modules/holiday/halloween/jacqueen.dm
+++ b/code/modules/holiday/halloween/jacqueen.dm
@@ -731,9 +731,12 @@
/obj/item/reagent_containers/potion_container/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
..()
+ delayed_release_smoke()
+
+/obj/item/reagent_containers/potion_container/proc/delayed_release_smoke()
sleep(20)
var/datum/effect_system/smoke_spread/chem/s = new()
- s.set_up(src.reagents, 3, src.loc)
+ s.set_up(src.reagents, 3, get_turf(src))
s.start()
qdel(src)
diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm
index 4684352ef5..97a87a5e01 100644
--- a/code/modules/research/xenobiology/crossbreeding/_misc.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm
@@ -92,6 +92,10 @@
icon_state = "capturedevice"
/obj/item/capturedevice/attack(mob/living/M, mob/user)
+ try_catching(M, user)
+
+/obj/item/capturedevice/proc/try_catching(mob/living/M, mob/user)
+ set waitfor = FALSE
if(length(contents))
to_chat(user, "The device already has something inside.")
return
@@ -116,7 +120,7 @@
to_chat(user, "This creature is too aggressive to capture.")
return
to_chat(user, "You store [M] in the capture device.")
- store(M)
+ store(M, user)
/obj/item/capturedevice/attack_self(mob/user)
if(contents.len)
@@ -125,7 +129,10 @@
else
to_chat(user, "The device is empty...")
-/obj/item/capturedevice/proc/store(var/mob/living/M)
+/obj/item/capturedevice/proc/store(var/mob/living/M, mob/user)
+ if(length(contents))
+ to_chat(user, "The device already has something inside.")
+ return
M.forceMove(src)
/obj/item/capturedevice/proc/release()