Thrown mobs cant move until the throw ends (#23775)

* if you being throwed, you're not moving

* throw block_movement variable

* forgot arg here

* tether might keep movement

* Update code/controllers/subsystem/SSthrowing.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>

---------

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
HMBGERDO
2024-01-28 17:18:13 -05:00
committed by GitHub
co-authored by Luc
parent 11596a7edc
commit f9f82fd418
5 changed files with 11 additions and 6 deletions
+1 -1
View File
@@ -1116,7 +1116,7 @@
if("lighting_alpha")
sync_lighting_plane_alpha()
/mob/living/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, dodgeable)
/mob/living/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, dodgeable, block_movement)
stop_pulling()
return ..()
+5 -3
View File
@@ -68,6 +68,9 @@
if(mob.notransform)
return 0 //This is sota the goto stop mobs from moving var
if(mob.throwing && mob.throwing.block_movement)
return
if(mob.control_object)
return Move_object(direct)
@@ -182,9 +185,8 @@
mob.setDir(get_dir(mob, mob.pulling)) // Face welding tanks and stuff when pulling
moving = 0
if(mob && .)
if(mob.throwing)
mob.throwing.finalize(FALSE)
if(mob && . && mob.throwing)
mob.throwing.finalize(FALSE)
for(var/obj/O in mob)
O.on_mob_move(direct, mob)
@@ -145,7 +145,7 @@
if(firer && isliving(firer))
var/mob/living/L = firer
L.apply_status_effect(STATUS_EFFECT_IMPACT_IMMUNE)
L.throw_at(target, 15, 1, L, FALSE, FALSE, callback = CALLBACK(L, TYPE_PROC_REF(/mob/living, remove_status_effect), STATUS_EFFECT_IMPACT_IMMUNE))
L.throw_at(target, 15, 1, L, FALSE, FALSE, callback = CALLBACK(L, TYPE_PROC_REF(/mob/living, remove_status_effect), STATUS_EFFECT_IMPACT_IMMUNE), block_movement = FALSE)
/obj/item/projectile/tether/Destroy()
QDEL_NULL(chain)