Fixed issue 222.

Improved closet/secure closet/crate code a bit. (Updated the paths on the map.)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2585 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
petethegoat@gmail.com
2011-12-01 20:02:43 +00:00
parent 29a3acab5c
commit a80e46c078
30 changed files with 457 additions and 650 deletions

View File

@@ -10,7 +10,8 @@
var/welded = 0
var/wall_mounted = 0 //never solid (You can always pass over it)
flags = FPRINT
var/health = 200//Might be a bit much, dono can always change later
var/health = 100 //Might be a bit much, dono can always change later //Nerfed -Pete
var/lastbang //
/obj/structure/closet/acloset
name = "Strange closet"
@@ -581,25 +582,25 @@
/obj/structure/secure_closet
/obj/structure/closet/secure_closet
desc = "An immobile card-locked storage closet."
name = "Security Locker"
icon = 'closet.dmi'
icon_state = "secure1"
density = 1
var/opened = 0
opened = 0
var/locked = 1
var/broken = 0
var/large = 1
var/icon_closed = "secure"
icon_closed = "secure"
var/icon_locked = "secure1"
var/icon_opened = "secureopen"
icon_opened = "secureopen"
var/icon_broken = "securebroken"
var/icon_off = "secureoff"
var/wall_mounted = 0 //never solid (You can always pass over it)
var/health = 300
wall_mounted = 0 //never solid (You can always pass over it)
health = 200
/obj/structure/secure_closet/medical_wall
/obj/structure/closet/secure_closet/medical_wall
name = "First Aid Closet"
desc = "A wall mounted closet which --should-- contain medical supplies."
icon_state = "medical_wall_locked"
@@ -613,21 +614,21 @@
wall_mounted = 1
req_access = list(access_medical)
/obj/structure/secure_closet/personal
/obj/structure/closet/secure_closet/personal
desc = "The first card swiped gains control."
name = "Personal Closet"
/obj/structure/secure_closet/personal/patient
/obj/structure/closet/secure_closet/personal/patient
name = "Patient's closet"
/obj/structure/secure_closet/kitchen
/obj/structure/closet/secure_closet/kitchen
name = "Kitchen Cabinet"
req_access = list(access_kitchen)
/obj/structure/secure_closet/kitchen/mining
/obj/structure/closet/secure_closet/kitchen/mining
req_access = list()
/obj/structure/secure_closet/meat
/obj/structure/closet/secure_closet/meat
name = "Meat Fridge"
icon_state = "fridge1"
icon_closed = "fridge"
@@ -636,7 +637,7 @@
icon_broken = "fridgebroken"
icon_off = "fridge1"
/obj/structure/secure_closet/fridge
/obj/structure/closet/secure_closet/fridge
name = "Refrigerator"
icon_state = "fridge1"
icon_closed = "fridge"
@@ -645,7 +646,7 @@
icon_broken = "fridgebroken"
icon_off = "fridge1"
/obj/structure/secure_closet/money_freezer
/obj/structure/closet/secure_closet/money_freezer
name = "Freezer"
icon_state = "fridge1"
icon_closed = "fridge"
@@ -655,7 +656,7 @@
icon_off = "fridge1"
req_access = list(access_heads_vault)
/obj/structure/secure_closet/wall
/obj/structure/closet/secure_closet/wall
name = "wall locker"
req_access = list(access_security)
icon_state = "wall-locker1"

View File

