diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 3acbc6f6b7d..268d8913e68 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -597,13 +597,13 @@ /turf/simulated/floor/plasteel/white, /area/ruin/powered/animal_hospital) "bE" = ( -/obj/structure/closet/crate/critter, /obj/effect/turf_decal/tile/blue{ dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/structure/closet/critter/random, /turf/simulated/floor/plasteel, /area/ruin/powered/animal_hospital) "bF" = ( diff --git a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm deleted file mode 100644 index ccd41a88e64..00000000000 --- a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm +++ /dev/null @@ -1,6 +0,0 @@ -/obj/structure/closet/crate/critter - name = "critter crate" - desc = "A crate which can sustain life for a while." - icon_state = "critter" - open_door_sprite = null - material_drop = /obj/item/stack/sheet/wood diff --git a/code/game/objects/structures/crates_lockers/crittercrate.dm b/code/game/objects/structures/crates_lockers/crittercrate.dm index 8baa64d3ac9..82c03111f10 100644 --- a/code/game/objects/structures/crates_lockers/crittercrate.dm +++ b/code/game/objects/structures/crates_lockers/crittercrate.dm @@ -5,7 +5,7 @@ icon_opened = "critter_open" icon_closed = "critter" open_door_sprite = null - var/already_opened = 0 + var/already_opened = FALSE var/content_mob = null var/amount = 1 open_sound = 'sound/machines/wooden_closet_open.ogg' @@ -15,26 +15,44 @@ /obj/structure/closet/critter/can_open() if(welded) - return 0 - return 1 + return + return TRUE /obj/structure/closet/critter/open() if(!can_open()) - return 0 + return if(content_mob == null) //making sure we don't spawn anything too eldritch - already_opened = 1 + already_opened = TRUE return ..() if(content_mob != null && already_opened == 0) for(var/i = 1, i <= amount, i++) new content_mob(loc) - already_opened = 1 + already_opened = TRUE . = ..() /obj/structure/closet/critter/close() ..() - return 1 + return TRUE + +/obj/structure/closet/critter/random + name = "unmarked crate" + desc = "A crate designed for safe transport of animals. The contents are a mystery." + +/obj/structure/closet/critter/random/populate_contents() + content_mob = pick(/mob/living/simple_animal/pet/dog/corgi, + /mob/living/simple_animal/pet/dog/corgi/Lisa, + /mob/living/simple_animal/cow, + /mob/living/simple_animal/pig, + /mob/living/simple_animal/hostile/retaliate/goat, + /mob/living/simple_animal/turkey, + /mob/living/simple_animal/chick, + /mob/living/simple_animal/pet/cat, + /mob/living/simple_animal/pet/dog/pug, + /mob/living/simple_animal/pet/dog/fox, + /mob/living/simple_animal/deer, + /mob/living/simple_animal/bunny) /obj/structure/closet/critter/corgi name = "corgi crate" diff --git a/paradise.dme b/paradise.dme index 60e0876c019..bc0ceb74758 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1134,7 +1134,6 @@ #include "code\game\objects\structures\crates_lockers\walllocker.dm" #include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm" #include "code\game\objects\structures\crates_lockers\closets\coffin.dm" -#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" #include "code\game\objects\structures\crates_lockers\closets\fireaxe.dm" #include "code\game\objects\structures\crates_lockers\closets\fitness.dm" #include "code\game\objects\structures\crates_lockers\closets\gimmick.dm"