diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 64ff1fe333..e6272ff433 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1904,25 +1904,23 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
user.visible_message("[user.name] shoves [target.name]!",
"You shove [target.name]!", null, COMBAT_MESSAGE_RANGE)
var/target_held_item = target.get_active_held_item()
- var/knocked_item = FALSE
if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types))
target_held_item = null
if(!target.has_movespeed_modifier(MOVESPEED_ID_SHOVE))
target.add_movespeed_modifier(MOVESPEED_ID_SHOVE, multiplicative_slowdown = SHOVE_SLOWDOWN_STRENGTH)
if(target_held_item)
- target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!",
- "Your grip on \the [target_held_item] loosens!", null, COMBAT_MESSAGE_RANGE)
+ if(!HAS_TRAIT(target_held_item, TRAIT_NODROP))
+ target.visible_message("[target.name]'s grip on \the [target_held_item] loosens!",
+ "Your grip on \the [target_held_item] loosens!", null, COMBAT_MESSAGE_RANGE)
+ append_message += ", loosening their grip on [target_held_item]"
+ else
+ append_message += ", but couldn't loose their grip on [target_held_item]"
addtimer(CALLBACK(target, /mob/living/carbon/human/proc/clear_shove_slowdown), SHOVE_SLOWDOWN_LENGTH)
else if(target_held_item)
- target.dropItemToGround(target_held_item)
- knocked_item = TRUE
- target.visible_message("[target.name] drops \the [target_held_item]!!",
- "You drop \the [target_held_item]!!", null, COMBAT_MESSAGE_RANGE)
- if(target_held_item)
- if(knocked_item)
+ if(target.dropItemToGround(target_held_item))
+ target.visible_message("[target.name] drops \the [target_held_item]!!",
+ "You drop \the [target_held_item]!!", null, COMBAT_MESSAGE_RANGE)
append_message += ", causing them to drop [target_held_item]"
- else
- append_message += ", loosening their grip on [target_held_item]"
log_combat(user, target, "shoved", append_message)
/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE)