Useful Fire Extinguishers (#10063)

You can now only hit people with fire extinguishers if you are on hurt intent.
    Extinguisher refills now fit in your backpack, fire extinguishers now do not.
    Foam from fire extinguishers now go onto mobs as well, instead of just the turfs.
    Halved the amount of volume extinguisher refill canisters have.
This commit is contained in:
Geeves
2020-10-03 19:11:26 +03:00
committed by GitHub
parent 5b9ccaf2d8
commit c189b20e34
3 changed files with 34 additions and 17 deletions
+21 -17
View File
@@ -7,20 +7,19 @@
hitsound = 'sound/weapons/smash.ogg'
flags = CONDUCT | OPENCONTAINER
throwforce = 8
w_class = ITEMSIZE_LARGE // Don't want to give people free bluespace beakers.
w_class = ITEMSIZE_NORMAL
throw_speed = 2
throw_range = 10
force = 8
matter = list(DEFAULT_WALL_MATERIAL = 90)
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
amount_per_transfer_from_this = 300
amount_per_transfer_from_this = 150
possible_transfer_amounts = null
volume = 300
volume = 150
drop_sound = 'sound/items/drop/gascan.ogg'
pickup_sound = 'sound/items/pickup/gascan.ogg'
/obj/item/reagent_containers/extinguisher_refill/attackby(var/obj/O as obj, var/mob/user as mob)
if(istype(O,/obj/item/extinguisher))
var/obj/item/extinguisher/E = O
if(src.is_open_container())
@@ -75,10 +74,9 @@
desc = "A one time use extinguisher refiller that allows fire extinguishers to be refilled with an aerosol mix. This one contains monoammonium phosphate."
/obj/item/reagent_containers/extinguisher_refill/filled/Initialize()
. =..()
reagents.add_reagent(/datum/reagent/toxin/fertilizer/monoammoniumphosphate, volume)
flags &= ~OPENCONTAINER
return
. = ..()
reagents.add_reagent(/datum/reagent/toxin/fertilizer/monoammoniumphosphate, volume)
flags &= ~OPENCONTAINER
/obj/item/extinguisher
name = "fire extinguisher"
@@ -89,7 +87,7 @@
hitsound = 'sound/weapons/smash.ogg'
flags = CONDUCT
throwforce = 10
w_class = ITEMSIZE_NORMAL
w_class = ITEMSIZE_HUGE
throw_speed = 2
throw_range = 10
force = 10.0
@@ -133,6 +131,11 @@
to_chat(user,"The safety is [safety ? "on" : "off"].")
return
/obj/item/extinguisher/attack(mob/living/M, mob/living/user, target_zone)
if(ismob(M) && user.a_intent != I_HURT)
return FALSE
return ..()
/obj/item/extinguisher/attack_self(mob/user as mob)
safety = !safety
src.icon_state = "[sprite_name][!safety]"
@@ -177,16 +180,15 @@
sleep(3)
/obj/item/extinguisher/afterattack(var/atom/target, var/mob/user, var/flag)
if (!safety)
if (src.reagents.total_volume < 1)
to_chat(usr, "<span class='notice'>\The [src] is empty.</span>")
if(!safety)
if(reagents.total_volume < 1)
to_chat(user, SPAN_WARNING("\The [src] is empty."))
return
if (world.time < src.last_use + 20)
if(world.time < last_use + 20)
return
src.last_use = world.time
last_use = world.time
playsound(src.loc, 'sound/effects/extinguish.ogg', 75, 1, -3)
@@ -204,14 +206,16 @@
for(var/a = 1 to spray_particles)
spawn(0)
if(!src || !reagents.total_volume) return
if(!src || !reagents.total_volume)
return
var/obj/effect/effect/water/W = new(get_turf(src))
var/turf/my_target
if(a <= the_targets.len)
my_target = the_targets[a]
else
my_target = pick(the_targets)
var/obj/effect/effect/water/W = new(get_turf(src))
W.create_reagents(spray_amount)
reagents.trans_to_obj(W, spray_amount)
W.set_color()