April sync (#360)
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
This commit is contained in:
@@ -174,7 +174,7 @@
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
|
||||
if(brain)
|
||||
ticker.mode.remove_antag_for_borging(brain.brainmob.mind)
|
||||
SSticker.mode.remove_antag_for_borging(brain.brainmob.mind)
|
||||
if(!istype(brain.laws, /datum/ai_laws/ratvar))
|
||||
remove_servant_of_ratvar(brain.brainmob, TRUE)
|
||||
var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(loc, laws, brain.brainmob)
|
||||
|
||||
@@ -69,7 +69,6 @@
|
||||
/obj/structure/alien/resin/New(location)
|
||||
..()
|
||||
air_update_turf(1)
|
||||
return
|
||||
|
||||
/obj/structure/alien/resin/Move()
|
||||
var/turf/T = loc
|
||||
@@ -127,15 +126,20 @@
|
||||
var/last_expand = 0 //last world.time this weed expanded
|
||||
var/growth_cooldown_low = 150
|
||||
var/growth_cooldown_high = 200
|
||||
var/static/list/blacklisted_turfs = typecacheof(list(
|
||||
/turf/open/space,
|
||||
/turf/open/chasm,
|
||||
/turf/open/floor/plating/lava))
|
||||
var/static/list/blacklisted_turfs
|
||||
|
||||
/obj/structure/alien/weeds/New()
|
||||
/obj/structure/alien/weeds/Initialize()
|
||||
pixel_x = -4
|
||||
pixel_y = -4 //so the sprites line up right in the map editor
|
||||
..()
|
||||
|
||||
if(!blacklisted_turfs)
|
||||
blacklisted_turfs = typecacheof(list(
|
||||
/turf/open/space,
|
||||
/turf/open/chasm,
|
||||
/turf/open/floor/plating/lava))
|
||||
|
||||
|
||||
last_expand = world.time + rand(growth_cooldown_low, growth_cooldown_high)
|
||||
if(icon == initial(icon))
|
||||
switch(rand(1,3))
|
||||
@@ -171,12 +175,15 @@
|
||||
name = "glowing resin"
|
||||
desc = "Blue bioluminescence shines from beneath the surface."
|
||||
icon_state = "weednode"
|
||||
light_range = 1
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
light_power = 0.5
|
||||
var/lon_range = 4
|
||||
var/node_range = NODERANGE
|
||||
|
||||
/obj/structure/alien/weeds/node/New()
|
||||
/obj/structure/alien/weeds/node/Initialize()
|
||||
icon = 'icons/obj/smooth_structures/alien/weednode.dmi'
|
||||
..()
|
||||
set_light(lon_range)
|
||||
var/obj/structure/alien/weeds/W = locate(/obj/structure/alien/weeds) in loc
|
||||
if(W && W != src)
|
||||
qdel(W)
|
||||
@@ -200,39 +207,58 @@
|
||||
*/
|
||||
|
||||
//for the status var
|
||||
#define BURST 0
|
||||
#define BURSTING 1
|
||||
#define GROWING 2
|
||||
#define GROWN 3
|
||||
#define BURST "burst"
|
||||
#define GROWING "growing"
|
||||
#define GROWN "grown"
|
||||
#define MIN_GROWTH_TIME 900 //time it takes to grow a hugger
|
||||
#define MAX_GROWTH_TIME 1500
|
||||
|
||||
/obj/structure/alien/egg
|
||||
name = "egg"
|
||||
desc = "A large mottled egg."
|
||||
var/base_icon = "egg"
|
||||
icon_state = "egg_growing"
|
||||
density = 0
|
||||
anchored = 1
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
obj_integrity = 100
|
||||
max_integrity = 100
|
||||
integrity_failure = 5
|
||||
var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive
|
||||
layer = MOB_LAYER
|
||||
var/obj/item/clothing/mask/facehugger/child
|
||||
|
||||
|
||||
/obj/structure/alien/egg/New()
|
||||
new /obj/item/clothing/mask/facehugger(src)
|
||||
/obj/structure/alien/egg/Initialize(mapload)
|
||||
..()
|
||||
addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
|
||||
update_icon()
|
||||
if(status == GROWING || status == GROWN)
|
||||
child = new(src)
|
||||
if(status == GROWING)
|
||||
addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
|
||||
if(status == GROWN)
|
||||
add_to_proximity_list(src, 1)
|
||||
if(status == BURST)
|
||||
obj_integrity = integrity_failure
|
||||
|
||||
/obj/structure/alien/egg/Destroy()
|
||||
remove_from_proximity_list(src, 1)
|
||||
return ..()
|
||||
. = ..()
|
||||
|
||||
/obj/structure/alien/egg/update_icon()
|
||||
..()
|
||||
switch(status)
|
||||
if(GROWING)
|
||||
icon_state = "[base_icon]_growing"
|
||||
if(GROWN)
|
||||
icon_state = "[base_icon]"
|
||||
if(BURST)
|
||||
icon_state = "[base_icon]_hatched"
|
||||
|
||||
/obj/structure/alien/egg/attack_paw(mob/living/user)
|
||||
return attack_hand(user)
|
||||
. = attack_hand(user)
|
||||
|
||||
/obj/structure/alien/egg/attack_alien(mob/living/carbon/alien/user)
|
||||
return attack_hand(user)
|
||||
. = attack_hand(user)
|
||||
|
||||
/obj/structure/alien/egg/attack_hand(mob/living/user)
|
||||
if(user.getorgan(/obj/item/organ/alien/plasmavessel))
|
||||
@@ -247,39 +273,39 @@
|
||||
return
|
||||
if(GROWN)
|
||||
to_chat(user, "<span class='notice'>You retrieve the child.</span>")
|
||||
Burst(0)
|
||||
Burst(kill=FALSE)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It feels slimy.</span>")
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
|
||||
/obj/structure/alien/egg/proc/GetFacehugger()
|
||||
return locate(/obj/item/clothing/mask/facehugger) in contents
|
||||
|
||||
/obj/structure/alien/egg/proc/Grow()
|
||||
icon_state = "egg"
|
||||
status = GROWN
|
||||
update_icon()
|
||||
add_to_proximity_list(src, 1)
|
||||
|
||||
/obj/structure/alien/egg/proc/Burst(kill = 1) //drops and kills the hugger if any is remaining
|
||||
//drops and kills the hugger if any is remaining
|
||||
/obj/structure/alien/egg/proc/Burst(kill = TRUE)
|
||||
if(status == GROWN || status == GROWING)
|
||||
remove_from_proximity_list(src, 1)
|
||||
icon_state = "egg_hatched"
|
||||
status = BURST
|
||||
update_icon()
|
||||
flick("egg_opening", src)
|
||||
status = BURSTING
|
||||
spawn(15)
|
||||
status = BURST
|
||||
var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
|
||||
if(child)
|
||||
child.loc = get_turf(src)
|
||||
if(kill && istype(child))
|
||||
child.Die()
|
||||
else
|
||||
for(var/mob/M in range(1,src))
|
||||
if(CanHug(M))
|
||||
child.Attach(M)
|
||||
break
|
||||
addtimer(CALLBACK(src, .proc/finish_bursting, kill), 15)
|
||||
|
||||
/obj/structure/alien/egg/proc/finish_bursting(kill = TRUE)
|
||||
if(child)
|
||||
child.forceMove(get_turf(src))
|
||||
// TECHNICALLY you could put non-facehuggers in the child var
|
||||
if(istype(child))
|
||||
if(kill)
|
||||
child.Die()
|
||||
else
|
||||
for(var/mob/M in range(1,src))
|
||||
if(CanHug(M))
|
||||
child.Attach(M)
|
||||
break
|
||||
|
||||
/obj/structure/alien/egg/Moved(oldloc)
|
||||
remove_from_proximity_list(oldloc, 1)
|
||||
@@ -287,14 +313,10 @@
|
||||
add_to_proximity_list(src, 1)
|
||||
return ..()
|
||||
|
||||
/obj/structure/alien/egg/deconstruct()
|
||||
/obj/structure/alien/egg/obj_break(damage_flag)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
if(status != BURST && status != BURSTING)
|
||||
Burst()
|
||||
else if(status == BURST)
|
||||
qdel(src) //Remove the egg after it has been hit after bursting.
|
||||
else
|
||||
qdel(src)
|
||||
if(status != BURST)
|
||||
Burst(kill=TRUE)
|
||||
|
||||
/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 500)
|
||||
@@ -310,10 +332,17 @@
|
||||
if(C.stat == CONSCIOUS && C.getorgan(/obj/item/organ/body_egg/alien_embryo))
|
||||
return
|
||||
|
||||
Burst(0)
|
||||
Burst(kill=FALSE)
|
||||
|
||||
/obj/structure/alien/egg/grown
|
||||
status = GROWN
|
||||
icon_state = "egg"
|
||||
|
||||
/obj/structure/alien/egg/burst
|
||||
status = BURST
|
||||
icon_state = "egg_hatched"
|
||||
|
||||
#undef BURST
|
||||
#undef BURSTING
|
||||
#undef GROWING
|
||||
#undef GROWN
|
||||
#undef MIN_GROWTH_TIME
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#define AMT_OF_CANVASES 4 //Keep this up to date or shit will break.
|
||||
|
||||
//To safe memory on making /icons we cache the blanks..
|
||||
var/global/list/globalBlankCanvases[AMT_OF_CANVASES]
|
||||
GLOBAL_LIST_INIT(globalBlankCanvases, new(AMT_OF_CANVASES))
|
||||
|
||||
/obj/item/weapon/canvas
|
||||
name = "canvas"
|
||||
@@ -71,11 +71,11 @@ var/global/list/globalBlankCanvases[AMT_OF_CANVASES]
|
||||
//Find the right size blank canvas
|
||||
/obj/item/weapon/canvas/proc/getGlobalBackup()
|
||||
. = null
|
||||
if(globalBlankCanvases[whichGlobalBackup])
|
||||
. = globalBlankCanvases[whichGlobalBackup]
|
||||
if(GLOB.globalBlankCanvases[whichGlobalBackup])
|
||||
. = GLOB.globalBlankCanvases[whichGlobalBackup]
|
||||
else
|
||||
var/icon/I = icon(initial(icon),initial(icon_state))
|
||||
globalBlankCanvases[whichGlobalBackup] = I
|
||||
GLOB.globalBlankCanvases[whichGlobalBackup] = I
|
||||
. = I
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "A bar sign with no writing on it"
|
||||
icon = 'icons/obj/barsigns.dmi'
|
||||
icon_state = "empty"
|
||||
req_access = list(access_bar)
|
||||
req_access = list(GLOB.access_bar)
|
||||
obj_integrity = 500
|
||||
max_integrity = 500
|
||||
integrity_failure = 250
|
||||
@@ -132,7 +132,7 @@
|
||||
sleep(100) //10 seconds
|
||||
set_sign(new /datum/barsign/hiddensigns/syndibarsign)
|
||||
emagged = 1
|
||||
req_access = list(access_syndicate)
|
||||
req_access = list(GLOB.access_syndicate)
|
||||
|
||||
|
||||
|
||||
@@ -299,6 +299,11 @@
|
||||
icon = "thenet"
|
||||
desc = "You just seem to get caught up in it for hours."
|
||||
|
||||
/datum/barsign/maidcafe
|
||||
name = "Maid Cafe"
|
||||
icon = "maidcafe"
|
||||
desc = "Welcome back, master!"
|
||||
|
||||
|
||||
/datum/barsign/hiddensigns
|
||||
hidden = 1
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/proc/RemoveFromLatejoin()
|
||||
latejoin -= src //These may be here due to the arrivals shuttle
|
||||
GLOB.latejoin -= src //These may be here due to the arrivals shuttle
|
||||
|
||||
/obj/structure/chair/deconstruct()
|
||||
// If we have materials, and don't have the NOCONSTRUCT flag
|
||||
@@ -61,7 +61,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/attack_tk(mob/user)
|
||||
if(has_buckled_mobs())
|
||||
if(!anchored || has_buckled_mobs())
|
||||
..()
|
||||
else
|
||||
rotate()
|
||||
|
||||
@@ -33,13 +33,19 @@
|
||||
var/material_drop = /obj/item/stack/sheet/metal
|
||||
var/material_drop_amount = 2
|
||||
var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable.
|
||||
var/anchorable = TRUE
|
||||
|
||||
|
||||
/obj/structure/closet/Initialize(mapload)
|
||||
..()
|
||||
if(mapload && !opened) // if closed, any item at the crate's loc is put in the contents
|
||||
take_contents()
|
||||
addtimer(CALLBACK(src, .proc/take_contents), 0)
|
||||
..()
|
||||
update_icon()
|
||||
PopulateContents()
|
||||
|
||||
//USE THIS TO FILL IT, NOT INITIALIZE OR NEW
|
||||
/obj/structure/closet/proc/PopulateContents()
|
||||
return
|
||||
|
||||
/obj/structure/closet/Destroy()
|
||||
dump_contents()
|
||||
@@ -73,8 +79,6 @@
|
||||
..()
|
||||
if(anchored)
|
||||
to_chat(user, "It is anchored to the ground.")
|
||||
if(broken)
|
||||
to_chat(user, "<span class='notice'>It appears to be broken.</span>")
|
||||
else if(secure && !opened)
|
||||
to_chat(user, "<span class='notice'>Alt-click to [locked ? "unlock" : "lock"].</span>")
|
||||
|
||||
@@ -118,7 +122,7 @@
|
||||
/obj/structure/closet/proc/take_contents()
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/AM in T)
|
||||
if(insert(AM) == -1) // limit reached
|
||||
if(AM != src && insert(AM) == -1) // limit reached
|
||||
break
|
||||
|
||||
/obj/structure/closet/proc/open(mob/living/user)
|
||||
@@ -240,7 +244,7 @@
|
||||
"<span class='notice'>You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
else if(istype(W, /obj/item/weapon/wrench) && anchorable)
|
||||
if(isinspace() && !anchored)
|
||||
return
|
||||
anchored = !anchored
|
||||
@@ -315,6 +319,9 @@
|
||||
togglelock(user)
|
||||
return
|
||||
|
||||
/obj/structure/closet/attack_paw(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/structure/closet/attack_robot(mob/user)
|
||||
if(user.Adjacent(src))
|
||||
return attack_hand(user)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
integrity_failure = 0
|
||||
material_drop = /obj/item/stack/sheet/cloth
|
||||
delivery_icon = null //unwrappable
|
||||
anchorable = FALSE
|
||||
var/foldedbag_path = /obj/item/bodybag
|
||||
var/tagged = 0 // so closet code knows to put the tag overlay back
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
cutting_sound = 'sound/items/poster_ripped.ogg'
|
||||
material_drop = /obj/item/stack/sheet/cardboard
|
||||
delivery_icon = "deliverybox"
|
||||
anchorable = FALSE
|
||||
var/move_speed_multiplier = 1
|
||||
var/move_delay = 0
|
||||
var/egged = 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "It's a storage unit for athletic wear."
|
||||
icon_door = "mixed"
|
||||
|
||||
/obj/structure/closet/athletic_mixed/New()
|
||||
/obj/structure/closet/athletic_mixed/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/shorts/purple(src)
|
||||
new /obj/item/clothing/under/shorts/grey(src)
|
||||
@@ -19,7 +19,7 @@
|
||||
name = "boxing gloves"
|
||||
desc = "It's a storage unit for gloves for use in the boxing ring."
|
||||
|
||||
/obj/structure/closet/boxinggloves/New()
|
||||
/obj/structure/closet/boxinggloves/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/gloves/boxing/blue(src)
|
||||
new /obj/item/clothing/gloves/boxing/green(src)
|
||||
@@ -31,7 +31,7 @@
|
||||
name = "mask closet"
|
||||
desc = "IT'S A STORAGE UNIT FOR FIGHTER MASKS OLE!"
|
||||
|
||||
/obj/structure/closet/masks/New()
|
||||
/obj/structure/closet/masks/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/mask/luchador(src)
|
||||
new /obj/item/clothing/mask/luchador/rudos(src)
|
||||
@@ -43,7 +43,7 @@
|
||||
desc = "It's a storage unit for laser tag equipment."
|
||||
icon_door = "red"
|
||||
|
||||
/obj/structure/closet/lasertag/red/New()
|
||||
/obj/structure/closet/lasertag/red/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser/redtag(src)
|
||||
@@ -57,7 +57,7 @@
|
||||
desc = "It's a storage unit for laser tag equipment."
|
||||
icon_door = "blue"
|
||||
|
||||
/obj/structure/closet/lasertag/blue/New()
|
||||
/obj/structure/closet/lasertag/blue/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser/bluetag(src)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
name = "russian surplus closet"
|
||||
desc = "It's a storage unit for Russian standard-issue surplus."
|
||||
|
||||
/obj/structure/closet/gimmick/russian/New()
|
||||
/obj/structure/closet/gimmick/russian/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
@@ -32,7 +32,7 @@
|
||||
name = "tacticool gear closet"
|
||||
desc = "It's a storage unit for Tacticool gear."
|
||||
|
||||
/obj/structure/closet/gimmick/tacticool/New()
|
||||
/obj/structure/closet/gimmick/tacticool/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/glasses/eyepatch(src)
|
||||
new /obj/item/clothing/glasses/sunglasses(src)
|
||||
@@ -59,7 +59,7 @@
|
||||
name = "red-team Thunderdome closet"
|
||||
icon_door = "red"
|
||||
|
||||
/obj/structure/closet/thunderdome/tdred/New()
|
||||
/obj/structure/closet/thunderdome/tdred/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
@@ -78,7 +78,7 @@
|
||||
name = "green-team Thunderdome closet"
|
||||
icon_door = "green"
|
||||
|
||||
/obj/structure/closet/thunderdome/tdgreen/New()
|
||||
/obj/structure/closet/thunderdome/tdgreen/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
@@ -97,7 +97,7 @@
|
||||
desc = "It's a storage unit for operational gear."
|
||||
icon_state = "syndicate"
|
||||
|
||||
/obj/structure/closet/malf/suits/New()
|
||||
/obj/structure/closet/malf/suits/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/tank/jetpack/void(src)
|
||||
new /obj/item/clothing/mask/breath(src)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
desc = "It's a storage unit for formal clothing."
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/gmcloset/New()
|
||||
/obj/structure/closet/gmcloset/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/head/that(src)
|
||||
new /obj/item/device/radio/headset/headset_srv(src)
|
||||
@@ -33,7 +33,7 @@
|
||||
desc = "It's a storage unit for foodservice garments and mouse traps."
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/chefcloset/New()
|
||||
/obj/structure/closet/chefcloset/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/waiter(src)
|
||||
new /obj/item/clothing/under/waiter(src)
|
||||
@@ -57,7 +57,7 @@
|
||||
desc = "It's a storage unit for janitorial clothes and gear."
|
||||
icon_door = "mixed"
|
||||
|
||||
/obj/structure/closet/jcloset/New()
|
||||
/obj/structure/closet/jcloset/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/rank/janitor(src)
|
||||
new /obj/item/weapon/cartridge/janitor(src)
|
||||
@@ -81,7 +81,7 @@
|
||||
desc = "It's a storage unit for courtroom apparel and items."
|
||||
icon_door = "blue"
|
||||
|
||||
/obj/structure/closet/lawcloset/New()
|
||||
/obj/structure/closet/lawcloset/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/lawyer/female(src)
|
||||
new /obj/item/clothing/under/lawyer/black(src)
|
||||
@@ -102,9 +102,7 @@
|
||||
desc = "It's a storage unit for Nanotrasen-approved religious attire."
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/wardrobe/chaplain_black/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/chaplain_black/PopulateContents()
|
||||
new /obj/item/clothing/under/rank/chaplain(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/suit/nun(src)
|
||||
@@ -131,14 +129,14 @@
|
||||
max_integrity = 70
|
||||
horizontal = TRUE
|
||||
delivery_icon = "deliverycrate"
|
||||
material_drop = /obj/item/stack/sheet/mineral/wood
|
||||
material_drop_amount = 5
|
||||
|
||||
/obj/structure/closet/wardrobe/red
|
||||
name = "security wardrobe"
|
||||
icon_door = "red"
|
||||
|
||||
/obj/structure/closet/wardrobe/red/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/red/PopulateContents()
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/security(src)
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/sec(src)
|
||||
@@ -161,9 +159,7 @@
|
||||
name = "cargo wardrobe"
|
||||
icon_door = "orange"
|
||||
|
||||
/obj/structure/closet/wardrobe/cargotech/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/cargotech/PopulateContents()
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/cargo(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/cargotech(src)
|
||||
@@ -179,9 +175,7 @@
|
||||
name = "atmospherics wardrobe"
|
||||
icon_door = "atmos_wardrobe"
|
||||
|
||||
/obj/structure/closet/wardrobe/atmospherics_yellow/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/atmospherics_yellow/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/engineering(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/eng(src)
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
@@ -197,9 +191,7 @@
|
||||
name = "engineering wardrobe"
|
||||
icon_door = "yellow"
|
||||
|
||||
/obj/structure/closet/wardrobe/engineering_yellow/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/engineering_yellow/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/engineering(src)
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/eng(src)
|
||||
@@ -217,9 +209,7 @@
|
||||
/obj/structure/closet/wardrobe/white/medical
|
||||
name = "medical doctor's wardrobe"
|
||||
|
||||
/obj/structure/closet/wardrobe/white/medical/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/white/medical/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/med(src)
|
||||
new /obj/item/weapon/storage/backpack/medic(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/med(src)
|
||||
@@ -245,9 +235,7 @@
|
||||
name = "robotics wardrobe"
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/wardrobe/robotics_black/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/robotics_black/PopulateContents()
|
||||
new /obj/item/clothing/glasses/hud/diagnostic(src)
|
||||
new /obj/item/clothing/glasses/hud/diagnostic(src)
|
||||
new /obj/item/clothing/under/rank/roboticist(src)
|
||||
@@ -271,9 +259,7 @@
|
||||
name = "chemistry wardrobe"
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/chemistry_white/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/chemistry_white/PopulateContents()
|
||||
new /obj/item/clothing/under/rank/chemist(src)
|
||||
new /obj/item/clothing/under/rank/chemist(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
@@ -293,9 +279,7 @@
|
||||
name = "genetics wardrobe"
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/genetics_white/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/genetics_white/PopulateContents()
|
||||
new /obj/item/clothing/under/rank/geneticist(src)
|
||||
new /obj/item/clothing/under/rank/geneticist(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
@@ -313,9 +297,7 @@
|
||||
name = "virology wardrobe"
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/virology_white/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/virology_white/PopulateContents()
|
||||
new /obj/item/clothing/under/rank/virologist(src)
|
||||
new /obj/item/clothing/under/rank/virologist(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
@@ -334,9 +316,7 @@
|
||||
name = "science wardrobe"
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/science_white/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/science_white/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/science(src)
|
||||
new /obj/item/weapon/storage/backpack/science(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/tox(src)
|
||||
@@ -358,9 +338,7 @@
|
||||
name = "botanist wardrobe"
|
||||
icon_door = "green"
|
||||
|
||||
/obj/structure/closet/wardrobe/botanist/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/botanist/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/botany(src)
|
||||
new /obj/item/weapon/storage/backpack/botany(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/hyd(src)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "It's a storage unit for level-3 biohazard gear."
|
||||
icon_state = "bio"
|
||||
|
||||
/obj/structure/closet/l3closet/New()
|
||||
/obj/structure/closet/l3closet/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/bag/bio( src )
|
||||
new /obj/item/clothing/suit/bio_suit/general( src )
|
||||
@@ -13,9 +13,7 @@
|
||||
/obj/structure/closet/l3closet/virology
|
||||
icon_state = "bio_viro"
|
||||
|
||||
/obj/structure/closet/l3closet/virology/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/l3closet/virology/PopulateContents()
|
||||
new /obj/item/weapon/storage/bag/bio( src )
|
||||
new /obj/item/clothing/suit/bio_suit/virology( src )
|
||||
new /obj/item/clothing/head/bio_hood/virology( src )
|
||||
@@ -24,9 +22,7 @@
|
||||
/obj/structure/closet/l3closet/security
|
||||
icon_state = "bio_sec"
|
||||
|
||||
/obj/structure/closet/l3closet/security/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/l3closet/security/PopulateContents()
|
||||
new /obj/item/clothing/suit/bio_suit/security( src )
|
||||
new /obj/item/clothing/head/bio_hood/security( src )
|
||||
|
||||
@@ -34,9 +30,7 @@
|
||||
/obj/structure/closet/l3closet/janitor
|
||||
icon_state = "bio_jan"
|
||||
|
||||
/obj/structure/closet/l3closet/janitor/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/l3closet/janitor/PopulateContents()
|
||||
new /obj/item/clothing/suit/bio_suit/janitor( src )
|
||||
new /obj/item/clothing/head/bio_hood/janitor( src )
|
||||
|
||||
@@ -44,9 +38,7 @@
|
||||
/obj/structure/closet/l3closet/scientist
|
||||
icon_state = "bio_viro"
|
||||
|
||||
/obj/structure/closet/l3closet/scientist/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/l3closet/scientist/PopulateContents()
|
||||
new /obj/item/weapon/storage/bag/bio( src )
|
||||
new /obj/item/clothing/suit/bio_suit/scientist( src )
|
||||
new /obj/item/clothing/head/bio_hood/scientist( src )
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/obj/structure/closet/secure_closet/bar
|
||||
name = "booze storage"
|
||||
req_access = list(access_bar)
|
||||
req_access = list(GLOB.access_bar)
|
||||
icon_state = "cabinet"
|
||||
resistance_flags = FLAMMABLE
|
||||
obj_integrity = 70
|
||||
max_integrity = 70
|
||||
|
||||
/obj/structure/closet/secure_closet/bar/New()
|
||||
/obj/structure/closet/secure_closet/bar/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 10)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/obj/structure/closet/secure_closet/quartermaster
|
||||
name = "\proper quartermaster's locker"
|
||||
req_access = list(access_qm)
|
||||
req_access = list(GLOB.access_qm)
|
||||
icon_state = "qm"
|
||||
|
||||
/obj/structure/closet/secure_closet/quartermaster/New()
|
||||
/obj/structure/closet/secure_closet/quartermaster/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/neck/cloak/qm(src)
|
||||
new /obj/item/clothing/under/rank/cargo(src)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/obj/structure/closet/secure_closet/engineering_chief
|
||||
name = "\proper chief engineer's locker"
|
||||
req_access = list(access_ce)
|
||||
req_access = list(GLOB.access_ce)
|
||||
icon_state = "ce"
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_chief/New()
|
||||
/obj/structure/closet/secure_closet/engineering_chief/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/neck/cloak/ce(src)
|
||||
new /obj/item/clothing/under/rank/chief_engineer(src)
|
||||
@@ -29,11 +29,11 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical
|
||||
name = "electrical supplies locker"
|
||||
req_access = list(access_engine_equip)
|
||||
req_access = list(GLOB.access_engine_equip)
|
||||
icon_state = "eng"
|
||||
icon_door = "eng_elec"
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical/New()
|
||||
/obj/structure/closet/secure_closet/engineering_electrical/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/gloves/color/yellow(src)
|
||||
new /obj/item/clothing/gloves/color/yellow(src)
|
||||
@@ -46,11 +46,11 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_welding
|
||||
name = "welding supplies locker"
|
||||
req_access = list(access_engine_equip)
|
||||
req_access = list(GLOB.access_engine_equip)
|
||||
icon_state = "eng"
|
||||
icon_door = "eng_weld"
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_welding/New()
|
||||
/obj/structure/closet/secure_closet/engineering_welding/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/welding(src)
|
||||
@@ -59,10 +59,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_personal
|
||||
name = "engineer's locker"
|
||||
req_access = list(access_engine_equip)
|
||||
req_access = list(GLOB.access_engine_equip)
|
||||
icon_state = "eng_secure"
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_personal/New()
|
||||
/obj/structure/closet/secure_closet/engineering_personal/PopulateContents()
|
||||
..()
|
||||
new /obj/item/device/radio/headset/headset_eng(src)
|
||||
new /obj/item/weapon/storage/toolbox/mechanical(src)
|
||||
@@ -75,10 +75,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/atmospherics
|
||||
name = "\proper atmospheric technician's locker"
|
||||
req_access = list(access_atmospherics)
|
||||
req_access = list(GLOB.access_atmospherics)
|
||||
icon_state = "atmos"
|
||||
|
||||
/obj/structure/closet/secure_closet/atmospherics/New()
|
||||
/obj/structure/closet/secure_closet/atmospherics/PopulateContents()
|
||||
..()
|
||||
new /obj/item/device/radio/headset/headset_eng(src)
|
||||
new /obj/item/weapon/pipe_dispenser(src)
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen
|
||||
name = "kitchen Cabinet"
|
||||
req_access = list(access_kitchen)
|
||||
req_access = list(GLOB.access_kitchen)
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/New()
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/PopulateContents()
|
||||
..()
|
||||
for(var/i = 0, i < 3, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/flour(src)
|
||||
@@ -17,7 +17,7 @@
|
||||
desc = "This refrigerator looks quite dusty, is there anything edible still inside?"
|
||||
req_access = list()
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/maintenance/New()
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/maintenance/PopulateContents()
|
||||
..()
|
||||
for(var/i = 0, i < 5, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/milk(src)
|
||||
@@ -32,14 +32,14 @@
|
||||
/obj/structure/closet/secure_closet/freezer/meat
|
||||
name = "meat fridge"
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/meat/New()
|
||||
/obj/structure/closet/secure_closet/freezer/meat/PopulateContents()
|
||||
..()
|
||||
for(var/i = 0, i < 4, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src)
|
||||
/obj/structure/closet/secure_closet/freezer/fridge
|
||||
name = "refrigerator"
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/fridge/New()
|
||||
/obj/structure/closet/secure_closet/freezer/fridge/PopulateContents()
|
||||
..()
|
||||
for(var/i = 0, i < 5, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/milk(src)
|
||||
@@ -51,9 +51,9 @@
|
||||
/obj/structure/closet/secure_closet/freezer/money
|
||||
name = "freezer"
|
||||
desc = "This contains cold hard cash."
|
||||
req_access = list(access_heads_vault)
|
||||
req_access = list(GLOB.access_heads_vault)
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/money/New()
|
||||
/obj/structure/closet/secure_closet/freezer/money/PopulateContents()
|
||||
..()
|
||||
for(var/i = 0, i < 3, i++)
|
||||
new /obj/item/stack/spacecash/c1000(src)
|
||||
@@ -65,8 +65,8 @@
|
||||
/obj/structure/closet/secure_closet/freezer/cream_pie
|
||||
name = "cream pie closet"
|
||||
desc = "Contains pies filled with cream and/or custard, you sickos."
|
||||
req_access = list(access_theatre)
|
||||
req_access = list(GLOB.access_theatre)
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/pie/New()
|
||||
/obj/structure/closet/secure_closet/freezer/pie/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/pie/cream(src)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/obj/structure/closet/secure_closet/hydroponics
|
||||
name = "botanist's locker"
|
||||
req_access = list(access_hydroponics)
|
||||
req_access = list(GLOB.access_hydroponics)
|
||||
icon_state = "hydro"
|
||||
|
||||
/obj/structure/closet/secure_closet/hydroponics/New()
|
||||
/obj/structure/closet/secure_closet/hydroponics/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/bag/plants/portaseeder(src)
|
||||
new /obj/item/device/plant_analyzer(src)
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
name = "medicine closet"
|
||||
desc = "Filled to the brim with medical junk."
|
||||
icon_state = "med"
|
||||
req_access = list(access_medical)
|
||||
req_access = list(GLOB.access_medical)
|
||||
|
||||
/obj/structure/closet/secure_closet/medical1/New()
|
||||
/obj/structure/closet/secure_closet/medical1/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
@@ -24,9 +24,9 @@
|
||||
/obj/structure/closet/secure_closet/medical2
|
||||
name = "anesthetic closet"
|
||||
desc = "Used to knock people out."
|
||||
req_access = list(access_surgery)
|
||||
req_access = list(GLOB.access_surgery)
|
||||
|
||||
/obj/structure/closet/secure_closet/medical2/New()
|
||||
/obj/structure/closet/secure_closet/medical2/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/tank/internals/anesthetic(src)
|
||||
@@ -35,10 +35,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/medical3
|
||||
name = "medical doctor's locker"
|
||||
req_access = list(access_surgery)
|
||||
req_access = list(GLOB.access_surgery)
|
||||
icon_state = "med_secure"
|
||||
|
||||
/obj/structure/closet/secure_closet/medical3/New()
|
||||
/obj/structure/closet/secure_closet/medical3/PopulateContents()
|
||||
..()
|
||||
new /obj/item/device/radio/headset/headset_med(src)
|
||||
new /obj/item/weapon/defibrillator/loaded(src)
|
||||
@@ -49,10 +49,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO
|
||||
name = "\proper chief medical officer's locker"
|
||||
req_access = list(access_cmo)
|
||||
req_access = list(GLOB.access_cmo)
|
||||
icon_state = "cmo"
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO/New()
|
||||
/obj/structure/closet/secure_closet/CMO/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/neck/cloak/cmo(src)
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/med(src)
|
||||
@@ -69,14 +69,14 @@
|
||||
new /obj/item/weapon/storage/belt/medical(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/CMO(src)
|
||||
new /obj/item/device/autoimplanter/cmo(src)
|
||||
new /obj/item/device/autosurgeon/cmo(src)
|
||||
new /obj/item/weapon/door_remote/chief_medical_officer(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/animal
|
||||
name = "animal control"
|
||||
req_access = list(access_surgery)
|
||||
req_access = list(GLOB.access_surgery)
|
||||
|
||||
/obj/structure/closet/secure_closet/animal/New()
|
||||
/obj/structure/closet/secure_closet/animal/PopulateContents()
|
||||
..()
|
||||
new /obj/item/device/assembly/signaler(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -87,7 +87,7 @@
|
||||
desc = "Store dangerous chemicals in here."
|
||||
icon_door = "chemical"
|
||||
|
||||
/obj/structure/closet/secure_closet/chemical/New()
|
||||
/obj/structure/closet/secure_closet/chemical/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/pillbottles(src)
|
||||
new /obj/item/weapon/storage/box/pillbottles(src)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/structure/closet/secure_closet/ertCom
|
||||
name = "commander's closet"
|
||||
desc = "Emergency Response Team equipment locker."
|
||||
req_access = list(access_cent_captain)
|
||||
req_access = list(GLOB.access_cent_captain)
|
||||
icon_state = "cap"
|
||||
|
||||
/obj/structure/closet/secure_closet/ertCom/New()
|
||||
/obj/structure/closet/secure_closet/ertCom/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/firstaid/regular(src)
|
||||
new /obj/item/weapon/storage/box/handcuffs(src)
|
||||
@@ -22,10 +22,10 @@
|
||||
/obj/structure/closet/secure_closet/ertSec
|
||||
name = "security closet"
|
||||
desc = "Emergency Response Team equipment locker."
|
||||
req_access = list(access_cent_specops)
|
||||
req_access = list(GLOB.access_cent_specops)
|
||||
icon_state = "hos"
|
||||
|
||||
/obj/structure/closet/secure_closet/ertSec/New()
|
||||
/obj/structure/closet/secure_closet/ertSec/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/weapon/storage/box/teargas(src)
|
||||
@@ -36,10 +36,10 @@
|
||||
/obj/structure/closet/secure_closet/ertMed
|
||||
name = "medical closet"
|
||||
desc = "Emergency Response Team equipment locker."
|
||||
req_access = list(access_cent_medical)
|
||||
req_access = list(GLOB.access_cent_medical)
|
||||
icon_state = "cmo"
|
||||
|
||||
/obj/structure/closet/secure_closet/ertMed/New()
|
||||
/obj/structure/closet/secure_closet/ertMed/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/firstaid/o2(src)
|
||||
new /obj/item/weapon/storage/firstaid/toxin(src)
|
||||
@@ -52,10 +52,10 @@
|
||||
/obj/structure/closet/secure_closet/ertEngi
|
||||
name = "engineer closet"
|
||||
desc = "Emergency Response Team equipment locker."
|
||||
req_access = list(access_cent_storage)
|
||||
req_access = list(GLOB.access_cent_storage)
|
||||
icon_state = "ce"
|
||||
|
||||
/obj/structure/closet/secure_closet/ertEngi/New()
|
||||
/obj/structure/closet/secure_closet/ertEngi/PopulateContents()
|
||||
..()
|
||||
new /obj/item/stack/sheet/plasteel(src, 50)
|
||||
new /obj/item/stack/sheet/metal(src, 50)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/structure/closet/secure_closet/personal
|
||||
desc = "It's a secure locker for personnel. The first card swiped gains control."
|
||||
name = "personal closet"
|
||||
req_access = list(access_all_personal_lockers)
|
||||
req_access = list(GLOB.access_all_personal_lockers)
|
||||
var/registered_name = null
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/New()
|
||||
/obj/structure/closet/secure_closet/personal/PopulateContents()
|
||||
..()
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
||||
@@ -17,9 +17,7 @@
|
||||
/obj/structure/closet/secure_closet/personal/patient
|
||||
name = "patient's closet"
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/patient/New()
|
||||
..()
|
||||
contents.Cut()
|
||||
/obj/structure/closet/secure_closet/personal/patient/PopulateContents()
|
||||
new /obj/item/clothing/under/color/white( src )
|
||||
new /obj/item/clothing/shoes/sneakers/white( src )
|
||||
|
||||
@@ -29,9 +27,7 @@
|
||||
obj_integrity = 70
|
||||
max_integrity = 70
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/cabinet/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/secure_closet/personal/cabinet/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/satchel/leather/withwallet( src )
|
||||
new /obj/item/device/radio/headset( src )
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/obj/structure/closet/secure_closet/RD
|
||||
name = "\proper research director's locker"
|
||||
req_access = list(access_rd)
|
||||
req_access = list(GLOB.access_rd)
|
||||
icon_state = "rd"
|
||||
|
||||
/obj/structure/closet/secure_closet/RD/New()
|
||||
/obj/structure/closet/secure_closet/RD/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/neck/cloak/rd(src)
|
||||
new /obj/item/clothing/suit/bio_suit/scientist(src)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/obj/structure/closet/secure_closet/captains
|
||||
name = "\proper captain's locker"
|
||||
req_access = list(access_captain)
|
||||
req_access = list(GLOB.access_captain)
|
||||
icon_state = "cap"
|
||||
|
||||
/obj/structure/closet/secure_closet/captains/New()
|
||||
/obj/structure/closet/secure_closet/captains/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/captain(src)
|
||||
if(prob(50))
|
||||
@@ -32,10 +32,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/hop
|
||||
name = "\proper head of personnel's locker"
|
||||
req_access = list(access_hop)
|
||||
req_access = list(GLOB.access_hop)
|
||||
icon_state = "hop"
|
||||
|
||||
/obj/structure/closet/secure_closet/hop/New()
|
||||
/obj/structure/closet/secure_closet/hop/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/neck/cloak/hop(src)
|
||||
new /obj/item/clothing/under/rank/head_of_personnel(src)
|
||||
@@ -56,10 +56,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/hos
|
||||
name = "\proper head of security's locker"
|
||||
req_access = list(access_hos)
|
||||
req_access = list(GLOB.access_hos)
|
||||
icon_state = "hos"
|
||||
|
||||
/obj/structure/closet/secure_closet/hos/New()
|
||||
/obj/structure/closet/secure_closet/hos/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/neck/cloak/hos(src)
|
||||
new /obj/item/weapon/cartridge/hos(src)
|
||||
@@ -85,10 +85,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/warden
|
||||
name = "\proper warden's locker"
|
||||
req_access = list(access_armory)
|
||||
req_access = list(GLOB.access_armory)
|
||||
icon_state = "warden"
|
||||
|
||||
/obj/structure/closet/secure_closet/warden/New()
|
||||
/obj/structure/closet/secure_closet/warden/PopulateContents()
|
||||
..()
|
||||
new /obj/item/device/radio/headset/headset_sec(src)
|
||||
new /obj/item/clothing/suit/armor/vest/warden(src)
|
||||
@@ -109,10 +109,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/security
|
||||
name = "security officer's locker"
|
||||
req_access = list(access_security)
|
||||
req_access = list(GLOB.access_security)
|
||||
icon_state = "sec"
|
||||
|
||||
/obj/structure/closet/secure_closet/security/New()
|
||||
/obj/structure/closet/secure_closet/security/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
new /obj/item/clothing/head/helmet/sec(src)
|
||||
@@ -123,47 +123,47 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/security/sec
|
||||
|
||||
/obj/structure/closet/secure_closet/security/sec/New()
|
||||
/obj/structure/closet/secure_closet/security/sec/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/belt/security/full(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/security/cargo
|
||||
|
||||
/obj/structure/closet/secure_closet/security/cargo/New()
|
||||
/obj/structure/closet/secure_closet/security/cargo/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/tie/armband/cargo(src)
|
||||
new /obj/item/device/encryptionkey/headset_cargo(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/security/engine
|
||||
|
||||
/obj/structure/closet/secure_closet/security/engine/New()
|
||||
/obj/structure/closet/secure_closet/security/engine/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/tie/armband/engine(src)
|
||||
new /obj/item/device/encryptionkey/headset_eng(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/security/science
|
||||
|
||||
/obj/structure/closet/secure_closet/security/science/New()
|
||||
/obj/structure/closet/secure_closet/security/science/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/tie/armband/science(src)
|
||||
new /obj/item/device/encryptionkey/headset_sci(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/security/med
|
||||
|
||||
/obj/structure/closet/secure_closet/security/med/New()
|
||||
/obj/structure/closet/secure_closet/security/med/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/tie/armband/medblue(src)
|
||||
new /obj/item/device/encryptionkey/headset_med(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/detective
|
||||
name = "\proper detective's cabinet"
|
||||
req_access = list(access_forensics_lockers)
|
||||
req_access = list(GLOB.access_forensics_lockers)
|
||||
icon_state = "cabinet"
|
||||
resistance_flags = FLAMMABLE
|
||||
obj_integrity = 70
|
||||
max_integrity = 70
|
||||
|
||||
/obj/structure/closet/secure_closet/detective/New()
|
||||
/obj/structure/closet/secure_closet/detective/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/rank/det(src)
|
||||
new /obj/item/clothing/suit/det_suit(src)
|
||||
@@ -185,29 +185,29 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/injection
|
||||
name = "lethal injections"
|
||||
req_access = list(access_hos)
|
||||
req_access = list(GLOB.access_hos)
|
||||
|
||||
/obj/structure/closet/secure_closet/injection/New()
|
||||
/obj/structure/closet/secure_closet/injection/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/execution(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/brig
|
||||
name = "brig locker"
|
||||
req_access = list(access_brig)
|
||||
req_access = list(GLOB.access_brig)
|
||||
anchored = 1
|
||||
var/id = null
|
||||
|
||||
/obj/structure/closet/secure_closet/brig/New()
|
||||
/obj/structure/closet/secure_closet/brig/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/rank/prisoner( src )
|
||||
new /obj/item/clothing/shoes/sneakers/orange( src )
|
||||
|
||||
/obj/structure/closet/secure_closet/courtroom
|
||||
name = "courtroom locker"
|
||||
req_access = list(access_court)
|
||||
req_access = list(GLOB.access_court)
|
||||
|
||||
/obj/structure/closet/secure_closet/courtroom/New()
|
||||
/obj/structure/closet/secure_closet/courtroom/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -219,10 +219,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/armory1
|
||||
name = "armory armor locker"
|
||||
req_access = list(access_armory)
|
||||
req_access = list(GLOB.access_armory)
|
||||
icon_state = "armory"
|
||||
|
||||
/obj/structure/closet/secure_closet/armory1/New()
|
||||
/obj/structure/closet/secure_closet/armory1/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/laserproof(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -234,10 +234,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/armory2
|
||||
name = "armory ballistics locker"
|
||||
req_access = list(access_armory)
|
||||
req_access = list(GLOB.access_armory)
|
||||
icon_state = "armory"
|
||||
|
||||
/obj/structure/closet/secure_closet/armory2/New()
|
||||
/obj/structure/closet/secure_closet/armory2/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/firingpins(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -247,10 +247,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/armory3
|
||||
name = "armory energy gun locker"
|
||||
req_access = list(access_armory)
|
||||
req_access = list(GLOB.access_armory)
|
||||
icon_state = "armory"
|
||||
|
||||
/obj/structure/closet/secure_closet/armory3/New()
|
||||
/obj/structure/closet/secure_closet/armory3/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/firingpins(src)
|
||||
new /obj/item/weapon/gun/energy/ionrifle(src)
|
||||
@@ -261,10 +261,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/tac
|
||||
name = "armory tac locker"
|
||||
req_access = list(access_armory)
|
||||
req_access = list(GLOB.access_armory)
|
||||
icon_state = "tac"
|
||||
|
||||
/obj/structure/closet/secure_closet/tac/New()
|
||||
/obj/structure/closet/secure_closet/tac/PopulateContents()
|
||||
..()
|
||||
new /obj/item/weapon/gun/ballistic/automatic/wt550(src)
|
||||
new /obj/item/clothing/head/helmet/alt(src)
|
||||
@@ -273,10 +273,10 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/lethalshots
|
||||
name = "shotgun lethal rounds"
|
||||
req_access = list(access_armory)
|
||||
req_access = list(GLOB.access_armory)
|
||||
icon_state = "tac"
|
||||
|
||||
/obj/structure/closet/secure_closet/lethalshots/New()
|
||||
/obj/structure/closet/secure_closet/lethalshots/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/storage/box/lethalshot(src)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/obj/structure/closet/syndicate/personal
|
||||
desc = "It's a personal storage unit for operative gear."
|
||||
|
||||
/obj/structure/closet/syndicate/personal/New()
|
||||
/obj/structure/closet/syndicate/personal/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/under/syndicate(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
@@ -20,9 +20,7 @@
|
||||
/obj/structure/closet/syndicate/nuclear
|
||||
desc = "It's a storage unit for a Syndicate boarding party."
|
||||
|
||||
/obj/structure/closet/syndicate/nuclear/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/syndicate/nuclear/PopulateContents()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
@@ -34,7 +32,7 @@
|
||||
/obj/structure/closet/syndicate/resources
|
||||
desc = "An old, dusty locker."
|
||||
|
||||
/obj/structure/closet/syndicate/resources/New()
|
||||
/obj/structure/closet/syndicate/resources/PopulateContents()
|
||||
..()
|
||||
var/common_min = 30 //Minimum amount of minerals in the stack for common minerals
|
||||
var/common_max = 50 //Maximum amount of HONK in the stack for HONK common minerals
|
||||
@@ -99,9 +97,7 @@
|
||||
/obj/structure/closet/syndicate/resources/everything
|
||||
desc = "It's an emergency storage closet for repairs."
|
||||
|
||||
/obj/structure/closet/syndicate/resources/everything/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/syndicate/resources/everything/PopulateContents()
|
||||
var/list/resources = list(
|
||||
/obj/item/stack/sheet/metal,
|
||||
/obj/item/stack/sheet/glass,
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
desc = "It's a storage unit for emergency breath masks and O2 tanks."
|
||||
icon_state = "emergency"
|
||||
|
||||
/obj/structure/closet/emcloset/New()
|
||||
/obj/structure/closet/emcloset/PopulateContents()
|
||||
..()
|
||||
|
||||
if (prob(40))
|
||||
@@ -63,7 +63,7 @@
|
||||
desc = "It's a storage unit for fire-fighting supplies."
|
||||
icon_state = "fire"
|
||||
|
||||
/obj/structure/closet/firecloset/New()
|
||||
/obj/structure/closet/firecloset/PopulateContents()
|
||||
..()
|
||||
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
@@ -72,10 +72,7 @@
|
||||
new /obj/item/weapon/extinguisher(src)
|
||||
new /obj/item/clothing/head/hardhat/red(src)
|
||||
|
||||
/obj/structure/closet/firecloset/full/New()
|
||||
..()
|
||||
contents = list()
|
||||
|
||||
/obj/structure/closet/firecloset/full/PopulateContents()
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/device/flashlight(src)
|
||||
@@ -92,7 +89,7 @@
|
||||
icon_state = "eng"
|
||||
icon_door = "eng_tool"
|
||||
|
||||
/obj/structure/closet/toolcloset/New()
|
||||
/obj/structure/closet/toolcloset/PopulateContents()
|
||||
..()
|
||||
if(prob(40))
|
||||
new /obj/item/clothing/suit/hazardvest(src)
|
||||
@@ -135,7 +132,7 @@
|
||||
icon_state = "eng"
|
||||
icon_door = "eng_rad"
|
||||
|
||||
/obj/structure/closet/radiation/New()
|
||||
/obj/structure/closet/radiation/PopulateContents()
|
||||
..()
|
||||
new /obj/item/device/geiger_counter(src)
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
@@ -149,7 +146,7 @@
|
||||
desc = "It's a storage unit for explosion-protective suits."
|
||||
icon_state = "bomb"
|
||||
|
||||
/obj/structure/closet/bombcloset/New()
|
||||
/obj/structure/closet/bombcloset/PopulateContents()
|
||||
..()
|
||||
new /obj/item/clothing/suit/bomb_suit( src )
|
||||
new /obj/item/clothing/under/color/black( src )
|
||||
@@ -162,9 +159,7 @@
|
||||
desc = "It's a storage unit for explosion-protective suits."
|
||||
icon_state = "bomb"
|
||||
|
||||
/obj/structure/closet/bombclosetsecurity/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/bombclosetsecurity/PopulateContents()
|
||||
new /obj/item/clothing/suit/bomb_suit/security( src )
|
||||
new /obj/item/clothing/under/rank/security( src )
|
||||
new /obj/item/clothing/shoes/sneakers/brown( src )
|
||||
@@ -176,7 +171,7 @@
|
||||
/obj/structure/closet/ammunitionlocker
|
||||
name = "ammunition locker"
|
||||
|
||||
/obj/structure/closet/ammunitionlocker/New()
|
||||
/obj/structure/closet/ammunitionlocker/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 8)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "It's a storage unit for standard-issue Nanotrasen attire."
|
||||
icon_door = "blue"
|
||||
|
||||
/obj/structure/closet/wardrobe/New()
|
||||
/obj/structure/closet/wardrobe/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
@@ -15,9 +15,7 @@
|
||||
name = "pink wardrobe"
|
||||
icon_door = "pink"
|
||||
|
||||
/obj/structure/closet/wardrobe/pink/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/pink/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/pink(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -28,9 +26,7 @@
|
||||
name = "black wardrobe"
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/wardrobe/black/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/black/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
if(prob(25))
|
||||
@@ -54,9 +50,7 @@
|
||||
name = "green wardrobe"
|
||||
icon_door = "green"
|
||||
|
||||
/obj/structure/closet/wardrobe/green/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/green/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -71,9 +65,7 @@
|
||||
desc = "It's a storage unit for Nanotrasen-regulation prisoner attire."
|
||||
icon_door = "orange"
|
||||
|
||||
/obj/structure/closet/wardrobe/orange/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/orange/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/prisoner(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -85,9 +77,7 @@
|
||||
name = "yellow wardrobe"
|
||||
icon_door = "yellow"
|
||||
|
||||
/obj/structure/closet/wardrobe/yellow/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/yellow/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/yellow(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -101,9 +91,7 @@
|
||||
name = "white wardrobe"
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/white/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/white/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/white(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -116,9 +104,7 @@
|
||||
name = "pajama wardrobe"
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/pjs/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/pjs/PopulateContents()
|
||||
new /obj/item/clothing/under/pj/red(src)
|
||||
new /obj/item/clothing/under/pj/red(src)
|
||||
new /obj/item/clothing/under/pj/blue(src)
|
||||
@@ -132,9 +118,7 @@
|
||||
name = "grey wardrobe"
|
||||
icon_door = "grey"
|
||||
|
||||
/obj/structure/closet/wardrobe/grey/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/grey/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/grey(src)
|
||||
for(var/i in 1 to 3)
|
||||
@@ -160,9 +144,7 @@
|
||||
name = "mixed wardrobe"
|
||||
icon_door = "mixed"
|
||||
|
||||
/obj/structure/closet/wardrobe/mixed/New()
|
||||
..()
|
||||
contents = list()
|
||||
/obj/structure/closet/wardrobe/mixed/PopulateContents()
|
||||
if(prob(40))
|
||||
new /obj/item/clothing/suit/jacket(src)
|
||||
if(prob(40))
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
name = "blood freezer"
|
||||
desc = "A freezer containing packs of blood."
|
||||
|
||||
/obj/structure/closet/crate/freezer/blood/New()
|
||||
/obj/structure/closet/crate/freezer/blood/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
@@ -102,7 +102,7 @@
|
||||
name = "surplus prosthetic limbs"
|
||||
desc = "A crate containing an assortment of cheap prosthetic limbs."
|
||||
|
||||
/obj/structure/closet/crate/freezer/surplus_limbs/New()
|
||||
/obj/structure/closet/crate/freezer/surplus_limbs/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/bodypart/l_arm/robot/surplus(src)
|
||||
new /obj/item/bodypart/l_arm/robot/surplus(src)
|
||||
@@ -135,7 +135,7 @@
|
||||
name = "\improper RCD crate"
|
||||
icon_state = "engi_crate"
|
||||
|
||||
/obj/structure/closet/crate/rcd/New()
|
||||
/obj/structure/closet/crate/rcd/PopulateContents()
|
||||
..()
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/weapon/rcd_ammo(src)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
if(user)
|
||||
to_chat(user, "<span class='danger'>The crate's anti-tamper system activates!</span>")
|
||||
var/message = "[ADMIN_LOOKUPFLW(user)] has detonated [src.name]."
|
||||
bombers += message
|
||||
GLOB.bombers += message
|
||||
message_admins(message)
|
||||
log_game("[key_name(user)] has detonated [src.name].")
|
||||
for(var/atom/movable/AM in src)
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 30*I.toolspeed, target = src))
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
new /obj/item/stack/sheet/mineral/wood(get_turf(src))
|
||||
new /obj/item/stack/sheet/mineral/wood(get_turf(src), 5)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(I, /obj/item/weapon/electronics/airlock))
|
||||
@@ -238,15 +238,14 @@
|
||||
return ..()
|
||||
|
||||
//The captains display case requiring specops ID access is intentional.
|
||||
//Intentional why? Because of this, the captain has to SMASH his own display case to get his own gun. WHY? -ktccd
|
||||
//The lab cage and captains display case do not spawn with electronics, which is why req_access is needed.
|
||||
/obj/structure/displaycase/captain
|
||||
alert = 1
|
||||
start_showpiece_type = /obj/item/weapon/gun/energy/laser/captain
|
||||
req_access = list(access_captain)
|
||||
req_access = list(GLOB.access_captain)
|
||||
|
||||
/obj/structure/displaycase/labcage
|
||||
name = "lab cage"
|
||||
desc = "A glass lab container for storing interesting creatures."
|
||||
start_showpiece_type = /obj/item/clothing/mask/facehugger/lamarr
|
||||
req_access = list(access_rd)
|
||||
req_access = list(GLOB.access_rd)
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
return
|
||||
switch(choice)
|
||||
if("Underwear")
|
||||
var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_list
|
||||
var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in GLOB.underwear_list
|
||||
if(new_undies)
|
||||
H.underwear = new_undies
|
||||
|
||||
if("Undershirt")
|
||||
var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in undershirt_list
|
||||
var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in GLOB.undershirt_list
|
||||
if(new_undershirt)
|
||||
H.undershirt = new_undershirt
|
||||
if("Socks")
|
||||
var/new_socks = input(user, "Select your socks", "Changing") as null|anything in socks_list
|
||||
var/new_socks = input(user, "Select your socks", "Changing") as null|anything in GLOB.socks_list
|
||||
if(new_socks)
|
||||
H.socks= new_socks
|
||||
|
||||
|
||||
@@ -339,5 +339,5 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/falsewall/brass/ratvar_act()
|
||||
if(ratvar_awakens)
|
||||
if(GLOB.ratvar_awakens)
|
||||
obj_integrity = max_integrity
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
icon = 'icons/obj/flora/pinetrees.dmi'
|
||||
icon_state = "pine_1"
|
||||
|
||||
/obj/structure/flora/tree/pine/New()
|
||||
/obj/structure/flora/tree/pine/Initialize()
|
||||
icon_state = "pine_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
name = "xmas tree"
|
||||
icon_state = "pine_c"
|
||||
|
||||
/obj/structure/flora/tree/pine/xmas/New()
|
||||
/obj/structure/flora/tree/pine/xmas/Initialize()
|
||||
..()
|
||||
icon_state = "pine_c"
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
icon = 'icons/misc/beach2.dmi'
|
||||
icon_state = "palm1"
|
||||
|
||||
/obj/structure/flora/tree/palm/New()
|
||||
/obj/structure/flora/tree/palm/Initialize()
|
||||
..()
|
||||
icon_state = pick("palm1","palm2")
|
||||
pixel_x = 0
|
||||
@@ -75,10 +75,21 @@
|
||||
icon_state = "festivus_pole"
|
||||
desc = "During last year's Feats of Strength the Research Director was able to suplex this passing immobile rod into a planter."
|
||||
|
||||
/obj/structure/flora/tree/dead/New()
|
||||
/obj/structure/flora/tree/dead/Initialize()
|
||||
icon_state = "tree_[rand(1, 6)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/tree/jungle
|
||||
name = "tree"
|
||||
icon_state = "tree"
|
||||
desc = "It's seriously hampering your view of the jungle."
|
||||
icon = 'icons/obj/flora/jungletrees.dmi'
|
||||
pixel_x = -48
|
||||
pixel_y = -20
|
||||
|
||||
/obj/structure/flora/tree/jungle/Initialize()
|
||||
icon_state = "[icon_state][rand(1, 3)]"
|
||||
..()
|
||||
|
||||
//grass
|
||||
/obj/structure/flora/grass
|
||||
@@ -89,7 +100,7 @@
|
||||
/obj/structure/flora/grass/brown
|
||||
icon_state = "snowgrass1bb"
|
||||
|
||||
/obj/structure/flora/grass/brown/New()
|
||||
/obj/structure/flora/grass/brown/Initialize()
|
||||
icon_state = "snowgrass[rand(1, 3)]bb"
|
||||
..()
|
||||
|
||||
@@ -97,14 +108,14 @@
|
||||
/obj/structure/flora/grass/green
|
||||
icon_state = "snowgrass1gb"
|
||||
|
||||
/obj/structure/flora/grass/green/New()
|
||||
/obj/structure/flora/grass/green/Initialize()
|
||||
icon_state = "snowgrass[rand(1, 3)]gb"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/grass/both
|
||||
icon_state = "snowgrassall1"
|
||||
|
||||
/obj/structure/flora/grass/both/New()
|
||||
/obj/structure/flora/grass/both/Initialize()
|
||||
icon_state = "snowgrassall[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
@@ -116,7 +127,7 @@
|
||||
icon_state = "snowbush1"
|
||||
anchored = 1
|
||||
|
||||
/obj/structure/flora/bush/New()
|
||||
/obj/structure/flora/bush/Initialize()
|
||||
icon_state = "snowbush[rand(1, 6)]"
|
||||
..()
|
||||
|
||||
@@ -127,7 +138,7 @@
|
||||
icon = 'icons/obj/flora/ausflora.dmi'
|
||||
icon_state = "firstbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/New()
|
||||
/obj/structure/flora/ausbushes/Initialize()
|
||||
if(icon_state == "firstbush_1")
|
||||
icon_state = "firstbush_[rand(1, 4)]"
|
||||
..()
|
||||
@@ -135,105 +146,105 @@
|
||||
/obj/structure/flora/ausbushes/reedbush
|
||||
icon_state = "reedbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/reedbush/New()
|
||||
/obj/structure/flora/ausbushes/reedbush/Initialize()
|
||||
icon_state = "reedbush_[rand(1, 4)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/leafybush
|
||||
icon_state = "leafybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/leafybush/New()
|
||||
/obj/structure/flora/ausbushes/leafybush/Initialize()
|
||||
icon_state = "leafybush_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/palebush
|
||||
icon_state = "palebush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/palebush/New()
|
||||
/obj/structure/flora/ausbushes/palebush/Initialize()
|
||||
icon_state = "palebush_[rand(1, 4)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/stalkybush
|
||||
icon_state = "stalkybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/stalkybush/New()
|
||||
/obj/structure/flora/ausbushes/stalkybush/Initialize()
|
||||
icon_state = "stalkybush_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/grassybush
|
||||
icon_state = "grassybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/grassybush/New()
|
||||
/obj/structure/flora/ausbushes/grassybush/Initialize()
|
||||
icon_state = "grassybush_[rand(1, 4)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/fernybush
|
||||
icon_state = "fernybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/fernybush/New()
|
||||
/obj/structure/flora/ausbushes/fernybush/Initialize()
|
||||
icon_state = "fernybush_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/sunnybush
|
||||
icon_state = "sunnybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/sunnybush/New()
|
||||
/obj/structure/flora/ausbushes/sunnybush/Initialize()
|
||||
icon_state = "sunnybush_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/genericbush
|
||||
icon_state = "genericbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/genericbush/New()
|
||||
/obj/structure/flora/ausbushes/genericbush/Initialize()
|
||||
icon_state = "genericbush_[rand(1, 4)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/pointybush
|
||||
icon_state = "pointybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/pointybush/New()
|
||||
/obj/structure/flora/ausbushes/pointybush/Initialize()
|
||||
icon_state = "pointybush_[rand(1, 4)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/lavendergrass
|
||||
icon_state = "lavendergrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/lavendergrass/New()
|
||||
/obj/structure/flora/ausbushes/lavendergrass/Initialize()
|
||||
icon_state = "lavendergrass_[rand(1, 4)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/ywflowers
|
||||
icon_state = "ywflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/ywflowers/New()
|
||||
/obj/structure/flora/ausbushes/ywflowers/Initialize()
|
||||
icon_state = "ywflowers_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/brflowers
|
||||
icon_state = "brflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/brflowers/New()
|
||||
/obj/structure/flora/ausbushes/brflowers/Initialize()
|
||||
icon_state = "brflowers_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/ppflowers
|
||||
icon_state = "ppflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/ppflowers/New()
|
||||
/obj/structure/flora/ausbushes/ppflowers/Initialize()
|
||||
icon_state = "ppflowers_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/sparsegrass
|
||||
icon_state = "sparsegrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/sparsegrass/New()
|
||||
/obj/structure/flora/ausbushes/sparsegrass/Initialize()
|
||||
icon_state = "sparsegrass_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/ausbushes/fullgrass
|
||||
icon_state = "fullgrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/fullgrass/New()
|
||||
/obj/structure/flora/ausbushes/fullgrass/Initialize()
|
||||
icon_state = "fullgrass_[rand(1, 3)]"
|
||||
..()
|
||||
|
||||
@@ -251,7 +262,7 @@
|
||||
/obj/item/weapon/twohanded/required/kirbyplants/equipped(mob/living/user)
|
||||
var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user)
|
||||
I.override = 1
|
||||
user.add_alt_appearance("sneaking_mission", I, player_list)
|
||||
user.add_alt_appearance("sneaking_mission", I, GLOB.player_list)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/kirbyplants/dropped(mob/living/user)
|
||||
@@ -261,7 +272,7 @@
|
||||
/obj/item/weapon/twohanded/required/kirbyplants/random
|
||||
var/list/static/states
|
||||
|
||||
/obj/item/weapon/twohanded/required/kirbyplants/random/New()
|
||||
/obj/item/weapon/twohanded/required/kirbyplants/random/Initialize()
|
||||
. = ..()
|
||||
if(!states)
|
||||
generate_states()
|
||||
@@ -295,7 +306,7 @@
|
||||
resistance_flags = FIRE_PROOF
|
||||
density = 1
|
||||
|
||||
/obj/structure/flora/rock/New()
|
||||
/obj/structure/flora/rock/Initialize()
|
||||
..()
|
||||
icon_state = "[icon_state][rand(1,3)]"
|
||||
|
||||
@@ -303,6 +314,72 @@
|
||||
icon_state = "lavarocks"
|
||||
desc = "A pile of rocks"
|
||||
|
||||
/obj/structure/flora/rock/pile/New()
|
||||
/obj/structure/flora/rock/pile/Initialize()
|
||||
..()
|
||||
icon_state = "[icon_state][rand(1,3)]"
|
||||
|
||||
//Jungle grass
|
||||
|
||||
/obj/structure/flora/grass/jungle
|
||||
name = "jungle grass"
|
||||
desc = "Thick alien flora."
|
||||
icon = 'icons/obj/flora/jungleflora.dmi'
|
||||
icon_state = "grassa"
|
||||
|
||||
|
||||
/obj/structure/flora/grass/jungle/Initialize()
|
||||
icon_state = "[icon_state][rand(1, 5)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/grass/jungle/b
|
||||
icon_state = "grassb"
|
||||
|
||||
//Jungle rocks
|
||||
|
||||
/obj/structure/flora/rock/jungle
|
||||
icon_state = "pile of rocks"
|
||||
desc = "A pile of rocks."
|
||||
icon_state = "rock"
|
||||
icon = 'icons/obj/flora/jungleflora.dmi'
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/flora/rock/jungle/Initialize()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][rand(1,5)]"
|
||||
|
||||
|
||||
//Jungle bushes
|
||||
|
||||
/obj/structure/flora/junglebush
|
||||
name = "bush"
|
||||
icon = 'icons/obj/flora/jungleflora.dmi'
|
||||
icon_state = "busha"
|
||||
|
||||
/obj/structure/flora/junglebush/Initialize()
|
||||
icon_state = "[icon_state][rand(1, 3)]"
|
||||
..()
|
||||
|
||||
/obj/structure/flora/junglebush/b
|
||||
icon_state = "bushb"
|
||||
|
||||
/obj/structure/flora/junglebush/c
|
||||
icon_state = "bushc"
|
||||
|
||||
/obj/structure/flora/junglebush/large
|
||||
icon_state = "bush"
|
||||
icon = 'icons/obj/flora/largejungleflora.dmi'
|
||||
pixel_x = -16
|
||||
pixel_y = -12
|
||||
layer = ABOVE_ALL_MOB_LAYER
|
||||
|
||||
/obj/structure/flora/rock/pile/largejungle
|
||||
name = "rocks"
|
||||
icon_state = "rocks"
|
||||
icon = 'icons/obj/flora/largejungleflora.dmi'
|
||||
density = FALSE
|
||||
pixel_x = -16
|
||||
pixel_y = -16
|
||||
|
||||
/obj/structure/flora/rock/pile/largejungle/Initialize()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][rand(1,3)]"
|
||||
@@ -106,40 +106,21 @@
|
||||
travel the stars with a single declaration: \"Yeah go do whatever.\" Though you are bound to the one who created you, it is customary in your society to repeat those same words to newborn \
|
||||
golems, so that no golem may ever be forced to serve again.</b>"
|
||||
|
||||
/obj/effect/mob_spawn/human/golem/New(loc, datum/species/golem/species = null, has_owner = FALSE, mob/creator = null)
|
||||
/obj/effect/mob_spawn/human/golem/Initialize(mapload, datum/species/golem/species = null, has_owner = FALSE, mob/creator = null)
|
||||
..()
|
||||
if(species)
|
||||
name += " ([initial(species.id)])"
|
||||
name += " ([initial(species.prefix)])"
|
||||
mob_species = species
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
notify_ghosts("\A [initial(species.id)] golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE)
|
||||
if(!mapload && A)
|
||||
notify_ghosts("\A [initial(species.prefix)] golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE)
|
||||
if(has_owner && creator)
|
||||
flavour_text = "You are a golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. \
|
||||
Serve [creator], and assist [creator.p_them()] in completing [creator.p_their()] goals at any cost."
|
||||
owner = creator
|
||||
|
||||
/obj/effect/mob_spawn/human/golem/special(mob/living/new_spawn)
|
||||
var/golem_surname = pick(golem_names)
|
||||
// 3% chance that our golem has a human surname, because
|
||||
// cultural contamination
|
||||
if(prob(3))
|
||||
golem_surname = pick(last_names)
|
||||
|
||||
var/datum/species/golem/X = mob_species
|
||||
var/golem_forename = initial(X.id)
|
||||
|
||||
// The id of golem species is either their material "diamond","gold",
|
||||
// or just "golem" for the plain ones. So we're using it for naming.
|
||||
|
||||
if(golem_forename == "golem")
|
||||
golem_forename = "iron"
|
||||
|
||||
new_spawn.real_name = "[capitalize(golem_forename)] [golem_surname]"
|
||||
// This means golems have names like Iron Forge, or Diamond Quarry
|
||||
// also a tiny chance of being called "Plasma Meme"
|
||||
// which is clearly a feature
|
||||
|
||||
to_chat(new_spawn, "[initial(X.info_text)]")
|
||||
if(!owner)
|
||||
to_chat(new_spawn, "Build golem shells in the autolathe, and feed refined mineral sheets to the shells to bring them to life! You are generally a peaceful group unless provoked.")
|
||||
@@ -151,6 +132,7 @@
|
||||
if(ishuman(new_spawn))
|
||||
var/mob/living/carbon/human/H = new_spawn
|
||||
H.set_cloned_appearance()
|
||||
H.real_name = H.dna.species.random_name()
|
||||
|
||||
/obj/effect/mob_spawn/human/golem/adamantine
|
||||
name = "dust-caked golem shell"
|
||||
|
||||
@@ -17,15 +17,16 @@
|
||||
if(mapload)
|
||||
for(var/obj/item/I in loc.contents)
|
||||
if(istype(I, gun_category))
|
||||
I.loc = src
|
||||
I.forceMove(src)
|
||||
if(contents.len >= capacity)
|
||||
break
|
||||
update_icon()
|
||||
|
||||
/obj/structure/guncase/update_icon()
|
||||
cut_overlays()
|
||||
for(var/i = contents.len, i >= 1, i--)
|
||||
add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 4 * (i -1) ))
|
||||
if(case_type && LAZYLEN(contents))
|
||||
for(var/i in 1 to contents.len)
|
||||
add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 3 * (i - 1) ))
|
||||
if(open)
|
||||
add_overlay("[icon_state]_open")
|
||||
else
|
||||
@@ -34,14 +35,16 @@
|
||||
/obj/structure/guncase/attackby(obj/item/I, mob/user, params)
|
||||
if(iscyborg(user) || isalien(user))
|
||||
return
|
||||
if(istype(I, gun_category))
|
||||
if(contents.len < capacity && open)
|
||||
if(istype(I, gun_category) && open)
|
||||
if(LAZYLEN(contents) < capacity)
|
||||
if(!user.drop_item())
|
||||
return
|
||||
contents += I
|
||||
I.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You place [I] in [src].</span>")
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is full.</span>")
|
||||
return
|
||||
|
||||
else if(user.a_intent != INTENT_HARM)
|
||||
open = !open
|
||||
@@ -62,9 +65,10 @@
|
||||
var/dat = {"<div class='block'>
|
||||
<h3>Stored Guns</h3>
|
||||
<table align='center'>"}
|
||||
for(var/i = contents.len, i >= 1, i--)
|
||||
var/obj/item/I = contents[i]
|
||||
dat += "<tr><A href='?src=\ref[src];retrieve=\ref[I]'>[I.name]</A><br>"
|
||||
if(LAZYLEN(contents))
|
||||
for(var/i in 1 to contents.len)
|
||||
var/obj/item/I = contents[i]
|
||||
dat += "<tr><A href='?src=\ref[src];retrieve=\ref[I]'>[I.name]</A><br>"
|
||||
dat += "</table></div>"
|
||||
|
||||
var/datum/browser/popup = new(user, "gunlocker", "<div align='center'>[name]</div>", 350, 300)
|
||||
@@ -76,7 +80,7 @@
|
||||
var/obj/item/O = locate(href_list["retrieve"]) in contents
|
||||
if(!O || !istype(O))
|
||||
return
|
||||
if(!usr.canUseTopic(src))
|
||||
if(!usr.canUseTopic(src) || !open)
|
||||
return
|
||||
if(ishuman(usr))
|
||||
if(!usr.put_in_hands(O))
|
||||
|
||||
@@ -13,20 +13,32 @@
|
||||
desc = "An extremely sturdy metal ladder."
|
||||
|
||||
|
||||
/obj/structure/ladder/New()
|
||||
spawn(8)
|
||||
for(var/obj/structure/ladder/L in world)
|
||||
if(L.id == id)
|
||||
if(L.height == (height - 1))
|
||||
down = L
|
||||
continue
|
||||
if(L.height == (height + 1))
|
||||
up = L
|
||||
continue
|
||||
/obj/structure/ladder/Initialize(mapload)
|
||||
if(!initialized)
|
||||
GLOB.ladders += src
|
||||
..()
|
||||
if(mapload)
|
||||
return TRUE
|
||||
update_link()
|
||||
|
||||
/obj/structure/ladder/Destroy()
|
||||
GLOB.ladders -= src
|
||||
. = ..()
|
||||
|
||||
/obj/structure/ladder/proc/update_link()
|
||||
for(var/obj/structure/ladder/L in GLOB.ladders)
|
||||
if(L.id == id)
|
||||
if(L.height == (height - 1))
|
||||
down = L
|
||||
continue
|
||||
if(L.height == (height + 1))
|
||||
up = L
|
||||
continue
|
||||
|
||||
if(up && down) //if both our connections are filled
|
||||
break
|
||||
update_icon()
|
||||
|
||||
if(up && down) //if both our connections are filled
|
||||
break
|
||||
update_icon()
|
||||
|
||||
/obj/structure/ladder/update_icon()
|
||||
if(up && down)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
obj_integrity = 50
|
||||
max_integrity = 50
|
||||
layer = LATTICE_LAYER //under pipes
|
||||
var/obj/item/stack/rods/stored
|
||||
var/number_of_rods = 1
|
||||
canSmoothWith = list(/obj/structure/lattice,
|
||||
/turf/open/floor,
|
||||
/turf/closed/wall,
|
||||
@@ -17,26 +17,20 @@
|
||||
smooth = SMOOTH_MORE
|
||||
// flags = CONDUCT
|
||||
|
||||
/obj/structure/lattice/New()
|
||||
/obj/structure/lattice/Initialize(mapload)
|
||||
..()
|
||||
for(var/obj/structure/lattice/LAT in src.loc)
|
||||
for(var/obj/structure/lattice/LAT in loc)
|
||||
if(LAT != src)
|
||||
qdel(LAT)
|
||||
stored = new/obj/item/stack/rods(src)
|
||||
|
||||
/obj/structure/lattice/Destroy()
|
||||
qdel(stored)
|
||||
stored = null
|
||||
return ..()
|
||||
QDEL_IN(LAT, 0)
|
||||
|
||||
/obj/structure/lattice/blob_act(obj/structure/blob/B)
|
||||
return
|
||||
|
||||
/obj/structure/lattice/ratvar_act()
|
||||
if(IsEven(x + y))
|
||||
new/obj/structure/lattice/clockwork(loc)
|
||||
new /obj/structure/lattice/clockwork(loc)
|
||||
else
|
||||
new/obj/structure/lattice/clockwork/large(loc)
|
||||
new /obj/structure/lattice/clockwork/large(loc)
|
||||
|
||||
/obj/structure/lattice/attackby(obj/item/C, mob/user, params)
|
||||
if(istype(C, /obj/item/weapon/wirecutters))
|
||||
@@ -48,8 +42,7 @@
|
||||
|
||||
/obj/structure/lattice/deconstruct(disassembled = TRUE)
|
||||
if(!(flags & NODECONSTRUCT))
|
||||
stored.forceMove(get_turf(src))
|
||||
stored = null
|
||||
new /obj/item/stack/rods(get_turf(src), number_of_rods)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/lattice/singularity_pull(S, current_size)
|
||||
@@ -61,15 +54,15 @@
|
||||
desc = "A lightweight support lattice. These hold the Justicar's station together."
|
||||
icon = 'icons/obj/smooth_structures/lattice_clockwork.dmi'
|
||||
|
||||
/obj/structure/lattice/clockwork/New()
|
||||
/obj/structure/lattice/clockwork/Initialize(mapload)
|
||||
..()
|
||||
ratvar_act()
|
||||
|
||||
/obj/structure/lattice/clockwork/ratvar_act()
|
||||
if(IsOdd(x+y))
|
||||
new/obj/structure/lattice/clockwork/large(loc)
|
||||
new /obj/structure/lattice/clockwork/large(loc) // deletes old one
|
||||
|
||||
/obj/structure/lattice/clockwork/large/New()
|
||||
/obj/structure/lattice/clockwork/large/Initialize(mapload)
|
||||
..()
|
||||
icon = 'icons/obj/smooth_structures/lattice_clockwork_large.dmi'
|
||||
pixel_x = -9
|
||||
@@ -77,23 +70,19 @@
|
||||
|
||||
/obj/structure/lattice/clockwork/large/ratvar_act()
|
||||
if(IsEven(x + y))
|
||||
new/obj/structure/lattice/clockwork(loc)
|
||||
new /obj/structure/lattice/clockwork(loc)
|
||||
|
||||
/obj/structure/lattice/catwalk
|
||||
name = "catwalk"
|
||||
desc = "A catwalk for easier EVA maneuvering and cable placement."
|
||||
icon = 'icons/obj/smooth_structures/catwalk.dmi'
|
||||
icon_state = "catwalk"
|
||||
number_of_rods = 2
|
||||
smooth = SMOOTH_TRUE
|
||||
canSmoothWith = null
|
||||
|
||||
/obj/structure/lattice/catwalk/New()
|
||||
..()
|
||||
stored.amount++
|
||||
stored.update_icon()
|
||||
|
||||
/obj/structure/lattice/catwalk/ratvar_act()
|
||||
new/obj/structure/lattice/catwalk/clockwork(loc)
|
||||
new /obj/structure/lattice/catwalk/clockwork(loc)
|
||||
|
||||
/obj/structure/lattice/catwalk/Move()
|
||||
var/turf/T = loc
|
||||
@@ -111,7 +100,7 @@
|
||||
name = "clockwork catwalk"
|
||||
icon = 'icons/obj/smooth_structures/catwalk_clockwork.dmi'
|
||||
|
||||
/obj/structure/lattice/catwalk/clockwork/New()
|
||||
/obj/structure/lattice/catwalk/clockwork/Initialize(mapload)
|
||||
..()
|
||||
new /obj/effect/overlay/temp/ratvar/floor/catwalk(loc)
|
||||
new /obj/effect/overlay/temp/ratvar/beam/catwalk(loc)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
//handle facial hair (if necessary)
|
||||
if(H.gender == MALE)
|
||||
var/new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
|
||||
var/new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in GLOB.facial_hair_styles_list
|
||||
if(userloc != H.loc)
|
||||
return //no tele-grooming
|
||||
if(new_style)
|
||||
@@ -34,7 +34,7 @@
|
||||
H.facial_hair_style = "Shaved"
|
||||
|
||||
//handle normal hair
|
||||
var/new_style = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list
|
||||
var/new_style = input(user, "Select a hair style", "Grooming") as null|anything in GLOB.hair_styles_list
|
||||
if(userloc != H.loc)
|
||||
return //no tele-grooming
|
||||
if(new_style)
|
||||
@@ -90,7 +90,7 @@
|
||||
name = "magic mirror"
|
||||
desc = "Turn and face the strange... face."
|
||||
icon_state = "magic_mirror"
|
||||
var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth")
|
||||
var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth", "memezombie")
|
||||
var/list/choosable_races = list()
|
||||
|
||||
/obj/structure/mirror/magic/New()
|
||||
@@ -102,7 +102,7 @@
|
||||
..()
|
||||
|
||||
/obj/structure/mirror/magic/lesser/New()
|
||||
choosable_races = roundstart_species
|
||||
choosable_races = GLOB.roundstart_species
|
||||
..()
|
||||
|
||||
/obj/structure/mirror/magic/badmin/New()
|
||||
@@ -140,7 +140,7 @@
|
||||
if("race")
|
||||
var/newrace
|
||||
var/racechoice = input(H, "What are we again?", "Race change") as null|anything in choosable_races
|
||||
newrace = species_list[racechoice]
|
||||
newrace = GLOB.species_list[racechoice]
|
||||
|
||||
if(!newrace)
|
||||
return
|
||||
@@ -149,7 +149,7 @@
|
||||
H.set_species(newrace, icon_update=0)
|
||||
|
||||
if(H.dna.species.use_skintones)
|
||||
var/new_s_tone = input(user, "Choose your skin tone:", "Race change") as null|anything in skin_tones
|
||||
var/new_s_tone = input(user, "Choose your skin tone:", "Race change") as null|anything in GLOB.skin_tones
|
||||
|
||||
if(new_s_tone)
|
||||
H.skin_tone = new_s_tone
|
||||
@@ -223,4 +223,4 @@
|
||||
curse(user)
|
||||
|
||||
/obj/structure/mirror/magic/proc/curse(mob/living/user)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
/*
|
||||
* Crematorium
|
||||
*/
|
||||
var/global/list/crematoriums = new/list()
|
||||
GLOBAL_LIST_EMPTY(crematoriums)
|
||||
/obj/structure/bodycontainer/crematorium
|
||||
name = "crematorium"
|
||||
desc = "A human incinerator. Works well on barbeque nights."
|
||||
@@ -160,14 +160,14 @@ var/global/list/crematoriums = new/list()
|
||||
return
|
||||
|
||||
/obj/structure/bodycontainer/crematorium/Destroy()
|
||||
crematoriums.Remove(src)
|
||||
GLOB.crematoriums.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/structure/bodycontainer/crematorium/New()
|
||||
connected = new/obj/structure/tray/c_tray(src)
|
||||
connected.connected = src
|
||||
|
||||
crematoriums.Add(src)
|
||||
GLOB.crematoriums.Add(src)
|
||||
..()
|
||||
|
||||
/obj/structure/bodycontainer/crematorium/update_icon()
|
||||
|
||||
@@ -182,6 +182,27 @@
|
||||
popup.set_title_image(user.browse_rsc_icon(instrumentObj.icon, instrumentObj.icon_state))
|
||||
popup.open()
|
||||
|
||||
/datum/song/proc/ParseSong(text)
|
||||
set waitfor = FALSE
|
||||
//split into lines
|
||||
lines = splittext(text, "\n")
|
||||
if(lines.len)
|
||||
if(copytext(lines[1],1,6) == "BPM: ")
|
||||
tempo = sanitize_tempo(600 / text2num(copytext(lines[1],6)))
|
||||
lines.Cut(1,2)
|
||||
else
|
||||
tempo = sanitize_tempo(5) // default 120 BPM
|
||||
if(lines.len > 50)
|
||||
to_chat(usr, "Too many lines!")
|
||||
lines.Cut(51)
|
||||
var/linenum = 1
|
||||
for(var/l in lines)
|
||||
if(lentext(l) > 50)
|
||||
to_chat(usr, "Line [linenum] too long!")
|
||||
lines.Remove(l)
|
||||
else
|
||||
linenum++
|
||||
updateDialog(usr) // make sure updates when complete
|
||||
|
||||
/datum/song/Topic(href, href_list)
|
||||
if(!usr.canUseTopic(instrumentObj))
|
||||
@@ -208,26 +229,7 @@
|
||||
if(cont == "no")
|
||||
break
|
||||
while(lentext(t) > 3072)
|
||||
|
||||
//split into lines
|
||||
spawn()
|
||||
lines = splittext(t, "\n")
|
||||
if(copytext(lines[1],1,6) == "BPM: ")
|
||||
tempo = sanitize_tempo(600 / text2num(copytext(lines[1],6)))
|
||||
lines.Cut(1,2)
|
||||
else
|
||||
tempo = sanitize_tempo(5) // default 120 BPM
|
||||
if(lines.len > 50)
|
||||
to_chat(usr, "Too many lines!")
|
||||
lines.Cut(51)
|
||||
var/linenum = 1
|
||||
for(var/l in lines)
|
||||
if(lentext(l) > 50)
|
||||
to_chat(usr, "Line [linenum] too long!")
|
||||
lines.Remove(l)
|
||||
else
|
||||
linenum++
|
||||
updateDialog(usr) // make sure updates when complete
|
||||
ParseSong(t)
|
||||
|
||||
else if(href_list["help"])
|
||||
help = text2num(href_list["help"]) - 1
|
||||
|
||||
@@ -90,39 +90,39 @@
|
||||
/obj/structure/noticeboard/captain
|
||||
name = "Captain's Notice Board"
|
||||
desc = "Important notices from the Captain."
|
||||
req_access = list(access_captain)
|
||||
req_access = list(GLOB.access_captain)
|
||||
|
||||
/obj/structure/noticeboard/hop
|
||||
name = "Head of Personnel's Notice Board"
|
||||
desc = "Important notices from the Head of Personnel."
|
||||
req_access = list(access_hop)
|
||||
req_access = list(GLOB.access_hop)
|
||||
|
||||
/obj/structure/noticeboard/ce
|
||||
name = "Chief Engineer's Notice Board"
|
||||
desc = "Important notices from the Chief Engineer."
|
||||
req_access = list(access_ce)
|
||||
req_access = list(GLOB.access_ce)
|
||||
|
||||
/obj/structure/noticeboard/hos
|
||||
name = "Head of Security's Notice Board"
|
||||
desc = "Important notices from the Head of Security."
|
||||
req_access = list(access_hos)
|
||||
req_access = list(GLOB.access_hos)
|
||||
|
||||
/obj/structure/noticeboard/cmo
|
||||
name = "Chief Medical Officer's Notice Board"
|
||||
desc = "Important notices from the Chief Medical Officer."
|
||||
req_access = list(access_cmo)
|
||||
req_access = list(GLOB.access_cmo)
|
||||
|
||||
/obj/structure/noticeboard/rd
|
||||
name = "Research Director's Notice Board"
|
||||
desc = "Important notices from the Research Director."
|
||||
req_access = list(access_rd)
|
||||
req_access = list(GLOB.access_rd)
|
||||
|
||||
/obj/structure/noticeboard/qm
|
||||
name = "Quartermaster's Notice Board"
|
||||
desc = "Important notices from the Quartermaster."
|
||||
req_access = list(access_qm)
|
||||
req_access = list(GLOB.access_qm)
|
||||
|
||||
/obj/structure/noticeboard/staff
|
||||
name = "Staff Notice Board"
|
||||
desc = "Important notices from the heads of staff."
|
||||
req_access = list(access_heads)
|
||||
req_access = list(GLOB.access_heads)
|
||||
|
||||
+1
-3
@@ -82,9 +82,7 @@
|
||||
var/obj/structure/statue/petrified/S = new(loc, src, statue_timer)
|
||||
S.name = "statue of [name]"
|
||||
bleedsuppress = 1
|
||||
S.icon = icon
|
||||
S.icon_state = icon_state
|
||||
S.copy_overlays(overlays)
|
||||
S.copy_overlays(src)
|
||||
var/newcolor = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||
S.add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
|
||||
return 1
|
||||
@@ -147,6 +147,7 @@ FLOOR SAFES
|
||||
if(open)
|
||||
if(P && in_range(src, user))
|
||||
user.put_in_hands(P)
|
||||
space -= P.w_class
|
||||
updateUsrDialog()
|
||||
|
||||
|
||||
|
||||
@@ -134,6 +134,11 @@
|
||||
Cargo(<b>brown</b>), Science(<b>purple</b>), Escape(<b>red and white</b>), and Medbay(<b>blue</b>).\nIn the center of the station, you see the Bridge(<b>dark blue</b>).\n\
|
||||
Around those, you see Hallways/Entrances(<b>light grey</b>), Public Areas(<b>grey</b>), and Maintenance(<b>dark grey</b>)."
|
||||
|
||||
/obj/structure/sign/map/left/ceres
|
||||
icon_state = "map-CS"
|
||||
desc = "A framed picture of the station.\nClockwise from the top, you see Security (<b>red</b>), Dorms (<b>light-green</b>), Bridge (<b>dark-blue</b>), AI Core (<b>gray</b>), \
|
||||
Cargo (<b>brown</b>), Medbay (<b>blue</b>), Arrivals/Departures(<b>orange/cyan</b>), Research (<b>purple</b>), Service (<b>dark-green</b>), and Engineering in the center (<b>yellow</b>)."
|
||||
|
||||
/obj/structure/sign/securearea
|
||||
name = "\improper SECURE AREA"
|
||||
desc = "A warning sign which reads 'SECURE AREA'."
|
||||
@@ -241,6 +246,11 @@
|
||||
desc = "A sign labelling an area as a place where xenobiological entities are researched."
|
||||
icon_state = "xenobio"
|
||||
|
||||
/obj/structure/sign/enginesafety
|
||||
name = "\improper ENGINEERING SAFETY"
|
||||
desc = "A sign detailing the various safety protocols when working on-site to ensure a safe shift."
|
||||
icon_state = "safety"
|
||||
|
||||
/obj/structure/sign/directions/science
|
||||
name = "science department"
|
||||
desc = "A direction sign, pointing out which way the Science department is."
|
||||
@@ -265,3 +275,13 @@
|
||||
name = "escape arm"
|
||||
desc = "A direction sign, pointing out which way the escape shuttle dock is."
|
||||
icon_state = "direction_evac"
|
||||
|
||||
/obj/structure/sign/directions/supply
|
||||
name = "cargo bay"
|
||||
desc = "A direction sign, pointing out which way the Cargo Bay is."
|
||||
icon_state = "direction_supply"
|
||||
|
||||
/obj/structure/sign/directions/command
|
||||
name = "command department"
|
||||
desc = "A direction sign, pointing out which way the Command department is."
|
||||
icon_state = "direction_bridge"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
anchored = 0
|
||||
obj_integrity = 100
|
||||
max_integrity = 100
|
||||
var/oreAmount = 7
|
||||
var/oreAmount = 5
|
||||
var/material_drop_type = /obj/item/stack/sheet/metal
|
||||
CanAtmosPass = ATMOS_PASS_DENSITY
|
||||
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
|
||||
/obj/structure/table/optable/New()
|
||||
..()
|
||||
for(var/dir in cardinal)
|
||||
for(var/dir in GLOB.cardinal)
|
||||
computer = locate(/obj/machinery/computer/operating, get_step(src, dir))
|
||||
if(computer)
|
||||
computer.table = src
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
update_icon()
|
||||
|
||||
/obj/structure/tank_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = physical_state)
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "tank_dispenser", name, 275, 100, master_ui, state)
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
|
||||
/obj/structure/transit_tube/proc/generate_tube_overlays()
|
||||
for(var/direction in tube_dirs)
|
||||
if(direction in diagonals)
|
||||
if(direction in GLOB.diagonals)
|
||||
if(direction & NORTH)
|
||||
create_tube_overlay(direction ^ 3, NORTH)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/structure/trap
|
||||
name = "IT'S A TARP"
|
||||
name = "IT'S A TRAP"
|
||||
desc = "stepping on me is a guaranteed bad day"
|
||||
icon = 'icons/obj/hand_of_god_structures.dmi'
|
||||
icon_state = "trap"
|
||||
|
||||
@@ -546,7 +546,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/window/reinforced/clockwork/ratvar_act()
|
||||
if(ratvar_awakens)
|
||||
if(GLOB.ratvar_awakens)
|
||||
obj_integrity = max_integrity
|
||||
update_icon()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user