@@ -11,7 +11,7 @@
"/obj/item/weapon/pen/paralysis",
"/obj/item/weapon/chem_grenade/incendiary")
cost = 20
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Special Ops crate"
hidden = 1
@@ -30,14 +30,14 @@
"/obj/item/weapon/reagent_containers/food/snacks/grown/banana",
"/obj/item/weapon/reagent_containers/food/snacks/grown/banana")
cost = 5
containertype = "/obj/structure/crate/freezer"
containertype = "/obj/structure/closet/crate/freezer"
containername = "Food crate"
/datum/supply_packs/monkey
name = "Monkey crate"
contains = list ("/obj/item/weapon/monkeycube_box")
cost = 20
containertype = "/obj/structure/crate/freezer"
containertype = "/obj/structure/closet/crate/freezer"
containername = "Monkey crate"
/*
@@ -47,7 +47,7 @@
"/obj/item/ammo_casing/shotgun/beanbag",
"/obj/item/ammo_casing/shotgun/beanbag")
cost = 25
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Shotgun crate"
//APPARENTLY OP?
*/
@@ -65,7 +65,7 @@
"/obj/item/ammo_casing/shotgun/beanbag",
"/obj/item/ammo_casing/shotgun/beanbag")
cost = 10
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Beanbag shells"
/datum/supply_packs/party
@@ -81,7 +81,7 @@
"/obj/item/weapon/reagent_containers/food/drinks/beer",
"/obj/item/weapon/reagent_containers/food/drinks/beer")
cost = 20
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Party equipment"
/datum/supply_packs/internals
@@ -93,7 +93,7 @@
"/obj/item/weapon/tank/air",
"/obj/item/weapon/tank/air")
cost = 10
containertype = "/obj/structure/crate/internals"
containertype = "/obj/structure/closet/crate/internals"
containername = "Internals crate"
/datum/supply_packs/evacuation
@@ -113,7 +113,7 @@
"/obj/item/clothing/mask/gas",
"/obj/item/clothing/mask/gas")
cost = 35
containertype = "/obj/structure/crate/internals"
containertype = "/obj/structure/closet/crate/internals"
containername = "Emergency Crate"
/datum/supply_packs/janitor
@@ -131,7 +131,7 @@
"/obj/item/weapon/chem_grenade/cleaner",
"/obj/structure/mopbucket")
cost = 10
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Janitorial supplies"
/obj/item/weapon/storage/lightbox/tubes
@@ -147,7 +147,7 @@
"/obj/item/weapon/storage/lightbox/bulbs",
"/obj/item/weapon/storage/lightbox/bulbs")
cost = 5
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Replacement lights"
/datum/supply_packs/costume
@@ -165,7 +165,7 @@
"/obj/item/clothing/suit/suspenders",
"/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing")
cost = 10
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Standard Costumes"
access = access_theatre
@@ -176,14 +176,14 @@
"/obj/item/clothing/shoes/sandal",
"/obj/item/clothing/head/wizard/fake")
cost = 20
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Wizard costume crate"
/datum/supply_packs/mule
name = "MULEbot Crate"
contains = list("/obj/machinery/bot/mulebot")
cost = 20
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "MULEbot Crate"
/datum/supply_packs/hydroponics // -- Skie
@@ -197,7 +197,7 @@
"/obj/item/clothing/gloves/botanic_leather",
"/obj/item/clothing/suit/apron") // Updated with new things
cost = 10
containertype = /obj/structure/crate/hydroponics
containertype = /obj/structure/closet/crate/hydroponics
containername = "Hydroponics crate"
access = access_hydroponics
@@ -215,7 +215,7 @@
"/obj/item/seeds/chantermycelium",
"/obj/item/seeds/potatoseed")
cost = 10
containertype = /obj/structure/crate/hydroponics
containertype = /obj/structure/closet/crate/hydroponics
containername = "Seeds crate"
access = access_hydroponics
@@ -232,7 +232,7 @@
"/obj/item/seeds/bananaseed",
"/obj/item/seeds/eggyseed")
cost = 15
containertype = /obj/structure/crate/hydroponics
containertype = /obj/structure/closet/crate/hydroponics
containername = "Exotic Seeds crate"
access = access_hydroponics
@@ -247,7 +247,7 @@
"/obj/item/weapon/reagent_containers/glass/bottle/stoxin",
"/obj/item/weapon/storage/syringes")
cost = 10
containertype = "/obj/structure/crate/medical"
containertype = "/obj/structure/closet/crate/medical"
containername = "Medical crate"
@@ -264,7 +264,7 @@
"/obj/item/weapon/storage/syringes",
"/obj/item/weapon/storage/beakerbox")
cost = 20
containertype = "/obj/structure/crate/secure/weapon"
containertype = "/obj/structure/closet/crate/secure/weapon"
containername = "Virus crate"
access = access_cmo
@@ -273,7 +273,7 @@
contains = list("/obj/item/stack/sheet/metal")
amount = 50
cost = 10
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Metal sheets crate"
/datum/supply_packs/glass50
@@ -281,7 +281,7 @@
contains = list("/obj/item/stack/sheet/glass")
amount = 50
cost = 10
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Glass sheets crate"
/datum/supply_packs/electrical
@@ -295,7 +295,7 @@
"/obj/item/weapon/cell/high",
"/obj/item/weapon/cell/high")
cost = 15
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Electrical maintenance crate"
/datum/supply_packs/mechanical
@@ -310,7 +310,7 @@
"/obj/item/clothing/head/helmet/welding",
"/obj/item/clothing/head/helmet/hardhat")
cost = 10
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Mechanical maintenance crate"
/datum/supply_packs/waterfueltank
@@ -318,7 +318,7 @@
contains = list("/obj/structure/reagent_dispensers/watertank",
"/obj/structure/reagent_dispensers/fueltank")
cost = 15
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "Water/Fuel tank crate"
/datum/supply_packs/engine
@@ -326,7 +326,7 @@
contains = list("/obj/machinery/emitter",
"/obj/machinery/emitter",)
cost = 10
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Emitter crate"
access = access_heads
@@ -366,7 +366,7 @@
"/obj/item/mecha_parts/circuitboard/ripley/peripherals", //TEMPORARY due to lack of circuitboard printer
"/obj/item/mecha_parts/circuitboard/ripley/main") //TEMPORARY due to lack of circuitboard printer
cost = 40
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "APLU \"Ripley\" Circuit Crate"
access = access_robotics
@@ -383,7 +383,7 @@
"/obj/item/weapon/cell/high",
"/obj/item/weapon/cell/high")
cost = 10
containertype = "/obj/structure/crate/secure/gear"
containertype = "/obj/structure/closet/crate/secure/gear"
containername = "Robotics Assembly"
access = access_robotics
@@ -402,7 +402,7 @@
"/obj/item/device/assembly/timer",
"/obj/item/device/assembly/timer")
cost = 10
containertype = "/obj/structure/crate/secure/plasma"
containertype = "/obj/structure/closet/crate/secure/plasma"
containername = "Plasma assembly crate"
access = access_tox
@@ -417,7 +417,7 @@
"/obj/item/weapon/storage/flashbang_kit",
"/obj/item/weapon/storage/flashbang_kit")
cost = 30
containertype = "/obj/structure/crate/secure/weapon"
containertype = "/obj/structure/closet/crate/secure/weapon"
containername = "Weapons crate"
access = access_security
@@ -431,7 +431,7 @@
"/obj/item/weapon/chem_grenade/incendiary",
"/obj/item/weapon/chem_grenade/incendiary")
cost = 25
containertype = "/obj/structure/crate/secure/weapon"
containertype = "/obj/structure/closet/crate/secure/weapon"
containername = "Experimental weapons crate"
access = access_heads
@@ -442,7 +442,7 @@
"/obj/item/clothing/suit/armor/vest",
"/obj/item/clothing/suit/armor/vest")
cost = 15
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Armor crate"
access = access_security
@@ -467,7 +467,7 @@
"/obj/item/clothing/head/helmet/riot",
"/obj/item/clothing/suit/armor/riot")
cost = 60
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Riot gear crate"
access = access_armory
@@ -475,7 +475,7 @@
name = "Loyalty implant crate"
contains = list ("/obj/item/weapon/storage/lockbox/loyalty")
cost = 60
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Loyalty implant crate"
access = access_armory
@@ -486,7 +486,7 @@
"/obj/item/weapon/gun/projectile/shotgun/combat2",
"/obj/item/weapon/gun/projectile/shotgun/combat2")
cost = 50
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Ballistic gear crate"
access = access_armory
@@ -497,7 +497,7 @@
"/obj/item/weapon/gun/energy/gun",
"/obj/item/weapon/gun/energy/gun")
cost = 50
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Experimental energy gear crate"
access = access_armory
@@ -508,7 +508,7 @@
"/obj/item/clothing/head/helmet/riot",
"/obj/item/clothing/suit/armor/riot")
cost = 35
containertype = "/obj/structure/crate/secure"
containertype = "/obj/structure/closet/crate/secure"
containername = "Experimental armor crate"
access = access_armory
@@ -519,7 +519,7 @@
"/obj/machinery/deployable/barrier",
"/obj/machinery/deployable/barrier")
cost = 20
containertype = "/obj/structure/crate/secure/gear"
containertype = "/obj/structure/closet/crate/secure/gear"
containername = "Secruity Barriers crate"
/datum/supply_packs/hats/
@@ -549,7 +549,7 @@
"/obj/item/clothing/head/collectable/petehat")
name = "Collectable Hat Crate!"
cost = 200
containertype = "/obj/structure/crate/hat"
containertype = "/obj/structure/closet/crate/hat"
containername = "Collectable Hats Crate! Brought to you by Bass.inc!"
/datum/supply_packs/hats/New()

View File

@@ -262,7 +262,7 @@
temp_apc.overload_lighting()
// for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world)
// temp_shuttle.prison_break()
for (var/obj/structure/secure_closet/security/temp_closet in world)
for (var/obj/structure/closet/secure_closet/security/temp_closet in world)
if(istype(get_area(temp_closet), /area/security/brig))
temp_closet.locked = 0
temp_closet.icon_state = temp_closet.icon_closed

View File

@@ -468,7 +468,7 @@
// called to load a crate
/obj/machinery/bot/mulebot/proc/load(var/atom/movable/C)
if((wires & wire_loadcheck) && !istype(C,/obj/structure/crate))
if((wires & wire_loadcheck) && !istype(C,/obj/structure/closet/crate))
src.visible_message("[src] makes a sighing buzz.", "You hear an electronic buzzing sound.")
playsound(src.loc, 'buzz-sigh.ogg', 50, 0)
return // if not emagged, only allow crates to be loaded
@@ -478,7 +478,7 @@
mode = 1
// if a create, close before loading
var/obj/structure/crate/crate = C
var/obj/structure/closet/crate/crate = C
if(istype(crate))
crate.close()
@@ -742,7 +742,7 @@
AM = A
break
else // otherwise, look for crates only
AM = locate(/obj/structure/crate) in get_step(loc,loaddir)
AM = locate(/obj/structure/closet/crate) in get_step(loc,loaddir)
if(AM)
load(AM)
// whatever happened, check to see if we return home

View File

@@ -37,7 +37,7 @@
if(F.id == src.id)
targets += F
for(var/obj/structure/secure_closet/brig/C in world)
for(var/obj/structure/closet/secure_closet/brig/C in world)
if(C.id == src.id)
targets += C
@@ -81,7 +81,7 @@
spawn(0)
door.close()
for(var/obj/structure/secure_closet/brig/C in targets)
for(var/obj/structure/closet/secure_closet/brig/C in targets)
if(C.broken) continue
if(C.opened && !C.close()) continue
C.locked = 1
@@ -97,7 +97,7 @@
spawn(0)
door.open()
for(var/obj/structure/secure_closet/brig/C in targets)
for(var/obj/structure/closet/secure_closet/brig/C in targets)
if(C.broken) continue
if(C.opened) continue
C.locked = 0

View File

@@ -155,7 +155,7 @@
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
/obj/structure/crate/juice
/obj/structure/closet/crate/juice
New()
..()
new/obj/machinery/juicer(src)

View File

@@ -210,7 +210,7 @@
else
tmploc = locate(tx, ty, destination.z)
if(tx == destturf.x && ty == destturf.y && (istype(destination.loc, /obj/structure/closet) || istype(destination.loc, /obj/structure/secure_closet)))
if(tx == destturf.x && ty == destturf.y && (istype(destination.loc, /obj/structure/closet) || istype(destination.loc, /obj/structure/closet/secure_closet)))
tmploc = destination.loc
if(tmploc==null)

View File

@@ -717,7 +717,7 @@ var/list/sacrificed = list()
cultist.handcuffed || \
istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle) || \
(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded) || \
(istype(cultist.loc, /obj/structure/secure_closet)&&cultist.loc:locked) || \
(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \
(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \
))
user << "\red The [cultist] is already free."
@@ -730,7 +730,7 @@ var/list/sacrificed = list()
cultist.u_equip(cultist.wear_mask)
if(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded)
cultist.loc:welded = 0
if(istype(cultist.loc, /obj/structure/secure_closet)&&cultist.loc:locked)
if(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked)
cultist.loc:locked = 0
if(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked)
cultist.loc:locked = 0

View File

