diff --git a/code/game/objects/items/mountable_frames/extinguisher_frame.dm b/code/game/objects/items/mountable_frames/extinguisher_frame.dm
index 531005ca902..5356a154a6d 100644
--- a/code/game/objects/items/mountable_frames/extinguisher_frame.dm
+++ b/code/game/objects/items/mountable_frames/extinguisher_frame.dm
@@ -6,5 +6,5 @@
mount_reqs = list("simfloor", "nospace")
/obj/item/mounted/frame/extinguisher/do_build(turf/on_wall, mob/user)
- new /obj/structure/extinguisher_cabinet(get_turf(src), get_dir(user, on_wall))
+ new /obj/structure/extinguisher_cabinet/empty(get_turf(src), get_dir(user, on_wall))
qdel(src)
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 0e9be717ca1..b7ea68ae0df 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -90,7 +90,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list(
new /datum/stack_recipe("air alarm frame", /obj/item/mounted/frame/alarm_frame, 2),
new /datum/stack_recipe("fire alarm frame", /obj/item/mounted/frame/firealarm, 2),
new /datum/stack_recipe("intercom frame", /obj/item/mounted/frame/intercom, 2),
- new /datum/stack_recipe("extinguisher cabinet frame", /obj/item/mounted/frame/extinguisher, 5),
+ new /datum/stack_recipe("extinguisher cabinet frame", /obj/item/mounted/frame/extinguisher, 2),
null
)
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index ce550871c63..568fb0ededc 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -1,3 +1,8 @@
+#define NO_EXTINGUISHER 0
+#define NORMAL_EXTINGUISHER 1
+#define MINI_EXTINGUISHER 2
+
+
/obj/structure/extinguisher_cabinet
name = "extinguisher cabinet"
desc = "A small wall mounted cabinet designed to hold a fire extinguisher."
@@ -5,7 +10,8 @@
icon_state = "extinguisher_closed"
anchored = 1
density = 0
- var/obj/item/extinguisher/has_extinguisher = new/obj/item/extinguisher
+ var/obj/item/extinguisher/has_extinguisher = null
+ var/extinguishertype
var/opened = 0
var/material_drop = /obj/item/stack/sheet/metal
@@ -14,11 +20,18 @@
if(ndir)
pixel_x = (ndir & EAST|WEST) ? (ndir == EAST ? 28 : -28) : 0
pixel_y = (ndir & NORTH|SOUTH)? (ndir == WEST ? 28 : -28) : 0
+ switch(extinguishertype)
+ if(NO_EXTINGUISHER)
+ return
+ if(MINI_EXTINGUISHER)
+ has_extinguisher = new/obj/item/extinguisher/mini
+ else
+ has_extinguisher = new/obj/item/extinguisher
/obj/structure/extinguisher_cabinet/Destroy()
QDEL_NULL(has_extinguisher)
return ..()
-
+
/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user, params)
if(isrobot(user) || isalien(user))
return
@@ -39,7 +52,6 @@
return
var/obj/item/weldingtool/WT = O
if(!WT.remove_fuel(0, user))
- to_chat(user, "You need more welding fuel to complete this task.")
return
to_chat(user, "You begin cutting [src] apart...")
playsound(loc, WT.usesound, 40, 1)
@@ -99,3 +111,11 @@
icon_state = "extinguisher_full"
else
icon_state = "extinguisher_empty"
+
+/obj/structure/extinguisher_cabinet/empty/New(turf/loc, ndir = null)
+ extinguishertype = NO_EXTINGUISHER
+ ..()
+
+#undef NO_EXTINGUISHER
+#undef NORMAL_EXTINGUISHER
+#undef MINI_EXTINGUISHER