diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index f89c54c8ddc..0051b9630de 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -261,7 +261,8 @@
#define COMSIG_MECHA_ACTION_ACTIVATE "mecha_action_activate" //sent from mecha action buttons to the mecha they're linked to
// /mob/living/carbon/human signals
-#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target)
+#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
+#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" //Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index dcb63010bbb..91d51f4b309 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -16,16 +16,10 @@
var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
if(proximity && istype(G) && G.Touch(A,1))
return
-
- var/override = 0
-
- for(var/datum/mutation/human/HM in dna.mutations)
- override += HM.on_attack_hand(A, proximity)
-
- if(override)
+ //This signal is needed to prevent gloves of the north star + hulk.
+ if(SEND_SIGNAL(src, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, A, proximity) & COMPONENT_NO_ATTACK_HAND)
return
-
- SEND_SIGNAL(src, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, A)
+ SEND_SIGNAL(src, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, A, proximity)
A.attack_hand(src)
//Return TRUE to cancel other attack hand effects that respect it.
diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm
index ce15979c24f..1a10507e5d2 100644
--- a/code/datums/mutations.dm
+++ b/code/datums/mutations.dm
@@ -91,9 +91,6 @@
/datum/mutation/human/proc/get_visual_indicator()
return
-/datum/mutation/human/proc/on_attack_hand( atom/target, proximity)
- return
-
/datum/mutation/human/proc/on_life()
return
diff --git a/code/datums/mutations/chameleon.dm b/code/datums/mutations/chameleon.dm
index a6fd5cab3ec..47502aa85ef 100644
--- a/code/datums/mutations/chameleon.dm
+++ b/code/datums/mutations/chameleon.dm
@@ -14,6 +14,7 @@
return
owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move)
+ RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand)
/datum/mutation/human/chameleon/on_life()
owner.alpha = max(0, owner.alpha - 25)
@@ -21,10 +22,10 @@
/datum/mutation/human/chameleon/proc/on_move()
owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
-/datum/mutation/human/chameleon/on_attack_hand(atom/target, proximity)
- if(proximity) //stops tk from breaking chameleon
- owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
+/datum/mutation/human/chameleon/proc/on_attack_hand(atom/target, proximity)
+ if(!proximity) //stops tk from breaking chameleon
return
+ owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY
/datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner)
if(..())
diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm
index a6b3bad1245..dd96bba4ebe 100644
--- a/code/datums/mutations/hulk.dm
+++ b/code/datums/mutations/hulk.dm
@@ -19,11 +19,20 @@
ADD_TRAIT(owner, TRAIT_CHUNKYFINGERS, TRAIT_HULK)
owner.update_body_parts()
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk)
+ RegisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/on_attack_hand)
RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech)
-/datum/mutation/human/hulk/on_attack_hand(atom/target, proximity)
- if(proximity) //no telekinetic hulk attack
- return target.attack_hulk(owner)
+/datum/mutation/human/hulk/proc/on_attack_hand(mob/living/source, atom/target, proximity)
+ if(!proximity)
+ return
+ if(source.a_intent != INTENT_HARM)
+ return
+ if(target.attack_hulk(owner))
+ source.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced="hulk")
+ log_combat(source, target, "punched", "hulk powers")
+ source.do_attack_animation(target, ATTACK_EFFECT_SMASH)
+ source.changeNext_move(CLICK_CD_MELEE)
+ return COMPONENT_NO_ATTACK_HAND
/datum/mutation/human/hulk/on_life()
if(owner.health < 0)
@@ -38,6 +47,8 @@
REMOVE_TRAIT(owner, TRAIT_CHUNKYFINGERS, TRAIT_HULK)
owner.update_body_parts()
SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "hulk")
+ UnregisterSignal(owner, COMSIG_HUMAN_EARLY_UNARMED_ATTACK)
+ UnregisterSignal(owner, COMSIG_MOB_SAY)
/datum/mutation/human/hulk/proc/handle_speech(original_message, wrapped_message)
var/message = wrapped_message[1]
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 85daea5be3d..e7f7c831061 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -300,12 +300,8 @@
///This atom has been hit by a hulkified mob in hulk mode (user)
-/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/atom/proc/attack_hulk(mob/living/carbon/human/user)
SEND_SIGNAL(src, COMSIG_ATOM_HULK_ATTACK, user)
- if(does_attack_animation)
- user.changeNext_move(CLICK_CD_MELEE)
- log_combat(user, src, "punched", "hulk powers")
- user.do_attack_animation(src, ATTACK_EFFECT_SMASH)
/**
* Ensure a list of atoms/reagents exists inside this atom
diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm
index e03c56a92b6..21f28310fa1 100644
--- a/code/game/machinery/porta_turret/portable_turret_cover.dm
+++ b/code/game/machinery/porta_turret/portable_turret_cover.dm
@@ -81,7 +81,7 @@
/obj/machinery/porta_turret_cover/attack_animal(mob/living/simple_animal/user)
parent_turret.attack_animal(user)
-/obj/machinery/porta_turret_cover/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/obj/machinery/porta_turret_cover/attack_hulk(mob/living/carbon/human/user)
return parent_turret.attack_hulk(user)
/obj/machinery/porta_turret_cover/can_be_overridden()
diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm
index 6057d1b4180..92b13ce9187 100644
--- a/code/game/objects/effects/effects.dm
+++ b/code/game/objects/effects/effects.dm
@@ -22,8 +22,8 @@
/obj/effect/blob_act(obj/structure/blob/B)
return
-/obj/effect/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- return 0
+/obj/effect/attack_hulk(mob/living/carbon/human/user)
+ return FALSE
/obj/effect/experience_pressure_difference()
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index d7d26920afd..3b043d0df1e 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -111,7 +111,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
materials = typelist("materials", materials)
if(materials) //Otherwise, use the instances already provided.
- var/list/temp_list = list()
+ var/list/temp_list = list()
for(var/i in materials) //Go through all of our materials, get the subsystem instance, and then replace the list.
var/amount = materials[i]
var/datum/material/M = getmaterialref(i)
@@ -633,7 +633,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
return
/obj/item/attack_hulk(mob/living/carbon/human/user)
- return 0
+ return FALSE
/obj/item/attack_animal(mob/living/simple_animal/M)
if (obj_flags & CAN_BE_HIT)
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 1de64dcd2c5..d5a52405bce 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -374,11 +374,6 @@
return ..()
return 0
-/obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up
- if(wielded)
- to_chat(user, "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!")
- return 1
-
/obj/item/twohanded/dualsaber/wield(mob/living/carbon/M) //Specific wield () hulk checks due to reflection chance for balance issues and switches hitsounds.
if(M.has_dna())
if(M.dna.check_mutation(HULK))
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index 0f9db74db47..0cc18d3786a 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -77,18 +77,15 @@
/obj/proc/hulk_damage()
return 150 //the damage hulks do on punches to this object, is affected by melee armor
-/obj/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- ..(user, 1)
- user.visible_message("[user] smashes [src]!", "You smash [src]!", null, COMBAT_MESSAGE_RANGE)
- if(density)
- playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
- user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced="hulk")
- else
- playsound(src, 'sound/effects/bang.ogg', 50, 1)
- take_damage(hulk_damage(), BRUTE, "melee", 0, get_dir(src, user))
- return 1
- return 0
+/obj/attack_hulk(mob/living/carbon/human/user)
+ ..()
+ user.visible_message("[user] smashes [src]!", "You smash [src]!", null, COMBAT_MESSAGE_RANGE)
+ if(density)
+ playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
+ else
+ playsound(src, 'sound/effects/bang.ogg', 50, 1)
+ take_damage(hulk_damage(), BRUTE, "melee", 0, get_dir(src, user))
+ return TRUE
/obj/blob_act(obj/structure/blob/B)
if(isturf(loc))
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 93024954397..cfaf063143e 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -96,11 +96,10 @@
/obj/structure/grille/hulk_damage()
return 60
-/obj/structure/grille/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- if(!shock(user, 70))
- ..(user, 1)
- return TRUE
+/obj/structure/grille/attack_hulk(mob/living/carbon/human/user)
+ if(shock(user, 70))
+ return
+ . = ..()
/obj/structure/grille/attack_hand(mob/living/user)
. = ..()
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 6fa5c72f790..745a53e86b9 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -136,7 +136,7 @@
/obj/structure/window/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
if(!can_be_reached(user))
- return 1
+ return
. = ..()
/obj/structure/window/attack_hand(mob/user)
diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm
index cbe90e7c10b..00a66c3d725 100644
--- a/code/game/turfs/simulated/wall/misc_walls.dm
+++ b/code/game/turfs/simulated/wall/misc_walls.dm
@@ -116,12 +116,13 @@
for(var/i in 1 to 3)
new/obj/item/clockwork/alloy_shards/small(src)
-/turf/closed/wall/clockwork/attack_hulk(mob/living/user, does_attack_animation = 0)
- ..()
- if(heated)
- to_chat(user, "The wall is searing hot to the touch!")
- user.adjustFireLoss(5)
- playsound(src, 'sound/machines/fryer/deep_fryer_emerge.ogg', 50, TRUE)
+/turf/closed/wall/clockwork/attack_hulk(mob/living/user)
+ . = ..()
+ if(!heated)
+ return
+ to_chat(user, "The wall is searing hot to the touch!")
+ user.adjustFireLoss(5)
+ playsound(src, 'sound/machines/fryer/deep_fryer_emerge.ogg', 50, TRUE)
/turf/closed/wall/clockwork/mech_melee_attack(obj/mecha/M)
..()
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 848dfda29c4..9fb3b6871ad 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -136,8 +136,8 @@
dismantle_wall(1)
return
-/turf/closed/wall/attack_hulk(mob/user, does_attack_animation = 0)
- ..(user, 1)
+/turf/closed/wall/attack_hulk(mob/user)
+ ..()
if(prob(hardness))
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk")
@@ -148,7 +148,6 @@
user.visible_message("[user] smashes \the [src]!", \
"You smash \the [src]!", \
"You hear a booming smash!")
-
return TRUE
/turf/closed/wall/attack_hand(mob/user)
diff --git a/code/modules/antagonists/clockcult/clock_structure.dm b/code/modules/antagonists/clockcult/clock_structure.dm
index a9bd9cf7a9c..8b3cb2576c6 100644
--- a/code/modules/antagonists/clockcult/clock_structure.dm
+++ b/code/modules/antagonists/clockcult/clock_structure.dm
@@ -59,7 +59,7 @@
return "[t_It] [t_is] at [obj_integrity]/[max_integrity] integrity[heavily_damaged ? "!":"."]"
return ..()
-/obj/structure/destructible/clockwork/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
+/obj/structure/destructible/clockwork/attack_hulk(mob/living/carbon/human/user)
if(is_servant_of_ratvar(user) && immune_to_servant_attacks)
return FALSE
return ..()
diff --git a/code/modules/awaymissions/signpost.dm b/code/modules/awaymissions/signpost.dm
index 4d85d947c27..0a7af100fb5 100644
--- a/code/modules/awaymissions/signpost.dm
+++ b/code/modules/awaymissions/signpost.dm
@@ -36,8 +36,8 @@
/obj/structure/signpost/attack_paw(mob/user)
return interact(user)
-/obj/structure/signpost/attack_hulk(mob/user, does_attack_animation = 0)
- return interact(user)
+/obj/structure/signpost/attack_hulk(mob/user)
+ return
/obj/structure/signpost/attack_larva(mob/user)
return interact(user)
diff --git a/code/modules/awaymissions/super_secret_room.dm b/code/modules/awaymissions/super_secret_room.dm
index a7054556911..de4ad67ed74 100644
--- a/code/modules/awaymissions/super_secret_room.dm
+++ b/code/modules/awaymissions/super_secret_room.dm
@@ -95,8 +95,8 @@
/obj/structure/speaking_tile/attack_paw(mob/user)
return interact(user)
-/obj/structure/speaking_tile/attack_hulk(mob/user, does_attack_animation = 0)
- return interact(user)
+/obj/structure/speaking_tile/attack_hulk(mob/user)
+ return
/obj/structure/speaking_tile/attack_larva(mob/user)
return interact(user)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
index bdf202abfe7..919bdebc2ec 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
@@ -1,19 +1,17 @@
-/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- ..(user, 1)
- adjustBruteLoss(15)
- var/hitverb = "punches"
- if(mob_size < MOB_SIZE_LARGE)
- step_away(src,user,15)
- sleep(1)
- step_away(src,user,15)
- hitverb = "slams"
- playsound(loc, "punch", 25, 1, -1)
- visible_message("[user] [hitverb] [src]!", \
- "[user] [hitverb] you!", null, COMBAT_MESSAGE_RANGE)
- return 1
+/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user)
+ . = ..()
+ if(!.)
+ return
+ adjustBruteLoss(15)
+ var/hitverb = "punches"
+ if(mob_size < MOB_SIZE_LARGE)
+ safe_throw_at(get_edge_target_turf(src, get_dir(user, src)), 2, 1, user)
+ hitverb = "slams"
+ playsound(loc, "punch", 25, 1, -1)
+ visible_message("[user] [hitverb] [src]!", \
+ "[user] [hitverb] you!", null, COMBAT_MESSAGE_RANGE)
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M)
if(..())
diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
index b37d4aa0f10..03151c67ef0 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
@@ -18,12 +18,12 @@
visible_message("[M]'s kick misses [src]!", \
"[M]'s kick misses you!", null, COMBAT_MESSAGE_RANGE)
-/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- ..(user, 1)
- adjustBruteLoss(5 + rand(1,9))
- new /datum/forced_movement(src, get_step_away(user,src, 30), 1)
- return 1
+/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user)
+ . = ..()
+ if(!.)
+ return
+ adjustBruteLoss(5 + rand(1,9))
+ new /datum/forced_movement(src, get_step_away(user,src, 30), 1)
/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
if(!no_effect && !visual_effect_icon)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index b5da5f63f15..afbdc3aa3a1 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -182,18 +182,19 @@
return dna.species.spec_attacked_by(I, user, affecting, a_intent, src)
-/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- var/hulk_verb = pick("smash","pummel")
- if(check_shields(user, 15, "the [hulk_verb]ing"))
- return
- ..(user, 1)
- playsound(loc, user.dna.species.attack_sound, 25, 1, -1)
- var/message = "[user] has [hulk_verb]ed [src]!"
- visible_message("[message]", \
- "[message]")
- adjustBruteLoss(15)
- return 1
+/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user)
+ . = ..()
+ if(!.)
+ return
+ var/hulk_verb = pick("smash","pummel")
+ if(check_shields(user, 15, "the [hulk_verb]ing"))
+ return
+ ..()
+ playsound(loc, user.dna.species.attack_sound, 25, 1, -1)
+ var/message = "[user] has [hulk_verb]ed [src]!"
+ visible_message("[message]", \
+ "[message]")
+ adjustBruteLoss(15)
/mob/living/carbon/human/attack_hand(mob/user)
if(..()) //to allow surgery to return properly.
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 711396dbabb..a679fcfc79f 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -314,6 +314,13 @@
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
return TRUE
+/mob/living/attack_hulk(mob/living/carbon/human/user)
+ ..()
+ if(HAS_TRAIT(user, TRAIT_PACIFISM))
+ to_chat(user, "You don't want to hurt [src]!")
+ return FALSE
+ return TRUE
+
/mob/living/ex_act(severity, target, origin)
if(origin && istype(origin, /datum/spacevine_mutation) && isvineimmune(src))
return
diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm
index 6e82ca9bc79..838d99cdf07 100644
--- a/code/modules/mob/living/silicon/silicon_defense.dm
+++ b/code/modules/mob/living/silicon/silicon_defense.dm
@@ -54,15 +54,14 @@
if(L.a_intent == INTENT_HELP)
visible_message("[L.name] rubs its head against [src].")
-/mob/living/silicon/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- ..(user, 1)
- adjustBruteLoss(rand(10, 15))
- playsound(loc, "punch", 25, 1, -1)
- visible_message("[user] punches [src]!", \
- "[user] punches you!", null, COMBAT_MESSAGE_RANGE)
- return 1
- return 0
+/mob/living/silicon/attack_hulk(mob/living/carbon/human/user)
+ . = ..()
+ if(!.)
+ return
+ adjustBruteLoss(rand(10, 15))
+ playsound(loc, "punch", 25, 1, -1)
+ visible_message("[user] punches [src]!", \
+ "[user] punches you!", null, COMBAT_MESSAGE_RANGE)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/mob/living/silicon/attack_hand(mob/living/carbon/human/M)
diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm
index c6264e44006..390c21af6b1 100644
--- a/code/modules/mob/living/simple_animal/animal_defense.dm
+++ b/code/modules/mob/living/simple_animal/animal_defense.dm
@@ -25,17 +25,14 @@
updatehealth()
return TRUE
-/mob/living/simple_animal/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- if(HAS_TRAIT(user, TRAIT_PACIFISM))
- to_chat(user, "You don't want to hurt [src]!")
- return FALSE
- ..(user, 1)
- playsound(loc, "punch", 25, 1, -1)
- visible_message("[user] punches [src]!", \
- "[user] punches you!", null, COMBAT_MESSAGE_RANGE)
- adjustBruteLoss(15)
- return TRUE
+/mob/living/simple_animal/attack_hulk(mob/living/carbon/human/user)
+ . = ..()
+ if(!.)
+ return
+ playsound(loc, "punch", 25, 1, -1)
+ visible_message("[user] punches [src]!", \
+ "[user] punches you!", null, COMBAT_MESSAGE_RANGE)
+ adjustBruteLoss(15)
/mob/living/simple_animal/attack_paw(mob/living/carbon/monkey/M)
if(..()) //successful monkey bite.
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index a6b0aed1cf4..c2a91f4c89c 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -312,10 +312,11 @@
if(..()) //successful larva bite.
attacked += 10
-/mob/living/simple_animal/slime/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- if(user.a_intent == INTENT_HARM)
- discipline_slime(user)
- return ..()
+/mob/living/simple_animal/slime/attack_hulk(mob/living/carbon/human/user)
+ . = ..()
+ if(!.)
+ return
+ discipline_slime(user)
/mob/living/simple_animal/slime/attack_hand(mob/living/carbon/human/M)
if(buckled)
diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
index b5e63266c11..f661c9b52f4 100644
--- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
@@ -263,7 +263,7 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337)
/turf/closed/indestructible/hoteldoor/attack_paw(mob/user)
promptExit(user)
-/turf/closed/indestructible/hoteldoor/attack_hulk(mob/living/carbon/human/user, does_attack_animation)
+/turf/closed/indestructible/hoteldoor/attack_hulk(mob/living/carbon/human/user)
promptExit(user)
/turf/closed/indestructible/hoteldoor/attack_larva(mob/user)