crush my legs with a hammer i must (adds kneecapping on breach hammers) (#21994)

* repath and funny

* confession: i just find-replaced all hammer paths

* hammer_breaching -> breaching_hammer

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
This commit is contained in:
Hatterhat
2023-06-27 09:49:47 -04:00
committed by GitHub
co-authored by Hatterhat
parent 072bd53f82
commit 44a6764f2f
9 changed files with 29 additions and 22 deletions
+3 -3
View File
@@ -39811,9 +39811,9 @@
/obj/structure/rack,
/obj/item/gun/energy/e_gun/dragnet,
/obj/item/gun/energy/e_gun/dragnet,
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/obj/effect/turf_decal/tile/dark_red/half,
/obj/machinery/camera/directional/south{
c_tag = "Armory - Interior"
@@ -117,9 +117,9 @@
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 4
},
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"u" = (
@@ -39,10 +39,10 @@
/obj/item/gun/energy/e_gun/dragnet,
/obj/item/radio/intercom/directional/north,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/obj/item/melee/breaching_hammer,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"Mj" = (
+1 -1
View File
@@ -20,7 +20,7 @@
///The gun needs to update the gun hud!
#define COMSIG_UPDATE_AMMO_HUD "update_ammo_hud"
/// Used by /obj/item/melee/hammer
/// Used by /obj/item/melee/breaching_hammer
#define COMSIG_BREACHING "breaching_signal_woop_woop"
///The gun has jammed.
#define COMSIG_GUN_JAMMED "gun_jammed"
@@ -67,7 +67,7 @@
cost = 4
/datum/armament_entry/hecu/utility/breaching_hammer //Mesa more like R6S amirite
item_type = /obj/item/melee/hammer
item_type = /obj/item/melee/breaching_hammer
max_purchase = 1
cost = 4
+1 -1
View File
@@ -26,7 +26,7 @@
/obj/item/assembly/flash,
/obj/item/melee/baton,
/obj/item/gun/ballistic,
/obj/item/melee/hammer,
/obj/item/melee/breaching_hammer,
)
skins = list(
"marine" = list(
@@ -43,7 +43,7 @@
r_hand = null
/datum/outfit/centcom/ert/marine/engineer //engineer
suit_store = /obj/item/melee/hammer //doesn't need a rifle
suit_store = /obj/item/melee/breaching_hammer //doesn't need a rifle
back = /obj/item/mod/control/pre_equipped/marine/engineer
backpack_contents = list(
/obj/item/storage/box/survival/engineer/marine = 1,
@@ -1,4 +1,4 @@
/obj/item/melee/hammer
/obj/item/melee/breaching_hammer
name = "D-4 tactical hammer"
desc = "A metallic-plastic composite breaching hammer, looks like a whack with this would severly harm or tire someone."
icon = 'modular_skyrat/modules/sec_haul/icons/peacekeeper/peacekeeper_items.dmi'
@@ -26,7 +26,11 @@
/// the amount that the force is multiplied by , that is then applied as damage to the door.
var/breaching_multipler = 2.5
/obj/item/melee/hammer/afterattack(atom/target, mob/user, proximity)
/obj/item/melee/breaching_hammer/Initialize(mapload)
. = ..()
AddElement(/datum/element/kneecapping)
/obj/item/melee/breaching_hammer/afterattack(atom/target, mob/user, proximity)
. = ..()
if(!proximity)
return
@@ -42,7 +46,7 @@
breaching_target = target
/// Removes any form of tracking from the user and the item , make sure to call it on he proper item
/obj/item/melee/hammer/proc/remove_track(mob/living/carbon/human/user)
/obj/item/melee/breaching_hammer/proc/remove_track(mob/living/carbon/human/user)
SIGNAL_HANDLER
if(!registered)
return FALSE
@@ -55,7 +59,7 @@
breacher = null
/// Does the checks for breaching
/obj/item/melee/hammer/proc/try_breaching(obj/target, mob/living/carbon/human/user)
/obj/item/melee/breaching_hammer/proc/try_breaching(obj/target, mob/living/carbon/human/user)
SIGNAL_HANDLER
if(breaching || (user == breacher))
return FALSE
@@ -64,20 +68,20 @@
return NONE
var/mob/living/carbon/human/breach_buddy = breacher
var/target_item = breach_buddy.held_items.Find(src, 1, 0)
var/obj/item/melee/hammer/second_hammer = null
var/obj/item/melee/breaching_hammer/second_hammer = null
if(target_item)
second_hammer = breach_buddy.held_items[target_item]
if(!second_hammer)
remove_track(user)
return FALSE
breaching = TRUE
INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/melee/hammer, breaching_loop ), user, target)
INVOKE_ASYNC(second_hammer, TYPE_PROC_REF(/obj/item/melee/hammer, breaching_loop ), breacher, target)
INVOKE_ASYNC(src, TYPE_PROC_REF(/obj/item/melee/breaching_hammer, breaching_loop ), user, target)
INVOKE_ASYNC(second_hammer, TYPE_PROC_REF(/obj/item/melee/breaching_hammer, breaching_loop ), breacher, target)
to_chat(breacher , text = "You begin forcefully smashing the [target]")
to_chat(user, text = "You begin forcefully smashing the [target]")
/// Keeps looping under the door is no more , or someone moves , gets shot , dies , incapacitated , stunned , etc
/obj/item/melee/hammer/proc/breaching_loop(mob/living/user, obj/target)
/obj/item/melee/breaching_hammer/proc/breaching_loop(mob/living/user, obj/target)
if(user.stat || !target)
remove_track(user)
return FALSE
@@ -0,0 +1,3 @@
# Replaces the Skyrat /obj/item/melee/hammer with /obj/item/melee/breaching_hammer, for the sake of preserving the hammer path.
/obj/item/melee/hammer : /obj/item/melee/breaching_hammer