@@ -6,7 +6,7 @@
return (!density)
/obj/structure/closet/proc/can_open()
if (src.welded)
if(src.welded)
return 0
return 1
@@ -14,28 +14,23 @@
for(var/obj/structure/closet/closet in get_turf(src))
if(closet != src)
return 0
for(var/obj/structure/secure_closet/closet in get_turf(src))
return 0
return 1
/obj/structure/closet/proc/dump_contents()
for (var/obj/item/I in src)
for(var/obj/item/I in src)
I.loc = src.loc
for (var/obj/effect/overlay/o in src) //REMOVE THIS
o.loc = src.loc
for(var/mob/M in src)
M.loc = src.loc
if (M.client)
if(M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
/obj/structure/closet/proc/open()
if (src.opened)
if(src.opened)
return 0
if (!src.can_open())
if(!src.can_open())
return 0
src.dump_contents()
@@ -47,26 +42,22 @@
return 1
/obj/structure/closet/proc/close()
if (!src.opened)
if(!src.opened)
return 0
if (!src.can_close())
if(!src.can_close())
return 0
for (var/obj/item/I in src.loc)
if (!I.anchored)
for(var/obj/item/I in src.loc)
if(!I.anchored)
I.loc = src
for (var/obj/effect/overlay/o in src.loc) //REMOVE THIS
if (!o.anchored)
o.loc = src
for (var/mob/M in src.loc)
if (istype (M, /mob/dead/observer))
for(var/mob/M in src.loc)
if(istype (M, /mob/dead/observer))
continue
if (M.buckled)
if(M.buckled)
continue
if (M.client)
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
@@ -78,27 +69,27 @@
return 1
/obj/structure/closet/proc/toggle()
if (src.opened)
if(src.opened)
return src.close()
return src.open()
// this should probably use dump_contents()
/obj/structure/closet/ex_act(severity)
switch(severity)
if (1)
for (var/atom/movable/A as mob|obj in src)
if(1)
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
if (2)
if (prob(50))
if(2)
if(prob(50))
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
if (3)
if (prob(5))
for (var/atom/movable/A as mob|obj in src)
if(3)
if(prob(5))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
@@ -107,7 +98,7 @@
health -= Proj.damage
..()
if(health <= 0)
for (var/atom/movable/A as mob|obj in src)
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
@@ -115,18 +106,18 @@
// this should probably use dump_contents()
/obj/structure/closet/blob_act()
if (prob(75))
if(prob(75))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
/obj/structure/closet/meteorhit(obj/O as obj)
if (O.icon_state == "flaming")
if(O.icon_state == "flaming")
src.dump_contents()
del(src)
/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/packageWrap))
if(istype(W, /obj/item/weapon/packageWrap))
var/obj/item/weapon/packageWrap/O = W
if (O.amount > 3)
var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(src.loc))
@@ -135,16 +126,16 @@
src.welded = 1
src.loc = P
O.amount -= 3
else if (src.opened)
if (istype(W, /obj/item/weapon/grab))
else if(src.opened)
if(istype(W, /obj/item/weapon/grab))
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
if (!W:remove_fuel(0,user))
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
if(!W:remove_fuel(0,user))
user << "\blue You need more welding fuel to complete this task."
return
new /obj/item/stack/sheet/metal(src.loc)
for (var/mob/M in viewers(src))
for(var/mob/M in viewers(src))
M.show_message("\red [src] has been cut apart by [user.name] with the weldingtool.", 3, "\red You hear welding.", 2)
del(src)
return
@@ -154,11 +145,11 @@
usr.drop_item()
if (W)
if(W)
W.loc = src.loc
else if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
if (!W:remove_fuel(0,user))
if(!W:remove_fuel(0,user))
user << "\blue You need more welding fuel to complete this task."
return
src.welded =! src.welded
@@ -169,32 +160,29 @@
return
/obj/structure/closet/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if (!user.can_use_hands())
if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis)
return
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)))
if((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)))
return
if (user.loc==null) // just in case someone manages to get a closet into the blue light dimension, as unlikely as that seems
if(user.loc==null) // just in case someone manages to get a closet into the blue light dimension, as unlikely as that seems
return
if (!istype(user.loc, /turf)) // are you in a container/closet/pod/etc?
if(!istype(user.loc, /turf)) // are you in a container/closet/pod/etc?
return
if(!src.opened)
return
if(istype(O, /obj/structure/secure_closet) || istype(O, /obj/structure/closet))
return
if(isrobot(user))
if(istype(O, /obj/structure/closet))
return
step_towards(O, src.loc)
user.show_viewers(text("\red [] stuffs [] into []!", user, O, src))
if(user != O)
user.show_viewers(text("\red [] stuffs [] into []!", user, O, src))
src.add_fingerprint(user)
return
/obj/structure/closet
var/lastbang = 0
/obj/structure/closet/relaymove(mob/user as mob)
if (user.stat)
if(user.stat)
return
if (!src.open())
if(!src.open())
user << "\blue It won't budge!"
if(!lastbang)
lastbang = 1
@@ -217,5 +205,5 @@
/obj/structure/closet/attack_hand(mob/user as mob)
src.add_fingerprint(user)
if (!src.toggle())
if(!src.toggle())
usr << "\blue It won't budge!"

View File

@@ -1,4 +1,4 @@
/obj/structure/secure_closet/kitchen/New()
/obj/structure/closet/secure_closet/kitchen/New()
..()
sleep(2)
/*new /obj/item/clothing/head/chefhat(src)
@@ -38,7 +38,7 @@
new /obj/item/weapon/kitchen/utensil/spoon(src)
new /obj/item/weapon/kitchen/rollingpin(src)*/
/obj/structure/secure_closet/meat/New()
/obj/structure/closet/secure_closet/meat/New()
..()
sleep(2)
new /obj/item/kitchen/egg_box(src)
@@ -48,7 +48,7 @@
new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src)
new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src)
/obj/structure/secure_closet/fridge/New()
/obj/structure/closet/secure_closet/fridge/New()
..()
sleep(2)
new /obj/item/weapon/reagent_containers/food/drinks/milk(src)
@@ -62,7 +62,7 @@
new /obj/item/weapon/reagent_containers/food/drinks/soymilk(src)
new /obj/item/weapon/reagent_containers/food/drinks/soymilk(src)
/obj/structure/secure_closet/money_freezer/New()
/obj/structure/closet/secure_closet/money_freezer/New()
..()
sleep(2)
new /obj/item/weapon/spacecash/c1000(src)

View File

@@ -1,4 +1,4 @@
/obj/structure/secure_closet/bar
/obj/structure/closet/secure_closet/bar
name = "Booze"
req_access = list(access_bar)

View File

@@ -1,4 +1,4 @@
/obj/structure/secure_closet/engineering_chief
/obj/structure/closet/secure_closet/engineering_chief
name = "Chief Engineer's Locker"
req_access = list(access_ce)
@@ -22,7 +22,7 @@
/obj/structure/secure_closet/engineering_electrical
/obj/structure/closet/secure_closet/engineering_electrical
name = "Electrical Supplies"
req_access = list(access_engine)
@@ -42,7 +42,7 @@
/obj/structure/secure_closet/engineering_welding
/obj/structure/closet/secure_closet/engineering_welding
name = "Welding Supplies"
req_access = list(access_engine)
@@ -60,7 +60,7 @@
/obj/structure/secure_closet/engineering_personal
/obj/structure/closet/secure_closet/engineering_personal
name = "Engineer's Locker"
req_access = list(access_engine)

View File

