diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index ebcdb3be1f2..b37763b2602 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -16,7 +16,23 @@ if("grab") grabbedby(M) - if("harm", "disarm") + if("disarm") + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + var/shove_dir = get_dir(M, src) + if(!Move(get_step(src, shove_dir), shove_dir)) + log_combat(M, src, "shoved", "failing to move it") + M.visible_message("[M.name] shoves [src]!", + "You shove [src]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src)) + to_chat(src, "You're shoved by [M.name]!") + return TRUE + log_combat(M, src, "shoved", "pushing it") + M.visible_message("[M.name] shoves [src], pushing [p_them()]!", + "You shove [src], pushing [p_them()]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src)) + to_chat(src, "You're pushed by [name]!") + return TRUE + + if("harm") if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt [src]!") return