mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Allow horizontal mobs to fit into crates
Also make stuffing into crates/lockers a mild stun akin to tabling
This commit is contained in:
@@ -1,75 +0,0 @@
|
||||
/obj/structure/closet/crate/bin
|
||||
desc = "A trash bin, place your trash here for the janitor to collect."
|
||||
name = "trash bin"
|
||||
icon_state = "largebins"
|
||||
open_sound = 'sound/effects/bin_open.ogg'
|
||||
close_sound = 'sound/effects/bin_close.ogg'
|
||||
anchored = TRUE
|
||||
allow_mobs = TRUE
|
||||
|
||||
/obj/structure/closet/crate/bin/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(contents.len == 0)
|
||||
overlays += "largebing"
|
||||
else if(contents.len >= storage_capacity)
|
||||
overlays += "largebinr"
|
||||
else
|
||||
overlays += "largebino"
|
||||
|
||||
/obj/structure/closet/crate/bin/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/storage/bag/trash))
|
||||
var/obj/item/weapon/storage/bag/trash/T = W
|
||||
user << "<span class='notice'>You fill the bag.</span>"
|
||||
for(var/obj/item/O in src)
|
||||
if(T.can_be_inserted(O, 1))
|
||||
O.loc = T
|
||||
T.update_icon()
|
||||
do_animate()
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/closet/crate/bin/MouseDrop_T(atom/movable/O as mob|obj, mob/user)
|
||||
. = ..(O, user, 0, 0, 0)
|
||||
if(.)
|
||||
if(O != user)
|
||||
user.visible_message("<span class='warning'>[user] tries to stuff [O] into [src].</span>", \
|
||||
"<span class='danger'>You try to stuff [O] into [src].</span>", \
|
||||
"<span class='italics'>You hear clanging.</span>")
|
||||
if (!do_after(user, 40, target = src))
|
||||
return
|
||||
if(!..(O, user, 0, 0))
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] stuffs [O] into[src].</span>", \
|
||||
"<span class='notice'>You stuff [O] into [src].</span>", \
|
||||
"<span class='italics'>You hear a loud metal bang.</span>")
|
||||
insert(O)
|
||||
if(opened)
|
||||
close()
|
||||
|
||||
/obj/structure/closet/crate/bin/proc/do_animate()
|
||||
playsound(src.loc, open_sound, 15, 1, -3)
|
||||
flick("animate_largebins", src)
|
||||
spawn(13)
|
||||
playsound(src.loc, close_sound, 15, 1, -3)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/insert(obj/item/I, include_mobs = 0, animate = 0)
|
||||
. = ..(I, include_mobs)
|
||||
if(animate && .)
|
||||
do_animate()
|
||||
|
||||
/obj/structure/closet/crate/bin/place(mob/user, obj/item/I)
|
||||
if(contents.len >= storage_capacity)
|
||||
return 1
|
||||
if(!opened && user.drop_item())
|
||||
insert(I, 0, 1)
|
||||
return 1
|
||||
return 0
|
||||
@@ -5,19 +5,19 @@
|
||||
icon_state = "generic"
|
||||
density = 1
|
||||
var/icon_door = null
|
||||
var/icon_door_override = 0 //override to have open overlay use icon different to its base's
|
||||
var/secure = 0 //secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights
|
||||
var/opened = 0
|
||||
var/welded = 0
|
||||
var/locked = 0
|
||||
var/broken = 0
|
||||
var/large = 1
|
||||
var/icon_door_override = FALSE //override to have open overlay use icon different to its base's
|
||||
var/secure = FALSE //secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights
|
||||
var/opened = FALSE
|
||||
var/welded = FALSE
|
||||
var/locked = FALSE
|
||||
var/broken = FALSE
|
||||
var/large = TRUE
|
||||
var/wall_mounted = 0 //never solid (You can always pass over it)
|
||||
var/health = 100
|
||||
var/breakout_time = 2
|
||||
var/lastbang
|
||||
var/can_weld_shut = 1
|
||||
var/allow_mobs = TRUE
|
||||
var/can_weld_shut = TRUE
|
||||
var/horizontal = TRUE
|
||||
var/allow_objects = FALSE
|
||||
var/allow_dense = FALSE
|
||||
var/max_mob_size = MOB_SIZE_HUMAN //Biggest mob_size accepted by the container
|
||||
@@ -77,8 +77,9 @@
|
||||
return get_turf(src)
|
||||
|
||||
/obj/structure/closet/CanPass(atom/movable/mover, turf/target, height=0)
|
||||
if(height==0 || wall_mounted) return 1
|
||||
return (!density)
|
||||
if(height == 0 || wall_mounted)
|
||||
return 1
|
||||
return !density
|
||||
|
||||
/obj/structure/closet/proc/can_open()
|
||||
if(welded || locked)
|
||||
@@ -95,7 +96,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/AM in src)
|
||||
AM.forceMove(T)
|
||||
if(throwing) //you keep some momentum when getting out of a thrown closet
|
||||
if(throwing) // you keep some momentum when getting out of a thrown closet
|
||||
step(AM, dir)
|
||||
if(throwing)
|
||||
throwing = 0
|
||||
@@ -108,9 +109,9 @@
|
||||
|
||||
/obj/structure/closet/proc/open()
|
||||
if(opened || !can_open())
|
||||
return 0
|
||||
opened = 1
|
||||
return
|
||||
playsound(loc, open_sound, 15, 1, -3)
|
||||
opened = 1
|
||||
density = 0
|
||||
dump_contents()
|
||||
update_icon()
|
||||
@@ -125,7 +126,7 @@
|
||||
if(L.buckled || L.buckled_mob)
|
||||
return
|
||||
if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items.
|
||||
if(!allow_mobs)
|
||||
if(horizontal && !L.lying)
|
||||
return
|
||||
if(L.mob_size > max_mob_size)
|
||||
return
|
||||
@@ -154,9 +155,8 @@
|
||||
if(!opened || !can_close())
|
||||
return 0
|
||||
take_contents()
|
||||
|
||||
opened = 0
|
||||
playsound(loc, close_sound, 15, 1, -3)
|
||||
opened = 0
|
||||
density = 1
|
||||
update_icon()
|
||||
return 1
|
||||
@@ -192,79 +192,73 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(user.loc == src)
|
||||
if(user in src)
|
||||
return
|
||||
if(opened)
|
||||
if(istype(W,/obj/item/tk_grab))
|
||||
return 0
|
||||
if(istype(W, cutting_tool))
|
||||
if(istype(cutting_tool, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(!WT.remove_fuel(0,user))
|
||||
if(!WT.remove_fuel(0, user))
|
||||
return
|
||||
user << "<span class='notice'>You begin cutting \the [src] apart...</span>"
|
||||
playsound(loc, cutting_sound, 40, 1)
|
||||
if(do_after(user,40/W.toolspeed,1, target = src))
|
||||
if( !opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc )
|
||||
if(do_after(user, 40/W.toolspeed, 1, target = src))
|
||||
if(!opened || !WT.isOn())
|
||||
return
|
||||
playsound(loc, cutting_sound, 50, 1)
|
||||
new material_drop(loc)
|
||||
visible_message("[user] has cut \the [src] apart with \the [WT].", "<span class='italics'>You hear welding.</span>")
|
||||
visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [WT].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
qdel(src)
|
||||
return
|
||||
if(isrobot(user))
|
||||
return
|
||||
if(user.drop_item())
|
||||
else if(user.drop_item())
|
||||
W.Move(loc)
|
||||
else
|
||||
if(istype(W, /obj/item/stack/packageWrap))
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && can_weld_shut)
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0,user))
|
||||
if(!WT.remove_fuel(0, user))
|
||||
return
|
||||
user << "<span class='notice'>You begin [welded ? "unwelding":"welding"] \the [src]...</span>"
|
||||
playsound(loc, 'sound/items/Welder2.ogg', 40, 1)
|
||||
if(do_after(user,40,1, target = src))
|
||||
if(opened || !istype(src, /obj/structure/closet) || !user || !WT || !WT.isOn() || !user.loc )
|
||||
if(do_after(user, 40, 1, target = src))
|
||||
if(opened || !WT.isOn())
|
||||
return
|
||||
playsound(loc, 'sound/items/welder.ogg', 50, 1)
|
||||
welded = !welded
|
||||
user << "<span class='notice'>You [welded ? "weld [src] shut":"unweld [src]"].</span>"
|
||||
visible_message("<span class='notice'>[user] [welded ? "welds shut" : "unweldeds"] \the [src].</span>",
|
||||
"<span class='notice'>You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
update_icon()
|
||||
user.visible_message("[user.name] has [welded ? "welded [src] shut":"unwelded [src]"].", "<span class='warning'>You [welded ? "weld [src] shut":"unweld [src]"].</span>")
|
||||
return
|
||||
if(secure && broken)
|
||||
user << "<span class='notice'>The locker appears to be broken.</span>"
|
||||
return
|
||||
if(!place(user, W) && !isnull(W))
|
||||
else
|
||||
attack_hand(user)
|
||||
|
||||
/obj/structure/closet/proc/place(mob/user, obj/item/I)
|
||||
if(!opened && secure)
|
||||
togglelock(user)
|
||||
return 1
|
||||
return 0
|
||||
/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/user)
|
||||
if(!istype(O) || O.anchored || istype(O, /obj/screen))
|
||||
return
|
||||
if(user.incapacitated() || user.lying)
|
||||
return
|
||||
if(!Adjacent(user) || !user.Adjacent(O))
|
||||
return
|
||||
if(!opened || istype(O, /obj/structure/closet))
|
||||
return
|
||||
if(user == O)
|
||||
return
|
||||
|
||||
/obj/structure/closet/MouseDrop_T(atom/movable/O as mob|obj, mob/user, needs_opened = 1, show_message = 1, move_them = 1)
|
||||
if(istype(O, /obj/screen)) //fix for HUD elements making their way into the world -Pete
|
||||
return 0
|
||||
if(!isturf(O.loc))
|
||||
return 0
|
||||
if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.lying)
|
||||
return 0
|
||||
if((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1))
|
||||
return 0
|
||||
if(!istype(user.loc, /turf)) // are you in a container/closet/pod/etc? Will also check for null loc
|
||||
return 0
|
||||
if(needs_opened && !opened)
|
||||
return 0
|
||||
if(istype(O, /obj/structure/closet))
|
||||
return 0
|
||||
if(move_them)
|
||||
step_towards(O, loc)
|
||||
if(show_message && user != O)
|
||||
user.show_viewers("<span class='danger'>[user] stuffs [O] into [src]!</span>")
|
||||
add_fingerprint(user)
|
||||
user.visible_message("<span class='warning'>[user] tries to stuff [O] into [src].</span>", \
|
||||
"<span class='warning'>You try to stuff [O] into [src].</span>", \
|
||||
"<span class='italics'>You hear clanging.</span>")
|
||||
if(do_after(user, 40, target = src))
|
||||
user.visible_message("<span class='notice'>[user] stuffs [O] into [src].</span>", \
|
||||
"<span class='notice'>You stuff [O] into [src].</span>", \
|
||||
"<span class='italics'>You hear a loud metal bang.</span>")
|
||||
var/mob/living/L = O
|
||||
if(istype(L))
|
||||
L.Weaken(2)
|
||||
step_towards(O, loc)
|
||||
close()
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/relaymove(mob/user)
|
||||
@@ -277,10 +271,6 @@
|
||||
for(var/mob/M in get_hearers_in_view(src, null))
|
||||
M.show_message("<FONT size=[max(0, 5 - get_dist(src, M))]>BANG, bang!</FONT>", 2)
|
||||
|
||||
|
||||
/obj/structure/closet/attack_paw(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/structure/closet/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
if(user.lying && get_dist(src, user) > 0)
|
||||
@@ -331,11 +321,12 @@
|
||||
welded = 0 //applies to all lockers lockers
|
||||
locked = 0 //applies to critter crates and secure lockers only
|
||||
broken = 1 //applies to secure lockers only
|
||||
user.visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>", "<span class='notice'>You successfully break out of [src]!</span>")
|
||||
user.visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>",
|
||||
"<span class='notice'>You successfully break out of [src]!</span>")
|
||||
if(istype(loc, /obj/structure/bigDelivery))
|
||||
var/obj/structure/bigDelivery/D = loc
|
||||
qdel(D)
|
||||
else if(istype( loc, /obj/mecha))
|
||||
else if(istype(loc, /obj/mecha))
|
||||
loc = get_turf(loc)
|
||||
open()
|
||||
else
|
||||
@@ -346,8 +337,6 @@
|
||||
if(!user.canUseTopic(user))
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
if(broken)
|
||||
user << "<span class='warning'>\The [src] is broken!</span>"
|
||||
if(opened || !secure || !in_range(src, user))
|
||||
return
|
||||
else
|
||||
@@ -356,15 +345,15 @@
|
||||
/obj/structure/closet/proc/togglelock(mob/living/user)
|
||||
if(secure && !broken)
|
||||
if(allowed(user))
|
||||
locked = !locked
|
||||
add_fingerprint(user)
|
||||
locked = !locked
|
||||
user.visible_message("<span class='notice'>[user] [locked ? null : "un"]locks [src].</span>",
|
||||
"<span class='notice'>You [locked ? null : "un"]locks [src].</span>")
|
||||
update_icon()
|
||||
else
|
||||
user << "<span class='notice'>Access Denied</span>"
|
||||
else
|
||||
return
|
||||
else if(secure && broken)
|
||||
user << "<span class='warning'>\The [src] is broken!</span>"
|
||||
|
||||
/obj/structure/closet/emag_act(mob/user)
|
||||
if(secure && !broken)
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
/obj/structure/closet/critter
|
||||
name = "critter crate"
|
||||
desc = "A crate designed for safe transport of animals. Only openable from the the outside."
|
||||
icon_state = "critter"
|
||||
var/already_opened = 0
|
||||
var/content_mob = null
|
||||
var/amount = 1
|
||||
|
||||
/obj/structure/closet/critter/can_open()
|
||||
if(locked || welded)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/critter/open()
|
||||
if(!can_open())
|
||||
return 0
|
||||
|
||||
if(content_mob == null) //making sure we don't spawn anything too eldritch
|
||||
already_opened = 1
|
||||
return ..()
|
||||
|
||||
if(content_mob != null && already_opened == 0)
|
||||
for(var/i = 1, i <= amount, i++)
|
||||
new content_mob(loc)
|
||||
already_opened = 1
|
||||
..()
|
||||
|
||||
/obj/structure/closet/critter/close()
|
||||
..()
|
||||
locked = 1
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/critter/attack_hand(mob/user)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(src.loc == user.loc)
|
||||
user << "<span class='notice'>It won't budge!</span>"
|
||||
toggle()
|
||||
else
|
||||
locked = 0
|
||||
toggle()
|
||||
|
||||
/obj/structure/closet/critter/corgi
|
||||
name = "corgi crate"
|
||||
content_mob = /mob/living/simple_animal/pet/dog/corgi
|
||||
|
||||
/obj/structure/closet/critter/corgi/New()
|
||||
if(prob(50))
|
||||
content_mob = /mob/living/simple_animal/pet/dog/corgi/Lisa
|
||||
..()
|
||||
|
||||
/obj/structure/closet/critter/cow
|
||||
name = "cow crate"
|
||||
content_mob = /mob/living/simple_animal/cow
|
||||
|
||||
/obj/structure/closet/critter/goat
|
||||
name = "goat crate"
|
||||
content_mob = /mob/living/simple_animal/hostile/retaliate/goat
|
||||
|
||||
/obj/structure/closet/critter/chick
|
||||
name = "chicken crate"
|
||||
content_mob = /mob/living/simple_animal/chick
|
||||
|
||||
/obj/structure/closet/critter/chick/New()
|
||||
amount = rand(1, 3)
|
||||
..()
|
||||
|
||||
/obj/structure/closet/critter/cat
|
||||
name = "cat crate"
|
||||
content_mob = /mob/living/simple_animal/pet/cat
|
||||
|
||||
/obj/structure/closet/critter/cat/New()
|
||||
if(prob(50))
|
||||
content_mob = /mob/living/simple_animal/pet/cat/Proc
|
||||
..()
|
||||
|
||||
/obj/structure/closet/critter/pug
|
||||
name = "pug crate"
|
||||
content_mob = /mob/living/simple_animal/pet/dog/pug
|
||||
|
||||
/obj/structure/closet/critter/fox
|
||||
name = "fox crate"
|
||||
content_mob = /mob/living/simple_animal/pet/fox
|
||||
|
||||
/obj/structure/closet/critter/butterfly
|
||||
name = "butterflies crate"
|
||||
content_mob = /mob/living/simple_animal/butterfly
|
||||
amount = 50
|
||||
@@ -55,9 +55,9 @@
|
||||
M.adjustFireLoss(intialFire - M.getFireLoss())
|
||||
M.adjustBruteLoss(intialBrute - M.getBruteLoss())
|
||||
M.setOxyLoss(intialOxy)
|
||||
if (timer <= 0)
|
||||
if(timer <= 0)
|
||||
dump_contents()
|
||||
SSobj.processing.Remove(src)
|
||||
SSobj.processing -= src
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/statue/dump_contents()
|
||||
@@ -129,9 +129,6 @@
|
||||
for(var/mob/M in src)
|
||||
shatter(M)
|
||||
|
||||
/obj/structure/closet/statue/place()
|
||||
return
|
||||
|
||||
/obj/structure/closet/statue/MouseDrop_T()
|
||||
return
|
||||
|
||||
@@ -148,7 +145,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/closet/statue/proc/shatter(mob/user)
|
||||
if (user)
|
||||
if(user)
|
||||
user.dust()
|
||||
dump_contents()
|
||||
visible_message("<span class='danger'>[src] shatters!.</span>")
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "crate"
|
||||
req_access = null
|
||||
can_weld_shut = FALSE
|
||||
allow_mobs = FALSE
|
||||
horizontal = TRUE
|
||||
allow_objects = TRUE
|
||||
allow_dense = TRUE
|
||||
var/obj/item/weapon/paper/manifest/manifest
|
||||
@@ -29,17 +29,6 @@
|
||||
if(!toggle())
|
||||
togglelock(user)
|
||||
|
||||
/obj/structure/closet/crate/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(opened)
|
||||
if(isrobot(user))
|
||||
return
|
||||
if(user.drop_item())
|
||||
W.Move(loc)
|
||||
else if(istype(W, /obj/item/stack/packageWrap))
|
||||
return
|
||||
else if(!place(user, W))
|
||||
attack_hand(user)
|
||||
|
||||
/obj/structure/closet/crate/proc/tear_manifest(mob/user)
|
||||
user << "<span class='notice'>You tear the manifest off of the crate.</span>"
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 75, 1)
|
||||
|
||||
44
code/game/objects/structures/crates_lockers/crates/bins.dm
Normal file
44
code/game/objects/structures/crates_lockers/crates/bins.dm
Normal file
@@ -0,0 +1,44 @@
|
||||
/obj/structure/closet/crate/bin
|
||||
desc = "A trash bin, place your trash here for the janitor to collect."
|
||||
name = "trash bin"
|
||||
icon_state = "largebins"
|
||||
open_sound = 'sound/effects/bin_open.ogg'
|
||||
close_sound = 'sound/effects/bin_close.ogg'
|
||||
anchored = TRUE
|
||||
horizontal = FALSE
|
||||
|
||||
/obj/structure/closet/crate/bin/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(contents.len == 0)
|
||||
overlays += "largebing"
|
||||
else if(contents.len >= storage_capacity)
|
||||
overlays += "largebinr"
|
||||
else
|
||||
overlays += "largebino"
|
||||
|
||||
/obj/structure/closet/crate/bin/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/storage/bag/trash))
|
||||
var/obj/item/weapon/storage/bag/trash/T = W
|
||||
user << "<span class='notice'>You fill the bag.</span>"
|
||||
for(var/obj/item/O in src)
|
||||
if(T.can_be_inserted(O, 1))
|
||||
O.loc = T
|
||||
T.update_icon()
|
||||
do_animate()
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/closet/crate/bin/proc/do_animate()
|
||||
playsound(loc, open_sound, 15, 1, -3)
|
||||
flick("animate_largebins", src)
|
||||
spawn(13)
|
||||
playsound(loc, close_sound, 15, 1, -3)
|
||||
update_icon()
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "critter crate"
|
||||
desc = "A crate designed for safe transport of animals. It has an oxygen tank for safe transport in space."
|
||||
icon_state = "crittercrate"
|
||||
allow_mobs = TRUE
|
||||
horizontal = FALSE
|
||||
allow_objects = FALSE
|
||||
breakout_time = 1
|
||||
material_drop = /obj/item/stack/sheet/mineral/wood
|
||||
|
||||
@@ -704,7 +704,6 @@
|
||||
#include "code\game\objects\structures\beds_chairs\alien_nest.dm"
|
||||
#include "code\game\objects\structures\beds_chairs\bed.dm"
|
||||
#include "code\game\objects\structures\beds_chairs\chair.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\bins.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\crates.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\cardboardbox.dm"
|
||||
@@ -727,6 +726,7 @@
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\crates\bins.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\crates\critter.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\crates\large.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\crates\secure.dm"
|
||||
|
||||
Reference in New Issue
Block a user