@@ -1,4 +1,4 @@
/obj/structure/secure_closet/medical1
/obj/structure/closet/secure_closet/medical1
name = "Medicine Closet"
desc = "Filled with medical junk."
icon_state = "medical1"
@@ -26,7 +26,7 @@
/obj/structure/secure_closet/medical2
/obj/structure/closet/secure_closet/medical2
name = "Anesthetic"
desc = "Used to knock people out."
icon_state = "medical1"
@@ -51,7 +51,7 @@
/obj/structure/secure_closet/medical3
/obj/structure/closet/secure_closet/medical3
name = "Medical Doctor's Locker"
req_access = list(access_medical)
@@ -71,7 +71,7 @@
/obj/structure/secure_closet/CMO
/obj/structure/closet/secure_closet/CMO
name = "Chief Medical Officer"
req_access = list(access_cmo)
@@ -90,7 +90,7 @@
/obj/structure/secure_closet/animal
/obj/structure/closet/secure_closet/animal
name = "Animal Control"
req_access = list(access_medical)
@@ -106,7 +106,7 @@
/obj/structure/secure_closet/chemical
/obj/structure/closet/secure_closet/chemical
name = "Chemical Closet"
desc = "Store dangerous chemicals in here."
icon_state = "medical1"

View File

@@ -1,14 +1,14 @@
/obj/structure/secure_closet/personal/var/registered = null
/obj/structure/secure_closet/personal/req_access = list(access_all_personal_lockers)
/obj/structure/closet/secure_closet/personal/var/registered = null
/obj/structure/closet/secure_closet/personal/req_access = list(access_all_personal_lockers)
/obj/structure/secure_closet/personal/New()
/obj/structure/closet/secure_closet/personal/New()
..()
spawn(2)
new /obj/item/weapon/storage/backpack( src )
new /obj/item/device/radio/headset( src )
return
/obj/structure/secure_closet/personal/patient/New()
/obj/structure/closet/secure_closet/personal/patient/New()
..()
contents = list()
spawn(4)
@@ -16,7 +16,7 @@
new /obj/item/clothing/shoes/white( src )
return
/obj/structure/secure_closet/personal/attackby(obj/item/weapon/W as obj, mob/user as mob)
/obj/structure/closet/secure_closet/personal/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (src.opened)
if (istype(W, /obj/item/weapon/grab))
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet

View File

@@ -1,4 +1,4 @@
/obj/structure/secure_closet/scientist
/obj/structure/closet/secure_closet/scientist
name = "Scientist Locker"
req_access = list(access_tox_storage)
@@ -16,7 +16,7 @@
/obj/structure/secure_closet/RD
/obj/structure/closet/secure_closet/RD
name = "Research Director"
req_access = list(access_rd)

View File

