diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index eccd3c657d..08fd0cedae 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -18,11 +18,13 @@ container_type = AMOUNT_VISIBLE var/max_water = 50 var/last_use = 1 + var/chem = "water" var/safety = TRUE var/refilling = FALSE + var/tanktype = /obj/structure/reagent_dispensers/watertank 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 + var/precision = FALSE //By default, turfs picked from a spray are random, set to 1 to make it always have at least one water effect per row var/cooling_power = 2 //Sets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled /obj/item/extinguisher/mini @@ -43,7 +45,19 @@ /obj/item/extinguisher/New() ..() create_reagents(max_water) - reagents.add_reagent("water", max_water) + reagents.add_reagent(chem, max_water) + + +/obj/item/extinguisher/advanced + name = "advanced fire extinguisher" + desc = "Used to stop thermonuclear fires from spreading inside your engine." + icon_state = "foam_extinguisher0" + //item_state = "foam_extinguisher" needs sprite + dog_fashion = null + chem = "firefighting_foam" + tanktype = /obj/structure/reagent_dispensers/foamtank + sprite_name = "foam_extinguisher" + precision = TRUE /obj/item/extinguisher/suicide_act(mob/living/carbon/user) if (!safety && (reagents.total_volume >= 1)) @@ -84,14 +98,14 @@ to_chat(user, "Alt-click to empty it.") /obj/item/extinguisher/proc/AttemptRefill(atom/target, mob/user) - if(istype(target, /obj/structure/reagent_dispensers/watertank) && target.Adjacent(user)) + if(istype(target, tanktype) && target.Adjacent(user)) var/safety_save = safety safety = TRUE 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/obj/structure/reagent_dispensers/W = target //will it work? var/transferred = W.reagents.trans_to(src, max_water) if(transferred > 0) to_chat(user, "\The [src] has been refilled by [transferred] units.") diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 9cc4598697..97a157e0be 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -28,6 +28,7 @@ new /obj/item/pipe_dispenser(src) new /obj/item/inducer(src) new /obj/item/circuitboard/machine/techfab/department/engineering(src) + new /obj/item/extinguisher/advanced(src) /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies locker" @@ -94,3 +95,4 @@ new /obj/item/clothing/suit/fire/atmos(src) new /obj/item/clothing/head/hardhat/atmos(src) new /obj/item/clothing/glasses/meson/engine/tray(src) + new /obj/item/extinguisher/advanced(src) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index e0a137fb7c..e6b4a29502 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -102,8 +102,8 @@ /obj/item/flashlight, /obj/item/tank/internals/oxygen/red, /obj/item/tank/internals/oxygen/red, - /obj/item/extinguisher, - /obj/item/extinguisher, + /obj/item/extinguisher/advanced, + /obj/item/extinguisher/advanced, /obj/item/clothing/head/hardhat/red, /obj/item/clothing/head/hardhat/red) crate_name = "firefighting crate" @@ -1000,6 +1000,14 @@ crate_name = "water tank crate" crate_type = /obj/structure/closet/crate/large +/datum/supply_pack/materials/foamtank + name = "Foam Tank Crate" + desc = "Contains plasmamen's bane." + cost = 1500 + contains = list(/obj/structure/reagent_dispensers/foamtank) + crate_name = "foam tank crate" + crate_type = /obj/structure/closet/crate/large + /datum/supply_pack/materials/hightank name = "Large Water Tank Crate" desc = "Contains a high-capacity water tank. Useful for botany or other service jobs." diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 508f3815a0..0607287957 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -51,6 +51,13 @@ icon_state = "water_high" //I was gonna clean my room... tank_volume = 100000 +/obj/structure/reagent_dispensers/foamtank + name = "firefoam tank" + desc = "A tank full of foaming things." + icon_state = "foam" + reagent_id = "firefighting_foam" + tank_volume = 500 + /obj/structure/reagent_dispensers/fueltank name = "fuel tank" desc = "A tank full of industrial welding fuel. Do not consume." diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index b0b01a2446..bae64f4c55 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index b4431daf83..a6e6d3b6f7 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