Extinguisher changes: Now bulky, higher force, with a new attack (#92042)

## About The Pull Request
Changes the weight of the fire extinguisher to bulky.
Changes its force to 13.
Adds a brand new alt attack, when you rightclick on the head of a target
you will wind up your extinguisher for 2 seconds and then smash it down
doing 39 damage with a wound bonus. This may need better telegraphing,
if you have any idea on how to implement this please reach out or make a
pr to this branch.
## Why It's Good For The Game
Fire extinguisher to bulky and force increase, I feel as if the regular
fire extinguisher fits better as a heavy improvised weapon / fire
fighting tool rather than just the latter, and in order to justify the
changes to increase the force of the fire extinguisher so it can act as
a fairly good improvised weapon (around the same strength as a toolbox)
its weight had to be changed. A fire extinguisher should be a superior
option to just fighting with fists and I believe that in its former
state it really wasnt. The bulky extinguisher change also comes as a
result of people repeatedly stealing and bagging the fire extinguishers
which often leaves common areas without them, greatly reducing the
capacity for fire fighting.

The alt attack, I felt like it was pretty cool and flavorful to be able
to "charge" up a hit with a fire extinguisher and be able to just smash
it down on someone, it also lends it a niche for finishers. [Also
this](https://www.youtube.com/watch?v=IhPTUog6DWc&t=180s)
## Changelog
🆑
add: Fire extinguishers now have an alternate attack, usable with right
click
balance: Fire extinguishers force: 10 -> 13
balance: Fire extinguishers weight: Normal -> Bulky
/🆑
This commit is contained in:
Rex9001
2025-07-30 17:37:21 -04:00
committed by Roxy
parent 06d739500c
commit cb2a80c2b5
+52 -3
View File
@@ -10,11 +10,11 @@
pickup_sound = 'sound/items/handling/gas_tank/gas_tank_pick_up.ogg'
drop_sound = 'sound/items/handling/gas_tank/gas_tank_drop.ogg'
obj_flags = CONDUCTS_ELECTRICITY
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
throwforce = 13
w_class = WEIGHT_CLASS_BULKY
throw_speed = 2
throw_range = 7
force = 10
force = 13
demolition_mod = 1.25
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.9)
attack_verb_continuous = list("slams", "whacks", "bashes", "thunks", "batters", "bludgeons", "thrashes")
@@ -82,6 +82,52 @@
if((slot & ITEM_SLOT_HANDS) && fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
// A secondary attack letting you wind up the extinguisher for a real wallopping to your targets head
/obj/item/extinguisher/attack_secondary(mob/living/victim, mob/living/user, params)
// This only makes sense for heavier extinguishers
if(w_class < WEIGHT_CLASS_BULKY)
return SECONDARY_ATTACK_CALL_NORMAL
if(issilicon(user))
return SECONDARY_ATTACK_CALL_NORMAL
if(!iscarbon(victim))
return SECONDARY_ATTACK_CALL_NORMAL
var/mob/living/carbon/wallopee = victim
var/obj/item/bodypart/head/head_to_bash = wallopee.get_bodypart(BODY_ZONE_HEAD)
if(!head_to_bash)
return SECONDARY_ATTACK_CALL_NORMAL
var/head_name = head_to_bash.name
if(fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
log_combat(user, wallopee, "prepared to use a bash attack with a [src] against [wallopee]")
wallopee.visible_message(span_danger("[user] begins to raise [src] above [wallopee]'s [head_name]."), span_userdanger("[user] begins to raise [src], aiming to cave in your [head_name]!"))
if(!do_after(user, 2 SECONDS, target = wallopee))
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
wallopee.visible_message(span_danger("[user] brings [src] heavily down on [wallopee]'s [head_name]."), span_userdanger("[user] brings [src] heavily down on your [head_name]!"))
var/min_wound = head_to_bash.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_SEVERE, return_value_if_no_wound = 30, wound_source = src)
var/max_wound = head_to_bash.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_CRITICAL, return_value_if_no_wound = 50, wound_source = src)
wallopee.apply_damage(src.force * 3, src.damtype, head_to_bash, wound_bonus = rand(min_wound, max_wound + 10), attacking_item = src)
wallopee.emote("scream")
log_combat(user, wallopee, "used a bash attack with a [src] against [wallopee]")
user.do_attack_animation(wallopee, used_item = src)
if(fire_extinguisher_reagent_sloshing_sound && reagents.total_volume > 0)
playsound(src, fire_extinguisher_reagent_sloshing_sound, LIQUID_SLOSHING_SOUND_VOLUME, vary = TRUE, ignore_walls = FALSE)
playsound(source = src, soundin = src.hitsound, vol = src.get_clamped_volume(), vary = TRUE)
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/item/extinguisher/empty
starting_water = FALSE
@@ -151,6 +197,9 @@
inhand_icon_state = "foam_extinguisher"
tank_holder_icon_state = "holder_foam_extinguisher"
dog_fashion = null
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
force = 10
chem = /datum/reagent/firefighting_foam
tanktypes = list(
/obj/structure/reagent_dispensers/foamtank,