@@ -1,88 +1,10 @@
/obj/structure/secure_closet/alter_health()
return get_turf(src)
/obj/structure/secure_closet/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0) || wall_mounted) return 1
return src.opened
/obj/structure/secure_closet/proc/can_close()
for(var/obj/structure/closet/closet in get_turf(src))
return 0
for(var/obj/structure/secure_closet/closet in get_turf(src))
if(closet != src)
return 0
return 1
/obj/structure/secure_closet/proc/can_open()
if (src.locked)
/obj/structure/closet/secure_closet/can_open()
..()
if(src.locked)
return 0
return 1
/obj/structure/secure_closet/proc/dump_contents()
for (var/obj/item/I in src)
I.loc = src.loc
for (var/obj/effect/overlay/o in src) //REMOVE THIS
o.loc = src.loc
for(var/mob/M in src)
M.loc = src.loc
if (M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
/obj/structure/secure_closet/proc/open()
if (src.opened)
return 0
if (!src.can_open())
return 0
src.dump_contents()
src.icon_state = src.icon_opened
src.opened = 1
playsound(src.loc, 'click.ogg', 15, 1, -3)
return 1
/obj/structure/secure_closet/proc/close()
if (!src.opened)
return 0
if (!src.can_close())
return 0
for (var/obj/item/I in src.loc)
if (!I.anchored)
I.loc = src
for (var/obj/effect/overlay/o in src.loc) //REMOVE THIS
if (!o.anchored)
o.loc = src
for (var/mob/M in src.loc)
if (M.buckled)
continue
if (M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
if(broken)
src.icon_state = src.icon_off
else
src.icon_state = src.icon_closed
src.opened = 0
playsound(src.loc, 'click.ogg', 15, 1, -3)
return 1
/obj/structure/secure_closet/proc/toggle()
if (src.opened)
return src.close()
return src.open()
/obj/structure/secure_closet/emp_act(severity)
/obj/structure/closet/secure_closet/emp_act(severity)
for(var/obj/O in src)
O.emp_act(severity)
if(!broken)
@@ -96,69 +18,20 @@
src.req_access += pick(get_all_accesses())
..()
/obj/structure/secure_closet/ex_act(severity)
switch(severity)
if (1)
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
if (2)
if (prob(50))
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
if (3)
if (prob(5))
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
ex_act(severity)
del(src)
/obj/structure/secure_closet/blob_act()
if (prob(75))
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
/obj/structure/secure_closet/meteorhit(obj/O as obj)
if (O.icon_state == "flaming")
for(var/obj/item/I in src)
I.loc = src.loc
for(var/mob/M in src)
M.loc = src.loc
if (M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
src.icon_state = src.icon_broken
del(src)
return
return
/obj/structure/secure_closet/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
if(health <= 0)
for (var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
return
/obj/structure/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (src.opened)
if (istype(W, /obj/item/weapon/grab))
if (src.large)
/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(src.opened)
if(istype(W, /obj/item/weapon/grab))
if(src.large)
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
else
user << "The locker is too small to stuff [W] into!"
user.drop_item()
if (W)
if(W)
W.loc = src.loc
else if(src.broken)
user << "\red It appears to be broken."
return
else if( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && !src.broken)
else if((istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && !src.broken)
broken = 1
locked = 0
desc = "It appears to be broken."
@@ -177,7 +50,7 @@
else if(src.allowed(user))
src.locked = !src.locked
for(var/mob/O in viewers(user, 3))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
O << text("\blue The locker has been []locked by [].", (src.locked ? null : "un"), user)
if(src.locked)
src.icon_state = src.icon_locked
@@ -188,88 +61,32 @@
user << "\red Access Denied"
return
/obj/structure/secure_closet
var/lastbang
/obj/structure/secure_closet/relaymove(mob/user as mob)
if (user.stat)
/obj/structure/closet/secure_closet/relaymove(mob/user as mob)
if(user.stat)
return
if (!( src.locked ))
if(!(src.locked))
for(var/obj/item/I in src)
I.loc = src.loc
for(var/mob/M in src)
M.loc = src.loc
if (M.client)
if(M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
src.icon_state = src.icon_opened
src.opened = 1
else
user << "\blue It's welded shut!"
if (world.time > lastbang+5)
if(world.time > lastbang+5)
lastbang = world.time
for(var/mob/M in hearers(src, null))
M << text("<FONT size=[]>BANG, bang!</FONT>", max(0, 5 - get_dist(src, M)))
return
/obj/structure/secure_closet/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if ((user.restrained() || user.stat))
return
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)))
return
if(!src.opened)
return
if(istype(O, /obj/structure/secure_closet) || istype(O, /obj/structure/closet))
return
step_towards(O, src.loc)
if (user != O)
for(var/mob/B in viewers(user, 3))
if ((B.client && !( B.blinded )))
B << text("\red [] stuffs [] into []!", user, O, src)
src.add_fingerprint(user)
return
/*
/obj/structure/secure_closet/attack_hand(mob/user as mob)
src.add_fingerprint(user)
if (!src.opened && !src.locked)
if(!src.can_open())
return
//open it
for(var/obj/item/I in src)
I.loc = src.loc
for(var/mob/M in src)
M.loc = src.loc
if (M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
src.icon_state = src.icon_opened
playsound(src.loc, 'click.ogg', 15, 1, -3)
src.opened = 1
else if(src.opened)
if(!src.can_close())
return
//close it
for(var/obj/item/I in src.loc)
if (!( I.anchored ))
I.loc = src
for(var/mob/M in src.loc)
if (M.buckled)
continue
if (M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
src.icon_state = src.icon_closed
playsound(src.loc, 'click.ogg', 15, 1, -3)
src.opened = 0
else
return src.attackby(null, user)
return*/
/obj/structure/secure_closet/attack_hand(mob/user as mob)
/obj/structure/closet/secure_closet/attack_hand(mob/user as mob)
src.add_fingerprint(user)
if (!src.toggle())
if(!src.toggle())
return src.attackby(null, user)
/obj/structure/secure_closet/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/closet/secure_closet/attack_paw(mob/user as mob)
return src.attack_hand(user)

View File

@@ -1,4 +1,4 @@
/obj/structure/secure_closet/captains
/obj/structure/closet/secure_closet/captains
name = "Captain's Closet"
req_access = list(access_captain)
@@ -20,7 +20,7 @@
/obj/structure/secure_closet/hop
/obj/structure/closet/secure_closet/hop
name = "Head of Personnel"
req_access = list(access_hop)
@@ -42,7 +42,7 @@
/obj/structure/secure_closet/hos
/obj/structure/closet/secure_closet/hos
name = "Head Of Security"
req_access = list(access_hos)
@@ -66,7 +66,7 @@
/obj/structure/secure_closet/warden
/obj/structure/closet/secure_closet/warden
name = "Warden's Locker"
req_access = list(access_armory)
@@ -87,7 +87,7 @@
/obj/structure/secure_closet/security
/obj/structure/closet/secure_closet/security
name = "Security Locker"
req_access = list(access_security)
@@ -108,7 +108,7 @@
/obj/structure/secure_closet/detective
/obj/structure/closet/secure_closet/detective
name = "Detective"
req_access = list(access_forensics_lockers)
icon_state = "cabinetdetective"
@@ -137,7 +137,7 @@
/obj/structure/secure_closet/injection
/obj/structure/closet/secure_closet/injection
name = "Lethal Injections"
req_access = list(access_hos)
@@ -151,7 +151,7 @@
/obj/structure/secure_closet/brig
/obj/structure/closet/secure_closet/brig
name = "Brig Locker"
req_access = list(access_brig)
anchored = 1
@@ -164,7 +164,7 @@
/obj/structure/secure_closet/courtroom
/obj/structure/closet/secure_closet/courtroom
name = "Courtroom Locker"
req_access = list(access_court)

View File

@@ -506,7 +506,7 @@ Code:
menu += "Calculating navigation path"
if(7)
menu += "Unable to locate destination"
var/obj/structure/crate/C = QC.botstatus["load"]
var/obj/structure/closet/crate/C = QC.botstatus["load"]
menu += "<BR>Current Load: [ !C ? "<i>none</i>" : "[C.name] (<A href='byond://?src=\ref[QC];op=unload'><i>unload</i></A>)" ]<BR>"
menu += "Destination: [!QC.botstatus["dest"] ? "<i>none</i>" : QC.botstatus["dest"] ] (<A href='byond://?src=\ref[QC];op=setdest'><i>set</i></A>)<BR>"
menu += "Power: [QC.botstatus["powr"]]%<BR>"

View File

@@ -132,6 +132,6 @@
"/obj/item/weapon/wrapping_paper",
"/obj/item/weapon/wrapping_paper")
cost = 20
containertype = "/obj/structure/crate"
containertype = "/obj/structure/closet/crate"
containername = "New Year Celebration crate"
*/

View File

@@ -4,7 +4,7 @@
var/obj/screen/close/closer = null
var/icon_locking = "secureb"
var/icon_sparking = "securespark"
var/icon_open = "secure0"
var/icon_opened = "secure0"
var/locked = 1
var/code = ""
var/l_code = null
@@ -216,7 +216,7 @@
else if ((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1))
src.locked = 0
src.overlays = null
overlays += image('storage.dmi', icon_open)
overlays += image('storage.dmi', icon_opened)
src.code = null
else
src.code = "ERROR"

View File

@@ -2,7 +2,7 @@
name = "secure safe"
icon = 'storage.dmi'
icon_state = "safe"
icon_open = "safe0"
icon_opened = "safe0"
icon_locking = "safeb"
icon_sparking = "safespark"
flags = FPRINT | TABLEPASS

View File

@@ -1,150 +1,148 @@
/obj/structure/crate
/obj/structure/closet/crate
desc = "A crate."
name = "Crate"
icon = 'storage.dmi'
icon_state = "crate"
density = 1
var/openicon = "crateopen"
var/closedicon = "crate"
icon_opened = "crateopen"
icon_closed = "crate"
req_access = null
var/opened = 0
var/locked = 0
opened = 0
flags = FPRINT
m_amt = 7500
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
// mouse_drag_pointer = MOUSE_ACTIVE_POINTER //???
/obj/structure/crate/internals
/obj/structure/closet/crate/internals
desc = "A internals crate."
name = "Internals crate"
icon = 'storage.dmi'
icon_state = "o2crate"
density = 1
openicon = "o2crateopen"
closedicon = "o2crate"
icon_opened = "o2crateopen"
icon_closed = "o2crate"
/obj/structure/crate/trashcart
/obj/structure/closet/crate/trashcart
desc = "A heavy, metal trashcart with wheels."
name = "Trash Cart"
icon = 'storage.dmi'
icon_state = "trashcart"
density = 1
openicon = "trashcartopen"
closedicon = "trashcart"
icon_opened = "trashcartopen"
icon_closed = "trashcart"
/obj/structure/crate/hat
/obj/structure/closet/crate/hat
desc = "A crate filled with Valuable Collector's Hats!."
name = "Hat Crate"
icon = 'storage.dmi'
icon_state = "crate"
density = 1
openicon = "crateopen"
closedicon = "crate"
icon_opened = "crateopen"
icon_closed = "crate"
/obj/structure/crate/medical
/obj/structure/closet/crate/medical
desc = "A medical crate."
name = "Medical crate"
icon = 'storage.dmi'
icon_state = "medicalcrate"
density = 1
openicon = "medicalcrateopen"
closedicon = "medicalcrate"
icon_opened = "medicalcrateopen"
icon_closed = "medicalcrate"
/obj/structure/crate/rcd
/obj/structure/closet/crate/rcd
desc = "A crate for the storage of the RCD."
name = "RCD crate"
icon = 'storage.dmi'
icon_state = "crate"
density = 1
openicon = "crateopen"
closedicon = "crate"
icon_opened = "crateopen"
icon_closed = "crate"
/obj/structure/crate/freezer
/obj/structure/closet/crate/freezer
desc = "A freezer."
name = "Freezer"
icon = 'storage.dmi'
icon_state = "freezer"
density = 1
openicon = "freezeropen"
closedicon = "freezer"
icon_opened = "freezeropen"
icon_closed = "freezer"
/obj/structure/crate/bin
/obj/structure/closet/crate/bin
desc = "A large bin."
name = "Large bin"
icon = 'storage.dmi'
icon_state = "largebin"
density = 1
openicon = "largebinopen"
closedicon = "largebin"
icon_opened = "largebinopen"
icon_closed = "largebin"
/obj/structure/crate/radiation
/obj/structure/closet/crate/radiation
desc = "A crate with a radiation sign on it."
name = "Radioactive gear crate"
icon = 'storage.dmi'
icon_state = "radiation"
density = 1
openicon = "radiationopen"
closedicon = "radiation"
icon_opened = "radiationopen"
icon_closed = "radiation"
/obj/item/clothing/suit/radiation
/obj/structure/crate/secure/weapon
/obj/structure/closet/crate/secure/weapon
desc = "A secure weapons crate."
name = "Weapons crate"
icon = 'storage.dmi'
icon_state = "weaponcrate"
density = 1
openicon = "weaponcrateopen"
closedicon = "weaponcrate"
icon_opened = "weaponcrateopen"
icon_closed = "weaponcrate"
/obj/structure/crate/secure/plasma
/obj/structure/closet/crate/secure/plasma
desc = "A secure plasma crate."
name = "Plasma crate"
icon = 'storage.dmi'
icon_state = "plasmacrate"
density = 1
openicon = "plasmacrateopen"
closedicon = "plasmacrate"
icon_opened = "plasmacrateopen"
icon_closed = "plasmacrate"
/obj/structure/crate/secure/gear
/obj/structure/closet/crate/secure/gear
desc = "A secure gear crate."
name = "Gear crate"
icon = 'storage.dmi'
icon_state = "secgearcrate"
density = 1
openicon = "secgearcrateopen"
closedicon = "secgearcrate"
icon_opened = "secgearcrateopen"
icon_closed = "secgearcrate"
/obj/structure/crate/secure/bin
/obj/structure/closet/crate/secure/bin
desc = "A secure bin."
name = "Secure bin"
icon_state = "largebins"
openicon = "largebinsopen"
closedicon = "largebins"
icon_opened = "largebinsopen"
icon_closed = "largebins"
redlight = "largebinr"
greenlight = "largebing"
sparks = "largebinsparks"
emag = "largebinemag"
/obj/structure/crate/secure
/obj/structure/closet/crate/secure
desc = "A secure crate."
name = "Secure crate"
icon_state = "securecrate"
openicon = "securecrateopen"
closedicon = "securecrate"
icon_opened = "securecrateopen"
icon_closed = "securecrate"
var/redlight = "securecrater"
var/greenlight = "securecrateg"
var/sparks = "securecratesparks"
var/emag = "securecrateemag"
var/broken = 0
locked = 1
var/locked = 1
/obj/structure/crate/hydroponics
/obj/structure/closet/crate/hydroponics
name = "Hydroponics crate"
desc = "All you need to destroy those pesky weeds and pests."
icon = 'storage.dmi'
icon_state = "hydrocrate"
openicon = "hydrocrateopen"
closedicon = "hydrocrate"
icon_opened = "hydrocrateopen"
icon_closed = "hydrocrate"
density = 1
/* New() // This stuff shouldn't be here, it should be in /datum/supply_packs/hydroponics
..()
@@ -158,14 +156,14 @@
new /obj/item/weapon/pestspray(src)
new /obj/item/weapon/pestspray(src) */
/obj/structure/crate/hydroponics/prespawned
/obj/structure/closet/crate/hydroponics/prespawned
//This exists so the prespawned hydro crates spawn with their contents.
/* name = "Hydroponics crate"
desc = "All you need to destroy those pesky weeds and pests."
icon = 'storage.dmi'
icon_state = "hydrocrate"
openicon = "hydrocrateopen"
closedicon = "hydrocrate"
icon_opened = "hydrocrateopen"
icon_closed = "hydrocrate"
density = 1*/
New()
..()
@@ -179,7 +177,7 @@
// new /obj/item/weapon/pestspray(src)
// new /obj/item/weapon/pestspray(src)
/obj/structure/crate/New()
/obj/structure/closet/crate/New()
..()
spawn(1)
if(!opened) // if closed, any item at the crate's loc is put in the contents
@@ -187,7 +185,7 @@
if(I.density || I.anchored || I == src) continue
I.loc = src
/obj/structure/crate/secure/New()
/obj/structure/closet/crate/secure/New()
..()
if(locked)
overlays = null
@@ -196,14 +194,14 @@
overlays = null
overlays += greenlight
/obj/structure/crate/rcd/New()
/obj/structure/closet/crate/rcd/New()
..()
new /obj/item/weapon/rcd_ammo(src)
new /obj/item/weapon/rcd_ammo(src)
new /obj/item/weapon/rcd_ammo(src)
new /obj/item/weapon/rcd(src)
/obj/structure/crate/radiation/New()
/obj/structure/closet/crate/radiation/New()
..()
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/head/radiation(src)
@@ -214,7 +212,7 @@
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/head/radiation(src)
/obj/structure/crate/proc/open()
/obj/structure/closet/crate/open()
playsound(src.loc, 'click.ogg', 15, 1, -3)
for(var/obj/O in src)
@@ -222,34 +220,37 @@
for(var/mob/M in src)
M.loc = get_turf(src)
icon_state = openicon
icon_state = icon_opened
src.opened = 1
/obj/structure/crate/proc/close()
/obj/structure/closet/crate/close()
playsound(src.loc, 'click.ogg', 15, 1, -3)
for(var/obj/O in get_turf(src))
if(O.density || O.anchored || O == src) continue
O.loc = src
icon_state = closedicon
icon_state = icon_closed
src.opened = 0
/obj/structure/crate/attack_hand(mob/user as mob)
if(!locked)
if(opened) close()
else open()
else
user << "\red It's locked."
/obj/structure/closet/crate/attack_hand(mob/user as mob)
if(opened) close()
else open()
return
/obj/structure/crate/secure/attack_hand(mob/user as mob)
if(locked && allowed(user) && !broken)
user << "\blue You unlock the [src]."
src.locked = 0
overlays = null
overlays += greenlight
return ..()
/obj/structure/closet/crate/secure/attack_hand(mob/user as mob)
if(locked && !broken)
if (allowed(user))
user << "\blue You unlock the [src]."
src.locked = 0
overlays = null
overlays += greenlight
return
else
user << "\red It's locked."
return
else
..()
/obj/structure/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/card) && src.allowed(user) && !locked && !opened && !broken)
user << "\red You lock the [src]."
src.locked = 1
@@ -269,10 +270,10 @@
return ..()
/obj/structure/crate/attack_paw(mob/user as mob)
/obj/structure/closet/crate/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/structure/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/packageWrap))
var/obj/item/weapon/packageWrap/O = W
if (O.amount > 3)
@@ -288,7 +289,7 @@
W.loc = src.loc
else return attack_hand(user)
/obj/structure/crate/secure/emp_act(severity)
/obj/structure/closet/crate/secure/emp_act(severity)
for(var/obj/O in src)
O.emp_act(severity)
if(!broken && !opened && prob(50/severity))
@@ -312,7 +313,7 @@
..()
/obj/structure/crate/ex_act(severity)
/obj/structure/closet/crate/ex_act(severity)
switch(severity)
if(1.0)
for(var/obj/O in src.contents)

