diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 74b661beebd..ce3e381833c 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -155,21 +155,19 @@
/mob/proc/throw_item(atom/target)
SEND_SIGNAL(src, COMSIG_MOB_THROW, target)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CARBON_THROW_THING, src, target)
- return
+ return TRUE
/mob/living/carbon/throw_item(atom/target)
. = ..()
throw_mode_off(THROW_MODE_TOGGLE)
if(!target || !isturf(loc))
- return
+ return FALSE
if(istype(target, /atom/movable/screen))
- return
-
+ return FALSE
var/atom/movable/thrown_thing
- var/obj/item/I = get_active_held_item()
+ var/obj/item/held_item = get_active_held_item()
var/neckgrab_throw = FALSE // we can't check for if it's a neckgrab throw when totaling up power_throw since we've already stopped pulling them by then, so get it early
-
- if(!I)
+ if(!held_item)
if(pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE)
var/mob/living/throwable_mob = pulling
if(!throwable_mob.buckled)
@@ -179,40 +177,38 @@
stop_pulling()
if(HAS_TRAIT(src, TRAIT_PACIFISM))
to_chat(src, span_notice("You gently let go of [throwable_mob]."))
- return
+ return FALSE
else
- thrown_thing = I.on_thrown(src, target)
-
- if(thrown_thing)
-
- if(isliving(thrown_thing))
- var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors
- var/turf/end_T = get_turf(target)
- if(start_T && end_T)
- log_combat(src, thrown_thing, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]")
- var/power_throw = 0
- if(HAS_TRAIT(src, TRAIT_HULK))
- power_throw++
- if(HAS_TRAIT(src, TRAIT_DWARF))
- power_throw--
- if(HAS_TRAIT(thrown_thing, TRAIT_DWARF))
- power_throw++
- //SKYRAT EDIT ADDITION
- if(HAS_TRAIT(src, TRAIT_OVERSIZED))
- power_throw++
- if(HAS_TRAIT(thrown_thing, TRAIT_OVERSIZED))
- power_throw--
- //SKYRAT EDIT END
- if(neckgrab_throw)
- power_throw++
- do_attack_animation(target, no_effect = 1) //SKYRAT EDIT ADDITION - AESTHETICS
- playsound(loc, 'sound/weapons/punchmiss.ogg', 50, TRUE, -1) //SKYRAT EDIT ADDITION - AESTHETICS
- visible_message("[src] throws [thrown_thing][power_throw ? " really hard!" : "."]", \
- "You throw [thrown_thing][power_throw ? " really hard!" : "."]")
- log_message("has thrown [thrown_thing] [power_throw ? "really hard" : ""]", LOG_ATTACK)
- newtonian_move(get_dir(target, src))
- thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed + power_throw, src, null, null, null, move_force)
-
+ thrown_thing = held_item.on_thrown(src, target)
+ if(!thrown_thing)
+ return FALSE
+ if(isliving(thrown_thing))
+ var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors
+ var/turf/end_T = get_turf(target)
+ if(start_T && end_T)
+ log_combat(src, thrown_thing, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]")
+ var/power_throw = 0
+ if(HAS_TRAIT(src, TRAIT_HULK))
+ power_throw++
+ if(HAS_TRAIT(src, TRAIT_DWARF))
+ power_throw--
+ if(HAS_TRAIT(thrown_thing, TRAIT_DWARF))
+ power_throw++
+ //SKYRAT EDIT ADDITION
+ if(HAS_TRAIT(src, TRAIT_OVERSIZED))
+ power_throw++
+ if(HAS_TRAIT(thrown_thing, TRAIT_OVERSIZED))
+ power_throw--
+ //SKYRAT EDIT END
+ if(neckgrab_throw)
+ power_throw++
+ do_attack_animation(target, no_effect = 1) //SKYRAT EDIT ADDITION - AESTHETICS
+ playsound(loc, 'sound/weapons/punchmiss.ogg', 50, TRUE, -1) //SKYRAT EDIT ADDITION - AESTHETICS
+ visible_message("[src] throws [thrown_thing][power_throw ? " really hard!" : "."]", \
+ "You throw [thrown_thing][power_throw ? " really hard!" : "."]")
+ log_message("has thrown [thrown_thing] [power_throw ? "really hard" : ""]", LOG_ATTACK)
+ newtonian_move(get_dir(target, src))
+ thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed + power_throw, src, null, null, null, move_force)
/mob/living/carbon/proc/canBeHandcuffed()
return FALSE