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