View File

@@ -146,7 +146,7 @@ var/ordernum=0
var/shuttleat = supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE
for(var/turf/T in get_area_turfs(shuttleat) )
var/crate = locate(/obj/structure/crate) in T
var/crate = locate(/obj/structure/closet/crate) in T
if (crate)
del(crate)
supply_shuttle_points += SUPPLY_POINTSPERCRATE
@@ -169,7 +169,7 @@ var/ordernum=0
var/pickedloc = 0
var/found = 0
for(var/C in markers)
if (locate(/obj/structure/crate) in get_turf(C)) continue
if (locate(/obj/structure/closet/crate) in get_turf(C)) continue
found = 1
pickedloc = get_turf(C)
if (!found) pickedloc = get_turf(pick(markers))

View File

@@ -604,7 +604,7 @@
/obj/machinery/chem_dispenser/,
/obj/machinery/reagentgrinder,
/obj/structure/table,
/obj/structure/secure_closet,
/obj/structure/closet/secure_closet,
/obj/structure/closet,
/obj/machinery/sink,
/obj/item/weapon/storage,

View File

@@ -9,7 +9,7 @@
/**********************Miner Lockers**************************/
/obj/structure/secure_closet/miner
/obj/structure/closet/secure_closet/miner
name = "Miner's Equipment"
icon_state = "miningsec1"
icon_closed = "miningsec"
@@ -18,7 +18,7 @@
icon_off = "miningsecoff"
req_access = list(access_mining)
/obj/structure/secure_closet/miner/New()
/obj/structure/closet/secure_closet/miner/New()
..()
sleep(2)
new /obj/item/device/analyzer(src)
@@ -220,14 +220,14 @@ proc/move_mining_shuttle()
/**********************Mining car (Crate like thing, not the rail car)**************************/
/obj/structure/crate/miningcar
/obj/structure/closet/crate/miningcar
desc = "A mining car. This one doesn't work on rails, but has to be dragged."
name = "Mining car (not for rails)"
icon = 'storage.dmi'
icon_state = "miningcar"
density = 1
openicon = "miningcaropen"
closedicon = "miningcar"
icon_opened = "miningcaropen"
icon_closed = "miningcar"

View File

@@ -94,7 +94,7 @@
for (var/mob/V in viewers(usr))
if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
V.show_message("[usr] starts climbing into the disposal.", 3)
if(target != user && !user.restrained())
if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
if(target.anchored) return
V.show_message("[usr] starts stuffing [target.name] into the disposal.", 3)
if(!do_after(usr, 20))
@@ -103,7 +103,7 @@
// must be awake, not stunned or whatever
msg = "[user.name] climbs into the [src]."
user << "You climb into the [src]."
else if(target != user && !user.restrained())
else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
msg = "[user.name] stuffs [target.name] into the [src]!"
user << "You stuff [target.name] into the [src]!"
else

View File

@@ -70,8 +70,8 @@
P.wrapped = O
O.loc = P
src.amount -= 1
else if (istype(target, /obj/structure/crate))
var/obj/structure/crate/O = target
else if (istype(target, /obj/structure/closet/crate))
var/obj/structure/closet/crate/O = target
if (src.amount > 3)
var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc))
P.wrapped = O