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)