diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index fbfeadb660c..21dbccd6306 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -132,9 +132,9 @@ dump_contents() icon_state = icon_opened - opened = 1 + opened = TRUE playsound(loc, open_sound, 25, 0, -3) - density = 0 + density = FALSE return 1 /obj/structure/closet/proc/close() @@ -153,7 +153,7 @@ stored_units += store_mobs(stored_units) icon_state = icon_closed - opened = 0 + opened = FALSE if(linked_teleporter) if(linked_teleporter.last_use + 600 > world.time) return @@ -162,7 +162,7 @@ linked_teleporter.last_use = world.time playsound(get_turf(src), close_sound, 25, 0, -3) - density = TRUE + density = initial(density) return TRUE //Cham Projector Exception diff --git a/code/game/objects/structures/crates_lockers/closets/walllocker.dm b/code/game/objects/structures/crates_lockers/closets/walllocker.dm index 033b14a0b57..a90f758663d 100644 --- a/code/game/objects/structures/crates_lockers/closets/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/closets/walllocker.dm @@ -6,40 +6,25 @@ name = "Wall Locker" icon = 'icons/obj/walllocker.dmi' icon_state = "wall-locker" - density = 0 - anchored = 1 + density = FALSE + anchored = TRUE store_mobs = FALSE icon_closed = "wall-locker" icon_opened = "wall-lockeropen" -//spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar - /obj/structure/closet/walllocker/emerglocker name = "emergency locker" desc = "A wall mounted locker with emergency supplies." - var/list/spawnitems = list(/obj/item/tank/emergency_oxygen,/obj/item/clothing/mask/breath) - var/amount = 2 // spawns each items X times. icon_state = "emerg" + icon_closed = "emerg" + icon_opened = "emerg-open" -/obj/structure/closet/walllocker/emerglocker/toggle(mob/user as mob) - attack_hand(user) - return - -/obj/structure/closet/walllocker/emerglocker/attackby(obj/item/W as obj, mob/user as mob) - return - -/obj/structure/closet/walllocker/emerglocker/attack_hand(mob/user as mob) - if (istype(user, /mob/living/silicon/ai)) //Added by Strumpetplaya - AI shouldn't be able to - return //activate emergency lockers. This fixes that. (Does this make sense, the AI can't call attack_hand, can it? --Mloc) - if(!amount) - to_chat(usr, "It's empty..") - return - if(amount) - to_chat(usr, "You take out some items from \the [src].") - for(var/path in spawnitems) - new path(loc) - amount-- - return +/obj/structure/closet/walllocker/emerglocker/fill() + for(var/i = 1 to 3) + new /obj/item/tank/emergency_oxygen(src) + new /obj/item/clothing/mask/breath(src) + if(prob(20)) + new /obj/item/reagent_containers/hypospray/autoinjector/emergency(src) /obj/structure/closet/walllocker/emerglocker/north pixel_y = 32 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 8c7f6c1f0ba..93a17351abb 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -169,6 +169,14 @@ reagents.add_reagent(/datum/reagent/inaprovaline, 5) update_icon() +/obj/item/reagent_containers/hypospray/autoinjector/emergency + name = "autoinjector (emergency)" + reagents_to_add = list(/datum/reagent/inaprovaline = 2.5, /datum/reagent/dexalin = 2.5) + +/obj/item/reagent_containers/hypospray/autoinjector/emergency/Initialize() + . = ..() + desc += " This auto-injector is to be used in emergencies. It contains a small amount of inaprovaline and dexalin." + /obj/item/reagent_containers/hypospray/autoinjector/sideeffectbgone name = "sideeffects-be-gone! autoinjector" desc = "A special cocktail designed to counter the side-effects of various drugs. Has 2 uses." diff --git a/html/changelogs/geeves-sensical_emergency_lockers.yml b/html/changelogs/geeves-sensical_emergency_lockers.yml new file mode 100644 index 00000000000..694570e463d --- /dev/null +++ b/html/changelogs/geeves-sensical_emergency_lockers.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "You can now open and close emergency wall lockers like you would any other locker / closet." + - rscadd: "Emergency wall lockers now have a chance to spawn with emergency auto-injectors. These contain a small amount of dexalin and inaprovaline." \ No newline at end of file diff --git a/icons/obj/walllocker.dmi b/icons/obj/walllocker.dmi index 8d43670829d..51b2dddcd5c 100644 Binary files a/icons/obj/walllocker.dmi and b/icons/obj/walllocker.dmi differ diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm index 7abce4fd3f2..a94f6dc33d0 100644 --- a/maps/aurora/aurora-1_centcomm.dmm +++ b/maps/aurora/aurora-1_centcomm.dmm @@ -22188,8 +22188,7 @@ "jDe" = ( /obj/structure/closet/walllocker/emerglocker/north{ pixel_x = -26; - pixel_y = -3; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -3 }, /obj/structure/closet/crate/secure/gear{ name = "secure crate"; @@ -22965,8 +22964,7 @@ tag_door = "legion_shuttle_hatch" }, /obj/structure/closet/walllocker/emerglocker/south{ - pixel_y = -28; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -28 }, /turf/simulated/floor/tiled/ramp/bottom{ dir = 8 @@ -25208,8 +25206,7 @@ /area/antag/burglar) "lvr" = ( /obj/structure/closet/walllocker/emerglocker/south{ - pixel_y = -27; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -27 }, /obj/structure/bed/chair/shuttle{ dir = 4 @@ -34797,8 +34794,7 @@ /obj/structure/closet/walllocker/emerglocker/north{ layer = 3; pixel_x = -1; - pixel_y = 29; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = 29 }, /turf/simulated/floor/shuttle/black, /area/shuttle/specops) @@ -35239,8 +35235,7 @@ "rtG" = ( /obj/structure/bed/chair/shuttle, /obj/structure/closet/walllocker/emerglocker{ - pixel_y = 31; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = 31 }, /obj/effect/floor_decal/corner/paleblue{ dir = 5 @@ -39824,8 +39819,7 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /obj/structure/closet/walllocker/emerglocker{ pixel_x = 27; - pixel_y = -1; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -1 }, /turf/simulated/floor/shuttle/black, /area/shuttle/mercenary) diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index 6b562d053b8..0763c1040b1 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -15636,8 +15636,7 @@ "naj" = ( /obj/structure/closet/walllocker/emerglocker/west{ pixel_x = -27; - pixel_y = 3; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = 3 }, /obj/effect/floor_decal/corner/purple{ dir = 9 @@ -23726,8 +23725,7 @@ dir = 9 }, /obj/structure/closet/walllocker/emerglocker/west{ - pixel_x = -29; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_x = -29 }, /turf/simulated/floor/tiled/dark, /area/shuttle/research)