diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index 0e2d8b42bec..563a66f93e5 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -4,6 +4,7 @@
icon = 'icons/obj/items.dmi'
icon_state = "fire_extinguisher0"
item_state = "fire_extinguisher"
+ base_icon_state = "fire_extinguisher"
hitsound = 'sound/weapons/smash.ogg'
flags = CONDUCT
throwforce = 10
@@ -17,27 +18,26 @@
dog_fashion = /datum/dog_fashion/back
resistance_flags = FIRE_PROOF
var/max_water = 50
- var/last_use = 1.0
- var/safety = 1
+ var/safety = TRUE
var/refilling = FALSE
- var/sprite_name = "fire_extinguisher"
- var/power = 5 //Maximum distance launched water will travel
- var/precision = 0 //By default, turfs picked from a spray are random, set to 1 to make it always have at least one water effect per row
+ /// FALSE by default, turfs picked from a spray are random, set to TRUE to make it always have at least one water effect per row
+ var/precision = FALSE
var/cooling_power = 2 //Sets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled
+ COOLDOWN_DECLARE(last_use)
/obj/item/extinguisher/mini
name = "pocket fire extinguisher"
desc = "A light and compact fibreglass-framed model fire extinguisher."
icon_state = "miniFE0"
item_state = "miniFE"
+ base_icon_state = "miniFE"
hitsound = null //it is much lighter, after all.
flags = null //doesn't CONDUCT
throwforce = 2
w_class = WEIGHT_CLASS_SMALL
- force = 3.0
+ force = 3
materials = list()
max_water = 30
- sprite_name = "miniFE"
dog_fashion = null
/obj/item/extinguisher/examine(mob/user)
@@ -54,10 +54,8 @@
/obj/item/extinguisher/attack_self(mob/user as mob)
safety = !safety
- src.icon_state = "[sprite_name][!safety]"
- src.desc = "The safety is [safety ? "on" : "off"]."
- to_chat(user, "The safety is [safety ? "on" : "off"].")
- return
+ icon_state = "[base_icon_state][!safety]"
+ to_chat(user, "You [safety ? "enable" : "disable"] [src]'s safety.")
/obj/item/extinguisher/attack_obj(obj/O, mob/living/user, params)
if(AttemptRefill(O, user))
@@ -67,26 +65,26 @@
return ..()
/obj/item/extinguisher/proc/AttemptRefill(atom/target, mob/user)
- if(istype(target, /obj/structure/reagent_dispensers/watertank) && target.Adjacent(user))
- var/safety_save = safety
- safety = 1
- if(reagents.total_volume == reagents.maximum_volume)
- to_chat(user, "\The [src] is already full!")
- safety = safety_save
- return 1
- var/obj/structure/reagent_dispensers/watertank/W = target
- var/transferred = W.reagents.trans_to(src, max_water)
- if(transferred > 0)
- to_chat(user, "\The [src] has been refilled by [transferred] units")
- playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
- for(var/datum/reagent/water/R in reagents.reagent_list)
- R.cooling_temperature = cooling_power
- else
- to_chat(user, "\The [W] is empty!")
- safety = safety_save
- return 1
+ if(!istype(target, /obj/structure/reagent_dispensers/watertank) || !target.Adjacent(user))
+ return FALSE
+ var/old_safety = safety
+ safety = TRUE
+ if(reagents.total_volume == reagents.maximum_volume)
+ to_chat(user, "\The [src] is already full!")
+ safety = old_safety
+ return TRUE
+ var/obj/structure/reagent_dispensers/watertank/W = target
+ var/transferred = W.reagents.trans_to(src, max_water)
+ if(transferred > 0)
+ to_chat(user, "\The [src] has been refilled by [transferred] units.")
+ playsound(src.loc, 'sound/effects/refill.ogg', 50, TRUE, -6)
+ for(var/datum/reagent/water/R in reagents.reagent_list)
+ R.cooling_temperature = cooling_power
else
- return 0
+ to_chat(user, "\The [W] is empty!")
+ safety = old_safety
+ return TRUE
+
/obj/item/extinguisher/afterattack(atom/target, mob/user , flag)
. = ..()
@@ -103,10 +101,10 @@
to_chat(usr, "\The [src] is empty.")
return
- if(world.time < src.last_use + 20)
+ if(!COOLDOWN_FINISHED(src, last_use))
return
- src.last_use = world.time
+ COOLDOWN_START(src, last_use, 2 SECONDS)
if(reagents.chem_temp > 300 || reagents.chem_temp < 280)
add_attack_logs(user, target, "Sprayed with superheated or cooled fire extinguisher at Temperature [reagents.chem_temp]K")
diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
index e456bfa2f73..1c7ee387e2e 100644
--- a/code/game/objects/items/weapons/tanks/watertank.dm
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -226,7 +226,6 @@
item_state = "nozzleatmos"
safety = 0
max_water = 500
- power = 8
precision = 1
cooling_power = 5
w_class = WEIGHT_CLASS_HUGE
diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm
index bf118f3edad..5641545940c 100644
--- a/code/modules/mod/modules/modules_engineering.dm
+++ b/code/modules/mod/modules/modules_engineering.dm
@@ -174,7 +174,6 @@
item_state = "nozzleatmos"
safety = 0
max_water = 500
- power = 8
precision = 1
cooling_power = 5
w_class = WEIGHT_CLASS_HUGE