diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 11572a0abda..17f6e2ce653 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -741,7 +741,7 @@ /obj/item/weapon/extinguisher name = "fire extinguisher" - desc = "Contains water for fighting fires." + desc = "A traditional red fire extinguisher." icon = 'items.dmi' icon_state = "fire_extinguisher0" var/last_use = 1.0 @@ -760,6 +760,7 @@ name = "fire extinguisher" desc = "A light and compact fibreglass-framed model fire extinguisher." icon_state = "miniFE0" + hitsound = null //it is much lighter, after all. flags = FPRINT | USEDELAY | TABLEPASS throwforce = 5 w_class = 2.0 @@ -1511,6 +1512,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove desc = "You can drill using this item. You dig?" icon = 'surgery.dmi' icon_state = "drill" + hitsound = 'circsawhit.ogg' flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 w_class = 1.0 @@ -1521,6 +1523,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove desc = "For heavy duty cutting." icon = 'surgery.dmi' icon_state = "saw3" + hitsound = 'circsawhit.ogg' flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 w_class = 1.0 diff --git a/code/game/objects/closets/extinguisher.dm b/code/game/objects/closets/extinguisher.dm index 490ae2c8d37..1d503333d7f 100644 --- a/code/game/objects/closets/extinguisher.dm +++ b/code/game/objects/closets/extinguisher.dm @@ -1,87 +1,57 @@ - /obj/structure/closet/extinguisher - name = "extinguisher closet" + name = "extinguisher cabinet" desc = "A small wall mounted cabinet designed to hold a fire extinguisher." - icon_state = "extinguisher10" - icon_opened = "extinguisher11" - icon_closed = "extinguisher10" - opened = 1 + icon = 'closet.dmi' + icon_state = "extinguisher_closed" anchored = 1 density = 0 - var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher - var/localopened = 1 + var/obj/item/weapon/extinguisher/has_extinguisher = new/obj/item/weapon/extinguisher - open() + + +/obj/structure/closet/extinguisher/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (isrobot(usr)) return - - close() - return - - attackby(var/obj/item/O as obj, var/mob/user as mob) - if (isrobot(usr)) - return - if (istype(O, /obj/item/weapon/extinguisher)) - if(!EXTINGUISHER) - user.drop_item(O) - src.contents += O - EXTINGUISHER = O - user << "\blue You place the extinguisher in the [src.name]." - else - localopened = !localopened + if (istype(O, /obj/item/weapon/extinguisher)) + if(!has_extinguisher && opened) + user.drop_item(O) + src.contents += O + has_extinguisher = O + user << "\blue You place the extinguisher in the [src.name]." else - localopened = !localopened - update_icon() - - attack_hand(mob/user as mob) - if(localopened) - if(EXTINGUISHER) - user.put_in_hand(EXTINGUISHER) - EXTINGUISHER = null - user << "\blue You take the extinguisher from the [name]." - else - localopened = !localopened - - else - localopened = !localopened - update_icon() - - verb/toggle_openness() //nice name, huh? HUH?! - set name = "Open/Close" - set category = "Object" - - if (isrobot(usr)) - return - - localopened = !localopened - update_icon() - - verb/remove_extinguisher() - set name = "Remove Extinguisher" - set category = "Object" - - if (isrobot(usr)) - return - - if (localopened) - if(EXTINGUISHER) - usr.put_in_hand(EXTINGUISHER) - EXTINGUISHER = null - usr << "\blue You take the extinguisher from the [name]." - else - usr << "\blue The [name] is empty." - else - usr << "\blue The [name] is closed." - update_icon() - - attack_paw(mob/user as mob) - attack_hand(user) - return - - attack_ai(mob/user as mob) - return - + opened = !opened + else + opened = !opened update_icon() - var/hasextinguisher = 0 - if(EXTINGUISHER) - hasextinguisher = 1 - icon_state = text("extinguisher[][]",hasextinguisher,src.localopened) + + + +/obj/structure/closet/extinguisher/attack_hand(mob/user as mob) + if(has_extinguisher) + user.put_in_hand(has_extinguisher) + has_extinguisher = null + user << "\blue You take the extinguisher from the [name]." + opened = 1 + else + opened = !opened + update_icon() + + + +/obj/structure/closet/extinguisher/attack_paw(mob/user as mob) + attack_hand(user) + return + + + +/obj/structure/closet/extinguisher/update_icon() + if(!opened) + icon_state = "extinguisher_closed" + return + if(has_extinguisher) + if(istype(has_extinguisher, /obj/item/weapon/extinguisher/mini)) + icon_state = "extinguisher_mini" + else + icon_state = "extinguisher_full" + else + icon_state = "extinguisher_empty" \ No newline at end of file diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 492f2537116..9b368fe427a 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ diff --git a/icons/obj/ERP.dmi b/icons/obj/ERP.dmi new file mode 100644 index 00000000000..972ddab18f6 Binary files /dev/null and b/icons/obj/ERP.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 642186a3049..a92ebe5488f 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 98f9c04bd4d..927890cf663 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/sound/weapons/circsawhit.ogg b/sound/weapons/circsawhit.ogg new file mode 100644 index 00000000000..60098571dc2 Binary files /dev/null and b/sound/weapons/circsawhit.ogg differ