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:
Poojawa
2017-04-13 23:37:00 -05:00
committed by GitHub
parent cdc32c98fa
commit 7e9b96a00f
1322 changed files with 174827 additions and 23888 deletions
+1 -1
View File
@@ -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)
+78 -49
View File
@@ -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
+4 -4
View File
@@ -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
+7 -2
View File
@@ -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)
+3 -4
View File
@@ -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)
+3 -3
View File
@@ -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
+1 -1
View File
@@ -339,5 +339,5 @@
return ..()
/obj/structure/falsewall/brass/ratvar_act()
if(ratvar_awakens)
if(GLOB.ratvar_awakens)
obj_integrity = max_integrity
+105 -28
View File
@@ -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"
+15 -11
View File
@@ -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))
+25 -13
View File
@@ -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)
+14 -25
View File
@@ -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)
+7 -7
View File
@@ -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
+3 -3
View File
@@ -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()
+22 -20
View File
@@ -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
+8 -8
View File
@@ -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)
@@ -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
+1
View File
@@ -147,6 +147,7 @@ FLOOR SAFES
if(open)
if(P && in_range(src, user))
user.put_in_hands(P)
space -= P.w_class
updateUsrDialog()
+20
View File
@@ -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"
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 -1
View File
@@ -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"
+1 -1
View File
@@ -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()