[MIRROR] initial throw fixing (#12231)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
Co-authored-by: C.L. <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2026-01-08 22:45:27 +01:00
committed by GitHub
co-authored by Kashargul C.L.
parent 4693238765
commit 441ee14971
43 changed files with 219 additions and 170 deletions
+1 -2
View File
@@ -355,7 +355,6 @@
return
src.pickup(user)
src.throwing = 0
if (src.loc == user)
if(!user.unEquip(src))
return
@@ -415,7 +414,7 @@
else
return 0
/obj/item/throw_impact(atom/hit_atom, var/speed)
/obj/item/throw_impact(atom/hit_atom)
..()
if(isliving(hit_atom) && !hit_atom.is_incorporeal()) //Living mobs handle hit sounds differently.
var/volume = get_volume_by_throwforce_and_or_w_class()
@@ -364,7 +364,7 @@
//If the crystal hasn't been set up, it does this
/obj/item/capture_crystal/proc/activate(mob/living/user, target)
if(!cooldown_check()) //Are we ready to do things yet?
to_chat(thrower, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
to_chat(user, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
if(spawn_mob_type && !bound_mob) //We don't already have a mob, but we know what kind of mob we want
@@ -424,7 +424,7 @@
//We're using the crystal, but what will it do?
/obj/item/capture_crystal/proc/determine_action(mob/living/U, T)
if(!cooldown_check()) //Are we ready yet?
to_chat(thrower, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
to_chat(U, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return //No
if(bound_mob in contents) //Do we have our mob?
@@ -917,7 +917,7 @@
/obj/item/capture_crystal/cheap/activate(mob/living/user, target)
if(!cooldown_check()) //Are we ready to do things yet?
to_chat(thrower, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
to_chat(user, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
if(spawn_mob_type && !bound_mob) //We don't already have a mob, but we know what kind of mob we want
+1 -1
View File
@@ -33,7 +33,7 @@
healthcheck()
return
/obj/structure/alien/hitby(atom/movable/source)
/obj/structure/alien/hitby(atom/movable/source, datum/thrownthing/throwingdatum)
..()
visible_message(span_danger("\The [src] was hit by \the [source]."))
var/tforce
+3 -3
View File
@@ -285,14 +285,14 @@
tail_image.layer = BODY_LAYER + ((dir in tail_lower_dirs) ? TAIL_LOWER_LAYER : tail_layering)
add_overlay(tail_image)
/obj/structure/gargoyle/hitby(atom/movable/source ,var/speed = THROWFORCE_SPEED_DIVISOR)
/obj/structure/gargoyle/hitby(atom/movable/source, datum/thrownthing/throwingdatum)
var/mob/living/carbon/human/gargoyle = WR_gargoyle.resolve()
if(!gargoyle)
return
if(isitem(source) && gargoyle.vore_selected && gargoyle.trash_catching)
var/obj/item/I = source
if(gargoyle.adminbus_trash || is_type_in_list(I, GLOB.edible_trash) && I.trash_eatable && !is_type_in_list(I, GLOB.item_vore_blacklist))
gargoyle.hitby(source, speed)
gargoyle.hitby(source, throwingdatum)
return
else if(isliving(source))
var/mob/living/L = source
@@ -301,7 +301,7 @@
if(gargoyle.can_be_drop_prey)
drop_prey_temp = TRUE
gargoyle.can_be_drop_prey = FALSE //Making sure the original gargoyle body is not the one getting throwvored instead.
gargoyle.hitby(L, speed)
gargoyle.hitby(L, throwingdatum)
if(drop_prey_temp)
gargoyle.can_be_drop_prey = TRUE
return
+2 -1
View File
@@ -257,9 +257,10 @@
take_damage(damage)
return
/obj/structure/low_wall/hitby(atom/movable/source, var/speed)
/obj/structure/low_wall/hitby(atom/movable/source, datum/thrownthing/throwingdatum)
..()
var/tforce = 0
var/speed = throwingdatum?.speed || THROWFORCE_SPEED_DIVISOR
if(ismob(source)) // All mobs have a multiplier and a size according to mob_defines.dm
var/mob/I = source
tforce = I.mob_size * (speed/THROWFORCE_SPEED_DIVISOR)
+1 -1
View File
@@ -165,7 +165,7 @@
return !anchored // If it's anchored, it'll block air.
return TRUE // Don't stop airflow from the other sides.
/obj/structure/window/hitby(atom/movable/source)
/obj/structure/window/hitby(atom/movable/source, datum/thrownthing/throwingdatum)
..()
visible_message(span_danger("[src] was hit by [source]."))
var/tforce = 0